sports_data_api 0.2.0 → 0.2.1

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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +52 -3
  3. data/lib/sports_data_api.rb +1 -0
  4. data/lib/sports_data_api/ncaamb.rb +93 -0
  5. data/lib/sports_data_api/ncaamb/broadcast.rb +14 -0
  6. data/lib/sports_data_api/ncaamb/game.rb +51 -0
  7. data/lib/sports_data_api/ncaamb/games.rb +26 -0
  8. data/lib/sports_data_api/ncaamb/player.rb +22 -0
  9. data/lib/sports_data_api/ncaamb/season.rb +28 -0
  10. data/lib/sports_data_api/ncaamb/team.rb +40 -0
  11. data/lib/sports_data_api/ncaamb/teams.rb +83 -0
  12. data/lib/sports_data_api/ncaamb/tournament.rb +30 -0
  13. data/lib/sports_data_api/ncaamb/tournament_game.rb +23 -0
  14. data/lib/sports_data_api/ncaamb/tournament_list.rb +28 -0
  15. data/lib/sports_data_api/ncaamb/tournament_schedule.rb +51 -0
  16. data/lib/sports_data_api/ncaamb/venue.rb +20 -0
  17. data/lib/sports_data_api/version.rb +1 -1
  18. data/spec/cassettes/sports_data_api_ncaamb.yml +171013 -0
  19. data/spec/cassettes/sports_data_api_ncaamb_broadcast.yml +844 -0
  20. data/spec/cassettes/sports_data_api_ncaamb_game.yml +88015 -0
  21. data/spec/cassettes/sports_data_api_ncaamb_games.yml +844 -0
  22. data/spec/cassettes/sports_data_api_ncaamb_league_hierarchy.yml +9009 -0
  23. data/spec/cassettes/sports_data_api_ncaamb_player.yml +188 -0
  24. data/spec/cassettes/sports_data_api_ncaamb_season.yml +85489 -0
  25. data/spec/cassettes/sports_data_api_ncaamb_team.yml +5259 -0
  26. data/spec/cassettes/sports_data_api_ncaamb_tournament.yml +1773 -0
  27. data/spec/cassettes/sports_data_api_ncaamb_tournament_game.yml +2334 -0
  28. data/spec/cassettes/sports_data_api_ncaamb_tournament_list.yml +71 -0
  29. data/spec/cassettes/sports_data_api_ncaamb_tournament_schedule.yml +1705 -0
  30. data/spec/cassettes/sports_data_api_ncaamb_venue.yml +306 -0
  31. data/spec/lib/sports_data_api/mlb/player_spec.rb +1 -1
  32. data/spec/lib/sports_data_api/mlb/players_spec.rb +1 -1
  33. data/spec/lib/sports_data_api/mlb/team_spec.rb +1 -1
  34. data/spec/lib/sports_data_api/mlb/teams_spec.rb +1 -1
  35. data/spec/lib/sports_data_api/ncaamb/broadcast_spec.rb +18 -0
  36. data/spec/lib/sports_data_api/ncaamb/game_spec.rb +87 -0
  37. data/spec/lib/sports_data_api/ncaamb/games_spec.rb +19 -0
  38. data/spec/lib/sports_data_api/ncaamb/player_spec.rb +68 -0
  39. data/spec/lib/sports_data_api/ncaamb/season_spec.rb +41 -0
  40. data/spec/lib/sports_data_api/ncaamb/team_spec.rb +182 -0
  41. data/spec/lib/sports_data_api/ncaamb/teams_spec.rb +76 -0
  42. data/spec/lib/sports_data_api/ncaamb/tournament_game_spec.rb +38 -0
  43. data/spec/lib/sports_data_api/ncaamb/tournament_list_spec.rb +42 -0
  44. data/spec/lib/sports_data_api/ncaamb/tournament_schedule_spec.rb +43 -0
  45. data/spec/lib/sports_data_api/ncaamb/tournament_spec.rb +25 -0
  46. data/spec/lib/sports_data_api/ncaamb/venue_spec.rb +24 -0
  47. data/spec/lib/sports_data_api/ncaamb_spec.rb +41 -0
  48. data/spec/spec_helper.rb +1 -0
  49. data/sports_data_api.gemspec +1 -1
  50. 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
@@ -52,4 +52,5 @@ VCR.configure do |c|
52
52
  c.filter_sensitive_data('<API_KEY>') { api_key(:nba) }
53
53
  c.filter_sensitive_data('<API_KEY>') { api_key(:mlb) }
54
54
  c.filter_sensitive_data('<API_KEY>') { api_key(:nhl) }
55
+ c.filter_sensitive_data('<API_KEY>') { api_key(:ncaamb) }
55
56
  end
@@ -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', '~> 1.5.5'
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.0
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: 2014-12-07 00:00:00.000000000 Z
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.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.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.3
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