Veerasundaravel's Ruby on Rails Weblog

September 22, 2010

Bundler: Best way to manage your Gems

Bundler Gem

As the name itself will specify the purpose of it. Bundler gem is used to bundle all of your required ruby gems.

The bundler allows the specification of all dependencies in a separate place from the application itself. You can specify the required version of gems and its entire set of dependencies.
So while deploying your application in a server no need to install the gem from Rubyforge or RubyGems.org etc.

Steps to follow:

1. At the root of your application, run gem install bundler

2. Create a Gemfile in the root of your application

3. Add dependencies to your Gemfile. like gem “rspec”, 1.2.3

4. At the root, run bundle install. It will install all the gems which you specified in Gemfile from the remote system. And it will create a file called Gemfile.lock. The purpose of Gemfile.lock is to get the list of gems installed and its dependencies in your app.

5. And now run bundle package. It will make a copy of your installed gems into your application path vendor/cache. It will more helpful when you are deploying your app in any other server. Cos after running bundle package, your application will look gems into vendor/cache instead of remote systems.

For more details:

http://gembundler.com/
http://gembundler.com/rails23.html
http://yehudakatz.com/2009/11/03/using-the-new-gem-bundler-today

February 15, 2010

Rails3 Beta installation

This post will explain how I proceeded with latest beta version Rails3 and the issues I faced.

My current version of rails and ruby:

veera@client25:~$ rails -v
Rails 2.3.5
veera@client25:~$ ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i486-linux]
veera@client25:~$

trying to install beta version of rails3.

gem install tzinfo builder i18n memcache-client rack  rake rack-test rack-mount erubis mail text-format thor bundler
gem install rails –pre

I forget to add sudo, so that I got so many errors. Let me try with sudo.

Ok some what better am getting error message only while installing generating documentation for builder-2.1.2

gem install rails –pre – was not successfull. As it haven’t installed rails3 version as I expected.

Getting error like below:

WARNING:  RubyGems 1.2+ index not found for:

RubyGems will revert to legacy indexes degrading performance.
Updating metadata for 1 gems from http://gems.rubyforge.org/

surfed google for the error, http://bparanj.blogspot.com/2008/11/warning-rubygems-12-index-not-found-for.html

lemme try the idea mentioned in that

veera@client25:~$ sudo gem sources -a http://gems.github.com
http://gems.github.com added to sources
veera@client25:~$

or else remove all the gem sources from you location, so that it can any of the source directly from net

I assume installing sudo gem install rack-mount –version=0.4.0, solved my issue.

Now I can see that rails3 is installed in my machine.

after this try the following options:

$ sudo gem install tzinfo builder memcache-client rack rack-test erubis mail text-format bundler thor i18n
$ sudo gem install rack-mount –version=0.4.0
$ sudo gem install rails –pre
$ rails -v
Rails 3.0.0.beta

then create the app in rails3 version

rails RailsBeta3

I can find a new file application.rb under config directory. Seems we have to use it instead of environment.rb

* Issues found:

1. Couldn’t find support for postgresql with Rails3.
2. Not able to start the rails app using mongrel_rails start.

My initial scaffold is working fine. rails generate scaffold group title:string description:text

Referred http://www.slideshare.net/GreggPollack/rails-3-beautiful-code-3219240 for the updated methods and options in Rails3.l,
Cool, simply and effective slide show about Rails3. Some of the important points from that:

1. ruby script/* is modified as rails(ex ruby script/server -> rails)
2. amazing and simplified routes. map.resources is modified as resources and lot more.
3. Improved syntax for respond_to method.
4. Simplified action mailer option.
5. Active record syntax is also modified, Person.all(:conditions=>”blah blah) to Person.where(“blah blah”)
6. form_remote_tag, link_to_remote tag is also simplified and the respective html source is also looks very simple. (no more onclick”new Ajax request ………..”)

looking for few more documents for the modified methods in rails3.

Tried to generate a gem in Rails3.

restful-authentication plugin is not working in rails – May be auth_logic plugin will work.

Grrrrrrr, I can’t create a older version of rails app  – rails _2.3.5_ blog235

/usr/local/lib/site_ruby/1.8/rubygems.rb:827:in `report_activate_error’: RubyGem version error: railties(3.0.0.beta not = 2.3.5) (Gem::LoadError)
from /usr/local/lib/site_ruby/1.8/rubygems.rb:261:in `activate’
from /usr/local/lib/site_ruby/1.8/rubygems.rb:68:in `gem’
from /usr/bin/rails:18

Hope rails3 alpha version should have fix for this. So now am reverting back to old version of rails by simply uninstalling all the gems related to rails3.

%d bloggers like this: