Class: Ingreedy::Parser

Inherits:
Parslet::Parser
  • Object
show all
Defined in:
lib/ingreedy/ingreedy_parser.rb

Defined Under Namespace

Classes: Result

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(original_query) ⇒ Parser

Returns a new instance of Parser.



104
105
106
# File 'lib/ingreedy/ingreedy_parser.rb', line 104

def initialize(original_query)
  @original_query = original_query
end

Instance Attribute Details

#original_queryObject (readonly)

Returns the value of attribute original_query.



11
12
13
# File 'lib/ingreedy/ingreedy_parser.rb', line 11

def original_query
  @original_query
end

Instance Method Details

#parseObject



108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/ingreedy/ingreedy_parser.rb', line 108

def parse
  result = Result.new
  result[:original_query] = original_query

  parslet = super(original_query)

  result[:amount] = rationalize parslet[:amount]
  result[:amount] = [result[:amount], rationalize(parslet[:amount_end])] if parslet[:amount_end]
  result[:container_amount] = rationalize(parslet[:container_amount])

  result[:unit] = convert_unit_variation_to_canonical(parslet[:unit].to_s) if parslet[:unit]
  result[:container_unit] = convert_unit_variation_to_canonical(parslet[:container_unit].to_s) if parslet[:container_unit]

  result[:ingredient] = parslet[:ingredient].to_s.lstrip.rstrip #TODO cheating

  result
end