Module: LivingSocialApi::DailyDealBuilder
- Defined in:
- lib/livingsocial/daily_deal_builder.rb
Constant Summary collapse
- BASE_URL =
"http://livingsocial.com"
Class Method Summary collapse
- .build_for_city(city) ⇒ Object
- .get_deal_price(html) ⇒ Object
- .get_description(html) ⇒ Object
- .get_image_url(html) ⇒ Object
- .get_original_price(html) ⇒ Object
- .get_title(html) ⇒ Object
- .get_url(html) ⇒ Object
- .load_page_for(city) ⇒ Object
- .new_from_html(html) ⇒ Object
- .page_for(city) {|load_page_for(city)| ... } ⇒ Object
Class Method Details
.build_for_city(city) ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/livingsocial/daily_deal_builder.rb', line 13 def self.build_for_city(city) page_for(city) do |doc| doc.css(".cities-deal").collect do |deal| new_from_html(deal) end end end |
.get_deal_price(html) ⇒ Object
37 38 39 |
# File 'lib/livingsocial/daily_deal_builder.rb', line 37 def self.get_deal_price(html) html.css('.deal-price').text.strip end |
.get_description(html) ⇒ Object
29 30 31 |
# File 'lib/livingsocial/daily_deal_builder.rb', line 29 def self.get_description(html) html.css('.deal-title p').text.strip end |
.get_image_url(html) ⇒ Object
21 22 23 |
# File 'lib/livingsocial/daily_deal_builder.rb', line 21 def self.get_image_url(html) html.css('.deal-image img').attribute('src').value.strip end |
.get_original_price(html) ⇒ Object
33 34 35 |
# File 'lib/livingsocial/daily_deal_builder.rb', line 33 def self.get_original_price(html) html.css('.deal-strike').text.strip end |
.get_title(html) ⇒ Object
25 26 27 |
# File 'lib/livingsocial/daily_deal_builder.rb', line 25 def self.get_title(html) html.css('.deal-title h3 a').text.strip end |
.get_url(html) ⇒ Object
41 42 43 |
# File 'lib/livingsocial/daily_deal_builder.rb', line 41 def self.get_url(html) BASE_URL + html.css('.deal-image a').attribute('href').value.strip end |
.load_page_for(city) ⇒ Object
5 6 7 |
# File 'lib/livingsocial/daily_deal_builder.rb', line 5 def self.load_page_for(city) Nokogiri::HTML(open("#{BASE_URL}/cities/#{city}")) end |
.new_from_html(html) ⇒ Object
45 46 47 48 49 50 51 52 53 |
# File 'lib/livingsocial/daily_deal_builder.rb', line 45 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) DailyDeal.new(image, title, description, original_price, deal_price, url) end |
.page_for(city) {|load_page_for(city)| ... } ⇒ Object
9 10 11 |
# File 'lib/livingsocial/daily_deal_builder.rb', line 9 def self.page_for(city) yield(load_page_for(city)) end |