sportradar-api 0.1.32 → 0.1.33
Sign up to get free protection for your applications and to get access to all the features.
- 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
|