#110 Gem Dependencies
In Rails 2.1 we now have the ability to set gem dependencies. Now it's easier than ever to specify which ruby gems our rails app relies on.
- Download:
- mp4Full Size H.264 Video (9.8 MB)
- m4vSmaller H.264 Video (6.63 MB)
- webmFull Size VP8 Video (19.6 MB)
- ogvFull Size Theora Video (14.9 MB)
Hi Ryan,
Is it still the norm to change environment.rb or should we be doing this in the initializers?
Cheers,
Aditya
Minor thing: you can do RAILS_ENV=test instead of RAILS_ENV='test'.
@Aditya, anything that uses "config" I like to keep in the environment.rb. Anything that doesn't (where you can specify it after the config) then move that into an initializer.
@Henrik, yeah, my quote finger was a little twitchy last night it seems. ;)
Another great rails cast!
Could you do some on ActionMailer?
Ryan, as always great videos. Loved the 2.1 updates. I've recently been using config.gem and I think I found a problem using it with BlueCloth: http://railsforum.com/viewtopic.php?id=18850
Any idea whats going on here?
Thanks for another great screencast. I just came across a gem's instructions to use:
:version => '~> 2.3.2'
What does ~> mean?
Nevermind, there was an explanation:
gem 'mislav-will_paginate', '~>2.1'
# this will load any 2.x version
#(greater or equal to 2.1),
# but not 3.x
I am currently using mislav-will_paginate gem.
When I give it in environment.rb, it shows me 'mislav-will_paginate' file not found. I have given the proper version and source. Still it shows me the same error. How can I get rid of this error?
I'd love to see how to make a gem plugin, similar to how you made a normal plugin in episode 33!
@madan, I had the same problem with a number of gems. It happens when the library module you're going to use is named differently from the gem. For example if you say
config.gem 'chardet'
=> rake can install the gem, but not unpack it, and rails gives the error
no such file to load -- chardet
and script/about gives the error
These gems that this application depends on are missing:
- chardet
To avoid this, you have to specify the name of the module:
config.gem 'chardet', :lib=>'UniversalDetector'
config.gem "mislav-will_paginate", :lib => "will_paginate"
see http://rails.lighthouseapp.com/projects/8994/tickets/293-gem-dependencies-broken-in-2-1-0
Getting wrong number of arguments error, environment.rb:13
excellent stuff, helped out my cms setup.
love the capistrano stuff, will simplify things greatly ;-)
Hi all..
How do we know where is the :lib option for gem is located? I've tried to catch it from gem documentation, i've gotten for some gems and the others aren't provide it..
If anyone is having trouble uninstalling a gem from your home directory ~/.gem please check out this link:
http://blog.floehopper.org/articles/2009/02/16/uninstalling-gems-from-gem-directory
This was frustrating for me and I had to do this to fix it:
gem uninstall <gem-name> --install-dir=~/.gem/ruby/1.8/
and then run "sudo rake gems:install"
Anyone know if there is a way to send build options to 'rake gems:build'? I need to set the '--with-mysql-dir=/usr/local/mysql' for the mysql gem.
Ryan,
Do you know if there is a way to override the location of where the gems:unpack will go rather than having them go under vendor/gems? This is a case where multiple rails applications use the same version of a gem and we want to only store one copy of it in source control. Also is there a way to tell rake to look in a directory for gems and when you run gems:unpack so they are grabbed from the shared directory? Thanks in advance.