sports_data_api 0.11.6 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
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,