Uso delle gemme in rails


#1

L’installazione di rails porta con se alcune gemme quali activerecord,
actionmailer, ecc.
Tali gemme vengono utilizzare dall’ambiente, diciamo, di default.
Per tutte le altre gemme, per poterle utilizzare, e’ invece sempre
necessario inserire tale direttiva config.gem “…”, :lib =>
“…” nell’environment.rb?


#2

Quelle utilizzate in tutti gli environments vanno in quel file,
altrimenti, dovresti usare i file specifici che trovi in
config/environments. Ad esempio io configuro le gemme per il testing
(rspec, webrat, cucumber, etc…) in test.rb sotto quel path.

Ricordati di eseguire i vari Rake task dopo il deploy e prima che
l’applicazione parta.

rake -T gems

ti indica in modo dettagliato le varie differenze.

Luca


#3

2009/6/8 Luca G. removed_email_address@domain.invalid:

Quelle utilizzate in tutti gli environments vanno in quel file,
altrimenti, dovresti usare i file specifici che trovi in
config/environments. Ad esempio io configuro le gemme per il testing
(rspec, webrat, cucumber, etc…) in test.rb sotto quel path.

Si ok comunque ogni gemma che devo utilizzare che non faccia parte del
core di rails va indicata in envoronment o in uno dei files specifici
per l’ambiente.

Ricordati di eseguire i vari Rake task dopo il deploy e prima che
l’applicazione parta.

Ehm, scusa l’ignoranza ma questo non l’ho capito.
Quali sarebbero i rake task da eseguire?

rake -T gems

Mi dice solo:

Missing the Rails 2.3.2 gem. Please gem install -v=2.3.2 rails,
update your RAILS_GEM_VERSION setting in config/environment.rb for the
Rails version you do have installed, or comment out RAILS_GEM_VERSION
to use the latest version installed.


#4

2009/6/8 Luca G. removed_email_address@domain.invalid:

Mauro wrote:

Ehm, scusa l’ignoranza ma questo non l’ho capito.
Quali sarebbero i rake task da eseguire?

Di solito rake gems:install && rake gems:unpack, la prima serve ad
installare nel sistema le gemme configurate, mentre la seconda le
scompatta in vendor/gems.

Un task addizionale da eseguire, potrebbe essere gems:build, nel caso in
cui tu abbia dipendenze verso gemme che hanno estensioni native in C.

Ho capito.
Io di solito le gemme le installo col comando gem, dopodiche’ le
configuro in environment.rb.
E’ scorretto?

topic. Riesci ad eseguire correttamente script/about?
Eccolo:

About your application’s environment
Ruby version 1.8.7 (x86_64-linux)
RubyGems version 1.3.4
Rack version 1.0 bundled
Rails version 2.3.2
Active Record version 2.3.2
Action Pack version 2.3.2
Active Resource version 2.3.2
Action Mailer version 2.3.2
Active Support version 2.3.2
Application root /home/user/NetBeansProjects/LDAPMan
Environment development
Database adapter sqlite3
Database schema version 0

Sembra ok.


#5

Mauro wrote:

Ho capito.
Io di solito le gemme le installo col comando gem, dopodiche’ le
configuro in environment.rb.
E’ scorretto?
Non è scorretto quei task eseguono automaticamente le stesse operazioni,
quindi i metodi si equivalgono.

Una domanda riguardante la tua installazione, dov’è il tuo codice di
Rails? E’ installato come gemma a livello di sistema o solo presente
nella directory vendor del progetto?

Luca


#6

Mauro wrote:

Ehm, scusa l’ignoranza ma questo non l’ho capito.
Quali sarebbero i rake task da eseguire?

Di solito rake gems:install && rake gems:unpack, la prima serve ad
installare nel sistema le gemme configurate, mentre la seconda le
scompatta in vendor/gems.

Un task addizionale da eseguire, potrebbe essere gems:build, nel caso in
cui tu abbia dipendenze verso gemme che hanno estensioni native in C.

rake -T gems

Mi dice solo:

Missing the Rails 2.3.2 gem. Please gem install -v=2.3.2 rails,
update your RAILS_GEM_VERSION setting in config/environment.rb for the
Rails version you do have installed, or comment out RAILS_GEM_VERSION
to use the latest version installed.
Questo è un problema di installazione della tua app, e non riguarda il
topic. Riesci ad eseguire correttamente script/about?

