class AtpScraper::Activity

Scrape activity data

Public Class Methods

new(html, html_charset = 'utf-8') click to toggle source
# File lib/atp_scraper/activity.rb, line 20
def initialize(html, html_charset = 'utf-8')
  @activity_doc = AtpScraper::Html.parse(html, html_charset)
  @player_name = pickup_player_name
end

Public Instance Methods

pickup_activity_data() click to toggle source
# File lib/atp_scraper/activity.rb, line 25
def pickup_activity_data
  result = []

  search_tournaments_doc.each do |tournament_doc|
    tournament = Tournament.new(tournament_doc)
    tournament.records.each do |record_doc|
      record = Record.new(record_doc)
      record_hash = create_record(record.get, tournament.get)
      result.push(record_hash)
    end
  end
  result
end

Private Instance Methods

convert_ranking(ranking) click to toggle source
# File lib/atp_scraper/activity.rb, line 71
def convert_ranking(ranking)
  return nil if ranking == '-' || ranking == '0'
  ranking
end
create_record(record, tournament) click to toggle source
# File lib/atp_scraper/activity.rb, line 45
def create_record(record, tournament)
  {
    year: tournament[:year],
    player_name: @player_name,
    player_rank: convert_ranking(tournament[:ranking]),
    opponent_name: record[:opponent_name],
    opponent_rank: convert_ranking(record[:opponent_rank]),
    round: record[:round],
    score: record[:score],
    win_loss: record[:win_loss],
    tournament_name: tournament[:name],
    tournament_category: tournament[:category],
    tournament_location: tournament[:location],
    tournament_start_date: tournament[:date][:start],
    tournament_end_date: tournament[:date][:end],
    tournament_surface: tournament[:surface],
    tournament_surface_inout: tournament[:surface_inout]
  }
end
pickup_player_name() click to toggle source
# File lib/atp_scraper/activity.rb, line 65
def pickup_player_name
  @activity_doc
    .css("meta[property=\"pageTransitionTitle\"]")
    .attr("content").value
end
search_tournaments_doc() click to toggle source
# File lib/atp_scraper/activity.rb, line 41
def search_tournaments_doc
  @activity_doc.css(".activity-tournament-table")
end