sports_data_api 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +52 -3
- data/lib/sports_data_api.rb +1 -0
- data/lib/sports_data_api/ncaamb.rb +93 -0
- data/lib/sports_data_api/ncaamb/broadcast.rb +14 -0
- data/lib/sports_data_api/ncaamb/game.rb +51 -0
- data/lib/sports_data_api/ncaamb/games.rb +26 -0
- data/lib/sports_data_api/ncaamb/player.rb +22 -0
- data/lib/sports_data_api/ncaamb/season.rb +28 -0
- data/lib/sports_data_api/ncaamb/team.rb +40 -0
- data/lib/sports_data_api/ncaamb/teams.rb +83 -0
- data/lib/sports_data_api/ncaamb/tournament.rb +30 -0
- data/lib/sports_data_api/ncaamb/tournament_game.rb +23 -0
- data/lib/sports_data_api/ncaamb/tournament_list.rb +28 -0
- data/lib/sports_data_api/ncaamb/tournament_schedule.rb +51 -0
- data/lib/sports_data_api/ncaamb/venue.rb +20 -0
- data/lib/sports_data_api/version.rb +1 -1
- data/spec/cassettes/sports_data_api_ncaamb.yml +171013 -0
- data/spec/cassettes/sports_data_api_ncaamb_broadcast.yml +844 -0
- data/spec/cassettes/sports_data_api_ncaamb_game.yml +88015 -0
- data/spec/cassettes/sports_data_api_ncaamb_games.yml +844 -0
- data/spec/cassettes/sports_data_api_ncaamb_league_hierarchy.yml +9009 -0
- data/spec/cassettes/sports_data_api_ncaamb_player.yml +188 -0
- data/spec/cassettes/sports_data_api_ncaamb_season.yml +85489 -0
- data/spec/cassettes/sports_data_api_ncaamb_team.yml +5259 -0
- data/spec/cassettes/sports_data_api_ncaamb_tournament.yml +1773 -0
- data/spec/cassettes/sports_data_api_ncaamb_tournament_game.yml +2334 -0
- data/spec/cassettes/sports_data_api_ncaamb_tournament_list.yml +71 -0
- data/spec/cassettes/sports_data_api_ncaamb_tournament_schedule.yml +1705 -0
- data/spec/cassettes/sports_data_api_ncaamb_venue.yml +306 -0
- data/spec/lib/sports_data_api/mlb/player_spec.rb +1 -1
- data/spec/lib/sports_data_api/mlb/players_spec.rb +1 -1
- data/spec/lib/sports_data_api/mlb/team_spec.rb +1 -1
- data/spec/lib/sports_data_api/mlb/teams_spec.rb +1 -1
- data/spec/lib/sports_data_api/ncaamb/broadcast_spec.rb +18 -0
- data/spec/lib/sports_data_api/ncaamb/game_spec.rb +87 -0
- data/spec/lib/sports_data_api/ncaamb/games_spec.rb +19 -0
- data/spec/lib/sports_data_api/ncaamb/player_spec.rb +68 -0
- data/spec/lib/sports_data_api/ncaamb/season_spec.rb +41 -0
- data/spec/lib/sports_data_api/ncaamb/team_spec.rb +182 -0
- data/spec/lib/sports_data_api/ncaamb/teams_spec.rb +76 -0
- data/spec/lib/sports_data_api/ncaamb/tournament_game_spec.rb +38 -0
- data/spec/lib/sports_data_api/ncaamb/tournament_list_spec.rb +42 -0
- data/spec/lib/sports_data_api/ncaamb/tournament_schedule_spec.rb +43 -0
- data/spec/lib/sports_data_api/ncaamb/tournament_spec.rb +25 -0
- data/spec/lib/sports_data_api/ncaamb/venue_spec.rb +24 -0
- data/spec/lib/sports_data_api/ncaamb_spec.rb +41 -0
- data/spec/spec_helper.rb +1 -0
- data/sports_data_api.gemspec +1 -1
- metadata +72 -7
@@ -0,0 +1,43 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SportsDataApi::Ncaamb::TournamentSchedule, vcr: {
|
4
|
+
cassette_name: 'sports_data_api_ncaamb_tournament_schedule',
|
5
|
+
record: :new_episodes,
|
6
|
+
match_requests_on: [:host, :path]
|
7
|
+
} do
|
8
|
+
subject { SportsDataApi::Ncaamb::TournamentSchedule }
|
9
|
+
describe '.valid?' do
|
10
|
+
context :CT do
|
11
|
+
it { SportsDataApi::Ncaamb::TournamentSchedule.valid?(:CT).should be_true }
|
12
|
+
end
|
13
|
+
context :REG do
|
14
|
+
it { subject.valid?(:REG).should be_true }
|
15
|
+
end
|
16
|
+
context :PST do
|
17
|
+
it { subject.valid?(:PST).should be_true }
|
18
|
+
end
|
19
|
+
context :ct do
|
20
|
+
it { subject.valid?(:ct).should be_false }
|
21
|
+
end
|
22
|
+
context :reg do
|
23
|
+
it { subject.valid?(:reg).should be_false }
|
24
|
+
end
|
25
|
+
context :pst do
|
26
|
+
it { subject.valid?(:pst).should be_false }
|
27
|
+
end
|
28
|
+
end
|
29
|
+
context 'results from daily schedule fetch' do
|
30
|
+
let(:tournament_schedule) do
|
31
|
+
SportsDataApi.set_access_level(:ncaamb, 't')
|
32
|
+
SportsDataApi.set_key(:ncaamb, api_key(:ncaamb))
|
33
|
+
SportsDataApi::Ncaamb.tournament_schedule(2013, :PST, "541807c8-9a76-4999-a2ad-c0ba8a553c3d")
|
34
|
+
end
|
35
|
+
subject { tournament_schedule }
|
36
|
+
it { should be_an_instance_of(SportsDataApi::Ncaamb::TournamentSchedule) }
|
37
|
+
its(:id) { should eq "541807c8-9a76-4999-a2ad-c0ba8a553c3d" }
|
38
|
+
its(:name) { should eq "NCAA Men's Division I Basketball Tournament" }
|
39
|
+
its(:year) { should eq 2013 }
|
40
|
+
its(:season) { should eq :PST }
|
41
|
+
its(:games) { should have(67).tournament_games }
|
42
|
+
end
|
43
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SportsDataApi::Ncaamb::Tournament, vcr: {
|
4
|
+
cassette_name: 'sports_data_api_ncaamb_tournament',
|
5
|
+
record: :new_episodes,
|
6
|
+
match_requests_on: [:host, :path]
|
7
|
+
} do
|
8
|
+
let(:tournament_list) do
|
9
|
+
SportsDataApi.set_access_level(:ncaamb, 't')
|
10
|
+
SportsDataApi.set_key(:ncaamb, api_key(:ncaamb))
|
11
|
+
SportsDataApi::Ncaamb.tournament_list(2013, :pst)
|
12
|
+
end
|
13
|
+
context "tournament" do
|
14
|
+
subject { tournament_list.tournaments.first }
|
15
|
+
its(:id) { should eq "541807c8-9a76-4999-a2ad-c0ba8a553c3d" }
|
16
|
+
its(:year) { should eq 2013 }
|
17
|
+
its(:season) { should eq :PST }
|
18
|
+
its(:name) { should eq "NCAA Men's Division I Basketball Tournament" }
|
19
|
+
its(:location) { should eq "Arlington, TX, USA" }
|
20
|
+
its(:status) { should eq "closed" }
|
21
|
+
its(:start_date) { should eq Time.parse("2014-03-18") }
|
22
|
+
its(:end_date) { should eq Time.parse("2014-04-07") }
|
23
|
+
its(:schedule) { should be_an_instance_of(SportsDataApi::Ncaamb::TournamentSchedule) }
|
24
|
+
end
|
25
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SportsDataApi::Ncaamb::Venue, vcr: {
|
4
|
+
cassette_name: 'sports_data_api_ncaamb_venue',
|
5
|
+
record: :new_episodes,
|
6
|
+
match_requests_on: [:host, :path]
|
7
|
+
} do
|
8
|
+
let(:daily_schedule) do
|
9
|
+
SportsDataApi.set_access_level(:ncaamb, 't')
|
10
|
+
SportsDataApi.set_key(:ncaamb, api_key(:ncaamb))
|
11
|
+
SportsDataApi::Ncaamb.daily(2015, 2, 13)
|
12
|
+
end
|
13
|
+
context 'results from weekly schedule fetch' do
|
14
|
+
subject { daily_schedule.first.venue }
|
15
|
+
its(:id) { should eq '2e713b00-8015-42c7-813b-643f41b0d384' }
|
16
|
+
its(:name) { should eq 'Stan Sheriff Center' }
|
17
|
+
its(:address) { should eq '1355 Lower Campus Dr' }
|
18
|
+
its(:city) { should eq 'Honolulu' }
|
19
|
+
its(:state) { should eq 'HI' }
|
20
|
+
its(:zip) { '96822' }
|
21
|
+
its(:country) { should eq 'USA' }
|
22
|
+
its(:capacity) { should eq '10300' }
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,41 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SportsDataApi::Ncaamb, vcr: {
|
4
|
+
cassette_name: 'sports_data_api_ncaamb',
|
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(:ncaamb, 'invalid_key')
|
12
|
+
SportsDataApi.set_access_level(:ncaamb, '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/ncaamb-t3/games/2014/REG/schedule.xml' }
|
28
|
+
before(:each) do
|
29
|
+
SportsDataApi.set_key(:ncaamb, 'invalid_key')
|
30
|
+
SportsDataApi.set_access_level(:ncaamb, 't')
|
31
|
+
@schedule_xml = RestClient.get("#{schedule_url}?api_key=#{api_key(:ncaamb)}")
|
32
|
+
end
|
33
|
+
describe '.schedule' do
|
34
|
+
it 'creates a valid Sports Data LLC url' do
|
35
|
+
params = { params: { api_key: SportsDataApi.key(:ncaamb) } }
|
36
|
+
RestClient.should_receive(:get).with(schedule_url, params).and_return(@schedule_xml)
|
37
|
+
subject.schedule(2014, :REG)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
data/spec/spec_helper.rb
CHANGED
data/sports_data_api.gemspec
CHANGED
@@ -15,7 +15,7 @@ Gem::Specification.new do |gem|
|
|
15
15
|
gem.require_paths = %w{lib}
|
16
16
|
gem.version = SportsDataApi::VERSION
|
17
17
|
|
18
|
-
gem.add_dependency 'nokogiri', '
|
18
|
+
gem.add_dependency 'nokogiri', '>= 1.5.0'
|
19
19
|
gem.add_dependency 'rest-client', '~> 1.6.7'
|
20
20
|
gem.add_dependency 'multi_json', '~> 1.10.1'
|
21
21
|
|
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.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan
|
@@ -9,22 +9,22 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2015-03-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
16
16
|
requirement: !ruby/object:Gem::Requirement
|
17
17
|
requirements:
|
18
|
-
- - "
|
18
|
+
- - ">="
|
19
19
|
- !ruby/object:Gem::Version
|
20
|
-
version: 1.5.
|
20
|
+
version: 1.5.0
|
21
21
|
type: :runtime
|
22
22
|
prerelease: false
|
23
23
|
version_requirements: !ruby/object:Gem::Requirement
|
24
24
|
requirements:
|
25
|
-
- - "
|
25
|
+
- - ">="
|
26
26
|
- !ruby/object:Gem::Version
|
27
|
-
version: 1.5.
|
27
|
+
version: 1.5.0
|
28
28
|
- !ruby/object:Gem::Dependency
|
29
29
|
name: rest-client
|
30
30
|
requirement: !ruby/object:Gem::Requirement
|
@@ -263,6 +263,19 @@ files:
|
|
263
263
|
- lib/sports_data_api/nba/team.rb
|
264
264
|
- lib/sports_data_api/nba/teams.rb
|
265
265
|
- lib/sports_data_api/nba/venue.rb
|
266
|
+
- lib/sports_data_api/ncaamb.rb
|
267
|
+
- lib/sports_data_api/ncaamb/broadcast.rb
|
268
|
+
- lib/sports_data_api/ncaamb/game.rb
|
269
|
+
- lib/sports_data_api/ncaamb/games.rb
|
270
|
+
- lib/sports_data_api/ncaamb/player.rb
|
271
|
+
- lib/sports_data_api/ncaamb/season.rb
|
272
|
+
- lib/sports_data_api/ncaamb/team.rb
|
273
|
+
- lib/sports_data_api/ncaamb/teams.rb
|
274
|
+
- lib/sports_data_api/ncaamb/tournament.rb
|
275
|
+
- lib/sports_data_api/ncaamb/tournament_game.rb
|
276
|
+
- lib/sports_data_api/ncaamb/tournament_list.rb
|
277
|
+
- lib/sports_data_api/ncaamb/tournament_schedule.rb
|
278
|
+
- lib/sports_data_api/ncaamb/venue.rb
|
266
279
|
- lib/sports_data_api/nfl.rb
|
267
280
|
- lib/sports_data_api/nfl/broadcast.rb
|
268
281
|
- lib/sports_data_api/nfl/game.rb
|
@@ -309,6 +322,19 @@ files:
|
|
309
322
|
- spec/cassettes/sports_data_api_nba_team.yml
|
310
323
|
- spec/cassettes/sports_data_api_nba_team_roster.yml
|
311
324
|
- spec/cassettes/sports_data_api_nba_venue.yml
|
325
|
+
- spec/cassettes/sports_data_api_ncaamb.yml
|
326
|
+
- spec/cassettes/sports_data_api_ncaamb_broadcast.yml
|
327
|
+
- spec/cassettes/sports_data_api_ncaamb_game.yml
|
328
|
+
- spec/cassettes/sports_data_api_ncaamb_games.yml
|
329
|
+
- spec/cassettes/sports_data_api_ncaamb_league_hierarchy.yml
|
330
|
+
- spec/cassettes/sports_data_api_ncaamb_player.yml
|
331
|
+
- spec/cassettes/sports_data_api_ncaamb_season.yml
|
332
|
+
- spec/cassettes/sports_data_api_ncaamb_team.yml
|
333
|
+
- spec/cassettes/sports_data_api_ncaamb_tournament.yml
|
334
|
+
- spec/cassettes/sports_data_api_ncaamb_tournament_game.yml
|
335
|
+
- spec/cassettes/sports_data_api_ncaamb_tournament_list.yml
|
336
|
+
- spec/cassettes/sports_data_api_ncaamb_tournament_schedule.yml
|
337
|
+
- spec/cassettes/sports_data_api_ncaamb_venue.yml
|
312
338
|
- spec/cassettes/sports_data_api_nfl.yml
|
313
339
|
- spec/cassettes/sports_data_api_nfl_broadcast.yml
|
314
340
|
- spec/cassettes/sports_data_api_nfl_game.yml
|
@@ -350,6 +376,19 @@ files:
|
|
350
376
|
- spec/lib/sports_data_api/nba/teams_spec.rb
|
351
377
|
- spec/lib/sports_data_api/nba/venue_spec.rb
|
352
378
|
- spec/lib/sports_data_api/nba_spec.rb
|
379
|
+
- spec/lib/sports_data_api/ncaamb/broadcast_spec.rb
|
380
|
+
- spec/lib/sports_data_api/ncaamb/game_spec.rb
|
381
|
+
- spec/lib/sports_data_api/ncaamb/games_spec.rb
|
382
|
+
- spec/lib/sports_data_api/ncaamb/player_spec.rb
|
383
|
+
- spec/lib/sports_data_api/ncaamb/season_spec.rb
|
384
|
+
- spec/lib/sports_data_api/ncaamb/team_spec.rb
|
385
|
+
- spec/lib/sports_data_api/ncaamb/teams_spec.rb
|
386
|
+
- spec/lib/sports_data_api/ncaamb/tournament_game_spec.rb
|
387
|
+
- spec/lib/sports_data_api/ncaamb/tournament_list_spec.rb
|
388
|
+
- spec/lib/sports_data_api/ncaamb/tournament_schedule_spec.rb
|
389
|
+
- spec/lib/sports_data_api/ncaamb/tournament_spec.rb
|
390
|
+
- spec/lib/sports_data_api/ncaamb/venue_spec.rb
|
391
|
+
- spec/lib/sports_data_api/ncaamb_spec.rb
|
353
392
|
- spec/lib/sports_data_api/nfl/broadcast_spec.rb
|
354
393
|
- spec/lib/sports_data_api/nfl/game_spec.rb
|
355
394
|
- spec/lib/sports_data_api/nfl/games_spec.rb
|
@@ -394,7 +433,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
394
433
|
version: '0'
|
395
434
|
requirements: []
|
396
435
|
rubyforge_project:
|
397
|
-
rubygems_version: 2.4.
|
436
|
+
rubygems_version: 2.4.6
|
398
437
|
signing_key:
|
399
438
|
specification_version: 4
|
400
439
|
summary: SportsData’s comprehensive data coverage includes all major U.S. sports,
|
@@ -422,6 +461,19 @@ test_files:
|
|
422
461
|
- spec/cassettes/sports_data_api_nba_team.yml
|
423
462
|
- spec/cassettes/sports_data_api_nba_team_roster.yml
|
424
463
|
- spec/cassettes/sports_data_api_nba_venue.yml
|
464
|
+
- spec/cassettes/sports_data_api_ncaamb.yml
|
465
|
+
- spec/cassettes/sports_data_api_ncaamb_broadcast.yml
|
466
|
+
- spec/cassettes/sports_data_api_ncaamb_game.yml
|
467
|
+
- spec/cassettes/sports_data_api_ncaamb_games.yml
|
468
|
+
- spec/cassettes/sports_data_api_ncaamb_league_hierarchy.yml
|
469
|
+
- spec/cassettes/sports_data_api_ncaamb_player.yml
|
470
|
+
- spec/cassettes/sports_data_api_ncaamb_season.yml
|
471
|
+
- spec/cassettes/sports_data_api_ncaamb_team.yml
|
472
|
+
- spec/cassettes/sports_data_api_ncaamb_tournament.yml
|
473
|
+
- spec/cassettes/sports_data_api_ncaamb_tournament_game.yml
|
474
|
+
- spec/cassettes/sports_data_api_ncaamb_tournament_list.yml
|
475
|
+
- spec/cassettes/sports_data_api_ncaamb_tournament_schedule.yml
|
476
|
+
- spec/cassettes/sports_data_api_ncaamb_venue.yml
|
425
477
|
- spec/cassettes/sports_data_api_nfl.yml
|
426
478
|
- spec/cassettes/sports_data_api_nfl_broadcast.yml
|
427
479
|
- spec/cassettes/sports_data_api_nfl_game.yml
|
@@ -463,6 +515,19 @@ test_files:
|
|
463
515
|
- spec/lib/sports_data_api/nba/teams_spec.rb
|
464
516
|
- spec/lib/sports_data_api/nba/venue_spec.rb
|
465
517
|
- spec/lib/sports_data_api/nba_spec.rb
|
518
|
+
- spec/lib/sports_data_api/ncaamb/broadcast_spec.rb
|
519
|
+
- spec/lib/sports_data_api/ncaamb/game_spec.rb
|
520
|
+
- spec/lib/sports_data_api/ncaamb/games_spec.rb
|
521
|
+
- spec/lib/sports_data_api/ncaamb/player_spec.rb
|
522
|
+
- spec/lib/sports_data_api/ncaamb/season_spec.rb
|
523
|
+
- spec/lib/sports_data_api/ncaamb/team_spec.rb
|
524
|
+
- spec/lib/sports_data_api/ncaamb/teams_spec.rb
|
525
|
+
- spec/lib/sports_data_api/ncaamb/tournament_game_spec.rb
|
526
|
+
- spec/lib/sports_data_api/ncaamb/tournament_list_spec.rb
|
527
|
+
- spec/lib/sports_data_api/ncaamb/tournament_schedule_spec.rb
|
528
|
+
- spec/lib/sports_data_api/ncaamb/tournament_spec.rb
|
529
|
+
- spec/lib/sports_data_api/ncaamb/venue_spec.rb
|
530
|
+
- spec/lib/sports_data_api/ncaamb_spec.rb
|
466
531
|
- spec/lib/sports_data_api/nfl/broadcast_spec.rb
|
467
532
|
- spec/lib/sports_data_api/nfl/game_spec.rb
|
468
533
|
- spec/lib/sports_data_api/nfl/games_spec.rb
|