Module: LivingSocialApi::NationalDealBuilder

Defined in:
lib/livingsocial/national_deal_builder.rb

Constant Summary collapse

URL =
'http://livingsocial.com/nationwide'

Class Method Summary collapse

Class Method Details

.get_deal_price(html) ⇒ Object



40
41
42
# File 'lib/livingsocial/national_deal_builder.rb', line 40

def self.get_deal_price(html)
  html.children.css('p span').text.strip
end

.get_dealsObject



16
17
18
19
20
21
22
# File 'lib/livingsocial/national_deal_builder.rb', line 16

def self.get_deals
  page do |doc|
    doc.css(".flexdeals.daily").children.select {|item| item.text.strip != "" }.collect do |deal|
      new_from_html(deal)
    end
  end
end

.get_description(html) ⇒ Object



32
33
34
# File 'lib/livingsocial/national_deal_builder.rb', line 32

def self.get_description(html)
  html.children.css('h4 a').text.strip
end

.get_image_url(html) ⇒ Object



24
25
26
# File 'lib/livingsocial/national_deal_builder.rb', line 24

def self.get_image_url(html)
  html.children.css('a img').attribute('src').value
end

.get_original_price(html) ⇒ Object



36
37
38
# File 'lib/livingsocial/national_deal_builder.rb', line 36

def self.get_original_price(html)
  html.children.css('p del').text.strip
end

.get_title(html) ⇒ Object



28
29
30
# File 'lib/livingsocial/national_deal_builder.rb', line 28

def self.get_title(html)
  html.children.css('h3 a').text.strip
end

.get_url(html) ⇒ Object



44
45
46
# File 'lib/livingsocial/national_deal_builder.rb', line 44

def self.get_url(html)
  URL + html.children.css('h3 a').first.attributes['href'].value.strip
end

.load_pageObject



8
9
10
# File 'lib/livingsocial/national_deal_builder.rb', line 8

def self.load_page
  Nokogiri::HTML(open(URL))
end

.new_from_html(html) ⇒ Object



48
49
50
51
52
53
54
55
56
# File 'lib/livingsocial/national_deal_builder.rb', line 48

def self.new_from_html(html)
  image          = get_image_url(html)
  title          = get_title(html)
  description    = get_description(html)
  original_price = get_original_price(html)
  deal_price     = get_deal_price(html)
  url            = get_url(html)
  NationalDeal.new(image, title, description, original_price, deal_price, url)
end

.page {|load_page| ... } ⇒ Object

Yields:



12
13
14
# File 'lib/livingsocial/national_deal_builder.rb', line 12

def self.page
  yield(load_page)
end