sports_data_api 0.2.2 → 0.2.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/sports_data_api/ncaafb/division.rb +2 -2
- data/lib/sports_data_api/ncaafb/poll_team.rb +18 -0
- data/lib/sports_data_api/ncaafb/polls.rb +55 -0
- data/lib/sports_data_api/ncaafb.rb +13 -1
- data/lib/sports_data_api/version.rb +1 -1
- data/spec/cassettes/sports_data_api_ncaafb_polls.yml +130 -0
- data/spec/lib/sports_data_api/ncaafb/poll_team_spec.rb +30 -0
- data/spec/lib/sports_data_api/ncaafb/polls_spec.rb +25 -0
- data/spec/lib/sports_data_api/ncaafb/team_spec.rb +1 -0
- data/spec/lib/sports_data_api/ncaafb_spec.rb +5 -0
- metadata +10 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 06dada395e0e5f6810292ba417b0afb50ec4e007
|
4
|
+
data.tar.gz: 7e0e30a724b19e31b22ec886b18f64c60090fce1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0f19f62b95cf7e1547213c1ff4a85e2e3d93aa6394434f0274e5d2f822445cc123669e6cef86d3908073ecfbf258714002eaec2ad1188aac6fc790e04248348c
|
7
|
+
data.tar.gz: bb179d81af60bfe7d1683c108afbb6748e622875ef5db5e40d61790a3ed3ae238264d793aa3dbfa7de06d368c04ab2570471a2aec2b0edef9568b9b796f80ce9
|
@@ -5,9 +5,9 @@ module SportsDataApi
|
|
5
5
|
# Check if the requested division is a valid
|
6
6
|
# Ncaafb division type.
|
7
7
|
#
|
8
|
-
# The only valid types are: :
|
8
|
+
# The only valid types are: :FBS,:FCS, :D2, :D3, :NAIA, :USCAA
|
9
9
|
def self.valid?(division)
|
10
|
-
[:FBS,:FCS, :D2, :D3, :NAIA, :USCAA].include?(division)
|
10
|
+
[:FBS,:FCS, :D2, :D3, :NAIA, :USCAA].include?(division.upcase.to_sym)
|
11
11
|
end
|
12
12
|
end
|
13
13
|
end
|
@@ -0,0 +1,18 @@
|
|
1
|
+
module SportsDataApi
|
2
|
+
module Ncaafb
|
3
|
+
class PollTeam
|
4
|
+
attr_reader :id, :name, :market, :points, :fp_votes, :wins, :losses, :ties, :rank
|
5
|
+
def initialize(poll_team_hash)
|
6
|
+
@id = poll_team_hash['id']
|
7
|
+
@name = poll_team_hash['name']
|
8
|
+
@rank = poll_team_hash['rank']
|
9
|
+
@market = poll_team_hash['market']
|
10
|
+
@points = poll_team_hash['points']
|
11
|
+
@fp_votes = poll_team_hash['fp_votes']
|
12
|
+
@wins = poll_team_hash['wins']
|
13
|
+
@losses = poll_team_hash['losses']
|
14
|
+
@ties = poll_team_hash['ties']
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
module SportsDataApi
|
2
|
+
module Ncaafb
|
3
|
+
class Polls
|
4
|
+
include Enumerable
|
5
|
+
|
6
|
+
attr_reader :id, :name, :season, :season_type, :week, :rankings, :candidates
|
7
|
+
def initialize(polls_hash)
|
8
|
+
@id = polls_hash['id']
|
9
|
+
@name = polls_hash['name']
|
10
|
+
@season = polls_hash['season']
|
11
|
+
@season_type = polls_hash['season_type']
|
12
|
+
@week = polls_hash['week']
|
13
|
+
@rankings = []
|
14
|
+
@candidates = []
|
15
|
+
add_poll_teams_to(@rankings, polls_hash['rankings'])
|
16
|
+
add_poll_teams_to(@candidates, polls_hash['candidates'])
|
17
|
+
end
|
18
|
+
|
19
|
+
##
|
20
|
+
# Make the class Enumerable
|
21
|
+
def each(&block)
|
22
|
+
@rankings.each do |team|
|
23
|
+
if block_given?
|
24
|
+
block.call team
|
25
|
+
else
|
26
|
+
yield team
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
class << self
|
32
|
+
##
|
33
|
+
# Check if the requested poll is a valid
|
34
|
+
# Ncaafb poll type.
|
35
|
+
#
|
36
|
+
# The only valid polls are: :AP25, :EU25, :CFP25, :FCSC25, :H25, :FCS25
|
37
|
+
def valid_name?(poll)
|
38
|
+
[:AP25, :EU25, :CFP25, :FCSC25, :H25, :FCS25].include?(poll.upcase.to_sym)
|
39
|
+
end
|
40
|
+
|
41
|
+
# The only valid week nr is 1..21
|
42
|
+
def valid_week?(week)
|
43
|
+
(1..21).include?(week.to_i)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
private
|
48
|
+
def add_poll_teams_to(collection, hash_colection)
|
49
|
+
Array(hash_colection).each do |poll_team|
|
50
|
+
collection << PollTeam.new(poll_team)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -9,6 +9,8 @@ module SportsDataApi
|
|
9
9
|
SPORT = :ncaafb
|
10
10
|
|
11
11
|
autoload :Division, File.join(DIR, 'division')
|
12
|
+
autoload :PollTeam, File.join(DIR, 'poll_team')
|
13
|
+
autoload :Polls, File.join(DIR, 'polls')
|
12
14
|
autoload :Team, File.join(DIR, 'team')
|
13
15
|
autoload :Teams, File.join(DIR, 'teams')
|
14
16
|
autoload :Player, File.join(DIR, 'player')
|
@@ -31,6 +33,16 @@ module SportsDataApi
|
|
31
33
|
return Season.new(response)
|
32
34
|
end
|
33
35
|
|
36
|
+
##
|
37
|
+
# Fetches Ncaafb season ranking for a given year , poll and week
|
38
|
+
def self.rankings(year, poll, week, version = DEFAULT_VERSION)
|
39
|
+
raise SportsDataApi::Ncaafb::Exception.new("#{poll} is not a valid poll") unless Polls.valid_name?(poll)
|
40
|
+
raise SportsDataApi::Ncaafb::Exception.new("#{week} nr is not a valid week nr") unless Polls.valid_week?(week)
|
41
|
+
|
42
|
+
response = self.response_json(version, "/polls/#{poll}/#{year}/#{week}/rankings.json")
|
43
|
+
return Polls.new(response)
|
44
|
+
end
|
45
|
+
|
34
46
|
##
|
35
47
|
# Fetches Ncaafb boxscore for a given game
|
36
48
|
def self.boxscore(year, season, week, home, away, version = DEFAULT_VERSION)
|
@@ -56,7 +68,7 @@ module SportsDataApi
|
|
56
68
|
##
|
57
69
|
# Fetches all Ncaafb teams
|
58
70
|
def self.teams(division, version = DEFAULT_VERSION)
|
59
|
-
raise SportsDataApi::Ncaafb::Exception.new("#{division} is not a valid
|
71
|
+
raise SportsDataApi::Ncaafb::Exception.new("#{division} is not a valid division") unless Division.valid?(division)
|
60
72
|
response = self.response_json(version, "/teams/#{division}/hierarchy.json")
|
61
73
|
|
62
74
|
return Teams.new(response)
|
@@ -0,0 +1,130 @@
|
|
1
|
+
---
|
2
|
+
http_interactions:
|
3
|
+
- request:
|
4
|
+
method: get
|
5
|
+
uri: http://api.sportsdatallc.org/ncaafb-t1/polls/AP25/2014/12/rankings.json?api_key=<API_KEY>
|
6
|
+
body:
|
7
|
+
encoding: US-ASCII
|
8
|
+
base64_string: ''
|
9
|
+
headers:
|
10
|
+
Accept:
|
11
|
+
- "*/*; q=0.5, application/xml"
|
12
|
+
Accept-Encoding:
|
13
|
+
- gzip, deflate
|
14
|
+
User-Agent:
|
15
|
+
- Ruby
|
16
|
+
response:
|
17
|
+
status:
|
18
|
+
code: 200
|
19
|
+
message: OK
|
20
|
+
headers:
|
21
|
+
Content-Type:
|
22
|
+
- application/json;charset=utf-8
|
23
|
+
Date:
|
24
|
+
- Thu, 14 May 2015 13:17:13 GMT
|
25
|
+
Server:
|
26
|
+
- nginx
|
27
|
+
X-Mashery-Responder:
|
28
|
+
- prod-j-worker-us-east-1e-74.mashery.com
|
29
|
+
X-Plan-Qps-Allotted:
|
30
|
+
- '1'
|
31
|
+
X-Plan-Qps-Current:
|
32
|
+
- '1'
|
33
|
+
X-Plan-Quota-Allotted:
|
34
|
+
- '1000'
|
35
|
+
X-Plan-Quota-Current:
|
36
|
+
- '38'
|
37
|
+
Content-Length:
|
38
|
+
- '3763'
|
39
|
+
Connection:
|
40
|
+
- keep-alive
|
41
|
+
body:
|
42
|
+
encoding: UTF-8
|
43
|
+
base64_string: |
|
44
|
+
eyJpZCI6IkFQMjUiLCJuYW1lIjoiQXNzb2NpYXRlZCBQcmVzcyBUb3AgMjUi
|
45
|
+
LCJzZWFzb24iOjIwMTQsInNlYXNvbl90eXBlIjoiUkVHIiwid2VlayI6MTIs
|
46
|
+
InJhbmtpbmdzIjpbeyJpZCI6Ik1TU1QiLCJuYW1lIjoiQnVsbGRvZ3MiLCJt
|
47
|
+
YXJrZXQiOiJNaXNzaXNzaXBwaSBTdGF0ZSIsInJhbmsiOjEsInBvaW50cyI6
|
48
|
+
MTQ4OCwiZnBfdm90ZXMiOjQ4LCJ3aW5zIjo5LCJsb3NzZXMiOjAsInRpZXMi
|
49
|
+
OjB9LHsiaWQiOiJGU1UiLCJuYW1lIjoiU2VtaW5vbGVzIiwibWFya2V0Ijoi
|
50
|
+
RmxvcmlkYSBTdGF0ZSIsInJhbmsiOjIsInBvaW50cyI6MTQ0NiwiZnBfdm90
|
51
|
+
ZXMiOjEyLCJ3aW5zIjo5LCJsb3NzZXMiOjAsInRpZXMiOjB9LHsiaWQiOiJP
|
52
|
+
UkUiLCJuYW1lIjoiRHVja3MiLCJtYXJrZXQiOiJPcmVnb24iLCJyYW5rIjoz
|
53
|
+
LCJwb2ludHMiOjEzMzQsIndpbnMiOjksImxvc3NlcyI6MSwidGllcyI6MH0s
|
54
|
+
eyJpZCI6IkJBTUEiLCJuYW1lIjoiQ3JpbXNvbiBUaWRlIiwibWFya2V0Ijoi
|
55
|
+
QWxhYmFtYSIsInJhbmsiOjQsInBvaW50cyI6MTMyNiwid2lucyI6OCwibG9z
|
56
|
+
c2VzIjoxLCJ0aWVzIjowfSx7ImlkIjoiVENVIiwibmFtZSI6Ikhvcm5lZCBG
|
57
|
+
cm9ncyIsIm1hcmtldCI6IlRDVSIsInJhbmsiOjUsInBvaW50cyI6MTI3Mywi
|
58
|
+
d2lucyI6OCwibG9zc2VzIjoxLCJ0aWVzIjowfSx7ImlkIjoiQkFZIiwibmFt
|
59
|
+
ZSI6IkJlYXJzIiwibWFya2V0IjoiQmF5bG9yIiwicmFuayI6NiwicG9pbnRz
|
60
|
+
IjoxMTkzLCJ3aW5zIjo4LCJsb3NzZXMiOjEsInRpZXMiOjB9LHsiaWQiOiJB
|
61
|
+
U1UiLCJuYW1lIjoiU3VuIERldmlscyIsIm1hcmtldCI6IkFyaXpvbmEgU3Rh
|
62
|
+
dGUiLCJyYW5rIjo3LCJwb2ludHMiOjExNDIsIndpbnMiOjgsImxvc3NlcyI6
|
63
|
+
MSwidGllcyI6MH0seyJpZCI6Ik9TVSIsIm5hbWUiOiJCdWNrZXllcyIsIm1h
|
64
|
+
cmtldCI6Ik9oaW8gU3RhdGUiLCJyYW5rIjo4LCJwb2ludHMiOjEwODYsIndp
|
65
|
+
bnMiOjgsImxvc3NlcyI6MSwidGllcyI6MH0seyJpZCI6IkFVQiIsIm5hbWUi
|
66
|
+
OiJUaWdlcnMiLCJtYXJrZXQiOiJBdWJ1cm4iLCJyYW5rIjo5LCJwb2ludHMi
|
67
|
+
Ojk4MSwid2lucyI6NywibG9zc2VzIjoyLCJ0aWVzIjowfSx7ImlkIjoiTUlT
|
68
|
+
IiwibmFtZSI6IlJlYmVscyIsIm1hcmtldCI6Ik9sZSBNaXNzIiwicmFuayI6
|
69
|
+
MTAsInBvaW50cyI6OTQ4LCJ3aW5zIjo4LCJsb3NzZXMiOjIsInRpZXMiOjB9
|
70
|
+
LHsiaWQiOiJORUIiLCJuYW1lIjoiQ29ybmh1c2tlcnMiLCJtYXJrZXQiOiJO
|
71
|
+
ZWJyYXNrYSIsInJhbmsiOjExLCJwb2ludHMiOjgzMCwid2lucyI6OCwibG9z
|
72
|
+
c2VzIjoxLCJ0aWVzIjowfSx7ImlkIjoiTVNVIiwibmFtZSI6IlNwYXJ0YW5z
|
73
|
+
IiwibWFya2V0IjoiTWljaGlnYW4gU3RhdGUiLCJyYW5rIjoxMiwicG9pbnRz
|
74
|
+
Ijo3ODIsIndpbnMiOjcsImxvc3NlcyI6MiwidGllcyI6MH0seyJpZCI6IktT
|
75
|
+
VCIsIm5hbWUiOiJXaWxkY2F0cyIsIm1hcmtldCI6IkthbnNhcyBTdGF0ZSIs
|
76
|
+
InJhbmsiOjEzLCJwb2ludHMiOjc0Miwid2lucyI6NywibG9zc2VzIjoyLCJ0
|
77
|
+
aWVzIjowfSx7ImlkIjoiVUNMQSIsIm5hbWUiOiJCcnVpbnMiLCJtYXJrZXQi
|
78
|
+
OiJVQ0xBIiwicmFuayI6MTQsInBvaW50cyI6NjkxLCJ3aW5zIjo4LCJsb3Nz
|
79
|
+
ZXMiOjIsInRpZXMiOjB9LHsiaWQiOiJORCIsIm5hbWUiOiJGaWdodGluZyBJ
|
80
|
+
cmlzaCIsIm1hcmtldCI6Ik5vdHJlIERhbWUiLCJyYW5rIjoxNSwicG9pbnRz
|
81
|
+
Ijo2MzAsIndpbnMiOjcsImxvc3NlcyI6MiwidGllcyI6MH0seyJpZCI6IlVH
|
82
|
+
QSIsIm5hbWUiOiJCdWxsZG9ncyIsIm1hcmtldCI6Ikdlb3JnaWEiLCJyYW5r
|
83
|
+
IjoxNiwicG9pbnRzIjo2MjIsIndpbnMiOjcsImxvc3NlcyI6MiwidGllcyI6
|
84
|
+
MH0seyJpZCI6IkFSSSIsIm5hbWUiOiJXaWxkY2F0cyIsIm1hcmtldCI6IkFy
|
85
|
+
aXpvbmEiLCJyYW5rIjoxNywicG9pbnRzIjo0NzEsIndpbnMiOjcsImxvc3Nl
|
86
|
+
cyI6MiwidGllcyI6MH0seyJpZCI6IkNMRSIsIm5hbWUiOiJUaWdlcnMiLCJt
|
87
|
+
YXJrZXQiOiJDbGVtc29uIiwicmFuayI6MTgsInBvaW50cyI6NDU3LCJ3aW5z
|
88
|
+
Ijo3LCJsb3NzZXMiOjIsInRpZXMiOjB9LHsiaWQiOiJEVUsiLCJuYW1lIjoi
|
89
|
+
Qmx1ZSBEZXZpbHMiLCJtYXJrZXQiOiJEdWtlIiwicmFuayI6MTksInBvaW50
|
90
|
+
cyI6NDMxLCJ3aW5zIjo4LCJsb3NzZXMiOjEsInRpZXMiOjB9LHsiaWQiOiJM
|
91
|
+
U1UiLCJuYW1lIjoiVGlnZXJzIiwibWFya2V0IjoiTFNVIiwicmFuayI6MjAs
|
92
|
+
InBvaW50cyI6NDI5LCJ3aW5zIjo3LCJsb3NzZXMiOjMsInRpZXMiOjB9LHsi
|
93
|
+
aWQiOiJNU0giLCJuYW1lIjoiVGh1bmRlcmluZyBIZXJkIiwibWFya2V0Ijoi
|
94
|
+
TWFyc2hhbGwiLCJyYW5rIjoyMSwicG9pbnRzIjoyOTcsIndpbnMiOjksImxv
|
95
|
+
c3NlcyI6MCwidGllcyI6MH0seyJpZCI6IldJUyIsIm5hbWUiOiJCYWRnZXJz
|
96
|
+
IiwibWFya2V0IjoiV2lzY29uc2luIiwicmFuayI6MjIsInBvaW50cyI6MjI1
|
97
|
+
LCJ3aW5zIjo3LCJsb3NzZXMiOjIsInRpZXMiOjB9LHsiaWQiOiJDU1UiLCJu
|
98
|
+
YW1lIjoiUmFtcyIsIm1hcmtldCI6IkNvbG9yYWRvIFN0YXRlIiwicmFuayI6
|
99
|
+
MjMsInBvaW50cyI6MTI4LCJ3aW5zIjo5LCJsb3NzZXMiOjEsInRpZXMiOjB9
|
100
|
+
LHsiaWQiOiJHVCIsIm5hbWUiOiJZZWxsb3cgSmFja2V0cyIsIm1hcmtldCI6
|
101
|
+
Ikdlb3JnaWEgVGVjaCIsInJhbmsiOjI0LCJwb2ludHMiOjEyNywid2lucyI6
|
102
|
+
OCwibG9zc2VzIjoyLCJ0aWVzIjowfSx7ImlkIjoiVVRIIiwibmFtZSI6IlV0
|
103
|
+
ZXMiLCJtYXJrZXQiOiJVdGFoIiwicmFuayI6MjUsInBvaW50cyI6ODcsIndp
|
104
|
+
bnMiOjYsImxvc3NlcyI6MywidGllcyI6MH1dLCJjYW5kaWRhdGVzIjpbeyJp
|
105
|
+
ZCI6Ik9LTCIsIm5hbWUiOiJTb29uZXJzIiwibWFya2V0IjoiT2tsYWhvbWEi
|
106
|
+
LCJ2b3RlcyI6ODUsIndpbnMiOjYsImxvc3NlcyI6MywidGllcyI6MH0seyJp
|
107
|
+
ZCI6IlRYQU0iLCJuYW1lIjoiQWdnaWVzIiwibWFya2V0IjoiVGV4YXMgQSZN
|
108
|
+
Iiwidm90ZXMiOjgzLCJ3aW5zIjo3LCJsb3NzZXMiOjMsInRpZXMiOjB9LHsi
|
109
|
+
aWQiOiJNSVoiLCJuYW1lIjoiVGlnZXJzIiwibWFya2V0IjoiTWlzc291cmki
|
110
|
+
LCJ2b3RlcyI6NjgsIndpbnMiOjcsImxvc3NlcyI6MiwidGllcyI6MH0seyJp
|
111
|
+
ZCI6IlVTQyIsIm5hbWUiOiJUcm9qYW5zIiwibWFya2V0IjoiVVNDIiwidm90
|
112
|
+
ZXMiOjQ3LCJ3aW5zIjo2LCJsb3NzZXMiOjMsInRpZXMiOjB9LHsiaWQiOiJN
|
113
|
+
SU4iLCJuYW1lIjoiR29sZGVuIEdvcGhlcnMiLCJtYXJrZXQiOiJNaW5uZXNv
|
114
|
+
dGEiLCJ2b3RlcyI6MjYsIndpbnMiOjcsImxvc3NlcyI6MiwidGllcyI6MH0s
|
115
|
+
eyJpZCI6IkxPVSIsIm5hbWUiOiJDYXJkaW5hbHMiLCJtYXJrZXQiOiJMb3Vp
|
116
|
+
c3ZpbGxlIiwidm90ZXMiOjEyLCJ3aW5zIjo3LCJsb3NzZXMiOjMsInRpZXMi
|
117
|
+
OjB9LHsiaWQiOiJXVlUiLCJuYW1lIjoiTW91bnRhaW5lZXJzIiwibWFya2V0
|
118
|
+
IjoiV2VzdCBWaXJnaW5pYSIsInZvdGVzIjo2LCJ3aW5zIjo2LCJsb3NzZXMi
|
119
|
+
OjQsInRpZXMiOjB9LHsiaWQiOiJTVEEiLCJuYW1lIjoiQ2FyZGluYWwiLCJt
|
120
|
+
YXJrZXQiOiJTdGFuZm9yZCIsInZvdGVzIjo0LCJ3aW5zIjo1LCJsb3NzZXMi
|
121
|
+
OjQsInRpZXMiOjB9LHsiaWQiOiJCT0lTRSIsIm5hbWUiOiJCcm9uY29zIiwi
|
122
|
+
bWFya2V0IjoiQm9pc2UgU3RhdGUiLCJ2b3RlcyI6MSwid2lucyI6NywibG9z
|
123
|
+
c2VzIjoyLCJ0aWVzIjowfSx7ImlkIjoiR1NPIiwibmFtZSI6IkVhZ2xlcyIs
|
124
|
+
Im1hcmtldCI6Ikdlb3JnaWEgU291dGhlcm4iLCJ2b3RlcyI6MSwid2lucyI6
|
125
|
+
OCwibG9zc2VzIjoyLCJ0aWVzIjowfSx7ImlkIjoiTUZMIiwibmFtZSI6Ikh1
|
126
|
+
cnJpY2FuZXMiLCJtYXJrZXQiOiJNaWFtaSAoRkwpIiwidm90ZXMiOjEsIndp
|
127
|
+
bnMiOjYsImxvc3NlcyI6MywidGllcyI6MH1dfQ==
|
128
|
+
http_version:
|
129
|
+
recorded_at: Thu, 14 May 2015 13:17:13 GMT
|
130
|
+
recorded_with: VCR 2.4.0
|
@@ -0,0 +1,30 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SportsDataApi::Ncaafb::PollTeam, vcr: {
|
4
|
+
cassette_name: 'sports_data_api_ncaafb_polls',
|
5
|
+
record: :new_episodes,
|
6
|
+
match_requests_on: [:host, :path]
|
7
|
+
} do
|
8
|
+
subject { SportsDataApi::Ncaafb::Polls }
|
9
|
+
|
10
|
+
context 'results from rankings fetch' do
|
11
|
+
let(:polls) do
|
12
|
+
SportsDataApi.set_access_level(:ncaafb, 't')
|
13
|
+
SportsDataApi.set_key(:ncaafb, api_key(:ncaafb))
|
14
|
+
SportsDataApi::Ncaafb.rankings(2014, :AP25, 12)
|
15
|
+
end
|
16
|
+
|
17
|
+
subject { polls.rankings.first }
|
18
|
+
|
19
|
+
it { should be_an_instance_of(SportsDataApi::Ncaafb::PollTeam) }
|
20
|
+
its(:id) { should eq 'MSST' }
|
21
|
+
its(:name) { should eq "Bulldogs" }
|
22
|
+
its(:market) { should eq 'Mississippi State' }
|
23
|
+
its(:points) { should eq 1488 }
|
24
|
+
its(:fp_votes) { should eq 48 }
|
25
|
+
its(:rank) { should eq 1 }
|
26
|
+
its(:wins) { should eq 9 }
|
27
|
+
its(:losses) { should eq 0 }
|
28
|
+
its(:ties) { should eq 0 }
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe SportsDataApi::Ncaafb::Polls, vcr: {
|
4
|
+
cassette_name: 'sports_data_api_ncaafb_polls',
|
5
|
+
record: :new_episodes,
|
6
|
+
match_requests_on: [:host, :path]
|
7
|
+
} do
|
8
|
+
subject { SportsDataApi::Ncaafb::Polls }
|
9
|
+
|
10
|
+
context 'results from rankings fetch' do
|
11
|
+
let(:polls) do
|
12
|
+
SportsDataApi.set_access_level(:ncaafb, 't')
|
13
|
+
SportsDataApi.set_key(:ncaafb, api_key(:ncaafb))
|
14
|
+
SportsDataApi::Ncaafb.rankings(2014, :AP25, 12)
|
15
|
+
end
|
16
|
+
|
17
|
+
subject { polls }
|
18
|
+
it { should be_an_instance_of(SportsDataApi::Ncaafb::Polls) }
|
19
|
+
its(:id) { should eq 'AP25' }
|
20
|
+
its(:name) { should eq "Associated Press Top 25" }
|
21
|
+
its(:season_type) { should eq 'REG' }
|
22
|
+
its(:rankings) { should have(25).rankings }
|
23
|
+
its(:candidates) { should have(11).candidates }
|
24
|
+
end
|
25
|
+
end
|
@@ -12,6 +12,11 @@ describe SportsDataApi::Ncaafb, vcr: {
|
|
12
12
|
SportsDataApi.set_access_level(:ncaafb, 't')
|
13
13
|
end
|
14
14
|
|
15
|
+
describe '.rankings' do
|
16
|
+
it { expect { subject.rankings(2014, :AP25, 22) }.to raise_error(SportsDataApi::Ncaafb::Exception) }
|
17
|
+
it { expect { subject.rankings(2014, :AP10, 12) }.to raise_error(SportsDataApi::Ncaafb::Exception) }
|
18
|
+
end
|
19
|
+
|
15
20
|
describe '.schedule' do
|
16
21
|
it { expect { subject.schedule(2013, :REG) }.to raise_error(SportsDataApi::Exception) }
|
17
22
|
end
|
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.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Ryan
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-05-
|
12
|
+
date: 2015-05-22 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: nokogiri
|
@@ -270,6 +270,8 @@ files:
|
|
270
270
|
- lib/sports_data_api/ncaafb/games.rb
|
271
271
|
- lib/sports_data_api/ncaafb/injuries.rb
|
272
272
|
- lib/sports_data_api/ncaafb/player.rb
|
273
|
+
- lib/sports_data_api/ncaafb/poll_team.rb
|
274
|
+
- lib/sports_data_api/ncaafb/polls.rb
|
273
275
|
- lib/sports_data_api/ncaafb/season.rb
|
274
276
|
- lib/sports_data_api/ncaafb/team.rb
|
275
277
|
- lib/sports_data_api/ncaafb/teams.rb
|
@@ -339,6 +341,7 @@ files:
|
|
339
341
|
- spec/cassettes/sports_data_api_ncaafb_broadcast.yml
|
340
342
|
- spec/cassettes/sports_data_api_ncaafb_game.yml
|
341
343
|
- spec/cassettes/sports_data_api_ncaafb_games.yml
|
344
|
+
- spec/cassettes/sports_data_api_ncaafb_polls.yml
|
342
345
|
- spec/cassettes/sports_data_api_ncaafb_season.yml
|
343
346
|
- spec/cassettes/sports_data_api_ncaafb_team.yml
|
344
347
|
- spec/cassettes/sports_data_api_ncaafb_team_hierarchy.yml
|
@@ -401,6 +404,8 @@ files:
|
|
401
404
|
- spec/lib/sports_data_api/ncaafb/broadcast_spec.rb
|
402
405
|
- spec/lib/sports_data_api/ncaafb/game_spec.rb
|
403
406
|
- spec/lib/sports_data_api/ncaafb/games_spec.rb
|
407
|
+
- spec/lib/sports_data_api/ncaafb/poll_team_spec.rb
|
408
|
+
- spec/lib/sports_data_api/ncaafb/polls_spec.rb
|
404
409
|
- spec/lib/sports_data_api/ncaafb/season_spec.rb
|
405
410
|
- spec/lib/sports_data_api/ncaafb/team_spec.rb
|
406
411
|
- spec/lib/sports_data_api/ncaafb/teams_spec.rb
|
@@ -497,6 +502,7 @@ test_files:
|
|
497
502
|
- spec/cassettes/sports_data_api_ncaafb_broadcast.yml
|
498
503
|
- spec/cassettes/sports_data_api_ncaafb_game.yml
|
499
504
|
- spec/cassettes/sports_data_api_ncaafb_games.yml
|
505
|
+
- spec/cassettes/sports_data_api_ncaafb_polls.yml
|
500
506
|
- spec/cassettes/sports_data_api_ncaafb_season.yml
|
501
507
|
- spec/cassettes/sports_data_api_ncaafb_team.yml
|
502
508
|
- spec/cassettes/sports_data_api_ncaafb_team_hierarchy.yml
|
@@ -559,6 +565,8 @@ test_files:
|
|
559
565
|
- spec/lib/sports_data_api/ncaafb/broadcast_spec.rb
|
560
566
|
- spec/lib/sports_data_api/ncaafb/game_spec.rb
|
561
567
|
- spec/lib/sports_data_api/ncaafb/games_spec.rb
|
568
|
+
- spec/lib/sports_data_api/ncaafb/poll_team_spec.rb
|
569
|
+
- spec/lib/sports_data_api/ncaafb/polls_spec.rb
|
562
570
|
- spec/lib/sports_data_api/ncaafb/season_spec.rb
|
563
571
|
- spec/lib/sports_data_api/ncaafb/team_spec.rb
|
564
572
|
- spec/lib/sports_data_api/ncaafb/teams_spec.rb
|