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.
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