class RecipeFinder::Dish

Attributes

description[RW]
ingredients[RW]
instructions[RW]
name[RW]
stars[RW]
time[RW]
url[RW]

Public Class Methods

all() click to toggle source
# File lib/finder/dish.rb, line 23
def self.all
  @@all
end
find(id) click to toggle source
# File lib/finder/dish.rb, line 27
def self.find(id)
  self.all[id - 1]
end
new(name, stars=nil, description, url) click to toggle source
# File lib/finder/dish.rb, line 15
def initialize(name, stars=nil, description, url)
  @name = name
  @stars = stars
  @description = description
  @url = url
  @@all << self
end
new_from_index_page(search_terms) click to toggle source
# File lib/finder/dish.rb, line 6
def self.new_from_index_page(search_terms)
  self.new(
    search_terms.css(".grid-col__h3.grid-col__h3--recipe-grid a").text.strip,
    search_terms.at_css(".grid-col__ratings span")["data-ratingstars"],
    search_terms.css(".rec-card__description").text,
    search_terms.at_css(".grid-col__h3.grid-col__h3--recipe-grid a")["href"]
    )
end
reset() click to toggle source
# File lib/finder/dish.rb, line 31
def self.reset
  @@all = []
end
show(place) click to toggle source
# File lib/finder/dish.rb, line 44
def self.show(place)
  if place == "first"
    self.all[0..9]
  elsif place == "next"
    self.all[10..(self.all.length-1)]
  end
end

Public Instance Methods

add_info(page) click to toggle source
# File lib/finder/dish.rb, line 35
def add_info(page)
  self.ingredients = []
  self.instructions = []
  self.time = []
  page.css(".recipe-ingred_txt.added")[0..-3].each {|ele| self.ingredients << ele.text}
  page.css(".recipe-directions__list--item").each {|ele| self.instructions << ele.text}
  page.css(".prepTime__item time").each {|ele| self.time << ele["datetime"]}
end