Conversions
Unit conversion:
1.miles.to(:kilometres) #=> 1.609344
1.pounds.to(:kilograms) #=> 0.453592
1.pounds.to(:kilograms, 2) #=> 0.45
Or, more explicitly,
1.convert(:miles, :kilometres) #=> 1.609344
1.convert(:pounds, :kilograms) #=> 0.453592
1.convert(:pounds, :kilograms, :scale => 2) #=> 0.45
You can register your own conversions:
Conversions.register(:miles, :nautical_miles, 0.868976242)
1.miles.to(:nautical_miles) #=> 0.868976242
It also adds a class method to ActiveRecord::Base that allows you to define conversion methods for attributes:
class Car < ActiveRecord::Base
conversion_accessor :weight, :internal => :kilograms, :external => :pounds
end
car = Car.new(:weight => 1500)
car.weight_in_pounds #=> 3306.93393
car.weight_in_pounds = 3306 #=> 3306
Installation
As a gem
Configure the gem in environment.rb:
config.gem 'Fingertips-conversions', :lib => 'conversions', :source => 'http://gems.github.com'
Install them using Rails’ rake task:
$ rake gems:install
In your vendor directory:
script/install plugin git://github.com/Fingertips/conversions.git