Module: RecipeScrapers::Parsers::Quantity
- Defined in:
- lib/recipe_scrapers/parsers/quantity.rb
Constant Summary collapse
- NUMBER =
/\d+(?:[.,]\d+)?/- SLASH_FRACTION =
%r{\d+\s*[/⁄]\s*\d+}- VULGAR =
/[½⅓⅔¼¾⅕⅖⅗⅘⅙⅚⅐⅛⅜⅝⅞⅑⅒]/- JOINER =
/\s+(?:and|und|y|e)\s+|\s*と\s*/- QUANTITY =
/ \d+(?:#{JOINER}|\s*)#{VULGAR}|\d+(?:#{JOINER}|\s+)#{SLASH_FRACTION}|#{SLASH_FRACTION}|#{NUMBER}|#{VULGAR} /xo
- PLUS =
/\s*\+\s*/- SUM =
/#{QUANTITY}(?:#{PLUS}#{QUANTITY})*/o- SLASH_SPACING =
%r{\s*([/⁄])\s*}- WHOLE_AND_FRACTION =
/#{JOINER}|\s+|(?=#{VULGAR})/o
Class Method Summary collapse
Class Method Details
.total(sum) ⇒ Object
24 25 26 |
# File 'lib/recipe_scrapers/parsers/quantity.rb', line 24 def total(sum) sum.split(PLUS).sum { |term| term_value(term) }.to_f end |
.value(sum) ⇒ Object
19 20 21 22 |
# File 'lib/recipe_scrapers/parsers/quantity.rb', line 19 def value(sum) amount = total(sum).round(2) amount.zero? ? nil : amount end |