Class: Unit::Parser

Inherits:
Object
  • Object
show all
Includes:
SymbolConverter
Defined in:
lib/unitmanager/unit_composition.rb

Instance Method Summary collapse

Methods included from SymbolConverter

#convert

Constructor Details

#initialize(units) ⇒ Parser

Returns a new instance of Parser.



156
157
158
# File 'lib/unitmanager/unit_composition.rb', line 156

def initialize(units)
  @units = units
end

Instance Method Details

#parse_operand_symbols(string) ⇒ Object



171
172
173
174
# File 'lib/unitmanager/unit_composition.rb', line 171

def parse_operand_symbols(string)
  operands = string.nil? ? [] : string.split(/\*/)
  operands.collect{|name| name.to_sym}
end

#to_units(unit_spec) ⇒ Object



160
161
162
163
164
165
166
167
168
169
# File 'lib/unitmanager/unit_composition.rb', line 160

def to_units(unit_spec)
  
   operands = unit_spec.split(/\//)
   raise "Invalid Number of Operands in : #{unit_spec}" if operands.size > 2
   
   {
      :dividends => convert(parse_operand_symbols(operands[0])),
      :divisors => convert(parse_operand_symbols(operands[1]))
   }   
end