class AdjustmentBureau::Parser

Public Instance Methods

parse(property_string) click to toggle source
# File lib/adjustment_bureau/parser.rb, line 7
def parse(property_string)
  name = parse_name(property_string)
  values = parse_values(property_string)
  return [name, values]
end

Private Instance Methods

parse_name(property_string) click to toggle source
# File lib/adjustment_bureau/parser.rb, line 15
def parse_name(property_string)
  property_string.split(':')[0].strip
end
parse_value(value) click to toggle source
# File lib/adjustment_bureau/parser.rb, line 27
def parse_value(value)
  n = (value = value.to_s.strip)
  value = n.gsub(/[^0-9\.]/, '')
  unit =  /[^0-9\.]*$/.match(n)[0]

  return [
    Helpers.numerize(value),
    unit
  ]
end
parse_values(property_string) click to toggle source
# File lib/adjustment_bureau/parser.rb, line 19
def parse_values(property_string)
  values = property_string.split(':')[1].strip.gsub(/\;/, '')

  values.split(/\s+/m).collect do |value|
    Value.new(*parse_value(value))
  end
end