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 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