sports_data_api 0.0.3 → 0.1.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 (124) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +7 -0
  3. data/.ruby-gemset +1 -0
  4. data/.ruby-version +1 -0
  5. data/.travis.yml +2 -1
  6. data/Guardfile +1 -1
  7. data/README.md +20 -5
  8. data/lib/sports_data_api/exception.rb +5 -0
  9. data/lib/sports_data_api/mlb/boxscore.rb +36 -0
  10. data/lib/sports_data_api/mlb/broadcast.rb +14 -0
  11. data/lib/sports_data_api/mlb/game.rb +30 -0
  12. data/lib/sports_data_api/mlb/game_stat.rb +26 -0
  13. data/lib/sports_data_api/mlb/game_stats.rb +44 -0
  14. data/lib/sports_data_api/mlb/games.rb +29 -0
  15. data/lib/sports_data_api/mlb/player.rb +17 -0
  16. data/lib/sports_data_api/mlb/players.rb +42 -0
  17. data/lib/sports_data_api/mlb/season.rb +18 -0
  18. data/lib/sports_data_api/mlb/team.rb +35 -0
  19. data/lib/sports_data_api/mlb/teams.rb +42 -0
  20. data/lib/sports_data_api/mlb/venue.rb +15 -0
  21. data/lib/sports_data_api/mlb/venues.rb +37 -0
  22. data/lib/sports_data_api/mlb.rb +82 -0
  23. data/lib/sports_data_api/nba/broadcast.rb +14 -0
  24. data/lib/sports_data_api/nba/game.rb +54 -0
  25. data/lib/sports_data_api/nba/games.rb +26 -0
  26. data/lib/sports_data_api/nba/player.rb +22 -0
  27. data/lib/sports_data_api/nba/season.rb +28 -0
  28. data/lib/sports_data_api/nba/team.rb +40 -0
  29. data/lib/sports_data_api/nba/teams.rb +83 -0
  30. data/lib/sports_data_api/nba/venue.rb +20 -0
  31. data/lib/sports_data_api/nba.rb +71 -0
  32. data/lib/sports_data_api/nfl/broadcast.rb +15 -0
  33. data/lib/sports_data_api/nfl/game.rb +83 -0
  34. data/lib/sports_data_api/nfl/games.rb +29 -0
  35. data/lib/sports_data_api/nfl/injuries.rb +9 -0
  36. data/lib/sports_data_api/nfl/player.rb +15 -0
  37. data/lib/sports_data_api/nfl/player_season_stats.rb +26 -0
  38. data/lib/sports_data_api/nfl/season.rb +27 -0
  39. data/lib/sports_data_api/nfl/team.rb +46 -0
  40. data/lib/sports_data_api/nfl/team_roster.rb +17 -0
  41. data/lib/sports_data_api/nfl/team_season_stats.rb +19 -0
  42. data/lib/sports_data_api/nfl/teams.rb +84 -0
  43. data/lib/sports_data_api/nfl/venue.rb +22 -0
  44. data/lib/sports_data_api/nfl/weather.rb +17 -0
  45. data/lib/sports_data_api/nfl/week.rb +20 -0
  46. data/lib/sports_data_api/nfl.rb +98 -0
  47. data/lib/sports_data_api/stats.rb +13 -0
  48. data/lib/sports_data_api/version.rb +1 -1
  49. data/lib/sports_data_api.rb +37 -12
  50. data/spec/cassettes/sports_data_api_mlb_game.yml +20193 -0
  51. data/spec/cassettes/sports_data_api_mlb_game_boxscore.yml +225 -0
  52. data/spec/cassettes/sports_data_api_mlb_game_stats.yml +657 -0
  53. data/spec/cassettes/sports_data_api_mlb_games.yml +195 -0
  54. data/spec/cassettes/sports_data_api_mlb_player.yml +10891 -0
  55. data/spec/cassettes/sports_data_api_mlb_season.yml +20193 -0
  56. data/spec/cassettes/sports_data_api_mlb_team.yml +182 -0
  57. data/spec/cassettes/sports_data_api_mlb_team_roster.yml +10891 -0
  58. data/spec/cassettes/sports_data_api_mlb_teams.yml +403 -0
  59. data/spec/cassettes/sports_data_api_mlb_venues.yml +343 -0
  60. data/spec/cassettes/sports_data_api_nba.yml +74176 -0
  61. data/spec/cassettes/sports_data_api_nba_broadcast.yml +88 -0
  62. data/spec/cassettes/sports_data_api_nba_game.yml +21202 -0
  63. data/spec/cassettes/sports_data_api_nba_games.yml +128 -0
  64. data/spec/cassettes/sports_data_api_nba_league_hierarchy.yml +545 -0
  65. data/spec/cassettes/sports_data_api_nba_player.yml +244 -0
  66. data/spec/cassettes/sports_data_api_nba_season.yml +18228 -0
  67. data/spec/cassettes/sports_data_api_nba_team.yml +1398 -0
  68. data/spec/cassettes/sports_data_api_nba_team_roster.yml +244 -0
  69. data/spec/cassettes/sports_data_api_nba_venue.yml +88 -0
  70. data/spec/cassettes/sports_data_api_nfl.yml +19105 -0
  71. data/spec/cassettes/sports_data_api_nfl_broadcast.yml +112 -0
  72. data/spec/cassettes/sports_data_api_nfl_game.yml +16139 -0
  73. data/spec/cassettes/sports_data_api_nfl_games.yml +912 -0
  74. data/spec/cassettes/sports_data_api_nfl_player_season_stats.yml +997 -0
  75. data/spec/cassettes/sports_data_api_nfl_season.yml +14100 -0
  76. data/spec/cassettes/sports_data_api_nfl_team.yml +783 -0
  77. data/spec/cassettes/sports_data_api_nfl_team_hierarchy.yml +909 -0
  78. data/spec/cassettes/sports_data_api_nfl_team_roster.yml +618 -0
  79. data/spec/cassettes/sports_data_api_nfl_team_season_stats.yml +981 -0
  80. data/spec/cassettes/sports_data_api_nfl_venue.yml +112 -0
  81. data/spec/cassettes/sports_data_api_nfl_weather.yml +112 -0
  82. data/spec/cassettes/sports_data_api_nfl_week.yml +14100 -0
  83. data/spec/lib/sports_data_api/mlb/boxscore_spec.rb +63 -0
  84. data/spec/lib/sports_data_api/mlb/game_spec.rb +24 -0
  85. data/spec/lib/sports_data_api/mlb/game_stats_spec.rb +25 -0
  86. data/spec/lib/sports_data_api/mlb/games_spec.rb +24 -0
  87. data/spec/lib/sports_data_api/mlb/player_spec.rb +103 -0
  88. data/spec/lib/sports_data_api/mlb/players_spec.rb +17 -0
  89. data/spec/lib/sports_data_api/mlb/season_spec.rb +19 -0
  90. data/spec/lib/sports_data_api/mlb/team_spec.rb +24 -0
  91. data/spec/lib/sports_data_api/mlb/teams_spec.rb +30 -0
  92. data/spec/lib/sports_data_api/mlb/venues_spec.rb +17 -0
  93. data/spec/lib/sports_data_api/nba/broadcast_spec.rb +18 -0
  94. data/spec/lib/sports_data_api/nba/game_spec.rb +87 -0
  95. data/spec/lib/sports_data_api/nba/games_spec.rb +19 -0
  96. data/spec/lib/sports_data_api/nba/player_spec.rb +72 -0
  97. data/spec/lib/sports_data_api/nba/season_spec.rb +41 -0
  98. data/spec/lib/sports_data_api/nba/team_spec.rb +185 -0
  99. data/spec/lib/sports_data_api/nba/teams_spec.rb +76 -0
  100. data/spec/lib/sports_data_api/nba/venue_spec.rb +24 -0
  101. data/spec/lib/sports_data_api/nba_spec.rb +41 -0
  102. data/spec/lib/sports_data_api/nfl/broadcast_spec.rb +19 -0
  103. data/spec/lib/sports_data_api/nfl/game_spec.rb +126 -0
  104. data/spec/lib/sports_data_api/nfl/games_spec.rb +21 -0
  105. data/spec/lib/sports_data_api/nfl/player_season_stats.rb +28 -0
  106. data/spec/lib/sports_data_api/nfl/season_spec.rb +41 -0
  107. data/spec/lib/sports_data_api/nfl/team_roster_spec.rb +28 -0
  108. data/spec/lib/sports_data_api/nfl/team_season_stats.rb +19 -0
  109. data/spec/lib/sports_data_api/nfl/team_spec.rb +52 -0
  110. data/spec/lib/sports_data_api/nfl/teams_spec.rb +77 -0
  111. data/spec/lib/sports_data_api/nfl/venue_spec.rb +26 -0
  112. data/spec/lib/sports_data_api/nfl/weather_spec.rb +21 -0
  113. data/spec/lib/sports_data_api/nfl/week_spec.rb +21 -0
  114. data/spec/lib/sports_data_api/nfl_spec.rb +113 -0
  115. data/spec/lib/sports_data_api_spec.rb +8 -5
  116. data/spec/spec_helper.rb +30 -9
  117. data/sports_data_api.gemspec +19 -15
  118. metadata +267 -76
  119. data/.rvmrc +0 -38
  120. data/lib/nfl.rb +0 -149
  121. data/spec/lib/nfl_spec.rb +0 -125
  122. data/spec/xml/boxscore.xml +0 -93
  123. data/spec/xml/schedule.xml +0 -4067
  124. data/spec/xml/teams.xml +0 -119
