Class: Dealpage

Inherits:
Object
  • Object
show all
Defined in:
lib/blackfriday2016/dealpage.rb

Constant Summary collapse

DEALS_BASE_PATH =
"http://dealnews.com"

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

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

#dealsObject

Returns the value of attribute deals.



5
6
7
# File 'lib/blackfriday2016/dealpage.rb', line 5

def deals
  @deals
end

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

#pagenumObject

Returns the value of attribute pagenum.



5
6
7
# File 'lib/blackfriday2016/dealpage.rb', line 5

def pagenum
  @pagenum
end

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_nameObject

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

.allObject



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.display_page_options(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.display_page_options(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.display_page_options(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.display_page_options(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.display_page_options(page_url)
  end
end

.next_pageObject



18
19
20
# File 'lib/blackfriday2016/dealpage.rb', line 18

def self.next_page

end

.page_countObject



26
27
28
# File 'lib/blackfriday2016/dealpage.rb', line 26

def self.page_count
  (self.all.count/10.to_f).ceil
end


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


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