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.
- checksums.yaml +7 -0
- data/.gitignore +7 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/.travis.yml +2 -1
- data/Guardfile +1 -1
- data/README.md +20 -5
- data/lib/sports_data_api/exception.rb +5 -0
- data/lib/sports_data_api/mlb/boxscore.rb +36 -0
- data/lib/sports_data_api/mlb/broadcast.rb +14 -0
- data/lib/sports_data_api/mlb/game.rb +30 -0
- data/lib/sports_data_api/mlb/game_stat.rb +26 -0
- data/lib/sports_data_api/mlb/game_stats.rb +44 -0
- data/lib/sports_data_api/mlb/games.rb +29 -0
- data/lib/sports_data_api/mlb/player.rb +17 -0
- data/lib/sports_data_api/mlb/players.rb +42 -0
- data/lib/sports_data_api/mlb/season.rb +18 -0
- data/lib/sports_data_api/mlb/team.rb +35 -0
- data/lib/sports_data_api/mlb/teams.rb +42 -0
- data/lib/sports_data_api/mlb/venue.rb +15 -0
- data/lib/sports_data_api/mlb/venues.rb +37 -0
- data/lib/sports_data_api/mlb.rb +82 -0
- data/lib/sports_data_api/nba/broadcast.rb +14 -0
- data/lib/sports_data_api/nba/game.rb +54 -0
- data/lib/sports_data_api/nba/games.rb +26 -0
- data/lib/sports_data_api/nba/player.rb +22 -0
- data/lib/sports_data_api/nba/season.rb +28 -0
- data/lib/sports_data_api/nba/team.rb +40 -0
- data/lib/sports_data_api/nba/teams.rb +83 -0
- data/lib/sports_data_api/nba/venue.rb +20 -0
- data/lib/sports_data_api/nba.rb +71 -0
- data/lib/sports_data_api/nfl/broadcast.rb +15 -0
- data/lib/sports_data_api/nfl/game.rb +83 -0
- data/lib/sports_data_api/nfl/games.rb +29 -0
- data/lib/sports_data_api/nfl/injuries.rb +9 -0
- data/lib/sports_data_api/nfl/player.rb +15 -0
- data/lib/sports_data_api/nfl/player_season_stats.rb +26 -0
- data/lib/sports_data_api/nfl/season.rb +27 -0
- data/lib/sports_data_api/nfl/team.rb +46 -0
- data/lib/sports_data_api/nfl/team_roster.rb +17 -0
- data/lib/sports_data_api/nfl/team_season_stats.rb +19 -0
- data/lib/sports_data_api/nfl/teams.rb +84 -0
- data/lib/sports_data_api/nfl/venue.rb +22 -0
- data/lib/sports_data_api/nfl/weather.rb +17 -0
- data/lib/sports_data_api/nfl/week.rb +20 -0
- data/lib/sports_data_api/nfl.rb +98 -0
- data/lib/sports_data_api/stats.rb +13 -0
- data/lib/sports_data_api/version.rb +1 -1
- data/lib/sports_data_api.rb +37 -12
- data/spec/cassettes/sports_data_api_mlb_game.yml +20193 -0
- data/spec/cassettes/sports_data_api_mlb_game_boxscore.yml +225 -0
- data/spec/cassettes/sports_data_api_mlb_game_stats.yml +657 -0
- data/spec/cassettes/sports_data_api_mlb_games.yml +195 -0
- data/spec/cassettes/sports_data_api_mlb_player.yml +10891 -0
- data/spec/cassettes/sports_data_api_mlb_season.yml +20193 -0
- data/spec/cassettes/sports_data_api_mlb_team.yml +182 -0
- data/spec/cassettes/sports_data_api_mlb_team_roster.yml +10891 -0
- data/spec/cassettes/sports_data_api_mlb_teams.yml +403 -0
- data/spec/cassettes/sports_data_api_mlb_venues.yml +343 -0
- data/spec/cassettes/sports_data_api_nba.yml +74176 -0
- data/spec/cassettes/sports_data_api_nba_broadcast.yml +88 -0
- data/spec/cassettes/sports_data_api_nba_game.yml +21202 -0
- data/spec/cassettes/sports_data_api_nba_games.yml +128 -0
- data/spec/cassettes/sports_data_api_nba_league_hierarchy.yml +545 -0
- data/spec/cassettes/sports_data_api_nba_player.yml +244 -0
- data/spec/cassettes/sports_data_api_nba_season.yml +18228 -0
- data/spec/cassettes/sports_data_api_nba_team.yml +1398 -0
- data/spec/cassettes/sports_data_api_nba_team_roster.yml +244 -0
- data/spec/cassettes/sports_data_api_nba_venue.yml +88 -0
- data/spec/cassettes/sports_data_api_nfl.yml +19105 -0
- data/spec/cassettes/sports_data_api_nfl_broadcast.yml +112 -0
- data/spec/cassettes/sports_data_api_nfl_game.yml +16139 -0
- data/spec/cassettes/sports_data_api_nfl_games.yml +912 -0
- data/spec/cassettes/sports_data_api_nfl_player_season_stats.yml +997 -0
- data/spec/cassettes/sports_data_api_nfl_season.yml +14100 -0
- data/spec/cassettes/sports_data_api_nfl_team.yml +783 -0
- data/spec/cassettes/sports_data_api_nfl_team_hierarchy.yml +909 -0
- data/spec/cassettes/sports_data_api_nfl_team_roster.yml +618 -0
- data/spec/cassettes/sports_data_api_nfl_team_season_stats.yml +981 -0
- data/spec/cassettes/sports_data_api_nfl_venue.yml +112 -0
- data/spec/cassettes/sports_data_api_nfl_weather.yml +112 -0
- data/spec/cassettes/sports_data_api_nfl_week.yml +14100 -0
- data/spec/lib/sports_data_api/mlb/boxscore_spec.rb +63 -0
- data/spec/lib/sports_data_api/mlb/game_spec.rb +24 -0
- data/spec/lib/sports_data_api/mlb/game_stats_spec.rb +25 -0
- data/spec/lib/sports_data_api/mlb/games_spec.rb +24 -0
- data/spec/lib/sports_data_api/mlb/player_spec.rb +103 -0
- data/spec/lib/sports_data_api/mlb/players_spec.rb +17 -0
- data/spec/lib/sports_data_api/mlb/season_spec.rb +19 -0
- data/spec/lib/sports_data_api/mlb/team_spec.rb +24 -0
- data/spec/lib/sports_data_api/mlb/teams_spec.rb +30 -0
- data/spec/lib/sports_data_api/mlb/venues_spec.rb +17 -0
- data/spec/lib/sports_data_api/nba/broadcast_spec.rb +18 -0
- data/spec/lib/sports_data_api/nba/game_spec.rb +87 -0
- data/spec/lib/sports_data_api/nba/games_spec.rb +19 -0
- data/spec/lib/sports_data_api/nba/player_spec.rb +72 -0
- data/spec/lib/sports_data_api/nba/season_spec.rb +41 -0
- data/spec/lib/sports_data_api/nba/team_spec.rb +185 -0
- data/spec/lib/sports_data_api/nba/teams_spec.rb +76 -0
- data/spec/lib/sports_data_api/nba/venue_spec.rb +24 -0
- data/spec/lib/sports_data_api/nba_spec.rb +41 -0
- data/spec/lib/sports_data_api/nfl/broadcast_spec.rb +19 -0
- data/spec/lib/sports_data_api/nfl/game_spec.rb +126 -0
- data/spec/lib/sports_data_api/nfl/games_spec.rb +21 -0
- data/spec/lib/sports_data_api/nfl/player_season_stats.rb +28 -0
- data/spec/lib/sports_data_api/nfl/season_spec.rb +41 -0
- data/spec/lib/sports_data_api/nfl/team_roster_spec.rb +28 -0
- data/spec/lib/sports_data_api/nfl/team_season_stats.rb +19 -0
- data/spec/lib/sports_data_api/nfl/team_spec.rb +52 -0
- data/spec/lib/sports_data_api/nfl/teams_spec.rb +77 -0
- data/spec/lib/sports_data_api/nfl/venue_spec.rb +26 -0
- data/spec/lib/sports_data_api/nfl/weather_spec.rb +21 -0
- data/spec/lib/sports_data_api/nfl/week_spec.rb +21 -0
- data/spec/lib/sports_data_api/nfl_spec.rb +113 -0
- data/spec/lib/sports_data_api_spec.rb +8 -5
- data/spec/spec_helper.rb +30 -9
- data/sports_data_api.gemspec +19 -15
- metadata +267 -76
- data/.rvmrc +0 -38
- data/lib/nfl.rb +0 -149
- data/spec/lib/nfl_spec.rb +0 -125
- data/spec/xml/boxscore.xml +0 -93
- data/spec/xml/schedule.xml +0 -4067
- 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
|
data/spec/xml/boxscore.xml
DELETED
@@ -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 -->
|