RDOC + Hanna + gem update all = pants

Posted by Andrew Premdas Fri, 29 May 2009 21:41:02 GMT

Been bitten by this multiple times. I've been using Hanna as my default rdoc template following this article. This works fine with rdoc 2.3. Unfortunately rdoc seems to be undergoing some drastic changes at the moment and rdoc 2.4 breaks this lovely stuff.

So I probably have to do something like (all with sudo)

gem update --no-rdoc --no-ri
gem uninstall rdoc # choose 2.4
gem rdoc --all --no-ri

That last command can take ages to run so this is a real gem pain at the moment

Alternative

Go with the flow and use darkfish.

Change rdoc line in .gemrc to

rdoc: --line-numbers --format=darkfish

Then

gem update --no-rdoc --no-ri     
gem rdoc --all --no-ri

AASM installation (using AASM gem in your application)

Posted by Andrew Premdas Thu, 09 Oct 2008 08:29:46 GMT

AASM is a/the state machine plugin, which you can now use as a gem. To do this you need to do 2 things

  1. Install the GEM
  2. Tell your app about AASM

Install

sudo gem sources -a http://gems.github.com
sudo gem install rubyist-aasm

note first line only required once per machine for any github gems

Configure Application

This is relatively new in rails. Idea is that you map a gem to a particular library in environment.rb. This is needed to deal with the fact that I might have several different aasm gems installed. Add following inside Rails::Initializer.run do |config| block

config.gem 'rubyist-aasm', :version => '~> 2.0.2', :lib => 'aasm', :source => "http://gems.github.com"

n.b. by configuring the application in this way we can use the rake tasks for gems (rake -T gems) i.e we should be able to install the gem using rake gems:install

Gems from GitHub

Posted by Andrew Premdas Mon, 14 Jul 2008 13:04:58 GMT

Answer to my problems with gems being updated at github well before they are updated at rubyforge. Following allows you to install gems from github using standard gem command

sudo gem update system
gem sources -a http://gems.github.com

Unfortunately this doesn't seem to work for rspec. Perhaps they have not published their plugin as a gem there.