class Pebbles::CookpadSearch::Parser

Public Class Methods

parse_a_recipe(html) click to toggle source
# File lib/pebbles/cookpad_search/parser.rb, line 24
def parse_a_recipe(html)
  contents = {}
  doc = parse(html)
  contents[:title]               = doc.css('h1.recipe-title').inner_text
  contents[:desc]                = doc.css('description_text').inner_text
  contents[:serving_for]         = doc.css('.servings_for').inner_text
  contents[:ingredient_names]    = doc.css('.ingredient_name').map { |name| name.inner_text }
  contents[:ingredient_quantity] = doc.css('.ingredient_quantity').map {|name| name.inner_text }
  contents[:step_number]         = doc.css('dt > h3').map {|num| num.inner_text }
  contents[:step_text]           = doc.css('dd > p.step_text').map { |text| text.inner_text }
  contents
end
parse_recipes(html) click to toggle source
# File lib/pebbles/cookpad_search/parser.rb, line 8
def parse_recipes(html)
  parsed_contents = []
  doc = parse(html)
  recipes = doc.css('.recipe-preview')

  recipes.each do |recipe|
    contents = {}
    contents[:title] = recipe.css('.recipe-title').inner_text
    contents[:desc]  = recipe.css('.recipe_description').inner_text
    contents[:id]    = recipe.css('.recipe-title').attribute('href').value.slice(/\d*$/)
    parsed_contents << contents
  end

  parsed_contents
end

Private Class Methods

parse(html) click to toggle source
# File lib/pebbles/cookpad_search/parser.rb, line 39
def parse(html)
  Nokogiri::HTML.parse(html[:doc], nil, html[:charset])
end