data/spec/lib/nfl_spec.rb DELETED
@@ -1,125 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe SportsDataApi::Nfl do
4
- let(:key) { "1234567890abcdef" }
5
- describe ".schedule" do
6
- it "creates a valid Sports Data LLC url" do
7
- SportsDataApi.stub(:key).and_return(key)
8
- RestClient.stub(:get).with("http://api.sportsdatallc.org/nfl-t1/2012/REG/schedule.xml", params: { api_key: key }).and_return(schedule_xml)
9
- subject.schedule(2012, :REG)
10
- end
11
- it "creates a SportsDataApi::Exception when there is no response from the api" do
12
- error = RestClient::ResourceNotFound.new
13
- error.stub_chain(:response, :headers).and_return(Hash.new)
14
- SportsDataApi.stub(:key).and_return(key)
15
- RestClient.stub(:get).and_raise(error)
16
- expect { subject.schedule(2999, :REG) }.to raise_error(SportsDataApi::Exception)
17
- end
18
-
19
- describe "returned data structures" do
20
- before(:each) { RestClient.stub(:get).and_return(schedule_xml) }
21
- let(:season) { SportsDataApi::Nfl.schedule(2012, :REG) }
22
- describe "SportsDataApi::Nfl::Season" do
23
- subject { season }
24
- it { should be_an_instance_of(SportsDataApi::Nfl::Season) }
25
- its(:year) { should eq 2012 }
26
- its(:type) { should eq :REG }
27
- its(:weeks) { should have(17).weeks }
28
- end
29
- describe "SportsDataApi::Nfl::Week" do
30
- subject { season.weeks.first }
31
- it { should be_an_instance_of(SportsDataApi::Nfl::Week) }
32
- its(:number) { should eq 1 }
33
- its(:games) { should have(16).games }
34
- end
35
- describe "SportsDataApi::Nfl::Game" do
36
- subject { season.weeks.first.games.first }
37
- it { should be_an_instance_of(SportsDataApi::Nfl::Game) }
38
- its(:id) { should eq "8c0bce5a-7ca2-41e5-9838-d1b8c356ddc3" }
39
- its(:scheduled) { should eq Time.new(2012, 9, 5, 19, 30, 00, "-05:00") }
40
- its(:home) { should eq "NYG" }
41
- its(:away) { should eq "DAL" }
42
- its(:status) { should eq "closed" }
43
- end
44
- end
45
- end
46
-
47
- describe ".boxscore" do
48
- it "creates a valid SportsData LLC url" do
49
- SportsDataApi.stub(:key).and_return(key)
50
- RestClient.stub(:get).with("http://api.sportsdatallc.org/nfl-t1/2012/REG/9/MIA/IND/boxscore.xml", params: { api_key: key }).and_return(boxscore_xml)
51
- subject.boxscore(2012, :REG, 9, "IND", "MIA")
52
- end
53
- it "creates a SportsDataApi::Exception when there is no response from the api" do
54
- error = RestClient::ResourceNotFound.new
55
- error.stub_chain(:response, :headers).and_return(Hash.new)
56
- SportsDataApi.stub(:key).and_return(key)
57
- RestClient.stub(:get).and_raise(error)
58
- expect { subject.boxscore(2999, :REG, 9, "IND", "MIA") }.to raise_error(SportsDataApi::Exception)
59
- end
60
- describe "returned data structures" do
61
- let(:boxscore) { SportsDataApi::Nfl.boxscore(2012, :REG, 9, "IND", "MIA") }
62
- before(:each) { RestClient.stub(:get).and_return(boxscore_xml) }
63
- describe "SportsDataApi::Nfl::Game" do
64
- subject { boxscore }
65
- it { should be_an_instance_of(SportsDataApi::Nfl::Game) }
66
- its(:id) { should eq "55d0b262-98ff-49fa-95c8-5ab8ec8cbd34" }
67
- its(:scheduled) { should eq Time.new(2012, 11, 4, 18, 00, 00, "+00:00") }
68
- its(:home) { should eq "IND" }
69
- its(:away) { should eq "MIA" }
70
- its(:status) { should eq "inprogress" }
71
- its(:quarter) { should eq 2 }
72
- its(:clock) { should eq "02:29" }
73
- its(:home_team) { should be_an_instance_of(SportsDataApi::Nfl::Team) }
74
- its(:away_team) { should be_an_instance_of(SportsDataApi::Nfl::Team) }
75
- end
76
- describe "SportsDataApi::Nfl::Team" do
77
- describe "home team" do
78
- subject { boxscore.home_team }
79
- it { should be_an_instance_of(SportsDataApi::Nfl::Team) }
80
- its(:id) { should eq "IND" }
81
- its(:name) { should eq "Colts" }
82
- its(:market) { should eq "Indianapolis" }
83
- its(:remaining_challenges) { should eq 1 }
84
- its(:remaining_timeouts) { should eq 2 }
85
- its(:score) { should eq 10 }
86
- its(:quarters) { should have(4).scores }
87
- its(:quarters) { should include(7, 3, 0, 0) }
88
- end
89
- describe "away team" do
90
- subject { boxscore.away_team }
91
- it { should be_an_instance_of(SportsDataApi::Nfl::Team) }
92
- its(:id) { should eq "MIA" }
93
- its(:name) { should eq "Dolphins" }
94
- its(:market) { should eq "Miami" }
95
- its(:remaining_challenges) { should eq 2 }
96
- its(:remaining_timeouts) { should eq 2 }
97
- its(:score) { should eq 17 }
98
- its(:quarters) { should have(4).scores }
99
- its(:quarters) { should include(3, 14, 0, 0) }
100
- end
101
- end
102
- end
103
- end
104
-
105
- describe ".season?" do
106
- context :PRE do
107
- it { subject.season?(:PRE).should be_true }
108
- end
109
- context :REG do
110
- it { subject.season?(:REG).should be_true }
111
- end
112
- context :PST do
113
- it { subject.season?(:PST).should be_true }
114
- end
115
- context :pre do
116
- it { subject.season?(:pre).should be_false }
117
- end
118
- context :reg do
119
- it { subject.season?(:reg).should be_false }
120
- end
121
- context :pst do
122
- it { subject.season?(:pst).should be_false }
123
- end
124
- end
125
- end
@@ -1,93 +0,0 @@
1
- <?xml version="1.0" encoding="UTF-8"?>
2
- <!-- Generation started at Sun Nov 04 19:18:23 +0000 2012 -->
3
- <game xmlns="http://feed.elasticstats.com/schema/nfl/boxscore-v1.0.xsd" id="55d0b262-98ff-49fa-95c8-5ab8ec8cbd34" scheduled="2012-11-04T18:00:00+00:00" home="IND" away="MIA" status="inprogress" quarter="2" clock="02:29">
4
- <team id="IND" name="Colts" market="Indianapolis" remaining_challenges="1" remaining_timeouts="2">
5
- <scoring points="10">
6
- <quarter number="1" points="7"/>
7
- <quarter number="2" points="3"/>
8
- </scoring>
9
- </team>
10
- <team id="MIA" name="Dolphins" market="Miami" remaining_challenges="2" remaining_timeouts="2">
11
- <scoring points="17">
12
- <quarter number="1" points="3"/>
13
- <quarter number="2" points="14"/>
14
- </scoring>
15
- </team>
16
- <scoring_drives>
17
- <drive sequence="1" clock="09:34" quarter="1" team="MIA">
18
- <score type="fieldgoal" clock="04:21" quarter="1" points="3">
19
- <summary>
20
- <![CDATA[5-D.Carpenter 37 yards Field Goal is Good.]]>
21
- </summary>
22
- <links>
23
- <link rel="summary" href="/2012/REG/9/MIA/IND/plays/f98b06d5-cfa1-475f-9d4b-b794599501d7.xml" type="application/xml"/>
24
- </links>
25
- </score>
26
- </drive>
27
- <drive sequence="2" clock="04:15" quarter="1" team="IND">
28
- <score type="touchdown" clock=":53" quarter="1" points="6">
29
- <summary>
30
- <![CDATA[12-A.Luck complete to 87-R.Wayne. 87-R.Wayne runs 9 yards for a touchdown.]]>
31
- </summary>
32
- <links>
33
- <link rel="summary" href="/2012/REG/9/MIA/IND/plays/000eabfe-4b36-40d7-ad4b-6f137ff9e615.xml" type="application/xml"/>
34
- </links>
35
- </score>
36
- <score type="extrapoint" clock=":53" quarter="1" points="1">
37
- <summary>
38
- <![CDATA[4-A.Vinatieri extra point is good.]]>
39
- </summary>
40
- <links>
41
- <link rel="summary" href="/2012/REG/9/MIA/IND/plays/429691e9-d940-4647-9e6e-99ebbe6e11e8.xml" type="application/xml"/>
42
- </links>
43
- </score>
44
- </drive>
45
- <drive sequence="3" clock=":47" quarter="1" team="MIA">
46
- <score type="touchdown" clock="13:32" quarter="2" points="6">
47
- <summary>
48
- <![CDATA[17-R.Tannehill complete to 42-C.Clay. 42-C.Clay runs 31 yards for a touchdown.]]>
49
- </summary>
50
- <links>
51
- <link rel="summary" href="/2012/REG/9/MIA/IND/plays/c34a88cd-6e5d-4072-98f8-1c8bb7103e6f.xml" type="application/xml"/>
52
- </links>
53
- </score>
54
- <score type="extrapoint" clock="13:32" quarter="2" points="1">
55
- <summary>
56
- <![CDATA[5-D.Carpenter extra point is good.]]>
57
- </summary>
58
- <links>
59
- <link rel="summary" href="/2012/REG/9/MIA/IND/plays/3b73e8a4-e44d-4b97-b198-42a2e8954c3c.xml" type="application/xml"/>
60
- </links>
61
- </score>
62
- </drive>
63
- <drive sequence="4" clock="13:25" quarter="2" team="IND">
64
- <score type="fieldgoal" clock="09:42" quarter="2" points="3">
65
- <summary>
66
- <![CDATA[4-A.Vinatieri 23 yards Field Goal is Good.]]>
67
- </summary>
68
- <links>
69
- <link rel="summary" href="/2012/REG/9/MIA/IND/plays/ceb258a0-ee6e-4b5b-8271-c42af4fa6a72.xml" type="application/xml"/>
70
- </links>
71
- </score>
72
- </drive>
73
- <drive sequence="5" clock="09:37" quarter="2" team="MIA">
74
- <score type="touchdown" clock="05:16" quarter="2" points="6">
75
- <summary>
76
- <![CDATA[22-R.Bush runs 18 yards for a touchdown.]]>
77
- </summary>
78
- <links>
79
- <link rel="summary" href="/2012/REG/9/MIA/IND/plays/595a0a07-1d75-40d5-9c3c-d52eb8d7f3a6.xml" type="application/xml"/>
80
- </links>
81
- </score>
82
- <score type="extrapoint" clock="05:16" quarter="2" points="1">
83
- <summary>
84
- <![CDATA[5-D.Carpenter extra point is good.]]>
85
- </summary>
86
- <links>
87
- <link rel="summary" href="/2012/REG/9/MIA/IND/plays/c9e83168-d56a-434b-8ba2-5673ab571806.xml" type="application/xml"/>
88
- </links>
89
- </score>
90
- </drive>
91
- </scoring_drives>
92
- </game>
93
- <!-- Generation finished at Sun Nov 04 19:18:24 +0000 2012 -->