Nei prossimi articoli utilizzerò jruby 1.3.1 con Rails 2.3.3 e ne approfitto per scrivere due righe su come configurare il sistema.
A proposito, il sistema utilizzato è un windows xp virtualizzato, java sdk 6, glassfish come application server e javadb.
Scarichiamo e installiamo l’sdk java, siamo alla versione 6 update 14.
C’è anche il download dell’sdk con netbeans, un ottimo IDE per gestire progetti ruby on rails. Potrebbe essere un occasione per provarlo. Il pacchetto comprende anche l’application server glassfish V3.
Ora scarichiamo e installiamo jRuby, siamo alla versione 1.3.1.
L’installazione è semplicissima: scompattiamo lo zip in un percorso del tipo C:\ruby\jruby-131
Andiamo ad impostare le variabili d’ambiente, tasto destro su “Risorse del computer” sul desktop -> “Proprietà” -> seleziona il tab “Avanzate” -> click su “variabili d’ambiente”.
- Aggiungiamo alla variabile PATH il percorso della cartella bin dove abbiamo installato jruby, per esempio C:\ruby\jruby-131\bin.
- Impostiamo la variabile d’ambiente JAVA_HOME. Nella zona “variabili di sistema” -> “nuovo” -> come nome “JAVA_HOME” come valore il percorso di installazione dell’sdk per esempio C:\Programmi\Java\jdk1.6.0_14
Non è necessario riavviare il sistema operativo, testiamo il risultato:
C:\>jruby -v
jruby 1.3.1 (ruby 1.8.6p287) (2009-06-15 2fd6c3d) (Java HotSpot(TM) Client VM 1.6.0_14) [x86-java]
Eureka! Ora abbiamo jruby, jirb ed il solito gem. Se nel sistema è presente anche ruby classico è necessario specificare jruby -S per richiamare gem, utilizziamolo subito per installare rails 2.3.3:
C:\>jruby -S gem install rails
Successfully installed activesupport-2.3.3
Successfully installed activerecord-2.3.3
Successfully installed actionpack-2.3.3
Successfully installed actionmailer-2.3.3
Successfully installed activeresource-2.3.3
Successfully installed rails-2.3.3
6 gems installed
Installing ri documentation for activesupport-2.3.3...
Installing ri documentation for activerecord-2.3.3...
Installing ri documentation for actionpack-2.3.3...
Installing ri documentation for actionmailer-2.3.3...
Installing ri documentation for activeresource-2.3.3...
Installing ri documentation for rails-2.3.3...
Installing RDoc documentation for activesupport-2.3.3...
Installing RDoc documentation for activerecord-2.3.3...
Installing RDoc documentation for actionpack-2.3.3...
Installing RDoc documentation for actionmailer-2.3.3...
Installing RDoc documentation for activeresource-2.3.3...
Installing RDoc documentation for rails-2.3.3...
Installiamo l’adapter jdbc per collegarci a java DB (da ora ometto jruby -S, nel mio sistema non è necessario):
C:\>gem install activerecord-jdbcderby-adapter
Successfully installed activerecord-jdbc-adapter-0.9.1
Successfully installed jdbc-derby-10.4.2.0
Successfully installed activerecord-jdbcderby-adapter-0.9.1
3 gems installed
Installing ri documentation for activerecord-jdbc-adapter-0.9.1...
Installing ri documentation for jdbc-derby-10.4.2.0...
Installing ri documentation for activerecord-jdbcderby-adapter-0.9.1...
Installing RDoc documentation for activerecord-jdbc-adapter-0.9.1...
Installing RDoc documentation for jdbc-derby-10.4.2.0...
Installing RDoc documentation for activerecord-jdbcderby-adapter-0.9.1...
Poi installiamo la gemma per glassfish:
C:\>gem install glassfish
Successfully installed rack-1.0.0
Successfully installed glassfish-0.9.5-universal-java
2 gems installed
Installing ri documentation for rack-1.0.0...
Installing ri documentation for glassfish-0.9.5-universal-java...
Installing RDoc documentation for rack-1.0.0...
Installing RDoc documentation for glassfish-0.9.5-universal-java...
Siamo pronti, creiamo un nuovo progetto:
C:\>rails ProvaArticolo
…nel file di configurazione dei db utilizziamo:
# config/database.yml # JavaDB Setup # # You may need to copy derby.jar into # TODO: location C:\ruby\jruby-131\lib # With Java SE 6 and later this is not necessary. development: adapter: derby database: db/development.db # Warning: The database defined as 'test' will be erased and # re-generated from your development database when you run 'rake'. # Do not set this db to the same as development or production. test: adapter: derby database: db/test.db # Warning: The database defined as 'test' will be erased and # re-generated from your development database when you run 'rake'. # Do not set this db to the same as development or production. production: adapter: derby database: db/production.db # Warning: The database defined as 'test' will be erased and # re-generated from your development database when you run 'rake'. # Do not set this db to the same as development or production.
Facciamo partire il server, dal prompt dentro la nostra applicazione:
C:\ProvaArticolo>glassfish
Starting GlassFish server at: 127.0.0.1:3000 in development environment...
Writing log messages to: C:/ProvaArticolo/log/development.log.
Press Ctrl+C to stop.
All’indirizzo http://localhost:3000/ dovremmo vedere la pagina di benvenuto.
Ora fermiamo il server con Ctrl+C e creiamo il db in ambiente sviluppo:
C:\ProvaArticolo>rake db:create
(in C:/ProvaArticolo)
db/development.db already exists
Creiamo qualcosa all’interno del database, iniziamo con la risorsa di rails:
C:\ProvaArticolo>jruby script/generate scaffold article name:string body:text
create app/models/
exists app/controllers/
exists app/helpers/
exists app/views/articles
create app/views/layouts/
create test/functional/
create test/unit/
create test/unit/helpers/
create public/stylesheets/
create app/views/articles/index.html.erb
create app/views/articles/show.html.erb
create app/views/articles/new.html.erb
create app/views/articles/edit.html.erb
create app/views/layouts/articles.html.erb
create public/stylesheets/scaffold.css
create app/controllers/articles_controller.rb
create test/functional/articles_controller_test.rb
create app/helpers/articles_helper.rb
create test/unit/helpers/articles_helper_test.rb
route map.resources :articles
dependency model
exists app/models/
exists test/unit/
create test/fixtures/
create app/models/article.rb
create test/unit/article_test.rb
create test/fixtures/articles.yml
exists db/migrate
create db/migrate/20090729171105_create_articles.rb
e creiamo la tabella nel db con la migrate:
C:\ProvaArticolo>rake db:migrate
(in C:/ProvaArticolo)
== CreateArticles: migrating =================================================
-- create_table(:articles)
-> 0.0700s
-> 0 rows
== CreateArticles: migrated (0.0700s) ========================================
Infine eliminiamo il file index.html da dentro la cartella public e creiamo la route iniziale:
#config\routes.rb map.root :controller => "articles"
Riavviamo il server e sempre all’indirizzo http://localhost:3000/ questa volta dovremmo vedere la lista degli articoli.
Se non mi sono dimenticato qualcosa, jruby on rails è pronto, buon divertimento!
Michele
31 July 2009 at 14:29
Ottimo articolo. Testato e server in funzione.
Ho avuto un po di problemi con le gemme, non avendo accesso a internte le ho dovute installare 1 alla volta. Ma è un problema della mia rete!
Ciao Michele.