Luca


#7

2009/6/8 Luca G. removed_email_address@domain.invalid:

Una domanda riguardante la tua installazione, dov’è il tuo codice di
Rails? E’ installato come gemma a livello di sistema o solo presente
nella directory vendor del progetto?

Rails e’ installato come gemma a livello di sistema.


#8

Mauro wrote:

Rails e’ installato come gemma a livello di sistema.

Potresti per favore postare la configurazione delle tue gemme:
environment.rb e/o config/environments.

Vorrei controllare, sta per essere rilasciato Rails 2.3.3, una
correttiva e ci sono solo 3 tickets da risolvere prima che questo
avvenga. Se c’è un bug siamo ancora in tempo. :slight_smile:

Luca


#9

Mauro wrote:

Ti servono anche gli altri?
Solo se hai configurato gemme anche negli altri file.


#10

2009/6/8 Luca G. removed_email_address@domain.invalid:

Mauro wrote:

Rails e’ installato come gemma a livello di sistema.

Potresti per favore postare la configurazione delle tue gemme:
environment.rb e/o config/environments.

Vorrei controllare, sta per essere rilasciato Rails 2.3.3, una
correttiva e ci sono solo 3 tickets da risolvere prima che questo
avvenga. Se c’è un bug siamo ancora in tempo. :slight_smile:

Questo e’ environment.rb

Be sure to restart your server when you modify this file

Specifies gem version of Rails to use when vendor/rails is not present

RAILS_GEM_VERSION = ‘2.3.2’ unless defined? RAILS_GEM_VERSION

Bootstrap the Rails environment, frameworks, and default configuration

require File.join(File.dirname(FILE), ‘boot’)

Rails::Initializer.run do |config|

