sports_data_api 0.1.0 → 0.2.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.
- checksums.yaml +4 -4
- data/.ruby-version +1 -1
- data/.travis.yml +1 -0
- data/README.md +6 -6
- data/lib/sports_data_api.rb +2 -0
- data/lib/sports_data_api/nfl.rb +28 -16
- data/lib/sports_data_api/nfl/broadcast.rb +6 -7
- data/lib/sports_data_api/nfl/game.rb +17 -22
- data/lib/sports_data_api/nfl/games.rb +7 -8
- data/lib/sports_data_api/nfl/player.rb +5 -7
- data/lib/sports_data_api/nfl/player_season_stats.rb +3 -13
- data/lib/sports_data_api/nfl/season.rb +5 -7
- data/lib/sports_data_api/nfl/team.rb +50 -11
- data/lib/sports_data_api/nfl/team_roster.rb +2 -5
- data/lib/sports_data_api/nfl/team_season_stats.rb +4 -9
- data/lib/sports_data_api/nfl/teams.rb +9 -15
- data/lib/sports_data_api/nfl/venue.rb +12 -13
- data/lib/sports_data_api/nfl/weather.rb +7 -8
- data/lib/sports_data_api/nfl/week.rb +4 -6
- data/lib/sports_data_api/nhl.rb +71 -0
- data/lib/sports_data_api/nhl/broadcast.rb +14 -0
- data/lib/sports_data_api/nhl/game.rb +54 -0
- data/lib/sports_data_api/nhl/games.rb +26 -0
- data/lib/sports_data_api/nhl/player.rb +31 -0
- data/lib/sports_data_api/nhl/season.rb +28 -0
- data/lib/sports_data_api/nhl/team.rb +40 -0
- data/lib/sports_data_api/nhl/teams.rb +83 -0
- data/lib/sports_data_api/nhl/venue.rb +20 -0
- data/lib/sports_data_api/stats.rb +6 -2
- data/lib/sports_data_api/version.rb +1 -1
- data/spec/cassettes/sports_data_api_mlb_game.yml +19926 -19688
- data/spec/cassettes/sports_data_api_mlb_game_boxscore.yml +24 -18
- data/spec/cassettes/sports_data_api_mlb_game_stats.yml +576 -574
- data/spec/cassettes/sports_data_api_mlb_games.yml +152 -147
- data/spec/cassettes/sports_data_api_mlb_player.yml +8459 -10660
- data/spec/cassettes/sports_data_api_mlb_season.yml +19926 -19688
- data/spec/cassettes/sports_data_api_mlb_team.yml +47 -44
- data/spec/cassettes/sports_data_api_mlb_team_roster.yml +8459 -10660
- data/spec/cassettes/sports_data_api_mlb_teams.yml +94 -130
- data/spec/cassettes/sports_data_api_mlb_venues.yml +16 -16
- data/spec/cassettes/sports_data_api_nfl.yml +5331 -18893
- data/spec/cassettes/sports_data_api_nfl_broadcast.yml +35 -84
- data/spec/cassettes/sports_data_api_nfl_game.yml +7702 -15956
- data/spec/cassettes/sports_data_api_nfl_games.yml +211 -884
- data/spec/cassettes/sports_data_api_nfl_player_season_stats.yml +1002 -959
- data/spec/cassettes/sports_data_api_nfl_season.yml +3168 -14065
- data/spec/cassettes/sports_data_api_nfl_team.yml +1264 -715
- data/spec/cassettes/sports_data_api_nfl_team_hierarchy.yml +462 -846
- data/spec/cassettes/sports_data_api_nfl_team_roster.yml +796 -580
- data/spec/cassettes/sports_data_api_nfl_team_season_stats.yml +1004 -945
- data/spec/cassettes/sports_data_api_nfl_venue.yml +35 -84
- data/spec/cassettes/sports_data_api_nfl_weather.yml +35 -84
- data/spec/cassettes/sports_data_api_nfl_week.yml +3168 -14065
- data/spec/cassettes/sports_data_api_nhl.yml +18999 -0
- data/spec/cassettes/sports_data_api_nhl_broadcast.yml +226 -0
- data/spec/cassettes/sports_data_api_nhl_game.yml +23261 -0
- data/spec/cassettes/sports_data_api_nhl_games.yml +226 -0
- data/spec/cassettes/sports_data_api_nhl_league_hierarchy.yml +535 -0
- data/spec/cassettes/sports_data_api_nhl_player.yml +396 -0
- data/spec/cassettes/sports_data_api_nhl_season.yml +18961 -0
- data/spec/cassettes/sports_data_api_nhl_team.yml +1962 -0
- data/spec/cassettes/sports_data_api_nhl_venue.yml +226 -0
- data/spec/lib/sports_data_api/mlb/players_spec.rb +1 -1
- data/spec/lib/sports_data_api/nfl/game_spec.rb +33 -9
- data/spec/lib/sports_data_api/nfl/team_spec.rb +62 -32
- data/spec/lib/sports_data_api/nfl/teams_spec.rb +5 -6
- data/spec/lib/sports_data_api/nfl/venue_spec.rb +3 -3
- data/spec/lib/sports_data_api/nfl_spec.rb +3 -3
- data/spec/lib/sports_data_api/nhl/broadcast_spec.rb +18 -0
- data/spec/lib/sports_data_api/nhl/game_spec.rb +87 -0
- data/spec/lib/sports_data_api/nhl/games_spec.rb +19 -0
- data/spec/lib/sports_data_api/nhl/player_spec.rb +56 -0
- data/spec/lib/sports_data_api/nhl/season_spec.rb +41 -0
- data/spec/lib/sports_data_api/nhl/team_spec.rb +240 -0
- data/spec/lib/sports_data_api/nhl/teams_spec.rb +76 -0
- data/spec/lib/sports_data_api/nhl/venue_spec.rb +24 -0
- data/spec/lib/sports_data_api/nhl_spec.rb +41 -0
- data/spec/spec_helper.rb +2 -0
- data/sports_data_api.gemspec +1 -0
- metadata +62 -3
@@ -0,0 +1,76 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SportsDataApi::Nhl::Teams, vcr: {
|
4
|
+
cassette_name: 'sports_data_api_nhl_league_hierarchy',
|
5
|
+
record: :new_episodes,
|
6
|
+
match_requests_on: [:host, :path]
|
7
|
+
} do
|
8
|
+
let(:teams) do
|
9
|
+
SportsDataApi.set_key(:nhl, api_key(:nhl))
|
10
|
+
SportsDataApi.set_access_level(:nhl, 't')
|
11
|
+
SportsDataApi::Nhl.teams
|
12
|
+
end
|
13
|
+
|
14
|
+
let(:url) { 'http://api.sportsdatallc.org/nhl-t3/league/hierarchy.xml' }
|
15
|
+
|
16
|
+
let(:kings_xml) do
|
17
|
+
str = RestClient.get(url, params: { api_key: api_key(:nhl) }).to_s
|
18
|
+
xml = Nokogiri::XML(str)
|
19
|
+
xml.remove_namespaces!
|
20
|
+
xml.xpath('/league/conference/division/team[@alias=\'LA\']')
|
21
|
+
end
|
22
|
+
|
23
|
+
let(:kings) { SportsDataApi::Nhl::Team.new(kings_xml) }
|
24
|
+
|
25
|
+
subject { teams }
|
26
|
+
its(:conferences) { should eq %w(WESTERN EASTERN).map { |str| str.to_sym } }
|
27
|
+
its(:divisions) { should eq %w(PACIFIC CENTRAL ATLANTIC METROPOLITAN).map { |str| str.to_sym } }
|
28
|
+
its(:count) { should eq 30 }
|
29
|
+
|
30
|
+
it { subject[:"44151f7a-0f24-11e2-8525-18a905767e44"].should eq kings }
|
31
|
+
|
32
|
+
describe 'meta methods' do
|
33
|
+
it { should respond_to :EASTERN }
|
34
|
+
it { should respond_to :WESTERN }
|
35
|
+
it { should respond_to :eastern }
|
36
|
+
it { should respond_to :western }
|
37
|
+
it { should respond_to :ATLANTIC }
|
38
|
+
it { should respond_to :atlantic }
|
39
|
+
it { should respond_to :PACIFIC }
|
40
|
+
|
41
|
+
its(:EASTERN) { should be_a Array }
|
42
|
+
its(:WESTERN) { should be_a Array }
|
43
|
+
|
44
|
+
context '#EASTERN' do
|
45
|
+
subject { teams.EASTERN }
|
46
|
+
its(:count) { should eq 16 }
|
47
|
+
end
|
48
|
+
|
49
|
+
context '#eastern' do
|
50
|
+
subject { teams.eastern }
|
51
|
+
its(:count) { should eq 16 }
|
52
|
+
end
|
53
|
+
|
54
|
+
context '#WESTERN' do
|
55
|
+
subject { teams.WESTERN }
|
56
|
+
its(:count) { should eq 14 }
|
57
|
+
end
|
58
|
+
|
59
|
+
context '#western' do
|
60
|
+
subject { teams.western }
|
61
|
+
its(:count) { should eq 14 }
|
62
|
+
end
|
63
|
+
|
64
|
+
context '#pacific' do
|
65
|
+
subject { teams.pacific }
|
66
|
+
its(:count) { should eq 7 }
|
67
|
+
it { should include kings }
|
68
|
+
end
|
69
|
+
|
70
|
+
context '#PACIFIC' do
|
71
|
+
subject { teams.PACIFIC }
|
72
|
+
its(:count) { should eq 7 }
|
73
|
+
it { should include kings }
|
74
|
+
end
|
75
|
+
end
|
76
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SportsDataApi::Nhl::Venue, vcr: {
|
4
|
+
cassette_name: 'sports_data_api_nhl_venue',
|
5
|
+
record: :new_episodes,
|
6
|
+
match_requests_on: [:host, :path]
|
7
|
+
} do
|
8
|
+
let(:daily_schedule) do
|
9
|
+
SportsDataApi.set_access_level(:nhl, 't')
|
10
|
+
SportsDataApi.set_key(:nhl, api_key(:nhl))
|
11
|
+
SportsDataApi::Nhl.daily(2013, 12, 12)
|
12
|
+
end
|
13
|
+
context 'results from weekly schedule fetch' do
|
14
|
+
subject { daily_schedule.first.venue }
|
15
|
+
its(:id) { should eq '0a162e5b-8d59-42d8-b173-a131bf632ffb' }
|
16
|
+
its(:name) { should eq 'Wells Fargo Center' }
|
17
|
+
its(:address) { should eq '3601 S. Broad St.' }
|
18
|
+
its(:city) { should eq 'Philadelphia' }
|
19
|
+
its(:state) { should eq 'PA' }
|
20
|
+
its(:zip) { '19148' }
|
21
|
+
its(:country) { should eq 'USA' }
|
22
|
+
its(:capacity) { should eq '19537' }
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SportsDataApi::Nhl, vcr: {
|
4
|
+
cassette_name: 'sports_data_api_nhl',
|
5
|
+
record: :new_episodes,
|
6
|
+
match_requests_on: [:uri]
|
7
|
+
} do
|
8
|
+
|
9
|
+
context 'invalid API key' do
|
10
|
+
before(:each) do
|
11
|
+
SportsDataApi.set_key(:nhl, 'invalid_key')
|
12
|
+
SportsDataApi.set_access_level(:nhl, 't')
|
13
|
+
end
|
14
|
+
describe '.schedule' do
|
15
|
+
it { expect { subject.schedule(2014, :REG) }.to raise_error(SportsDataApi::Exception) }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
context 'no response from the api' do
|
20
|
+
before(:each) { stub_request(:any, /api\.sportsdatallc\.org.*/).to_timeout }
|
21
|
+
describe '.schedule' do
|
22
|
+
it { expect { subject.schedule(2014, :REG) }.to raise_error(SportsDataApi::Exception) }
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
context 'create valid URLs' do
|
27
|
+
let(:schedule_url) { 'http://api.sportsdatallc.org/nhl-t3/games/2013/REG/schedule.xml' }
|
28
|
+
before(:each) do
|
29
|
+
SportsDataApi.set_key(:nhl, 'invalid_key')
|
30
|
+
SportsDataApi.set_access_level(:nhl, 't')
|
31
|
+
@schedule_xml = RestClient.get("#{schedule_url}?api_key=#{api_key(:nhl)}")
|
32
|
+
end
|
33
|
+
describe '.schedule' do
|
34
|
+
it 'creates a valid Sports Data LLC url' do
|
35
|
+
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)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -50,4 +50,6 @@ VCR.configure do |c|
|
|
50
50
|
# Filter the real API key so that it does not make its way into the VCR cassette
|
51
51
|
c.filter_sensitive_data('<API_KEY>') { api_key(:nfl) }
|
52
52
|
c.filter_sensitive_data('<API_KEY>') { api_key(:nba) }
|
53
|
+
c.filter_sensitive_data('<API_KEY>') { api_key(:mlb) }
|
54
|
+
c.filter_sensitive_data('<API_KEY>') { api_key(:nhl) }
|
53
55
|
end
|
data/sports_data_api.gemspec
CHANGED
@@ -17,6 +17,7 @@ Gem::Specification.new do |gem|
|
|
17
17
|
|
18
18
|
gem.add_dependency 'nokogiri', '~> 1.5.5'
|
19
19
|
gem.add_dependency 'rest-client', '~> 1.6.7'
|
20
|
+
gem.add_dependency 'multi_json', '~> 1.10.1'
|
20
21
|
|
21
22
|
gem.add_development_dependency 'rake', '~> 10.0.4'
|
22
23
|
gem.add_development_dependency 'rspec', '~> 2.13.0'
|
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.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-
|
12
|
+
date: 2014-12-07 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -39,6 +39,20 @@ dependencies:
|
|
39
39
|
- - "~>"
|
40
40
|
- !ruby/object:Gem::Version
|
41
41
|
version: 1.6.7
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: multi_json
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - "~>"
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: 1.10.1
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - "~>"
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: 1.10.1
|
42
56
|
- !ruby/object:Gem::Dependency
|
43
57
|
name: rake
|
44
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -264,6 +278,15 @@ files:
|
|
264
278
|
- lib/sports_data_api/nfl/venue.rb
|
265
279
|
- lib/sports_data_api/nfl/weather.rb
|
266
280
|
- lib/sports_data_api/nfl/week.rb
|
281
|
+
- lib/sports_data_api/nhl.rb
|
282
|
+
- lib/sports_data_api/nhl/broadcast.rb
|
283
|
+
- lib/sports_data_api/nhl/game.rb
|
284
|
+
- lib/sports_data_api/nhl/games.rb
|
285
|
+
- lib/sports_data_api/nhl/player.rb
|
286
|
+
- lib/sports_data_api/nhl/season.rb
|
287
|
+
- lib/sports_data_api/nhl/team.rb
|
288
|
+
- lib/sports_data_api/nhl/teams.rb
|
289
|
+
- lib/sports_data_api/nhl/venue.rb
|
267
290
|
- lib/sports_data_api/stats.rb
|
268
291
|
- lib/sports_data_api/version.rb
|
269
292
|
- spec/cassettes/sports_data_api_mlb_game.yml
|
@@ -299,6 +322,15 @@ files:
|
|
299
322
|
- spec/cassettes/sports_data_api_nfl_venue.yml
|
300
323
|
- spec/cassettes/sports_data_api_nfl_weather.yml
|
301
324
|
- spec/cassettes/sports_data_api_nfl_week.yml
|
325
|
+
- spec/cassettes/sports_data_api_nhl.yml
|
326
|
+
- spec/cassettes/sports_data_api_nhl_broadcast.yml
|
327
|
+
- spec/cassettes/sports_data_api_nhl_game.yml
|
328
|
+
- spec/cassettes/sports_data_api_nhl_games.yml
|
329
|
+
- spec/cassettes/sports_data_api_nhl_league_hierarchy.yml
|
330
|
+
- spec/cassettes/sports_data_api_nhl_player.yml
|
331
|
+
- spec/cassettes/sports_data_api_nhl_season.yml
|
332
|
+
- spec/cassettes/sports_data_api_nhl_team.yml
|
333
|
+
- spec/cassettes/sports_data_api_nhl_venue.yml
|
302
334
|
- spec/lib/sports_data_api/mlb/boxscore_spec.rb
|
303
335
|
- spec/lib/sports_data_api/mlb/game_spec.rb
|
304
336
|
- spec/lib/sports_data_api/mlb/game_stats_spec.rb
|
@@ -331,6 +363,15 @@ files:
|
|
331
363
|
- spec/lib/sports_data_api/nfl/weather_spec.rb
|
332
364
|
- spec/lib/sports_data_api/nfl/week_spec.rb
|
333
365
|
- spec/lib/sports_data_api/nfl_spec.rb
|
366
|
+
- spec/lib/sports_data_api/nhl/broadcast_spec.rb
|
367
|
+
- spec/lib/sports_data_api/nhl/game_spec.rb
|
368
|
+
- spec/lib/sports_data_api/nhl/games_spec.rb
|
369
|
+
- spec/lib/sports_data_api/nhl/player_spec.rb
|
370
|
+
- spec/lib/sports_data_api/nhl/season_spec.rb
|
371
|
+
- spec/lib/sports_data_api/nhl/team_spec.rb
|
372
|
+
- spec/lib/sports_data_api/nhl/teams_spec.rb
|
373
|
+
- spec/lib/sports_data_api/nhl/venue_spec.rb
|
374
|
+
- spec/lib/sports_data_api/nhl_spec.rb
|
334
375
|
- spec/lib/sports_data_api_spec.rb
|
335
376
|
- spec/spec_helper.rb
|
336
377
|
- sports_data_api.gemspec
|
@@ -353,7 +394,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
353
394
|
version: '0'
|
354
395
|
requirements: []
|
355
396
|
rubyforge_project:
|
356
|
-
rubygems_version: 2.
|
397
|
+
rubygems_version: 2.4.3
|
357
398
|
signing_key:
|
358
399
|
specification_version: 4
|
359
400
|
summary: SportsData’s comprehensive data coverage includes all major U.S. sports,
|
@@ -394,6 +435,15 @@ test_files:
|
|
394
435
|
- spec/cassettes/sports_data_api_nfl_venue.yml
|
395
436
|
- spec/cassettes/sports_data_api_nfl_weather.yml
|
396
437
|
- spec/cassettes/sports_data_api_nfl_week.yml
|
438
|
+
- spec/cassettes/sports_data_api_nhl.yml
|
439
|
+
- spec/cassettes/sports_data_api_nhl_broadcast.yml
|
440
|
+
- spec/cassettes/sports_data_api_nhl_game.yml
|
441
|
+
- spec/cassettes/sports_data_api_nhl_games.yml
|
442
|
+
- spec/cassettes/sports_data_api_nhl_league_hierarchy.yml
|
443
|
+
- spec/cassettes/sports_data_api_nhl_player.yml
|
444
|
+
- spec/cassettes/sports_data_api_nhl_season.yml
|
445
|
+
- spec/cassettes/sports_data_api_nhl_team.yml
|
446
|
+
- spec/cassettes/sports_data_api_nhl_venue.yml
|
397
447
|
- spec/lib/sports_data_api/mlb/boxscore_spec.rb
|
398
448
|
- spec/lib/sports_data_api/mlb/game_spec.rb
|
399
449
|
- spec/lib/sports_data_api/mlb/game_stats_spec.rb
|
@@ -426,5 +476,14 @@ test_files:
|
|
426
476
|
- spec/lib/sports_data_api/nfl/weather_spec.rb
|
427
477
|
- spec/lib/sports_data_api/nfl/week_spec.rb
|
428
478
|
- spec/lib/sports_data_api/nfl_spec.rb
|
479
|
+
- spec/lib/sports_data_api/nhl/broadcast_spec.rb
|
480
|
+
- spec/lib/sports_data_api/nhl/game_spec.rb
|
481
|
+
- spec/lib/sports_data_api/nhl/games_spec.rb
|
482
|
+
- spec/lib/sports_data_api/nhl/player_spec.rb
|
483
|
+
- spec/lib/sports_data_api/nhl/season_spec.rb
|
484
|
+
- spec/lib/sports_data_api/nhl/team_spec.rb
|
485
|
+
- spec/lib/sports_data_api/nhl/teams_spec.rb
|
486
|
+
- spec/lib/sports_data_api/nhl/venue_spec.rb
|
487
|
+
- spec/lib/sports_data_api/nhl_spec.rb
|
429
488
|
- spec/lib/sports_data_api_spec.rb
|
430
489
|
- spec/spec_helper.rb
|