Module: RecipeScrapers::Parsers::Ratings

Defined in:
lib/recipe_scrapers/parsers/ratings.rb

Constant Summary collapse

DECIMAL =
/\d+(?:[.,]\d+)?/
DIGIT_GROUPING =
/[,. ]/

Class Method Summary collapse

Class Method Details

.average(node) ⇒ Object



10
11
12
13
14
15
# File 'lib/recipe_scrapers/parsers/ratings.rb', line 10

def average(node)
  return nil if node.nil?

  value = node["ratingValue"].to_s[DECIMAL]&.tr(",", ".")&.to_f
  value&.positive? ? value : nil
end

.count(node) ⇒ Object



17
18
19
20
21
22
# File 'lib/recipe_scrapers/parsers/ratings.rb', line 17

def count(node)
  return nil if node.nil?

  total = (node["ratingCount"] || node["reviewCount"]).to_s.gsub(DIGIT_GROUPING, "")[/\A\d+/]&.to_i
  total&.positive? ? total : nil
end