Settings in config/environments/* take precedence over those

specified here.

Application configuration should go into files in

config/initializers

– all .rb files in that directory are automatically loaded.

Add additional load paths for your own custom dirs

config.load_paths += %W( #{RAILS_ROOT}/extras )

Specify gems that this application depends on and have them

installed with rake gems:install

config.gem “bj”

config.gem “hpricot”, :version => ‘0.6’, :source =>

http://code.whytheluckystiff.net

config.gem “sqlite3-ruby”, :lib => “sqlite3”

config.gem “aws-s3”, :lib => “aws/s3”

config.gem “activeldap”, :lib => “active_ldap”

Only load the plugins named here, in the order given (default is

alphabetical).

:all can be used as a placeholder for all plugins not explicitly

named

config.plugins = [ :exception_notification, :ssl_requirement, :all ]

Skip frameworks you’re not going to use. To use Rails without a

database,

you must remove the Active Record framework.

config.frameworks -= [ :active_record, :active_resource,

:action_mailer ]

Activate observers that should always be running

config.active_record.observers = :cacher, :garbage_collector,

:forum_observer

Set Time.zone default to the specified zone and make Active Record

auto-convert to this zone.

Run “rake -D time” for a list of tasks for finding time zone names.

config.time_zone = ‘UTC’

The default locale is :en and all translations from

config/locales/*.rb,yml are auto loaded.

config.i18n.load_path += Dir[Rails.root.join(‘my’, ‘locales’,

‘*.{rb,yml}’)]

config.i18n.default_locale = :de

end

Ti servono anche gli altri?


#11

Ho controllato:

rails test_gems
cd test_gems
rake -T gems # OK

ho configurato la gem

rake -T gems # OK

l’ho installata (sudo gem install activeldap)

rake -T gems # OK

l’ho scompattata (sudo rake gems:unpack)

rake -T gems # OK

Tutto funziona, ho notato che l’unica differenza tra i due ambienti è la
versione di Ruby, la mia
è:
ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0]

la tua?

Luca


#12

2009/6/8 Luca G. removed_email_address@domain.invalid:

Mauro wrote:

Ti servono anche gli altri?
Solo se hai configurato gemme anche negli altri file.

Allora no, la gemma e’ solo nel file che ho postato.


#13

2009/6/8 Luca G. removed_email_address@domain.invalid:

Ho controllato:

rails test_gems
cd test_gems
rake -T gems # OK

ho configurato la gem

rake -T gems # OK

l’ho installata (sudo gem install activeldap)

rake -T gems # OK

l’ho scompattata (sudo rake gems:unpack)

Scusa, una volta installata con sudo gem install…che bisogno c’e’
di scompattarla? Io non lo faccio mai.


#14

2009/6/8 Luca M. removed_email_address@domain.invalid:

On Mon, Jun 8, 2009 at 12:45 PM, Mauroremoved_email_address@domain.invalid wrote:

Scusa, una volta installata con sudo gem install…che bisogno c’e’
di scompattarla? Io non lo faccio mai.

serve perche’ in questo modo non e’ necessario che la gemma sia
installata sul server di produzione (almeno per le gemme che non hanno
parti in linguaggio C che debbano essere ricompilate) e, come per
rails, sei sicuro che in produzione il sistema usera’ esattamente le
stesse gemme che stai usando sul sistema di sviluppo/test .

Ecco questa e’ una cosa che non sapevo.
Anche sul server di produzione mi preoccupavo di installare le stesse
gems che uso sul server di sviluppo, il tutto sempre col comando gem
install…
In pratica invece scompattando la gem me la porto appresso quando
faccio il deploy sull’ambiente di produzione.


#15

2009/6/8 Luca G. removed_email_address@domain.invalid:

rake -T gems # OK
Io ho fatto rails test_gems
cd test_gems
rake -T gems e mi dice sempre

Missing the Rails 2.3.2 gem. Please gem install -v=2.3.2 rails,
update your RAILS_GEM_VERSION setting in config/environment.rb for the
Rails version you do have installed, or comment out RAILS_GEM_VERSION
to use the latest version installed

questo succede anche se commento RAILS_GEM_VERSION in environment.rb

Tutto funziona, ho notato che l’unica differenza tra i due ambienti è la
versione di Ruby, la mia è:

ruby 1.8.6 (2008-08-11 patchlevel 287) [universal-darwin9.0]

la tua?

ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]


#16

On Mon, Jun 8, 2009 at 12:45 PM, Mauroremoved_email_address@domain.invalid wrote:

Scusa, una volta installata con sudo gem install…che bisogno c’e’
di scompattarla? Io non lo faccio mai.

serve perche’ in questo modo non e’ necessario che la gemma sia
installata sul server di produzione (almeno per le gemme che non hanno
parti in linguaggio C che debbano essere ricompilate) e, come per
rails, sei sicuro che in produzione il sistema usera’ esattamente le
stesse gemme che stai usando sul sistema di sviluppo/test .

Luca


#17

2009/6/8 Luca M. removed_email_address@domain.invalid:

ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]

sei su linux anche con il PC che usi per lo sviluppo?>

Si uso solo linux per tutto.


#18

On Mon, Jun 8, 2009 at 12:33 PM, Mauroremoved_email_address@domain.invalid wrote:

Missing the Rails 2.3.2 gem. Please gem install -v=2.3.2 rails,
update your RAILS_GEM_VERSION setting in config/environment.rb for the
Rails version you do have installed, or comment out RAILS_GEM_VERSION
to use the latest version installed

questo succede anche se commento RAILS_GEM_VERSION in environment.rb

qual’e’ l’output di ‘gem list’ ?

ruby 1.8.7 (2008-08-11 patchlevel 72) [x86_64-linux]

sei su linux anche con il PC che usi per lo sviluppo?>

ciao,
Luca


#19

questo argomento interessa anche a me =P

il mio provider mi ha consigliato l’uso di “gem on rails”
(http://gemsonrails.rubyforge.org/), ancora non lo provo, ma sembra
abbastanza intuitivo. dovrebbe svolgere i task corretti per portarsi
dietro le gems usate sul sistema di sviluppo.

A.

Mauro ha scritto:


#20

2009/6/8 Andrea P. removed_email_address@domain.invalid:

questo argomento interessa anche a me =P

il mio provider mi ha consigliato l’uso di “gem on rails”
(http://gemsonrails.rubyforge.org/), ancora non lo provo, ma sembra
abbastanza intuitivo. dovrebbe svolgere i task corretti per portarsi
dietro le gems usate sul sistema di sviluppo.

interessante, qualcuno lo utilizza?