Merb on JRuby 1.1 RC3
This blog provides how you can get started with
href="http://www.merbivore.com/">Merb on
href="http://www.bloglines.com/blog/ThomasEEnebo?id=43">JRuby
1.1 RC3.
Merb is another MVC framework (just like Rails) but with a pluggable
ORM, JavaScript library and Template language. Rails has built-in
support for these using ActiveRecord, Script.aculo.us
and ERB
templates. Making it pluggable keeps the core very lightweight and
still providing support for a particular feature using plugins. Another
big advantage of Merb is that unlike Rails it's thread-safe.
There
are already third party supports for ActiveRecord, DataMapper and
Sequel ORMs. I will hopefully be able to build support for
href="http://en.wikipedia.org/wiki/Java_Persistence_API">Java
Persistence API ORM in Merb. Until then, here is how you
install and get started with Merb on JRuby 1.1 RC3.
Install Merb on JRuby as:
-
cellpadding="2" cellspacing="2">
Macintosh-187:jruby-1.1RC3
arungupta$ bin/jruby -S
gem install merb mongrel
JRuby limited openssl loaded. gem install jruby-openssl for full
support.
http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
Updating metadata for 339 gems from http://gems.rubyforge.org
.........................................................................................................
.........................................................................................................
.........................................................................................................
........................
complete
Successfully installed abstract-1.0.0
Successfully installed erubis-2.5.0
Successfully installed json_pure-1.1.2
Successfully installed rack-0.3.0
Successfully installed hpricot-0.6-java
Successfully installed mime-types-1.15
Successfully installed merb-core-0.9.2
Successfully installed merb-action-args-0.9.2
Successfully installed merb-assets-0.9.2
Successfully installed activesupport-2.0.2
Successfully installed rubigen-1.2.4
Successfully installed merb-gen-0.9.2
Successfully installed merb-haml-0.9.2
Successfully installed merb-builder-0.9.2
Successfully installed mailfactory-1.2.3
Successfully installed merb-mailer-0.9.2
Successfully installed merb-parts-0.9.2
Successfully installed merb-cache-0.9.2
Successfully installed merb-more-0.9.2
Successfully installed merb-0.9.2
Successfully installed gem_plugin-0.2.3
Successfully installed mongrel-1.1.4-java
22 gems installed
Installing ri documentation for json_pure-1.1.2...
Installing ri documentation for rack-0.3.0...
Installing ri documentation for hpricot-0.6-java...
Installing ri documentation for mime-types-1.15...
Installing ri documentation for merb-core-0.9.2...
Installing ri documentation for merb-action-args-0.9.2...
Installing ri documentation for merb-assets-0.9.2...
Installing ri documentation for activesupport-2.0.2...
Installing ri documentation for rubigen-1.2.4...
Installing ri documentation for merb-gen-0.9.2...
Installing ri documentation for merb-haml-0.9.2...
Installing ri documentation for merb-builder-0.9.2...
Installing ri documentation for mailfactory-1.2.3...
Installing ri documentation for merb-mailer-0.9.2...
Installing ri documentation for merb-parts-0.9.2...
Installing ri documentation for merb-cache-0.9.2...
Installing ri documentation for gem_plugin-0.2.3...
Installing ri documentation for mongrel-1.1.4-java...
Installing RDoc documentation for json_pure-1.1.2...
Installing RDoc documentation for rack-0.3.0...
Installing RDoc documentation for hpricot-0.6-java...
Installing RDoc documentation for mime-types-1.15...
Installing RDoc documentation for merb-core-0.9.2...
Installing RDoc documentation for merb-action-args-0.9.2...
Installing RDoc documentation for merb-assets-0.9.2...
Installing RDoc documentation for activesupport-2.0.2...
Installing RDoc documentation for rubigen-1.2.4...
Installing RDoc documentation for merb-gen-0.9.2...
Installing RDoc documentation for merb-haml-0.9.2...
Installing RDoc documentation for merb-builder-0.9.2...
Installing RDoc documentation for mailfactory-1.2.3...
Installing RDoc documentation for merb-mailer-0.9.2...
Installing RDoc documentation for merb-parts-0.9.2...
Installing RDoc documentation for merb-cache-0.9.2...
Installing RDoc documentation for gem_plugin-0.2.3...
Installing RDoc documentation for mongrel-1.1.4-java...
This is so much simpler than couple of weeks ago where all the
dependencies had to be
href="http://archive.jruby.codehaus.org/user/47E17E4D.8020000%40sun.com">explicitly
installed. Now create a sample application as:
arungupta$ cd samples/
Macintosh-187:samples arungupta$ mkdir merb
Macintosh-187:samples arungupta$ cd merb/
Macintosh-187:merb arungupta$ ../../bin/jruby
-S merb-gen app hello
RubiGen::Scripts::Generate
create app
create
autotest
create
config
create
public
create spec
create
app/controllers
create
app/helpers
create
app/views
create
app/views/exceptions
create
app/views/layout
create
config/environments
create
public/images
create
public/stylesheets
create
autotest/discover.rb
create
autotest/merb.rb
create
autotest/merb_rspec.rb
create
config/rack.rb
create
config/router.rb
create
config/init.rb
create
public/merb.fcgi
create
spec/spec.opts
create
spec/spec_helper.rb
create
app/controllers/application.rb
create
app/controllers/exceptions.rb
create
app/helpers/global_helpers.rb
create
app/views/exceptions/internal_server_error.html.erb
create
app/views/exceptions/not_acceptable.html.erb
create
app/views/exceptions/not_found.html.erb
create
app/views/layout/application.html.erb
create
config/environments/development.rb
create
config/environments/production.rb
create
config/environments/rake.rb
create
config/environments/test.rb
create
public/images/merb.jpg
create
public/stylesheets/master.css
create
/Rakefile
The top-level directory looks like:
arungupta$ ls -la
total 8
drwxr-xr-x 8 arungupta
arungupta 272 Apr 1 22:20 .
drwxr-xr-x 3 arungupta
arungupta 102 Apr 1 22:20 ..
-rw-r--r-- 1 arungupta arungupta 3334
Apr 1 22:20 Rakefile
drwxr-xr-x 5 arungupta
arungupta 170 Apr 1 22:20 app
drwxr-xr-x 5 arungupta
arungupta 170 Apr 1 22:20 autotest
drwxr-xr-x 6 arungupta
arungupta 204 Apr 1 22:20 config
drwxr-xr-x 5 arungupta
arungupta 170 Apr 1 22:20 public
drwxr-xr-x 4 arungupta
arungupta 136 Apr 1 22:20 spec
And finally start the app as:
arungupta$ ../../../bin/jruby
-S merb
JRuby limited openssl loaded. gem install jruby-openssl for full
support.
http://wiki.jruby.org/wiki/JRuby_Builtin_OpenSSL
~ Loaded DEVELOPMENT Environment...
~ Compiling routes...
~ Using 'share-nothing' cookie sessions (4kb limit per client)
~ Using Mongrel adapter
And the default app is hosted at "http://localhost:4000/" and shown in
the browser as:
src="http://blogs.sun.com/arungupta/resource/merb-template-app.png">
There is a wealth
of information available to get you going after this. Here
are couple of things to try:
- If possible, use WARbler to package Merb app and deploy on href="http://glassfish.dev.java.net">GlassFish.
- Try Java Persistence API as the pluggable ORM.
Technorati:
href="http://technorati.com/tag/rubyonrails">rubyonrails
merb
href="http://technorati.com/tag/jruby">jruby
href="http://technorati.com/tag/ruby">ruby
href="http://technorati.com/tag/jpa">jpa
href="http://technorati.com/tag/glassfish">glassfish
- Login or register to post comments
- Printer-friendly version
- arungupta's blog
- 975 reads





