Class: TrumpcareTracker::Reporters
- Includes:
- TrumpcareTracker::RakeTask::Methods
- Defined in:
- lib/trumpcare_tracker/reporters.rb
Overview
Rake tasks to generate audit reports in CSV format
require ‘trumpcare_tracker/reporters’ TrumpcareTracker::Reporters.new
$ bundle exec rake tracker:export $ bundle exec rake tracker:homepage_scraper
Instance Method Summary collapse
- #export_task ⇒ Object
- #homepage_scraper_task ⇒ Object
-
#initialize ⇒ Reporters
constructor
A new instance of Reporters.
Methods included from TrumpcareTracker::RakeTask::Methods
#audit_rep, #audit_tweets, #handles, #mentions_mapper, #reps
Constructor Details
#initialize ⇒ Reporters
Returns a new instance of Reporters.
18 19 20 21 |
# File 'lib/trumpcare_tracker/reporters.rb', line 18 def initialize export_task homepage_scraper_task end |
Instance Method Details
#export_task ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/trumpcare_tracker/reporters.rb', line 23 def export_task namespace :tracker do desc 'Output a report of Senate Democrats Trumpcare tweets' task :export do csv_tweet_report = CSV.generate do |csv| csv << %w[ senator official_user_name alt_user_name tweets_in_last_seven_days trumpcare_tweets tct_percentage russia_tweets rt_percentage tct_to_rt_ratio trumpcare_tweet_urls russia_tweet_urls ] audit_tweets(reps) { |tracker| csv << tracker.to_h.values } end File.open('trumpcare_tweet_report.csv', 'w') do |file| file.write csv_tweet_report end end end end |
#homepage_scraper_task ⇒ Object
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 |
# File 'lib/trumpcare_tracker/reporters.rb', line 53 def homepage_scraper_task namespace :tracker do desc 'Search Senators\' official homepage for TrumpCare and Russia Mentions' task :homepage_scraper do csv_homepage_report = CSV.generate do |csv| csv << %w[senator url trumpcare_mentions russia_mentions trumpcare_to_russia_ratio] reps.each do |rep| doc = Nokogiri::HTML(open(rep.url)) trumpcare_mentions_count = mentions_mapper(doc, TrumpcareTracker.trumpcare_keyword_regex).count russia_mentions_count = mentions_mapper(doc, TrumpcareTracker.russia_keyword_regex).count csv << [ rep.official_full, rep.url, trumpcare_mentions_count, russia_mentions_count, TrumpcareTracker.ratio(trumpcare_mentions_count, russia_mentions_count) ] puts "Scraped #{rep.official_full}'s homepage" end end File.open('trumpcare_homepage_report.csv', 'w') do |file| file.write csv_homepage_report end end end end |