sports_data_api 0.12.1 → 0.13.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 (36) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -3
  3. data/lib/sports_data_api/merged_stats.rb +15 -0
  4. data/lib/sports_data_api/mlb.rb +0 -1
  5. data/lib/sports_data_api/nhl/broadcast.rb +1 -9
  6. data/lib/sports_data_api/nhl/game.rb +44 -30
  7. data/lib/sports_data_api/nhl/games.rb +16 -13
  8. data/lib/sports_data_api/nhl/player.rb +4 -25
  9. data/lib/sports_data_api/nhl/season.rb +15 -10
  10. data/lib/sports_data_api/nhl/team.rb +38 -17
  11. data/lib/sports_data_api/nhl/teams.rb +14 -65
  12. data/lib/sports_data_api/nhl/venue.rb +1 -15
  13. data/lib/sports_data_api/nhl.rb +9 -9
  14. data/lib/sports_data_api/version.rb +1 -1
  15. data/lib/sports_data_api.rb +1 -0
  16. data/spec/cassettes/sports_data_api_nhl.yml +22186 -18938
  17. data/spec/cassettes/sports_data_api_nhl_broadcast.yml +209 -193
  18. data/spec/cassettes/sports_data_api_nhl_game.yml +29397 -23777
  19. data/spec/cassettes/sports_data_api_nhl_games.yml +210 -194
  20. data/spec/cassettes/sports_data_api_nhl_league_hierarchy.yml +567 -488
  21. data/spec/cassettes/sports_data_api_nhl_player.yml +3588 -328
  22. data/spec/cassettes/sports_data_api_nhl_season.yml +15674 -18921
  23. data/spec/cassettes/sports_data_api_nhl_team.yml +3901 -2100
  24. data/spec/cassettes/sports_data_api_nhl_venue.yml +170 -193
  25. data/spec/lib/sports_data_api/{mlb/merged_stats_spec.rb → merged_stats_spec.rb} +4 -4
  26. data/spec/lib/sports_data_api/mlb/statistics_spec.rb +5 -5
  27. data/spec/lib/sports_data_api/nhl/broadcast_spec.rb +7 -4
  28. data/spec/lib/sports_data_api/nhl/game_spec.rb +65 -38
  29. data/spec/lib/sports_data_api/nhl/player_spec.rb +92 -40
  30. data/spec/lib/sports_data_api/nhl/season_spec.rb +1 -1
  31. data/spec/lib/sports_data_api/nhl/team_spec.rb +94 -182
  32. data/spec/lib/sports_data_api/nhl/teams_spec.rb +14 -65
  33. data/spec/lib/sports_data_api/nhl/venue_spec.rb +12 -9
  34. data/spec/lib/sports_data_api/nhl_spec.rb +94 -12
  35. metadata +5 -5
  36. data/lib/sports_data_api/mlb/merged_stats.rb +0 -17
@@ -7,34 +7,116 @@ describe SportsDataApi::Nhl, vcr: {
7
7
  } do
8
8
 
9
9
  context 'invalid API key' do
10
- before(:each) do
10
+ before do
11
11
  SportsDataApi.set_key(:nhl, 'invalid_key')
12
- SportsDataApi.set_access_level(:nhl, 'ot')
12
+ SportsDataApi.set_access_level(:nhl, 'trial')
13
13
  end
14
+
14
15
  describe '.schedule' do
