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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 31f8cd988efb0a39c926b9f74d1aa0c2cc1d85e5
4
- data.tar.gz: 2dc85ad01a1223ac08915aad3b52d1f40c140943
3
+ metadata.gz: 38520fc109b307a4001aafa9234bc77e52ef538e
4
+ data.tar.gz: 367e7dee54869a70407a13d778eba45381fd56c3
5
5
  SHA512:
6
- metadata.gz: b52ea1b015c3bbd292d9409a3c976ac6dc0f1f3cd179d5481c5bbe09b5a40a2f638dd4d0bde183c800adf9eebddf553d8c71961d0f99912db2625226ea212383
7
- data.tar.gz: 9452cd537323867326a3c7ff606c837fb53646ae16ab571ce6560d9c0997e2a36a7fa4cca02979588ef16252eef3bb65011923a8a2ff1ba96a9119188bf99459
6
+ metadata.gz: 0b53bd6606b7c520afc8d112d3b06c9e921441a90efa053e5bf8adb8d657765e2114c21760d92d3252df7775134f052812f6f545fb57befcb630fee1f4ccef03
7
+ data.tar.gz: 306813a77ca617e9a53307f85976a090d8463a5e01a010a0a5c371611337a73f36176127a740f2391f6d8448472566f0852c8435ebca46ba1fab3186bc9c66a5
@@ -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
 
@@ -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::DepthChart.new response
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, :season, :teams
4
+ attr_accessor :response, :chart
5
5
 
6
6
  def initialize(data)
7
- @response = data
8
- @season = Sportradar::Api::Nfl::Season.new data["season"] if data["season"]
9
- @teams = data["season"]["depth_charts"]["team"].map {|team| Sportradar::Api::Nfl::Team.new team } if data["season"]["depth_charts"]["team"]
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
- alias :score :points
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
@@ -1,5 +1,5 @@
1
1
  module Sportradar
2
2
  module Api
3
- VERSION = "0.1.32"
3
+ VERSION = "0.1.33"
4
4
  end
5
5
  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.32
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-08-23 00:00:00.000000000 Z
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