class ScoreScraper::Scraper

Attributes

search_date[R]
teams[R]

Public Class Methods

new(search_date = nil, teams = []) click to toggle source
# File lib/score_scraper/scraper.rb, line 3
def initialize(search_date = nil, teams = [])
  @teams = teams
  @search_date = search_date || Time.now.strftime("%Y-%m-%d")
end

Public Instance Methods

team_games() click to toggle source
# File lib/score_scraper/scraper.rb, line 8
def team_games
  team_games = []
  (games || []).each do |game|
    if teams.empty? || is_team_game?(game)
      team_games << ScoreScraper::Game.new({
        home_team: home_team(game),
        away_team: away_team(game),
        game_state: game_state(game)
      })
    end
  end

  team_games
end

Private Instance Methods

abbreviation(game, is_home = false) click to toggle source
# File lib/score_scraper/scraper.rb, line 47
def abbreviation(game, is_home = false)
  raise 'Must be implemented in child class'
end
away_team(game) click to toggle source
# File lib/score_scraper/scraper.rb, line 51
def away_team(game)
  get_game(game)
end
city(game, is_home = false) click to toggle source
# File lib/score_scraper/scraper.rb, line 55
def city(game, is_home = false)
  raise 'Must be implemented in child class'
end
formatted_url() click to toggle source
# File lib/score_scraper/scraper.rb, line 39
def formatted_url
  raise 'Must be implemented in child class'
end
game_state(game) click to toggle source
# File lib/score_scraper/scraper.rb, line 68
def game_state(game)
  raise 'Must be implemented in child class'
end
games() click to toggle source
# File lib/score_scraper/scraper.rb, line 43
def games
  raise 'Must be implemented in child class'
end
get_game(game, is_home = false) click to toggle source
# File lib/score_scraper/scraper.rb, line 59
def get_game(game, is_home = false)
  ScoreScraper::Team.new({
    city: city(game, is_home),
    nickname: nickname(game, is_home),
    abbreviation: abbreviation(game, is_home),
    score: score(game, is_home)
  })
end
home_team(game) click to toggle source
# File lib/score_scraper/scraper.rb, line 72
def home_team(game)
  get_game(game, true)
end
is_team_game?(game) click to toggle source
# File lib/score_scraper/scraper.rb, line 84
def is_team_game?(game)
  teams.include?(abbreviation(game, true).downcase) || teams.include?(abbreviation(game).downcase)
end
nickname(game, is_home = false) click to toggle source
# File lib/score_scraper/scraper.rb, line 76
def nickname(game, is_home = false)
  raise 'Must be implemented in child class'
end
parsed_data() click to toggle source
# File lib/score_scraper/scraper.rb, line 88
def parsed_data
  return @parsed_data unless @parsed_data.nil?

  file = open(formatted_url)
  file_data = file.read

  @parsed_data = JSON.parse(file_data)
end
score(game, is_home = false) click to toggle source
# File lib/score_scraper/scraper.rb, line 80
def score(game, is_home = false)
  raise 'Must be implemented in child class'
end
search_day() click to toggle source
# File lib/score_scraper/scraper.rb, line 27
def search_day
  @current_day ||= search_date.split('-')[2]
end
search_month() click to toggle source
# File lib/score_scraper/scraper.rb, line 31
def search_month
  @current_month ||= search_date.split('-')[1]
end
search_year() click to toggle source
# File lib/score_scraper/scraper.rb, line 35
def search_year
  @current_year ||= search_date.split('-')[0]
end