Method: Stick::Units::Unit#initialize

Defined in:
lib/stick/units/base.rb

#initialize(units = {}, converter = nil) ⇒ Unit

Creates a new (composite) Unit. It is passed a hash of the form {:unit => exponent}, and the Converter to use.

Examples:

Unit.new(:m => 1, :s => -1, Converter.converter(:uk)) # => m/s
Unit.new(:mi => 1, :s => -2) # => mi/s**2

See also Converter, Converter.converter



206
207
208
209
210
211
212
213
214
215
216
217
218
# File 'lib/stick/units/base.rb', line 206

def initialize(units = {}, converter = nil)
  conv = proc { converter ||= Units::Converter.current }
  if units.is_a? ::String
    @units = decode_string(units, conv)
  else
    @units = {}
    units.each_pair do |k, v|
      k = conv[].base_unit(k.to_sym) if not k.is_a? Units::BaseUnit
      @units[k] = v
    end
  end
  normalize_units
end