parsley/lib/yield_parser.rb

23 lines
407 B
Ruby

class YieldParser
Result = Struct.new(:number, :label)
def self.parse(yield_string)
begin
vu = UnitConversion::parse(yield_string)
rescue UnparseableUnitError
vu = nil
end
case
when vu.nil?
nil
when vu.unit.nil?
Result.new(vu.raw_value.to_f, 'each')
else
Result.new(vu.raw_value.to_f, vu.unit.to_s.singularize)
end
end
end