class ErgastF1::Race
Constants
- STATUS_TABLE
Public Class Methods
new(year: nil, circuit: nil, round: nil)
click to toggle source
# File lib/ergast_f1/race.rb, line 26 def initialize(year: nil, circuit: nil, round: nil) @year = year || Time.now.year @circuit = circuit @round = round end
Public Instance Methods
constructor_result(constructor_name)
click to toggle source
# File lib/ergast_f1/race.rb, line 36 def constructor_result(constructor_name) race_data(race_path + "/constructors/#{constructor_name}/results") end
driver_result(driver_name)
click to toggle source
# File lib/ergast_f1/race.rb, line 40 def driver_result(driver_name) race_data(race_path + "/drivers/#{driver_name}/results") end
finishing_status(status)
click to toggle source
# File lib/ergast_f1/race.rb, line 48 def finishing_status(status) finishing_status = resolve_finishing_status(status) race_data(race_path + "/status/#{finishing_status}/results") end
grid_position(position)
click to toggle source
# File lib/ergast_f1/race.rb, line 44 def grid_position(position) race_data(race_path + "/grid/#{position}/results") end
laptime_ranking(position=nil)
click to toggle source
# File lib/ergast_f1/race.rb, line 53 def laptime_ranking(position=nil) raise BadQuery, "Fastest lap data isn't available for races before 2004" if @year < 2004 race_data(race_path + "/fastest/#{position}/results") end
result()
click to toggle source
# File lib/ergast_f1/race.rb, line 32 def result race_data(race_path + "/results") end
Private Instance Methods
race_data(endpoint)
click to toggle source
# File lib/ergast_f1/race.rb, line 74 def race_data(endpoint) parsed_response = ErgastClient.new(endpoint).api_get_request race_results = parsed_response.dig("MRData", "RaceTable", "Races") return [] if race_results.empty? race_results.first["Results"] end
race_path()
click to toggle source
# File lib/ergast_f1/race.rb, line 60 def race_path if @round "#{@year}/#{@round}" elsif @circuit "#{@year}/circuits/#{@circuit}" else "#{@year}/last" end end
resolve_finishing_status(status)
click to toggle source
# File lib/ergast_f1/race.rb, line 70 def resolve_finishing_status(status) STATUS_TABLE[status] || (raise BadQuery, "Invalid status supplied. Valid status arguments are: Finished, Disqualified, Accident, Collision, Engine, Gearbox, Transmission, Clutch, Hydraulics, Electrical, Spun, Radiator, Suspension, Brakes, Differential, Overheating, Mechanical, Tyre, Driver, Puncture, Driveshaft.") end