espn 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (54) hide show
  1. checksums.yaml +8 -8
  2. data/README.md +91 -6
  3. data/lib/espn.rb +5 -0
  4. data/lib/espn/arguments.rb +41 -0
  5. data/lib/espn/client.rb +29 -5
  6. data/lib/espn/client/athletes.rb +39 -21
  7. data/lib/espn/client/audio.rb +20 -19
  8. data/lib/espn/client/headlines.rb +58 -27
  9. data/lib/espn/client/medals.rb +8 -0
  10. data/lib/espn/client/notes.rb +31 -21
  11. data/lib/espn/client/now.rb +11 -8
  12. data/lib/espn/client/scores.rb +33 -21
  13. data/lib/espn/client/sports.rb +20 -14
  14. data/lib/espn/client/standings.rb +20 -16
  15. data/lib/espn/client/teams.rb +39 -21
  16. data/lib/espn/client/video.rb +14 -17
  17. data/lib/espn/configuration.rb +29 -12
  18. data/lib/espn/error.rb +15 -3
  19. data/lib/espn/helpers.rb +39 -0
  20. data/lib/espn/mapper.rb +142 -0
  21. data/lib/espn/request.rb +86 -7
  22. data/lib/espn/version.rb +1 -1
  23. data/lib/faraday/response/raise_espn_error.rb +33 -11
  24. data/spec/espn/arguments_spec.rb +76 -0
  25. data/spec/espn/client/athletes_spec.rb +38 -47
  26. data/spec/espn/client/audio_spec.rb +30 -29
  27. data/spec/espn/client/headlines_spec.rb +80 -35
  28. data/spec/espn/client/medals_spec.rb +1 -1
  29. data/spec/espn/client/notes_spec.rb +39 -45
  30. data/spec/espn/client/now_spec.rb +1 -2
  31. data/spec/espn/client/scores_spec.rb +56 -39
  32. data/spec/espn/client/sports_spec.rb +56 -18
  33. data/spec/espn/client/standings_spec.rb +42 -19
  34. data/spec/espn/client/teams_spec.rb +61 -43
  35. data/spec/espn/client/video_spec.rb +9 -13
  36. data/spec/espn/helpers_spec.rb +31 -0
  37. data/spec/espn/mapper_spec.rb +136 -0
  38. data/spec/espn/request_spec.rb +65 -0
  39. data/spec/espn_spec.rb +11 -2
  40. data/spec/faraday/response/raise_espn_error_spec.rb +80 -0
  41. data/spec/responses/athletes.json +51 -0
  42. data/spec/responses/audio.json +101 -0
  43. data/spec/responses/headlines.json +174 -0
  44. data/spec/responses/medals.json +273 -0
  45. data/spec/responses/notes.json +100 -0
  46. data/spec/responses/now.json +44 -0
  47. data/spec/responses/scores.json +209 -0
  48. data/spec/responses/sports.json +164 -0
  49. data/spec/responses/standings.json +2689 -0
  50. data/spec/responses/teams.json +51 -0
  51. data/spec/responses/videos.json +28 -0
  52. data/spec/spec_helper.rb +11 -2
  53. metadata +37 -3
  54. data/lib/espn/connection.rb +0 -32
@@ -0,0 +1,51 @@
1
+ {
2
+ "sports": [{
3
+ "name": "baseball",
4
+ "id": 1,
5
+ "uid": "s:1",
6
+ "leagues": [{
7
+ "name": "Major League Baseball",
8
+ "abbreviation": "mlb",
9
+ "id": 10,
10
+ "uid": "s:1~l:10",
11
+ "groupId": 9,
12
+ "shortName": "MLB",
13
+ "teams": [{
14
+ "id": 22,
15
+ "uid": "s:1~l:10~t:22",
16
+ "location": "Philadelphia",
17
+ "name": "Phillies",
18
+ "abbreviation": "PHI",
19
+ "color": "BB003A",
20
+ "links": {
21
+ "api": {
22
+ "teams": {
23
+ "href": "http://api.espn.com/v1/sports/baseball/mlb/teams/22"
24
+ },
25
+ "news": {
26
+ "href": "http://api.espn.com/v1/sports/baseball/mlb/teams/22/news"
27
+ },
28
+ "notes": {
29
+ "href": "http://api.espn.com/v1/sports/baseball/mlb/teams/22/news/notes"
30
+ }
31
+ },
32
+ "web": {
33
+ "teams": {
34
+ "href": "http://espn.go.com/mlb/team/_/name/phi/philadelphia-phillies?ex_cid=espnapi_public"
35
+ }
36
+ },
37
+ "mobile": {
38
+ "teams": {
39
+ "href": "http://m.espn.go.com/mlb/clubhouse?teamId=22&ex_cid=espnapi_public"
40
+ }
41
+ }
42
+ }
43
+ }]
44
+ }]
45
+ }],
46
+ "resultsOffset": 0,
47
+ "resultsLimit": 50,
48
+ "resultsCount": 1,
49
+ "timestamp": "2013-08-27T17:21:37Z",
50
+ "status": "success"
51
+ }
@@ -0,0 +1,28 @@
1
+ {
2
+ "resultsCount":29,
3
+ "resultsOffset":0,
4
+ "resultsLimit":10,
5
+ "channels":[
6
+ {
7
+ "id": 1234567,
8
+ "name": "This is a video channel.",
9
+ "description": "This is the description of a video channel.",
10
+ "videos":[
11
+ {
12
+ "id": 920,
13
+ "headline": "Some video headline.",
14
+ "shortHeadline": "Some headline.",
15
+ "description": "Some video description.",
16
+ "shortDescription": "Some description.",
17
+ "premium": false,
18
+ "ad":{
19
+ "sport": "baseball",
20
+ "bundle": "1234"
21
+ },
22
+ "originalPublishDate": "2013-11-22T14:22:15Z",
23
+ "lastModified": "2013-11-22T14:22:15Z"
24
+ }
25
+ ]
26
+ }
27
+ ]
28
+ }
@@ -1,9 +1,18 @@
1
1
  require 'espn'
