lib/conversions.rb in seamusabshere-conversions-0.1.0 vs lib/conversions.rb in seamusabshere-conversions-1.2

- old
+ new

@@ -1,59 +1,31 @@ -# Conversions makes it easy to convert between units. module Conversions - mattr_accessor :conversions - - # Clear all previously registered conversions - def self.clear - self.conversions = {} - end - clear - - # Load all the default conversions shipped with the code - def self.load_defaults - load File.expand_path('../conversions/defaults.rb', __FILE__) - end - - # Register a new conversion. This automatically also registers the inverse conversion. - # - # * _from_: The unit to convert from (ie. :miles, :stones, or :pints) - # * _to_: The unit to convert to - # * _rate_: The conversion rate from _from_ to _to_. (_from_ * _rate_ = _to_) - def self.register(from, to, rate) - conversions[from] ||= {} - conversions[from][to] = rate - conversions[to] ||= {} - conversions[to][from] = 1.0 / rate - Conversions.define_shortcut(from) - Conversions.define_shortcut(to) - end - - def self.define_shortcut(unit) - Numeric.class_eval do - define_method unit do - Conversions::Unit.new(self, unit) - end unless respond_to? unit - end - end - - module Ext - # Convert from one unit to another. - # - # * _from_: The unit to convert from (ie. :miles, :stones, or :pints) - # * _to_: The unit to convert to - # * _options_: - # * :scale: The number of digits you want after the dot. - def convert(from, to, options={}) - Conversions::Unit.new(self, from).to(to, options) - end - end + CONVERSION = { + :miles => { + :kilometres => 1.609344 + }, + :kilograms => { + :grams => 1000.0, + :pounds => 2.20462262, + :short_tons => 0.00110231131, + :tons => 0.00110231131 + }, + :tons => { + :pounds => 2000.0 + }, + :gallons => { + :litres => 3.7854118 + }, + :cubic_feet => { + :cubic_meters => 0.0283168466 + } + } end require 'conversions/unit' +require 'conversions/ext' +require 'conversions/active_record_accessors' -Conversions.load_defaults -Numeric.send(:include, Conversions::Ext) - +Numeric.send :include, Conversions::Ext if defined?(ActiveRecord) - require 'conversions/active_record_accessors' - ActiveRecord::Base.send(:extend, Conversions::ActiveRecordAccessors) -end \ No newline at end of file + ActiveRecord::Base.send :extend, Conversions::ActiveRecordAccessors +end