lib/sportradar/api/mma/schedule.rb
module Sportradar
module Api
module Mma
class Schedule < Data
attr_accessor :response, :id, :name, :scheduled, :venue
def initialize(data, **opts)
@response = data
@api = opts[:api]
@generated = response['generated']
@events_hash = {}
update(data)
end
def events
@events_hash ||= update_events(response)
@events_hash.values
end
def update(data)
update_events(data)
self
end
def update_events(data)
create_data(@events_hash, response.dig('events', 'event'), klass: Event, api: api, schedule: self)
end
def api
@api ||= Sportradar::Api::Mma.new
end
KEYS_SCHED = ["id", "name", "scheduled", "venue", "league", "fights"]
end
end
end
end
__END__
m = Sportradar::Api::Mma.new
sc = m.schedule;
se = m.events;
sc.events.size
e = sc.events.last;
e.venue.events.size
Sportradar::Api::Mma::Schedule.new({}, api: m)
Sportradar::Api::Mma::Schedule.new