2
+ require 'json'
2
3
  require 'rspec'
3
4
  require 'webmock/rspec'
5
+ require 'hashie'
4
6
 
5
- def stub_get(url)
6
- stub_request(:get, espn_url(url))
7
+ def stub_get(file=nil)
8
+ if file.nil?
9
+ stub_request(:get, /api.espn.com/)
10
+ else
11
+ response = {
12
+ body: Hashie::Mash.new(JSON.parse(IO.read("spec/responses/#{file}")))
13
+ }
14
+ stub_request(:get, /api.espn.com/).to_return(response)
15
+ end
7
16
  end
8
17
 
9
18
  def espn_url(url)
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: espn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.3
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Thorp
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-08-23 00:00:00.000000000 Z
11
+ date: 2013-09-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: addressable
@@ -119,6 +119,7 @@ files:
119
119
  - LICENSE.md
120
120
  - README.md
121
121
  - espn.gemspec
122
+ - lib/espn/arguments.rb
122
123
  - lib/espn/client/athletes.rb
123
124
  - lib/espn/client/audio.rb
124
125
  - lib/espn/client/headlines.rb
@@ -132,12 +133,14 @@ files:
132
133
  - lib/espn/client/video.rb
133
134
  - lib/espn/client.rb
134
135
  - lib/espn/configuration.rb
135
- - lib/espn/connection.rb
136
136
  - lib/espn/error.rb
137
+ - lib/espn/helpers.rb
138
+ - lib/espn/mapper.rb
137
139
  - lib/espn/request.rb
138
140
  - lib/espn/version.rb
139
141
  - lib/espn.rb
140
142
  - lib/faraday/response/raise_espn_error.rb
143
+ - spec/espn/arguments_spec.rb
141
144
  - spec/espn/client/athletes_spec.rb
142
145
  - spec/espn/client/audio_spec.rb
143
146
  - spec/espn/client/headlines_spec.rb
@@ -151,7 +154,22 @@ files:
151
154
  - spec/espn/client/video_spec.rb
152
155
  - spec/espn/client_spec.rb
153
156
  - spec/espn/configuration_spec.rb
157
+ - spec/espn/helpers_spec.rb
158
+ - spec/espn/mapper_spec.rb
159
+ - spec/espn/request_spec.rb
154
160
  - spec/espn_spec.rb
161
+ - spec/faraday/response/raise_espn_error_spec.rb
162
+ - spec/responses/athletes.json
163
+ - spec/responses/audio.json
164
+ - spec/responses/headlines.json
165
+ - spec/responses/medals.json
166
+ - spec/responses/notes.json
167
+ - spec/responses/now.json
168
+ - spec/responses/scores.json
169
+ - spec/responses/sports.json
170
+ - spec/responses/standings.json
171
+ - spec/responses/teams.json
172
+ - spec/responses/videos.json
155
173
  - spec/spec_helper.rb
156
174
  homepage: http://github.com/andrewpthorp/espn
157
175
  licenses:
@@ -178,6 +196,7 @@ signing_key:
178
196
  specification_version: 4
179
197
  summary: Simple wrapper for the ESPN API.
180
198
  test_files:
199
+ - spec/espn/arguments_spec.rb
181
200
  - spec/espn/client/athletes_spec.rb
182
201
  - spec/espn/client/audio_spec.rb
183
202
  - spec/espn/client/headlines_spec.rb
@@ -191,6 +210,21 @@ test_files:
191
210
  - spec/espn/client/video_spec.rb
192
211
  - spec/espn/client_spec.rb
193
212
  - spec/espn/configuration_spec.rb
213
+ - spec/espn/helpers_spec.rb
214
+ - spec/espn/mapper_spec.rb
215
+ - spec/espn/request_spec.rb
194
216
  - spec/espn_spec.rb
217
+ - spec/faraday/response/raise_espn_error_spec.rb
218
+ - spec/responses/athletes.json
219
+ - spec/responses/audio.json
220
+ - spec/responses/headlines.json
221
+ - spec/responses/medals.json
222
+ - spec/responses/notes.json
223
+ - spec/responses/now.json
224
+ - spec/responses/scores.json
225
+ - spec/responses/sports.json
226
+ - spec/responses/standings.json
227
+ - spec/responses/teams.json
228
+ - spec/responses/videos.json
195
229
  - spec/spec_helper.rb
196
230
  has_rdoc:
@@ -1,32 +0,0 @@
1
- require 'faraday_middleware'
2
- require 'faraday/response/raise_espn_error'
3
-
4
- module ESPN
5
- # @private
6
- module Connection
7
- private
8
-
9
- def connection
10
-
11
- options = {
12
- proxy: proxy,
13
- ssl: { verify: false },
14
- url: api_url
15
- }
16
-
17
- options.merge!(params: { apikey: api_key }) if authed?
18
-
19
- connection = Faraday.new(options) do |builder|
20
- builder.request :url_encoded
21
-
22
- builder.use Faraday::Response::RaiseESPNError
23
- builder.use FaradayMiddleware::Mashify
24
- builder.use FaradayMiddleware::ParseJson
25
-
26
- builder.adapter adapter
27
- end
28
-
29
- connection
30
- end
31
- end
32
- end