15
- it { expect { subject.schedule(2014, :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(:nhl, 'invalid_key')
39
+ SportsDataApi.set_access_level(:nhl, '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(2014, :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/nhl-ot4/games/2013/REG/schedule.xml' }
28
- before(:each) do
29
- SportsDataApi.set_key(:nhl, 'invalid_key')
30
- SportsDataApi.set_access_level(:nhl, 'ot')
31
- @schedule_xml = RestClient.get("#{schedule_url}?api_key=#{api_key(:nhl)}")
66
+ before do
67
+ SportsDataApi.set_key(:nhl, 'valid_key')
68
+ SportsDataApi.set_access_level(:nhl, 'trial')
32
69
  end
70
+
33
71
  describe '.schedule' do
72
+ let(:url) { 'https://api.sportradar.us/nhl/trial/v5/en/games/2017/REG/schedule.json' }
73
+ let!(:json) { RestClient.get("#{url}?api_key=#{api_key(:nhl)}") }
74
+ it 'creates a valid Sports Data LLC url' do
75
+ params = { params: { api_key: SportsDataApi.key(:nhl) } }
76
+ RestClient.should_receive(:get).with(url, params).and_return(json)
77
+ expect(subject.schedule(2017, :REG)).to be_a SportsDataApi::Nhl::Season
78
+ end
79
+ end
80
+
81
+ describe '.team_roster' do
82
+ let(:team_id) { '4416091c-0f24-11e2-8525-18a905767e44' }
83
+ let(:url) { "https://api.sportradar.us/nhl/trial/v5/en/teams/#{team_id}/profile.json" }
84
+ let!(:json) { RestClient.get("#{url}?api_key=#{api_key(:nhl)}") }
85
+ it 'creates a valid Sports Data LLC url' do
86
+ params = { params: { api_key: SportsDataApi.key(:nhl) } }
87
+ RestClient.should_receive(:get).with(url, params).and_return(json)
88
+ expect(subject.team_roster(team_id)).to be_a SportsDataApi::Nhl::Team
89
+ end
90
+ end
91
+
92
+ describe '.game_summary' do
93
+ let(:game_id) { 'af285aa3-3d80-4051-9449-5b58e5985a4e' }
94
+ let(:url) { "https://api.sportradar.us/nhl/trial/v5/en/games/#{game_id}/summary.json" }
95
+ let!(:json) { RestClient.get("#{url}?api_key=#{api_key(:nhl)}") }
96
+ it 'creates a valid Sports Data LLC url' do
97
+ params = { params: { api_key: SportsDataApi.key(:nhl) } }
98
+ RestClient.should_receive(:get).with(url, params).and_return(json)
99
+ expect(subject.game_summary(game_id)).to be_a SportsDataApi::Nhl::Game
100
+ end
101
+ end
102
+
103
+ describe '.teams' do
104
+ let(:url) { "https://api.sportradar.us/nhl/trial/v5/en/league/hierarchy.json" }
105
+ let!(:json) { RestClient.get("#{url}?api_key=#{api_key(:nhl)}") }
106
+ it 'creates a valid Sports Data LLC url' do
107
+ params = { params: { api_key: SportsDataApi.key(:nhl) } }
108
+ RestClient.should_receive(:get).with(url, params).and_return(json)
109
+ expect(subject.teams).to be_a SportsDataApi::Nhl::Teams
110
+ end
111
+ end
112
+
113
+ describe '.daily' do
114
+ let(:url) { "https://api.sportradar.us/nhl/trial/v5/en/games/2018/1/1/schedule.json" }
115
+ let!(:json) { RestClient.get("#{url}?api_key=#{api_key(:nhl)}") }
34
116
  it 'creates a valid Sports Data LLC url' do
35
117
  params = { params: { api_key: SportsDataApi.key(:nhl) } }
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::Nhl::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.12.1
4
+ version: 0.13.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: 2018-01-09 00:00:00.000000000 Z
12
+ date: 2018-01-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: nokogiri
@@ -236,11 +236,11 @@ files:
236
236
  - lib/sports_data_api/golf/summary.rb
237
237
  - lib/sports_data_api/golf/tournament.rb
238
238
  - lib/sports_data_api/json_data.rb
239
+ - lib/sports_data_api/merged_stats.rb
239
240
  - lib/sports_data_api/mlb.rb
240
241
  - lib/sports_data_api/mlb/division.rb
241
242
  - lib/sports_data_api/mlb/game.rb
242
243
  - lib/sports_data_api/mlb/league.rb
243
- - lib/sports_data_api/mlb/merged_stats.rb
244
244
  - lib/sports_data_api/mlb/player.rb
245
245
  - lib/sports_data_api/mlb/scoring.rb
246
246
  - lib/sports_data_api/mlb/statistics.rb
@@ -411,12 +411,12 @@ files:
411
411
  - spec/lib/sports_data_api/golf/tournament_spec.rb
412
412
  - spec/lib/sports_data_api/golf_spec.rb
413
413
  - spec/lib/sports_data_api/json_data_spec.rb
414
+ - spec/lib/sports_data_api/merged_stats_spec.rb
414
415
  - spec/lib/sports_data_api/mlb/daily_schedule_spec.rb
415
416
  - spec/lib/sports_data_api/mlb/daily_summary_spec.rb
416
417
  - spec/lib/sports_data_api/mlb/division_spec.rb
417
418
  - spec/lib/sports_data_api/mlb/game_spec.rb
418
419
  - spec/lib/sports_data_api/mlb/league_spec.rb
419
- - spec/lib/sports_data_api/mlb/merged_stats_spec.rb
420
420
  - spec/lib/sports_data_api/mlb/player_spec.rb
421
421
  - spec/lib/sports_data_api/mlb/scoring_spec.rb
422
422
  - spec/lib/sports_data_api/mlb/season_schedule_spec.rb
@@ -594,12 +594,12 @@ test_files:
594
594
  - spec/lib/sports_data_api/golf/tournament_spec.rb
595
595
  - spec/lib/sports_data_api/golf_spec.rb
596
596
  - spec/lib/sports_data_api/json_data_spec.rb
597
+ - spec/lib/sports_data_api/merged_stats_spec.rb
597
598
  - spec/lib/sports_data_api/mlb/daily_schedule_spec.rb
598
599
  - spec/lib/sports_data_api/mlb/daily_summary_spec.rb
599
600
  - spec/lib/sports_data_api/mlb/division_spec.rb
600
601
  - spec/lib/sports_data_api/mlb/game_spec.rb
601
602
  - spec/lib/sports_data_api/mlb/league_spec.rb
602
- - spec/lib/sports_data_api/mlb/merged_stats_spec.rb
603
603
  - spec/lib/sports_data_api/mlb/player_spec.rb
604
604
  - spec/lib/sports_data_api/mlb/scoring_spec.rb
605
605
  - spec/lib/sports_data_api/mlb/season_schedule_spec.rb
@@ -1,17 +0,0 @@
1
- module SportsDataApi
2
- module Mlb
3
- class MergedStats < JsonData
4
- def initialize(json, override_var_name = nil)
5
- super(json, override_var_name)
6
- ivar = instance_variable_get("@#{instance_var_name}")
7
- json.each do |key, val|
8
- next unless val.is_a? Hash
9
- json[key].each do |sub_key, data|
10
- ivar["#{key}_#{sub_key}".to_sym] = data
11
- end
12
- ivar.delete key.to_sym
13
- end
14
- end
15
- end
16
- end
17
- end