Class: DelegateTracker::CandidateListScraper

Inherits:
Object
  • Object
show all
Defined in:
lib/delegate_tracker/candidate_list_scraper.rb

Instance Method Summary collapse

Instance Method Details

#candidates(party) ⇒ Object



3
4
5
6
# File 'lib/delegate_tracker/candidate_list_scraper.rb', line 3

def candidates(party)
  candidate_source = Nokogiri::HTML(open("http://www.politico.com/2016-election/results/delegate-count-tracker"))
  candidate_list = candidate_source.css(".contains-#{party} .candidate-name")[0..4].css('a[href]').each_with_object({}) { |n, h| h[n.text.strip] = n['href'] }
end

#candidates_list(party) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/delegate_tracker/candidate_list_scraper.rb', line 8

def candidates_list(party)
  if party == "democrat"
    party_proper = "Democratic"
  else
    party_proper = "Republican"
  end
  puts "Which #{party_proper} candidate would you like to learn about?"
  puts ""
  candidates(party).each_with_index{|(k,v), index| puts "#{index+=1}. #{k}"}
  puts "R. Random candidate"
  puts "Q. Return to party selection."
end

#count(party) ⇒ Object



25
26
27
# File 'lib/delegate_tracker/candidate_list_scraper.rb', line 25

def count(party)
  self.candidates(party).count
end

#get_candidate_url(party) ⇒ Object



21
22
23
# File 'lib/delegate_tracker/candidate_list_scraper.rb', line 21

def get_candidate_url(party)
  candidates(party).each_with_index.map{ |(k,v), index| "#{v}"}
end