sports_data_api 0.11.6 → 0.12.0

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.
Files changed (32) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +1 -0
  3. data/lib/sports_data_api/nba/broadcast.rb +1 -9
  4. data/lib/sports_data_api/nba/game.rb +56 -37
  5. data/lib/sports_data_api/nba/games.rb +16 -13
  6. data/lib/sports_data_api/nba/player.rb +4 -16
  7. data/lib/sports_data_api/nba/season.rb +15 -10
  8. data/lib/sports_data_api/nba/stats.rb +6 -0
  9. data/lib/sports_data_api/nba/team.rb +29 -17
  10. data/lib/sports_data_api/nba/teams.rb +14 -65
  11. data/lib/sports_data_api/nba/venue.rb +10 -12
  12. data/lib/sports_data_api/nba.rb +10 -9
  13. data/lib/sports_data_api/version.rb +1 -1
  14. data/spec/cassettes/sports_data_api_nba.yml +66434 -112102
  15. data/spec/cassettes/sports_data_api_nba_broadcast.yml +67 -56
  16. data/spec/cassettes/sports_data_api_nba_game.yml +31079 -21019
  17. data/spec/cassettes/sports_data_api_nba_games.yml +112 -68
  18. data/spec/cassettes/sports_data_api_nba_league_hierarchy.yml +553 -469
  19. data/spec/cassettes/sports_data_api_nba_player.yml +1173 -212
  20. data/spec/cassettes/sports_data_api_nba_season.yml +18253 -18195
  21. data/spec/cassettes/sports_data_api_nba_team.yml +1429 -1284
  22. data/spec/cassettes/sports_data_api_nba_venue.yml +438 -56
  23. data/spec/lib/sports_data_api/nba/broadcast_spec.rb +8 -4
  24. data/spec/lib/sports_data_api/nba/game_spec.rb +32 -41
  25. data/spec/lib/sports_data_api/nba/games_spec.rb +10 -6
  26. data/spec/lib/sports_data_api/nba/player_spec.rb +86 -56
  27. data/spec/lib/sports_data_api/nba/season_spec.rb +4 -3
  28. data/spec/lib/sports_data_api/nba/team_spec.rb +44 -48
  29. data/spec/lib/sports_data_api/nba/teams_spec.rb +12 -63
  30. data/spec/lib/sports_data_api/nba/venue_spec.rb +23 -6
  31. data/spec/lib/sports_data_api/nba_spec.rb +97 -15
  32. metadata +4 -3
@@ -1,40 +1,122 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  describe SportsDataApi::Nba, vcr: {
4
- cassette_name: 'sports_data_api_nba',
5
- record: :new_episodes,
6
- match_requests_on: [:uri]
4
+ cassette_name: 'sports_data_api_nba',
5
+ record: :new_episodes,
6
+ match_requests_on: [:method, :uri]
7
7
  } do
8
8
 
9
9
  context 'invalid API key' do
10
- before(:each) do
10
+ before do
11
11
  SportsDataApi.set_key(:nba, 'invalid_key')
12
- SportsDataApi.set_access_level(:nba, 't')
12
+ SportsDataApi.set_access_level(:nba, 'trial')
13
13
  end
14
+
14
15
  describe '.schedule' do
15
- it { expect { subject.schedule(2013, :REG) }.to raise_error(SportsDataApi::Exception) }
16
+ it { expect { subject.schedule(2017, :REG) }.to raise_error(SportsDataApi::Exception) }
17
+ end
18
+
19
+ describe '.team_roster' do
20
+ it { expect { subject.team_roster('team_uuid') }.to raise_error(SportsDataApi::Exception) }
21
+ end
22
+
23
+ describe '.game_summary' do
24
+ it { expect { subject.game_summary('game_uuid') }.to raise_error(SportsDataApi::Exception) }
25
+ end
26
+
27
+ describe '.teams' do
28
+ it { expect { subject.teams }.to raise_error(SportsDataApi::Exception) }
29
+ end
30
+
31
+ describe '.daily' do
32
+ it { expect { subject.daily(2017, 1, 1) }.to raise_error(SportsDataApi::Exception) }
16
33
  end
17
34
  end
18
35
 
19
36
  context 'no response from the api' do
20
- before(:each) { stub_request(:any, /api\.sportsdatallc\.org.*/).to_timeout }
37
+ before do
38
+ SportsDataApi.set_key(:nba, 'invalid_key')
39
+ SportsDataApi.set_access_level(:nba, 'trial')
40
+ end
41
+
42
+ before { stub_request(:any, /api\.sportradar\.us.*/).to_timeout }
43
+
21
44
  describe '.schedule' do
22
- it { expect { subject.schedule(2013, :REG) }.to raise_error(SportsDataApi::Exception) }
45
+ it { expect { subject.schedule(2017, :REG) }.to raise_error(SportsDataApi::Exception) }
46
+ end
47
+
48
+ describe '.team_roster' do
49
+ it { expect { subject.team_roster('team_uuid') }.to raise_error(SportsDataApi::Exception) }
50
+ end
51
+
52
+ describe '.game_summary' do
53
+ it { expect { subject.game_summary('game_uuid') }.to raise_error(SportsDataApi::Exception) }
54
+ end
55
+
56
+ describe '.teams' do
57
+ it { expect { subject.teams }.to raise_error(SportsDataApi::Exception) }
58
+ end
59
+
60
+ describe '.daily' do
61
+ it { expect { subject.daily(2017, 1, 1) }.to raise_error(SportsDataApi::Exception) }
23
62
  end
