sportradar-api 0.1.32 → 0.1.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/sportradar/api.rb +2 -0
- data/lib/sportradar/api/nfl.rb +1 -1
- data/lib/sportradar/api/nfl/depth_chart.rb +24 -4
- data/lib/sportradar/api/nfl/game.rb +6 -4
- data/lib/sportradar/api/nfl/league_depth_chart.rb +18 -0
- data/lib/sportradar/api/nfl/team.rb +3 -1
- data/lib/sportradar/api/nfl/team_depth_chart.rb +36 -0
- data/lib/sportradar/api/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 38520fc109b307a4001aafa9234bc77e52ef538e
|
|
4
|
+
data.tar.gz: 367e7dee54869a70407a13d778eba45381fd56c3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0b53bd6606b7c520afc8d112d3b06c9e921441a90efa053e5bf8adb8d657765e2114c21760d92d3252df7775134f052812f6f545fb57befcb630fee1f4ccef03
|
|
7
|
+
data.tar.gz: 306813a77ca617e9a53307f85976a090d8463a5e01a010a0a5c371611337a73f36176127a740f2391f6d8448472566f0852c8435ebca46ba1fab3186bc9c66a5
|
data/lib/sportradar/api.rb
CHANGED
|
@@ -44,6 +44,7 @@ require "sportradar/api/nfl/game"
|
|
|
44
44
|
require "sportradar/api/nfl/game_statistic"
|
|
45
45
|
require "sportradar/api/nfl/hierarchy"
|
|
46
46
|
require "sportradar/api/nfl/injury"
|
|
47
|
+
require "sportradar/api/nfl/league_depth_chart"
|
|
47
48
|
require "sportradar/api/nfl/play"
|
|
48
49
|
require "sportradar/api/nfl/player"
|
|
49
50
|
require "sportradar/api/nfl/position"
|
|
@@ -54,6 +55,7 @@ require "sportradar/api/nfl/situation"
|
|
|
54
55
|
require "sportradar/api/nfl/statistic"
|
|
55
56
|
require "sportradar/api/nfl/summary"
|
|
56
57
|
require "sportradar/api/nfl/team"
|
|
58
|
+
require "sportradar/api/nfl/team_depth_chart"
|
|
57
59
|
require "sportradar/api/nfl/venue"
|
|
58
60
|
require "sportradar/api/nfl/week"
|
|
59
61
|
|
data/lib/sportradar/api/nfl.rb
CHANGED
|
@@ -22,7 +22,7 @@ module Sportradar
|
|
|
22
22
|
|
|
23
23
|
def weekly_depth_charts(week = 1, year = Date.today.year, season = "reg" )
|
|
24
24
|
response = get request_url("seasontd/#{ week_path(year, season, week) }/depth_charts")
|
|
25
|
-
Sportradar::Api::Nfl::
|
|
25
|
+
Sportradar::Api::Nfl::LeagueDepthChart.new response
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
def weekly_injuries(week = 1, year = Date.today.year, season = "reg")
|
|
@@ -1,13 +1,33 @@
|
|
|
1
1
|
module Sportradar
|
|
2
2
|
module Api
|
|
3
3
|
class Nfl::DepthChart < Data
|
|
4
|
-
attr_accessor :response, :
|
|
4
|
+
attr_accessor :response, :chart
|
|
5
5
|
|
|
6
6
|
def initialize(data)
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
generate_chart(data)
|
|
8
|
+
end
|
|
9
|
+
|
|
10
|
+
def team(number)
|
|
11
|
+
teams[number]
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
private
|
|
15
|
+
|
|
16
|
+
def teams
|
|
17
|
+
@teams ||= Hash.new { |hash, number| hash[number] = generate_team(number) }
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def generate_team(number)
|
|
21
|
+
@chart.each_with_object({}) do |(pos_name, groups), memo|
|
|
22
|
+
memo[pos_name] = groups[number.to_s]
|
|
23
|
+
end
|
|
24
|
+
end
|
|
10
25
|
|
|
26
|
+
def generate_chart(data)
|
|
27
|
+
@chart = data['position'].each_with_object({}) do |position, memo|
|
|
28
|
+
players = position['player'].map { |h| Sportradar::Api::Nfl::Player.new(h) }
|
|
29
|
+
memo[position['name']] = players.group_by(&:depth)
|
|
30
|
+
end
|
|
11
31
|
end
|
|
12
32
|
|
|
13
33
|
end
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
module Sportradar
|
|
2
2
|
module Api
|
|
3
3
|
class Nfl::Game < Data
|
|
4
|
-
attr_accessor :response, :id, :status, :reference, :number, :scheduled, :entry_mode, :venue, :home, :away, :broadcast, :number, :attendance, :utc_offset, :weather, :clock, :quarter, :summary, :situation, :last_event, :scoring, :scoring_drives, :quarters, :stats
|
|
4
|
+
attr_accessor :response, :id, :status, :reference, :number, :scheduled, :entry_mode, :venue, :home, :away, :broadcast, :number, :attendance, :utc_offset, :weather, :clock, :quarter, :summary, :situation, :last_event, :scoring, :scoring_drives, :quarters, :stats, :week, :season
|
|
5
5
|
|
|
6
6
|
def initialize(data)
|
|
7
7
|
@response = data
|
|
@@ -11,6 +11,8 @@ module Sportradar
|
|
|
11
11
|
@reference = data["reference"]
|
|
12
12
|
@number = data["number"]
|
|
13
13
|
@scheduled = Time.parse(data["scheduled"]) if data["scheduled"]
|
|
14
|
+
@week = Sportradar::Api::Nfl::Week.new data.dig("summary", "week") if data.dig("summary", "week")
|
|
15
|
+
@season = Sportradar::Api::Nfl::Season.new data.dig("summary", "season") if data.dig("summary", "season")
|
|
14
16
|
@entry_mode = data["entry_mode"]
|
|
15
17
|
|
|
16
18
|
# game boxscore
|
|
@@ -31,9 +33,9 @@ module Sportradar
|
|
|
31
33
|
set_scoring_drives
|
|
32
34
|
|
|
33
35
|
location = data["summary"] || data
|
|
34
|
-
@venue = Sportradar::Api::Nfl::Venue.new location["venue"] if location["venue"]
|
|
35
|
-
@home = Sportradar::Api::Nfl::Team.new location["home"] if location["home"]
|
|
36
|
-
@away = Sportradar::Api::Nfl::Team.new location["away"] if location["away"]
|
|
36
|
+
@venue = Sportradar::Api::Nfl::Venue.new data["venue"] || location["venue"] if data["venue"] || location["venue"]
|
|
37
|
+
@home = Sportradar::Api::Nfl::Team.new data["home"] || location["home"] if data["home"] || location["home"]
|
|
38
|
+
@away = Sportradar::Api::Nfl::Team.new data["away"] || location["away"] if data["away"] || location["away"]
|
|
37
39
|
@broadcast = Sportradar::Api::Nfl::Broadcast.new data["broadcast"] if data["broadcast"]
|
|
38
40
|
if data["team"]
|
|
39
41
|
both_stats = data["team"].map { |hash| [hash["id"], Sportradar::Api::Nfl::GameStatistic.new(hash)] }.to_h
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module Sportradar
|
|
2
|
+
module Api
|
|
3
|
+
class Nfl::LeagueDepthChart < Data
|
|
4
|
+
attr_accessor :response, :season, :charts
|
|
5
|
+
|
|
6
|
+
def initialize(data)
|
|
7
|
+
@response = data
|
|
8
|
+
depth_chart_data = data["season"].delete('depth_charts')
|
|
9
|
+
@season = Sportradar::Api::Nfl::Season.new data["season"] if data["season"]
|
|
10
|
+
# @teams = depth_chart_data["team"].map {|team| Sportradar::Api::Nfl::Team.new team } if depth_chart_data["team"]
|
|
11
|
+
@charts = depth_chart_data["team"].map {|team| Sportradar::Api::Nfl::TeamDepthChart.new(team, season) } if depth_chart_data["team"]
|
|
12
|
+
rescue => e
|
|
13
|
+
binding.pry
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
end
|
|
17
|
+
end
|
|
18
|
+
end
|
|
@@ -3,7 +3,7 @@ module Sportradar
|
|
|
3
3
|
class Nfl::Team < Data
|
|
4
4
|
attr_accessor :response, :id, :name, :alias, :game_number, :defense, :special_teams, :offense, :players, :statistics, :team_records, :player_records, :market, :franchise, :venue, :hierarchy, :coaches, :players, :used_timeouts, :remaining_timeouts, :points, :wins, :losses, :ties, :win_pct, :rank, :stats
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
alias_method :score, :points
|
|
7
7
|
|
|
8
8
|
def initialize(data)
|
|
9
9
|
@response = data
|
|
@@ -65,6 +65,8 @@ module Sportradar
|
|
|
65
65
|
elsif response["players"]["player"].is_a?(Hash)
|
|
66
66
|
@players = [ Sportradar::Api::Nfl::Player.new(response["players"]["player"]) ]
|
|
67
67
|
end
|
|
68
|
+
else
|
|
69
|
+
@players = []
|
|
68
70
|
end
|
|
69
71
|
end
|
|
70
72
|
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
module Sportradar
|
|
2
|
+
module Api
|
|
3
|
+
class Nfl::TeamDepthChart < Data
|
|
4
|
+
attr_accessor :response, :season
|
|
5
|
+
|
|
6
|
+
# data.keys => ["offense", "defense", "special_teams", "name", "market", "alias", "id"]
|
|
7
|
+
def initialize(data, season)
|
|
8
|
+
@response = data
|
|
9
|
+
@season = season
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def offense
|
|
13
|
+
@offense ||= Sportradar::Api::Nfl::DepthChart.new(response['offense'])
|
|
14
|
+
end
|
|
15
|
+
|
|
16
|
+
def defense
|
|
17
|
+
@defense ||= Sportradar::Api::Nfl::DepthChart.new(response['defense'])
|
|
18
|
+
end
|
|
19
|
+
|
|
20
|
+
def special_teams
|
|
21
|
+
@special_teams ||= Sportradar::Api::Nfl::DepthChart.new(response['special_teams'])
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def team
|
|
25
|
+
@team ||= Sportradar::Api::Nfl::Team.new(response).tap { |team| team.depth_chart = self }
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
private
|
|
29
|
+
|
|
30
|
+
def set_charts
|
|
31
|
+
[offense, defense, special_teams]
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
end
|
|
35
|
+
end
|
|
36
|
+
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: sportradar-api
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.1.
|
|
4
|
+
version: 0.1.33
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ben Eggett
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2016-
|
|
11
|
+
date: 2016-09-07 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -266,6 +266,7 @@ files:
|
|
|
266
266
|
- lib/sportradar/api/nfl/game_statistic.rb
|
|
267
267
|
- lib/sportradar/api/nfl/hierarchy.rb
|
|
268
268
|
- lib/sportradar/api/nfl/injury.rb
|
|
269
|
+
- lib/sportradar/api/nfl/league_depth_chart.rb
|
|
269
270
|
- lib/sportradar/api/nfl/play.rb
|
|
270
271
|
- lib/sportradar/api/nfl/player.rb
|
|
271
272
|
- lib/sportradar/api/nfl/position.rb
|
|
@@ -277,6 +278,7 @@ files:
|
|
|
277
278
|
- lib/sportradar/api/nfl/statistic.rb
|
|
278
279
|
- lib/sportradar/api/nfl/summary.rb
|
|
279
280
|
- lib/sportradar/api/nfl/team.rb
|
|
281
|
+
- lib/sportradar/api/nfl/team_depth_chart.rb
|
|
280
282
|
- lib/sportradar/api/nfl/venue.rb
|
|
281
283
|
- lib/sportradar/api/nfl/week.rb
|
|
282
284
|
- lib/sportradar/api/odds.rb
|