Class: Dealpage
- Inherits:
-
Object
- Object
- Dealpage
- Defined in:
- lib/blackfriday2016/dealpage.rb
Constant Summary collapse
- DEALS_BASE_PATH =
"http://dealnews.com"
Instance Attribute Summary collapse
-
#deals ⇒ Object
Returns the value of attribute deals.
-
#next_page_link ⇒ Object
Returns the value of attribute next_page_link.
-
#pagenum ⇒ Object
Returns the value of attribute pagenum.
-
#prev_page_link ⇒ Object
Returns the value of attribute prev_page_link.
-
#vendor_name ⇒ Object
Returns the value of attribute vendor_name.
Class Method Summary collapse
- .all ⇒ Object
- .create_new_dealpage(page_url) ⇒ Object
-
.display_deal_details(page_url) ⇒ Object
Display each deal page with deals from each page as scraped.
-
.display_page_options(page_url) ⇒ Object
Display deal page options.
- .next_page ⇒ Object
- .page_count ⇒ Object
- .print_next_page ⇒ Object
- .print_prev_page ⇒ Object
Instance Method Summary collapse
-
#initialize(deal_page_complete) ⇒ Dealpage
constructor
A new instance of Dealpage.
Constructor Details
#initialize(deal_page_complete) ⇒ Dealpage
Returns a new instance of Dealpage.
9 10 11 |
# File 'lib/blackfriday2016/dealpage.rb', line 9 def initialize(deal_page_complete) deal_page_complete.each {|key,value| self.send(("#{key}="), value)} end |
Instance Attribute Details
#deals ⇒ Object
Returns the value of attribute deals.
5 6 7 |
# File 'lib/blackfriday2016/dealpage.rb', line 5 def deals @deals end |
#next_page_link ⇒ Object
Returns the value of attribute next_page_link.
5 6 7 |
# File 'lib/blackfriday2016/dealpage.rb', line 5 def next_page_link @next_page_link end |
#pagenum ⇒ Object
Returns the value of attribute pagenum.
5 6 7 |
# File 'lib/blackfriday2016/dealpage.rb', line 5 def pagenum @pagenum end |
#prev_page_link ⇒ Object
Returns the value of attribute prev_page_link.
5 6 7 |
# File 'lib/blackfriday2016/dealpage.rb', line 5 def prev_page_link @prev_page_link end |
#vendor_name ⇒ Object
Returns the value of attribute vendor_name.
5 6 7 |
# File 'lib/blackfriday2016/dealpage.rb', line 5 def vendor_name @vendor_name end |
Class Method Details
.all ⇒ Object
22 23 24 |
# File 'lib/blackfriday2016/dealpage.rb', line 22 def self.all @@all end |
.create_new_dealpage(page_url) ⇒ Object
13 14 15 16 |
# File 'lib/blackfriday2016/dealpage.rb', line 13 def self.create_new_dealpage(page_url) deal_page_complete = Scraper.scrape_vendor_page(DEALS_BASE_PATH + page_url) Dealpage.new(deal_page_complete) end |
.display_deal_details(page_url) ⇒ Object
Display each deal page with deals from each page as scraped
31 32 33 34 35 36 37 38 39 40 |
# File 'lib/blackfriday2016/dealpage.rb', line 31 def self.display_deal_details(page_url) current_page = self.create_new_dealpage(page_url) puts "-------------------------------------------------------".colorize(:light_blue) puts "#{current_page.vendor_name} - Deals - Page #{current_page.pagenum}:".center(55) puts "-------------------------------------------------------".colorize(:light_blue) current_page.deals.each do |deal| puts "# ".colorize(:light_red) + deal[0].colorize(:light_blue) + " - ".colorize(:light_red) + deal[1] end self.(page_url) end |
.display_page_options(page_url) ⇒ Object
Display deal page options
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/blackfriday2016/dealpage.rb', line 51 def self.(page_url) puts "-------------------------------------------------------".colorize(:light_blue) current_page = self.create_new_dealpage(page_url) nextpage_url = current_page.next_page_link prevpage_url = current_page.prev_page_link puts "Please select from options below:".colorize(:green) self.print_prev_page if prevpage_url != nil self.print_next_page if nextpage_url != nil puts "\n" + "| '" + "s".colorize(:light_red) + "' to go back to the " + "Store Listing".colorize(:light_blue) + " |" puts "| '" + "x".colorize(:light_red) + "' to " + "Exit".colorize(:light_blue) + " the program |" print "\n" + "Please Enter your selection: ".colorize(:green) input = gets.strip.downcase if input == "n" nextpage_url = self.create_new_dealpage(page_url).next_page_link if nextpage_url != nil self.display_deal_details(nextpage_url) elsif nextpage_url == nil puts "You have reached the end of Deal Listings of this Store.".colorize(:light_blue) self.(page_url) end elsif input == "p" if prevpage_url != nil self.display_deal_details(prevpage_url) elsif prevpage_url == nil puts "You have reached the beginning of Deal Listings of this Store.".colorize(:light_blue) self.(page_url) end elsif input == "s" Vendor.display_vendors elsif input == "x" puts "Goodbye! Have a nice day.".colorize(:light_blue) else puts "You have entered an invalid choice. Please make a valid choice.".colorize(:light_blue) self.(page_url) end end |
.next_page ⇒ Object
18 19 20 |
# File 'lib/blackfriday2016/dealpage.rb', line 18 def self.next_page end |
.page_count ⇒ Object
26 27 28 |
# File 'lib/blackfriday2016/dealpage.rb', line 26 def self.page_count (self.all.count/10.to_f).ceil end |
.print_next_page ⇒ Object
46 47 48 |
# File 'lib/blackfriday2016/dealpage.rb', line 46 def self.print_next_page print "| '" + "n".colorize(:light_red) + "' >>> " + "Next Page".colorize(:light_blue) + " |" end |
.print_prev_page ⇒ Object
42 43 44 |
# File 'lib/blackfriday2016/dealpage.rb', line 42 def self.print_prev_page print "| '" + "p".colorize(:light_red) + "' <<< " + "Previous Page".colorize(:light_blue) + " |" end |