class Kickme::SeasonDownloader
Attributes
country[R]
league[R]
web_page[R]
Public Class Methods
new(country:, league:, season:, web_page: nil)
click to toggle source
# File lib/kickme/season_downloader.rb, line 6 def initialize(country:, league:, season:, web_page: nil) @country = country @league = league @season = season @web_page = web_page || Kickme.country_page(@country) end
Public Instance Methods
download()
click to toggle source
# File lib/kickme/season_downloader.rb, line 21 def download find_csv_link create_file puts "Created CSV for: #{@country}, #{@league}, #{@season}" end
season()
click to toggle source
# File lib/kickme/season_downloader.rb, line 13 def season if @season.include?("Season") @season else "Season #{@season}" end end
Private Instance Methods
create_file()
click to toggle source
# File lib/kickme/season_downloader.rb, line 38 def create_file clean_country = country.downcase clean_league = league.gsub(' ', '_').downcase clean_season = season.gsub(' ', '_').gsub('/', '-').downcase directory_path = "./csv/#{country}/#{clean_league}" FileUtils::mkdir_p(directory_path) if !File.exists?(directory_path) file = open("#{Kickme.base_uri}/#{@csv_link.attributes["href"].value}") IO.copy_stream(file, "#{directory_path}/#{clean_season}.csv") end
find_csv_link()
click to toggle source
# File lib/kickme/season_downloader.rb, line 29 def find_csv_link season_element = web_page.at_css("i:contains(\"#{season}\")") @csv_link = season_element.next_element until @csv_link.text.include?(league) @csv_link = @csv_link.next_element end @csv_link end