Articles of rubini

Concatenazione di stringhe in Ruby

Sto cercando un modo più elegante di concatenare le stringhe in Ruby. Ho la seguente riga: source = “#{ROOT_DIR}/” << project << "/App.config" C’è un modo migliore per farlo? E del resto qual è la differenza tra << e + ?

Utilizzo di Process.spawn come sostituzione di Process.fork

Il mio ambiente di sviluppo è una macchina Windows con Ruby 1.9.3p125 (RubyInstaller) e rails 3.2.8. Un problema che si presenta, più e più volte, quando si usano le gemme di terze parti, è la mancanza di fork () su Windows. Ciò ha recentemente ostacolato la mia capacità di utilizzare praticamente tutti i test distribuiti […]

Come contare gli elementi duplicati in una matrice di Ruby

Ho un array ordinato: [ ‘FATAL ‘, ‘FATAL ‘, ‘FATAL ‘ ] Mi piacerebbe avere qualcosa di simile ma non deve essere un hash: [ {:error => ‘FATAL ‘, :count => 2}, {:error => ‘FATAL ‘, :count => 1} ]

imansible caricare tale file – bundler / setup (LoadError)

Sto impostando l’applicazione Rails 4 con Ruby 2.0, ma sto ottenendo “Imansible avviare l’applicazione Web” e ottenere questa traccia: cannot load such file — bundler/setup (LoadError) /usr/local/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require’ /usr/local/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:53:in `require’ /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/lib/phusion_passenger/loader_shared_helpers.rb:212:in `run_load_path_setup_code’ /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:96:in `preload_app’ /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:150:in `’ /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:29:in `’ /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/helper-scripts/rack-preloader.rb:28:in `’ Il mio apache2.conf è: LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19/buildout/apache2/mod_passenger.so PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-4.0.19 PassengerDefaultRuby /usr/local/bin/ruby bundle -v è: Bundler […]

Salvare enum da select in Rails 4.1

Sto usando l’enumerazione in Rails 4.1 per tenere traccia dei colors del vino. Wine.rb class Wine < ActiveRecord::Base enum color: [:red, :white, :sparkling] end A mio avviso, genero una selezione in modo che l’utente possa selezionare un vino con un determinato colore f.input :color, :as => :select, :collection => Wine.colors Questo genera il seguente codice […]

Aggiunta di una directory a $ LOAD_PATH (Ruby)

Ho visto due tecniche comunemente usate per aggiungere la directory del file attualmente in esecuzione al $ LOAD_PATH (o $ :). Vedo i vantaggi di farlo nel caso in cui non stai lavorando con una gem. Uno sembra più verboso dell’altro, ovviamente, ma c’è una ragione per andare con l’uno sull’altro? Il primo metodo dettagliato […]

Come rompere il ciclo esterno in Ruby?

In Perl, c’è la possibilità di rompere un ciclo esterno come questo: AAA: for my $stuff (@otherstuff) { for my $foo (@bar) { last AAA if (somethingbad()); } } (la syntax potrebbe essere errata), che utilizza un’etichetta loop per interrompere il loop esterno dall’interno del loop. C’è qualcosa di simile in Ruby?

Hai già triggersto X, ma il tuo Gemfile richiede Y

Durante l’esecuzione del rake ricevo questo errore: Hai già triggersto il rake 0.9.2, ma il tuo Gemfile richiede il rake 0.8.7. Prendi in considerazione l’utilizzo di bundle exec. Usare il bundle exec rake invece di rake sembra funzionare, ma è il modo migliore per risolvere questo problema?

Perché stiamo installando gemme Ruby 1.9.2 / 1.9.3 in una cartella 1.9.1?

Questo accade perché la directory di installazione di Gem usata dal comando gem , vista quando si usa gem env , è impostata su qualcosa di simile: /lib/ruby/gems/1.9.1 La mia domanda è perché? Non si dovrebbe chiamare la cartella: /lib/ruby/gems/1.9.x o /lib/ruby/gems/1.9 altrimenti non potrebbe essercene uno per versione di Ruby, come: c:/ruby191/lib/ruby/gems/1.9.1 c:/ruby192/lib/ruby/gems/1.9.2 c:/ruby193/lib/ruby/gems/1.9.3 […]

Perché le gem sono installate in una directory con una versione di Ruby diversa da quella in cui sono in esecuzione?

Quando installo una gem, viene installata in una directory denominata 1.9.1, nonostante non sia la versione di Ruby che ho installato: $ ruby -v ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin12.2.0] $ gem which rails …/ruby/gems/1.9.1/gems/railties-3.2.9/lib/rails.rb Perché succede? Non ho altre versioni di Ruby installate (e certamente non v1.9.1).