24
63
  end
25
64
 
26
65
  context 'create valid URLs' do
27
- let(:schedule_url) { 'https://api.sportsdatallc.org/nba-t3/games/2013/REG/schedule.xml' }
28
- before(:each) do
29
- SportsDataApi.set_key(:nba, 'invalid_key')
30
- SportsDataApi.set_access_level(:nba, 't')
31
- @schedule_xml = RestClient.get("#{schedule_url}?api_key=#{api_key(:nba)}")
66
+ before do
67
+ SportsDataApi.set_key(:nba, 'valid_key')
68
+ SportsDataApi.set_access_level(:nba, 'trial')
32
69
  end
70
+
33
71
  describe '.schedule' do
72
+ let(:url) { 'https://api.sportradar.us/nba/trial/v4/en/games/2017/REG/schedule.json' }
73
+ let!(:json) { RestClient.get("#{url}?api_key=#{api_key(:nba)}") }
74
+ it 'creates a valid Sports Data LLC url' do
75
+ params = { params: { api_key: SportsDataApi.key(:nba) } }
76
+ RestClient.should_receive(:get).with(url, params).and_return(json)
77
+ expect(subject.schedule(2017, :REG)).to be_a SportsDataApi::Nba::Season
78
+ end
79
+ end
80
+
81
+ describe '.team_roster' do
82
+ let(:team_id) { '583ec825-fb46-11e1-82cb-f4ce4684ea4c' }
83
+ let(:url) { "https://api.sportradar.us/nba/trial/v4/en/teams/#{team_id}/profile.json" }
84
+ let!(:json) { RestClient.get("#{url}?api_key=#{api_key(:nba)}") }
85
+ it 'creates a valid Sports Data LLC url' do
86
+ params = { params: { api_key: SportsDataApi.key(:nba) } }
87
+ RestClient.should_receive(:get).with(url, params).and_return(json)
88
+ expect(subject.team_roster(team_id)).to be_a SportsDataApi::Nba::Team
89
+ end
90
+ end
91
+
92
+ describe '.game_summary' do
93
+ let(:game_id) { '114844aa-3c31-4ac7-9afa-0a4f2ae65e0c' }
94
+ let(:url) { "https://api.sportradar.us/nba/trial/v4/en/games/#{game_id}/summary.json" }
95
+ let!(:json) { RestClient.get("#{url}?api_key=#{api_key(:nba)}") }
96
+ it 'creates a valid Sports Data LLC url' do
97
+ params = { params: { api_key: SportsDataApi.key(:nba) } }
98
+ RestClient.should_receive(:get).with(url, params).and_return(json)
99
+ expect(subject.game_summary(game_id)).to be_a SportsDataApi::Nba::Game
100
+ end
101
+ end
102
+
103
+ describe '.teams' do
104
+ let(:url) { "https://api.sportradar.us/nba/trial/v4/en/league/hierarchy.json" }
105
+ let!(:json) { RestClient.get("#{url}?api_key=#{api_key(:nba)}") }
106
+ it 'creates a valid Sports Data LLC url' do
107
+ params = { params: { api_key: SportsDataApi.key(:nba) } }
108
+ RestClient.should_receive(:get).with(url, params).and_return(json)
109
+ expect(subject.teams).to be_a SportsDataApi::Nba::Teams
110
+ end
111
+ end
112
+
113
+ describe '.daily' do
114
+ let(:url) { "https://api.sportradar.us/nba/trial/v4/en/games/2018/1/1/schedule.json" }
115
+ let!(:json) { RestClient.get("#{url}?api_key=#{api_key(:nba)}") }
34
116
  it 'creates a valid Sports Data LLC url' do
35
117
  params = { params: { api_key: SportsDataApi.key(:nba) } }
36
- RestClient.should_receive(:get).with(schedule_url, params).and_return(@schedule_xml)
37
- subject.schedule(2013, :REG)
118
+ RestClient.should_receive(:get).with(url, params).and_return(json)
119
+ expect(subject.daily(2018, 1, 1)).to be_a SportsDataApi::Nba::Games
38
120
  end
39
121
  end
40
122
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sports_data_api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.11.6
4
+ version: 0.12.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ryan Lovelett
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-03-24 00:00:00.000000000 Z
12
+ date: 2018-01-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -307,6 +307,7 @@ files:
307
307
  - lib/sports_data_api/nba/games.rb
308
308
  - lib/sports_data_api/nba/player.rb
309
309
  - lib/sports_data_api/nba/season.rb
310
+ - lib/sports_data_api/nba/stats.rb
310
311
  - lib/sports_data_api/nba/team.rb
311
312
  - lib/sports_data_api/nba/teams.rb
312
313
  - lib/sports_data_api/nba/venue.rb
@@ -560,7 +561,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
560
561
  version: '0'
561
562
  requirements: []
562
563
  rubyforge_project:
563
- rubygems_version: 2.4.8
564
+ rubygems_version: 2.7.3
564
565
  signing_key:
565
566
  specification_version: 4
566
567
  summary: Sportradar’s comprehensive data coverage includes all major U.S. sports,