sports_data_api 0.1.0 → 0.2.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 (80) hide show
  1. checksums.yaml +4 -4
  2. data/.ruby-version +1 -1
  3. data/.travis.yml +1 -0
  4. data/README.md +6 -6
  5. data/lib/sports_data_api.rb +2 -0
  6. data/lib/sports_data_api/nfl.rb +28 -16
  7. data/lib/sports_data_api/nfl/broadcast.rb +6 -7
  8. data/lib/sports_data_api/nfl/game.rb +17 -22
  9. data/lib/sports_data_api/nfl/games.rb +7 -8
  10. data/lib/sports_data_api/nfl/player.rb +5 -7
  11. data/lib/sports_data_api/nfl/player_season_stats.rb +3 -13
  12. data/lib/sports_data_api/nfl/season.rb +5 -7
  13. data/lib/sports_data_api/nfl/team.rb +50 -11
  14. data/lib/sports_data_api/nfl/team_roster.rb +2 -5
  15. data/lib/sports_data_api/nfl/team_season_stats.rb +4 -9
  16. data/lib/sports_data_api/nfl/teams.rb +9 -15
  17. data/lib/sports_data_api/nfl/venue.rb +12 -13
  18. data/lib/sports_data_api/nfl/weather.rb +7 -8
  19. data/lib/sports_data_api/nfl/week.rb +4 -6
  20. data/lib/sports_data_api/nhl.rb +71 -0
  21. data/lib/sports_data_api/nhl/broadcast.rb +14 -0
  22. data/lib/sports_data_api/nhl/game.rb +54 -0
  23. data/lib/sports_data_api/nhl/games.rb +26 -0
  24. data/lib/sports_data_api/nhl/player.rb +31 -0
  25. data/lib/sports_data_api/nhl/season.rb +28 -0
  26. data/lib/sports_data_api/nhl/team.rb +40 -0
  27. data/lib/sports_data_api/nhl/teams.rb +83 -0
  28. data/lib/sports_data_api/nhl/venue.rb +20 -0
  29. data/lib/sports_data_api/stats.rb +6 -2
  30. data/lib/sports_data_api/version.rb +1 -1
  31. data/spec/cassettes/sports_data_api_mlb_game.yml +19926 -19688
  32. data/spec/cassettes/sports_data_api_mlb_game_boxscore.yml +24 -18
  33. data/spec/cassettes/sports_data_api_mlb_game_stats.yml +576 -574
  34. data/spec/cassettes/sports_data_api_mlb_games.yml +152 -147
  35. data/spec/cassettes/sports_data_api_mlb_player.yml +8459 -10660
  36. data/spec/cassettes/sports_data_api_mlb_season.yml +19926 -19688
  37. data/spec/cassettes/sports_data_api_mlb_team.yml +47 -44
  38. data/spec/cassettes/sports_data_api_mlb_team_roster.yml +8459 -10660
  39. data/spec/cassettes/sports_data_api_mlb_teams.yml +94 -130
  40. data/spec/cassettes/sports_data_api_mlb_venues.yml +16 -16
  41. data/spec/cassettes/sports_data_api_nfl.yml +5331 -18893
  42. data/spec/cassettes/sports_data_api_nfl_broadcast.yml +35 -84
  43. data/spec/cassettes/sports_data_api_nfl_game.yml +7702 -15956
  44. data/spec/cassettes/sports_data_api_nfl_games.yml +211 -884
  45. data/spec/cassettes/sports_data_api_nfl_player_season_stats.yml +1002 -959
  46. data/spec/cassettes/sports_data_api_nfl_season.yml +3168 -14065
  47. data/spec/cassettes/sports_data_api_nfl_team.yml +1264 -715
  48. data/spec/cassettes/sports_data_api_nfl_team_hierarchy.yml +462 -846
  49. data/spec/cassettes/sports_data_api_nfl_team_roster.yml +796 -580
  50. data/spec/cassettes/sports_data_api_nfl_team_season_stats.yml +1004 -945
  51. data/spec/cassettes/sports_data_api_nfl_venue.yml +35 -84
  52. data/spec/cassettes/sports_data_api_nfl_weather.yml +35 -84
  53. data/spec/cassettes/sports_data_api_nfl_week.yml +3168 -14065
  54. data/spec/cassettes/sports_data_api_nhl.yml +18999 -0
  55. data/spec/cassettes/sports_data_api_nhl_broadcast.yml +226 -0
  56. data/spec/cassettes/sports_data_api_nhl_game.yml +23261 -0
  57. data/spec/cassettes/sports_data_api_nhl_games.yml +226 -0
  58. data/spec/cassettes/sports_data_api_nhl_league_hierarchy.yml +535 -0
  59. data/spec/cassettes/sports_data_api_nhl_player.yml +396 -0
  60. data/spec/cassettes/sports_data_api_nhl_season.yml +18961 -0
  61. data/spec/cassettes/sports_data_api_nhl_team.yml +1962 -0
  62. data/spec/cassettes/sports_data_api_nhl_venue.yml +226 -0
  63. data/spec/lib/sports_data_api/mlb/players_spec.rb +1 -1
  64. data/spec/lib/sports_data_api/nfl/game_spec.rb +33 -9
  65. data/spec/lib/sports_data_api/nfl/team_spec.rb +62 -32
  66. data/spec/lib/sports_data_api/nfl/teams_spec.rb +5 -6
  67. data/spec/lib/sports_data_api/nfl/venue_spec.rb +3 -3
  68. data/spec/lib/sports_data_api/nfl_spec.rb +3 -3
  69. data/spec/lib/sports_data_api/nhl/broadcast_spec.rb +18 -0
  70. data/spec/lib/sports_data_api/nhl/game_spec.rb +87 -0
  71. data/spec/lib/sports_data_api/nhl/games_spec.rb +19 -0
  72. data/spec/lib/sports_data_api/nhl/player_spec.rb +56 -0
  73. data/spec/lib/sports_data_api/nhl/season_spec.rb +41 -0
  74. data/spec/lib/sports_data_api/nhl/team_spec.rb +240 -0
  75. data/spec/lib/sports_data_api/nhl/teams_spec.rb +76 -0
  76. data/spec/lib/sports_data_api/nhl/venue_spec.rb +24 -0
  77. data/spec/lib/sports_data_api/nhl_spec.rb +41 -0
  78. data/spec/spec_helper.rb +2 -0
  79. data/sports_data_api.gemspec +1 -0
  80. metadata +62 -3
@@ -0,0 +1,226 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://api.sportsdatallc.org/nhl-t3/games/2013/12/12/schedule.xml?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
+ Accept-Ranges:
22
+ - bytes
23
+ Cache-Control:
24
+ - public,must-revalidate,max-age=2
25
+ Content-Type:
26
+ - application/xml
27
+ Date:
28
+ - Fri, 05 Sep 2014 01:51:21 GMT
29
+ Etag:
30
+ - '"1332d5bde26e6a8cfd02392bb70f8af5"'
31
+ Last-Modified:
32
+ - Mon, 10 Mar 2014 15:48:00 GMT
33
+ Server:
34
+ - nginx
35
+ X-Mashery-Responder:
36
+ - prod-j-worker-us-east-1d-41.mashery.com
37
+ X-Via:
38
+ - Nginx-S3-Proxy
39
+ Content-Length:
40
+ - '8003'
41
+ Connection:
42
+ - keep-alive
43
+ body:
44
+ encoding: UTF-8
45
+ base64_string: |
46
+ PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCEtLSBH
47
+ ZW5lcmF0aW9uIHN0YXJ0ZWQgQCAyMDE0LTAzLTEwIDE1OjQ3OjU5ICswMDAw
48
+ IC0tPgo8bGVhZ3VlIHhtbG5zPSJodHRwOi8vZmVlZC5lbGFzdGljc3RhdHMu
49
+ Y29tL3NjaGVtYS9ob2NrZXkvc2NoZWR1bGUtdjIuMC54c2QiIGlkPSJmZDU2
50
+ MDEwNy1hODViLTQzODgtYWIwZC02NTVhZDAyMmFmZjciIG5hbWU9Ik5ITCIg
51
+ YWxpYXM9Ik5ITCI+CiAgPGRhaWx5LXNjaGVkdWxlIGRhdGU9IjIwMTMtMTIt
52
+ MTIiPgogICAgPGdhbWVzPgogICAgICA8Z2FtZSBpZD0iYWJmZmFjNTQtZGMx
53
+ ZS00ZjJmLWFiZTUtOGMxOWE4N2NkYWQ3IiBzdGF0dXM9ImNsb3NlZCIgY292
54
+ ZXJhZ2U9ImZ1bGwiIGhvbWVfdGVhbT0iNDQxNzlkNDctMGYyNC0xMWUyLTg1
55
+ MjUtMThhOTA1NzY3ZTQ0IiBhd2F5X3RlYW09IjQ0MTcxM2I3LTBmMjQtMTFl
56
+ Mi04NTI1LTE4YTkwNTc2N2U0NCIgc2NoZWR1bGVkPSIyMDEzLTEyLTEzVDAw
57
+ OjAwOjAwKzAwOjAwIj4KICAgICAgICA8dmVudWUgaWQ9IjBhMTYyZTViLThk
58
+ NTktNDJkOC1iMTczLWExMzFiZjYzMmZmYiIgbmFtZT0iV2VsbHMgRmFyZ28g
59
+ Q2VudGVyIiBjYXBhY2l0eT0iMTk1MzciIGFkZHJlc3M9IjM2MDEgUy4gQnJv
60
+ YWQgU3QuIiBjaXR5PSJQaGlsYWRlbHBoaWEiIHN0YXRlPSJQQSIgemlwPSIx
61
+ OTE0OCIgY291bnRyeT0iVVNBIi8+CiAgICAgICAgPGhvbWUgbmFtZT0iUGhp
62
+ bGFkZWxwaGlhIEZseWVycyIgYWxpYXM9IlBISSIgaWQ9IjQ0MTc5ZDQ3LTBm
63
+ MjQtMTFlMi04NTI1LTE4YTkwNTc2N2U0NCI+CiAgICAgICAgPC9ob21lPgog
64
+ ICAgICAgIDxhd2F5IG5hbWU9Ik1vbnRyZWFsIENhbmFkaWVucyIgYWxpYXM9
65
+ Ik1UTCIgaWQ9IjQ0MTcxM2I3LTBmMjQtMTFlMi04NTI1LTE4YTkwNTc2N2U0
66
+ NCI+CiAgICAgICAgPC9hd2F5PgogICAgICAgIDxicm9hZGNhc3QgbmV0d29y
67
+ az0iQ1NOLVBIIi8+CiAgICAgIDwvZ2FtZT4KICAgICAgPGdhbWUgaWQ9ImNi
68
+ NGE1NTI2LWFjNDgtNGNkMS1iNzk2LWJkMTllZDY1MDY2ZSIgc3RhdHVzPSJj
69
+ bG9zZWQiIGNvdmVyYWdlPSJmdWxsIiBob21lX3RlYW09IjQ0MTc4MWI5LTBm
70
+ MjQtMTFlMi04NTI1LTE4YTkwNTc2N2U0NCIgYXdheV90ZWFtPSI0NDE2N2Ri
71
+ NC0wZjI0LTExZTItODUyNS0xOGE5MDU3NjdlNDQiIHNjaGVkdWxlZD0iMjAx
72
+ My0xMi0xM1QwMDowMDowMCswMDowMCI+CiAgICAgICAgPHZlbnVlIGlkPSJi
73
+ ZDgwNTNlNC0zYmRmLTRhNzAtOTE0Zi05ZjZkMDA1MWQ2NmQiIG5hbWU9Ik1h
74
+ ZGlzb24gU3F1YXJlIEdhcmRlbiIgY2FwYWNpdHk9IjE4MjAwIiBhZGRyZXNz
75
+ PSJGb3VyIFBlbm5zeWx2YW5pYSBQbGF6YSIgY2l0eT0iTmV3IFlvcmsiIHN0
76
+ YXRlPSJOWSIgemlwPSIxMDAwMSIgY291bnRyeT0iVVNBIi8+CiAgICAgICAg
77
+ PGhvbWUgbmFtZT0iTmV3IFlvcmsgUmFuZ2VycyIgYWxpYXM9Ik5ZUiIgaWQ9
78
+ IjQ0MTc4MWI5LTBmMjQtMTFlMi04NTI1LTE4YTkwNTc2N2U0NCI+CiAgICAg
79
+ ICAgPC9ob21lPgogICAgICAgIDxhd2F5IG5hbWU9IkNvbHVtYnVzIEJsdWUg
80
+ SmFja2V0cyIgYWxpYXM9IkNCSiIgaWQ9IjQ0MTY3ZGI0LTBmMjQtMTFlMi04
81
+ NTI1LTE4YTkwNTc2N2U0NCI+CiAgICAgICAgPC9hd2F5PgogICAgICAgIDxi
82
+ cm9hZGNhc3QgbmV0d29yaz0iTVNHIiBzYXRlbGxpdGU9IjYzNCIvPgogICAg
83
+ ICA8L2dhbWU+CiAgICAgIDxnYW1lIGlkPSIzYmY0YzE3Ny05YjIzLTQwYmIt
84
+ OTRhYy0zNDQxM2Y1NzAyNjYiIHN0YXR1cz0iY2xvc2VkIiBjb3ZlcmFnZT0i
85
+ ZnVsbCIgaG9tZV90ZWFtPSI0NDE3ZDNjYi0wZjI0LTExZTItODUyNS0xOGE5
86
+ MDU3NjdlNDQiIGF3YXlfdGVhbT0iNDQxNjliYjktMGYyNC0xMWUyLTg1MjUt
87
+ MThhOTA1NzY3ZTQ0IiBzY2hlZHVsZWQ9IjIwMTMtMTItMTNUMDA6MzA6MDAr
88
+ MDA6MDAiPgogICAgICAgIDx2ZW51ZSBpZD0iMDVhYTQ5YjItZjcyZC00ZDQy
89
+ LWFiMzAtZjIxOWQzMmVkOTdiIiBuYW1lPSJUYW1wYSBCYXkgVGltZXMgRm9y
90
+ dW0iIGNhcGFjaXR5PSIxOTIwNCIgYWRkcmVzcz0iNDAxIENoYW5uZWxzaWRl
91
+ IERyaXZlIiBjaXR5PSJUYW1wYSIgc3RhdGU9IkZMIiB6aXA9IjMzNjAyIiBj
92
+ b3VudHJ5PSJVU0EiLz4KICAgICAgICA8aG9tZSBuYW1lPSJUYW1wYSBCYXkg
93
+ TGlnaHRuaW5nIiBhbGlhcz0iVEIiIGlkPSI0NDE3ZDNjYi0wZjI0LTExZTIt
94
+ ODUyNS0xOGE5MDU3NjdlNDQiPgogICAgICAgIDwvaG9tZT4KICAgICAgICA8
95
+ YXdheSBuYW1lPSJEZXRyb2l0IFJlZCBXaW5ncyIgYWxpYXM9IkRFVCIgaWQ9
96
+ IjQ0MTY5YmI5LTBmMjQtMTFlMi04NTI1LTE4YTkwNTc2N2U0NCI+CiAgICAg
97
+ ICAgPC9hd2F5PgogICAgICAgIDxicm9hZGNhc3QgbmV0d29yaz0iTkhMTiIg
98
+ c2F0ZWxsaXRlPSIyMTUiLz4KICAgICAgPC9nYW1lPgogICAgICA8Z2FtZSBp
99
+ ZD0iZmQ1YzhiZDAtMzMwZi00YWEzLThmNGUtZjRmOTY2NzMyNTZmIiBzdGF0
100
+ dXM9ImNsb3NlZCIgY292ZXJhZ2U9ImZ1bGwiIGhvbWVfdGVhbT0iNDQxNmY1
101
+ ZTItMGYyNC0xMWUyLTg1MjUtMThhOTA1NzY3ZTQ0IiBhd2F5X3RlYW09IjQ0
102
+ MTZkNTU5LTBmMjQtMTFlMi04NTI1LTE4YTkwNTc2N2U0NCIgc2NoZWR1bGVk
103
+ PSIyMDEzLTEyLTEzVDAwOjMwOjAwKzAwOjAwIj4KICAgICAgICA8dmVudWUg
104
+ aWQ9ImUxZTY3NWEzLTljMTMtNDhiMy05ZTIyLTRjMDYzZGQ5OTA1ZCIgbmFt
105
+ ZT0iQ2FuYWRpYW4gVGlyZSBDZW50cmUiIGNhcGFjaXR5PSIxOTE1MyIgYWRk
106
+ cmVzcz0iMTAwMCBQYWxsYWRpdW0gRHJpdmUiIGNpdHk9Ik90dGF3YSIgc3Rh
107
+ dGU9Ik9OIiB6aXA9IksyViAxQTUiIGNvdW50cnk9IkNBTkFEQSIvPgogICAg
108
+ ICAgIDxob21lIG5hbWU9Ik90dGF3YSBTZW5hdG9ycyIgYWxpYXM9Ik9UVCIg
109
+ aWQ9IjQ0MTZmNWUyLTBmMjQtMTFlMi04NTI1LTE4YTkwNTc2N2U0NCI+CiAg
110
+ ICAgICAgPC9ob21lPgogICAgICAgIDxhd2F5IG5hbWU9IkJ1ZmZhbG8gU2Fi
111
+ cmVzIiBhbGlhcz0iQlVGIiBpZD0iNDQxNmQ1NTktMGYyNC0xMWUyLTg1MjUt
112
+ MThhOTA1NzY3ZTQ0Ij4KICAgICAgICA8L2F3YXk+CiAgICAgICAgPGJyb2Fk
113
+ Y2FzdCBuZXR3b3JrPSJNU0ctQiIgc2F0ZWxsaXRlPSI2MzgiLz4KICAgICAg
114
+ PC9nYW1lPgogICAgICA8Z2FtZSBpZD0iNGFiNDIwNGUtOTg2MS00MGFiLWI4
115
+ M2QtMmIxMGMzZDY1ZDc3IiBzdGF0dXM9ImNsb3NlZCIgY292ZXJhZ2U9ImZ1
116
+ bGwiIGhvbWVfdGVhbT0iNDQxODBlNTUtMGYyNC0xMWUyLTg1MjUtMThhOTA1
117
+ NzY3ZTQ0IiBhd2F5X3RlYW09IjQ0MTVjZTQ0LTBmMjQtMTFlMi04NTI1LTE4
118
+ YTkwNTc2N2U0NCIgc2NoZWR1bGVkPSIyMDEzLTEyLTEzVDAxOjAwOjAwKzAw
119
+ OjAwIj4KICAgICAgICA8dmVudWUgaWQ9IjkwMDMyN2IyLTczZDAtNGU0NC1h
120
+ MTM4LWZiZjRmY2JiMDU4ZiIgbmFtZT0iTVRTIENlbnRyZSIgY2FwYWNpdHk9
121
+ IjE1MDE1IiBhZGRyZXNzPSIzMDAgUG9ydGFnZSBBdmUuIiBjaXR5PSJXaW5u
122
+ aXBlZyIgc3RhdGU9Ik1CIiB6aXA9IlIzQyA1UzUiIGNvdW50cnk9IkNBTkFE
123
+ QSIvPgogICAgICAgIDxob21lIG5hbWU9Ildpbm5pcGVnIEpldHMiIGFsaWFz
124
+ PSJXUEciIGlkPSI0NDE4MGU1NS0wZjI0LTExZTItODUyNS0xOGE5MDU3Njdl
125
+ NDQiPgogICAgICAgIDwvaG9tZT4KICAgICAgICA8YXdheSBuYW1lPSJDb2xv
126
+ cmFkbyBBdmFsYW5jaGUiIGFsaWFzPSJDT0wiIGlkPSI0NDE1Y2U0NC0wZjI0
127
+ LTExZTItODUyNS0xOGE5MDU3NjdlNDQiPgogICAgICAgIDwvYXdheT4KICAg
128
+ ICAgICA8YnJvYWRjYXN0IG5ldHdvcms9IkFMVCIgc2F0ZWxsaXRlPSI2ODEi
129
+ Lz4KICAgICAgPC9nYW1lPgogICAgICA8Z2FtZSBpZD0iYmZkNWFiNjYtYWFm
130
+ MC00MGQ2LThiNTAtMWVjZTVkMDU0MTgyIiBzdGF0dXM9ImNsb3NlZCIgY292
131
+ ZXJhZ2U9ImZ1bGwiIGhvbWVfdGVhbT0iNDQxNjYwZWEtMGYyNC0xMWUyLTg1
132
+ MjUtMThhOTA1NzY3ZTQ0IiBhd2F5X3RlYW09IjQ0MTczMGE5LTBmMjQtMTFl
133
+ Mi04NTI1LTE4YTkwNTc2N2U0NCIgc2NoZWR1bGVkPSIyMDEzLTEyLTEzVDAx
134
+ OjAwOjAwKzAwOjAwIj4KICAgICAgICA8dmVudWUgaWQ9IjE0ZTkyM2I3LWE2
135
+ MzYtNDc2Zi1iODEwLWIxNTk2Nzc4N2UzYyIgbmFtZT0iU2NvdHRyYWRlIENl
136
+ bnRlciIgY2FwYWNpdHk9IjE5MTUwIiBhZGRyZXNzPSIxNDAxIENsYXJrIEF2
137
+ ZS4iIGNpdHk9IlN0LiBMb3VpcyIgc3RhdGU9Ik1PIiB6aXA9IjYzMTAzIiBj
138
+ b3VudHJ5PSJVU0EiLz4KICAgICAgICA8aG9tZSBuYW1lPSJTdC4gTG91aXMg
139
+ Qmx1ZXMiIGFsaWFzPSJTVEwiIGlkPSI0NDE2NjBlYS0wZjI0LTExZTItODUy
140
+ NS0xOGE5MDU3NjdlNDQiPgogICAgICAgIDwvaG9tZT4KICAgICAgICA8YXdh
141
+ eSBuYW1lPSJUb3JvbnRvIE1hcGxlIExlYWZzIiBhbGlhcz0iVE9SIiBpZD0i
142
+ NDQxNzMwYTktMGYyNC0xMWUyLTg1MjUtMThhOTA1NzY3ZTQ0Ij4KICAgICAg
143
+ ICA8L2F3YXk+CiAgICAgICAgPGJyb2FkY2FzdCBuZXR3b3JrPSJGUy1NVyIg
144
+ c2F0ZWxsaXRlPSI2NzEiLz4KICAgICAgPC9nYW1lPgogICAgICA8Z2FtZSBp
145
+ ZD0iYzc2ZWM5NDUtNjgyNS00MjQ4LWFmZGItNTE3NzI5MWIwNmYyIiBzdGF0
146
+ dXM9ImNsb3NlZCIgY292ZXJhZ2U9ImZ1bGwiIGhvbWVfdGVhbT0iNDQxNjQz
147
+ YjctMGYyNC0xMWUyLTg1MjUtMThhOTA1NzY3ZTQ0IiBhd2F5X3RlYW09IjQ0
148
+ MTU3NTIyLTBmMjQtMTFlMi04NTI1LTE4YTkwNTc2N2U0NCIgc2NoZWR1bGVk
149
+ PSIyMDEzLTEyLTEzVDAxOjAwOjAwKzAwOjAwIj4KICAgICAgICA8dmVudWUg
150
+ aWQ9ImNjNGU3YTYyLWZhZTgtNGViYi05YTY0LWY0Mzg0Mzg1ZDBiNiIgbmFt
151
+ ZT0iQnJpZGdlc3RvbmUgQXJlbmEiIGNhcGFjaXR5PSIxNzExMyIgYWRkcmVz
152
+ cz0iNTAxIEJyb2Fkd2F5IiBjaXR5PSJOYXNodmlsbGUiIHN0YXRlPSJUTiIg
153
+ emlwPSIzNzIwMyIgY291bnRyeT0iVVNBIi8+CiAgICAgICAgPGhvbWUgbmFt
154
+ ZT0iTmFzaHZpbGxlIFByZWRhdG9ycyIgYWxpYXM9Ik5TSCIgaWQ9IjQ0MTY0
155
+ M2I3LTBmMjQtMTFlMi04NTI1LTE4YTkwNTc2N2U0NCI+CiAgICAgICAgPC9o
156
+ b21lPgogICAgICAgIDxhd2F5IG5hbWU9IkRhbGxhcyBTdGFycyIgYWxpYXM9
157
+ IkRBTCIgaWQ9IjQ0MTU3NTIyLTBmMjQtMTFlMi04NTI1LTE4YTkwNTc2N2U0
158
+ NCI+CiAgICAgICAgPC9hd2F5PgogICAgICAgIDxicm9hZGNhc3QgbmV0d29y
159
+ az0iRlMtVE4iIHNhdGVsbGl0ZT0iNjQ0Ii8+CiAgICAgIDwvZ2FtZT4KICAg
160
+ ICAgPGdhbWUgaWQ9ImI4MTRjMTMyLWY3MDktNDJmOS04YWNiLTBhZGZmNmE0
161
+ ZmQ3MiIgc3RhdHVzPSJjbG9zZWQiIGNvdmVyYWdlPSJmdWxsIiBob21lX3Rl
162
+ YW09IjQ0MTUzZGExLTBmMjQtMTFlMi04NTI1LTE4YTkwNTc2N2U0NCIgYXdh
163
+ eV90ZWFtPSI0NDE3NjZiOS0wZjI0LTExZTItODUyNS0xOGE5MDU3NjdlNDQi
164
+ IHNjaGVkdWxlZD0iMjAxMy0xMi0xM1QwMjowMDowMCswMDowMCI+CiAgICAg
165
+ ICAgPHZlbnVlIGlkPSI3MWNhMzg2ZC1mYmFhLTQ3OWYtYjliNi03ODU4ZWYy
166
+ ZDNjYzciIG5hbWU9IkpvYmluZy5jb20gQXJlbmEiIGNhcGFjaXR5PSIxNzEy
167
+ NSIgYWRkcmVzcz0iOTQwMCBXLiBNYXJ5bGFuZCBBdmUuIiBjaXR5PSJHbGVu
168
+ ZGFsZSIgc3RhdGU9IkFaIiB6aXA9Ijg1MzA1IiBjb3VudHJ5PSJVU0EiLz4K
169
+ ICAgICAgICA8aG9tZSBuYW1lPSJQaG9lbml4IENveW90ZXMiIGFsaWFzPSJQ
170
+ SFgiIGlkPSI0NDE1M2RhMS0wZjI0LTExZTItODUyNS0xOGE5MDU3NjdlNDQi
171
+ PgogICAgICAgIDwvaG9tZT4KICAgICAgICA8YXdheSBuYW1lPSJOZXcgWW9y
172
+ ayBJc2xhbmRlcnMiIGFsaWFzPSJOWUkiIGlkPSI0NDE3NjZiOS0wZjI0LTEx
173
+ ZTItODUyNS0xOGE5MDU3NjdlNDQiPgogICAgICAgIDwvYXdheT4KICAgICAg
174
+ ICA8YnJvYWRjYXN0IG5ldHdvcms9IkZTLUEiIHNhdGVsbGl0ZT0iNjg2Ii8+
175
+ CiAgICAgIDwvZ2FtZT4KICAgICAgPGdhbWUgaWQ9ImMwMmFjYTg4LWM3MzMt
176
+ NGZjNi04YWUxLWIzOWY4ZTQxYzhhZCIgc3RhdHVzPSJjbG9zZWQiIGNvdmVy
177
+ YWdlPSJmdWxsIiBob21lX3RlYW09IjQ0MTU5MjQxLTBmMjQtMTFlMi04NTI1
178
+ LTE4YTkwNTc2N2U0NCIgYXdheV90ZWFtPSI0NDE4MmE5ZC0wZjI0LTExZTIt
179
+ ODUyNS0xOGE5MDU3NjdlNDQiIHNjaGVkdWxlZD0iMjAxMy0xMi0xM1QwMjow
180
+ MDowMCswMDowMCI+CiAgICAgICAgPHZlbnVlIGlkPSIxNTJkNjNkMi04MjVm
181
+ LTQ5MjgtYTA4YS03MDU2NDI2OGI0MDUiIG5hbWU9IlNjb3RpYWJhbmsgU2Fk
182
+ ZGxlZG9tZSIgY2FwYWNpdHk9IjE5Mjg5IiBhZGRyZXNzPSI1NTUgU2FkZGxl
183
+ ZG9tZSBSaXNlIFMuRS4iIGNpdHk9IkNhbGdhcnkiIHN0YXRlPSJBQiIgemlw
184
+ PSJUMkcgMlcxIiBjb3VudHJ5PSJDQU5BREEiLz4KICAgICAgICA8aG9tZSBu
185
+ YW1lPSJDYWxnYXJ5IEZsYW1lcyIgYWxpYXM9IkNHWSIgaWQ9IjQ0MTU5MjQx
186
+ LTBmMjQtMTFlMi04NTI1LTE4YTkwNTc2N2U0NCI+CiAgICAgICAgPC9ob21l
187
+ PgogICAgICAgIDxhd2F5IG5hbWU9IkNhcm9saW5hIEh1cnJpY2FuZXMiIGFs
188
+ aWFzPSJDQVIiIGlkPSI0NDE4MmE5ZC0wZjI0LTExZTItODUyNS0xOGE5MDU3
189
+ NjdlNDQiPgogICAgICAgIDwvYXdheT4KICAgICAgICA8YnJvYWRjYXN0IG5l
190
+ dHdvcms9IkZTLUNSIiBzYXRlbGxpdGU9IjY0NSIvPgogICAgICA8L2dhbWU+
191
+ CiAgICAgIDxnYW1lIGlkPSI4ZWQ5ZmQ2Yy1jNDMyLTQyYmItYjM5NS00YWVm
192
+ YjM0ZDY0MDIiIHN0YXR1cz0iY2xvc2VkIiBjb3ZlcmFnZT0iZnVsbCIgaG9t
193
+ ZV90ZWFtPSI0NDE1ZWE2Yy0wZjI0LTExZTItODUyNS0xOGE5MDU3NjdlNDQi
194
+ IGF3YXlfdGVhbT0iNDQxNmJhMWEtMGYyNC0xMWUyLTg1MjUtMThhOTA1NzY3
195
+ ZTQ0IiBzY2hlZHVsZWQ9IjIwMTMtMTItMTNUMDI6MzA6MDArMDA6MDAiPgog
196
+ ICAgICAgIDx2ZW51ZSBpZD0iMGU1OGRmZDEtZGUyYS00MTQwLTg0M2YtZWY1
197
+ OGE1NTVmNDNmIiBuYW1lPSJSZXhhbGwgUGxhY2UiIGNhcGFjaXR5PSIxNjgz
198
+ OSIgYWRkcmVzcz0iNzQyNCAxMTh0aCBBdmUuIiBjaXR5PSJFZG1vbnRvbiIg
199
+ c3RhdGU9IkFCIiB6aXA9IlQ1QiA0TTkiIGNvdW50cnk9IkNBTkFEQSIvPgog
200
+ ICAgICAgIDxob21lIG5hbWU9IkVkbW9udG9uIE9pbGVycyIgYWxpYXM9IkVE
201
+ TSIgaWQ9IjQ0MTVlYTZjLTBmMjQtMTFlMi04NTI1LTE4YTkwNTc2N2U0NCI+
202
+ CiAgICAgICAgPC9ob21lPgogICAgICAgIDxhd2F5IG5hbWU9IkJvc3RvbiBC
203
+ cnVpbnMiIGFsaWFzPSJCT1MiIGlkPSI0NDE2YmExYS0wZjI0LTExZTItODUy
204
+ NS0xOGE5MDU3NjdlNDQiPgogICAgICAgIDwvYXdheT4KICAgICAgICA8YnJv
205
+ YWRjYXN0IG5ldHdvcms9Ik5FU04iIHNhdGVsbGl0ZT0iNjI4Ii8+CiAgICAg
206
+ IDwvZ2FtZT4KICAgICAgPGdhbWUgaWQ9ImU1YmNiOTRjLWIwMTktNGEwMC1i
207
+ MDBlLTFjMGU4ZjNlZGFjYiIgc3RhdHVzPSJjbG9zZWQiIGNvdmVyYWdlPSJm
208
+ dWxsIiBob21lX3RlYW09IjQ0MTU1OTA5LTBmMjQtMTFlMi04NTI1LTE4YTkw
209
+ NTc2N2U0NCIgYXdheV90ZWFtPSI0NDE2MDkxYy0wZjI0LTExZTItODUyNS0x
210
+ OGE5MDU3NjdlNDQiIHNjaGVkdWxlZD0iMjAxMy0xMi0xM1QwMzozMDowMCsw
211
+ MDowMCI+CiAgICAgICAgPHZlbnVlIGlkPSIxZGE2NTI4Mi1hZjRjLTRiODEt
212
+ YTlkZS0zNDRiNzZiYjIwYjAiIG5hbWU9IlNBUCBDZW50ZXIgYXQgU2FuIEpv
213
+ c2UiIGNhcGFjaXR5PSIxNzU2MiIgYWRkcmVzcz0iNTI1IFcuIFNhbnRhIENs
214
+ YXJhIFN0LiIgY2l0eT0iU2FuIEpvc2UiIHN0YXRlPSJDQSIgemlwPSI5NTEx
215
+ MyIgY291bnRyeT0iVVNBIi8+CiAgICAgICAgPGhvbWUgbmFtZT0iU2FuIEpv
216
+ c2UgU2hhcmtzIiBhbGlhcz0iU0oiIGlkPSI0NDE1NTkwOS0wZjI0LTExZTIt
217
+ ODUyNS0xOGE5MDU3NjdlNDQiPgogICAgICAgIDwvaG9tZT4KICAgICAgICA8
218
+ YXdheSBuYW1lPSJNaW5uZXNvdGEgV2lsZCIgYWxpYXM9Ik1JTiIgaWQ9IjQ0
219
+ MTYwOTFjLTBmMjQtMTFlMi04NTI1LTE4YTkwNTc2N2U0NCI+CiAgICAgICAg
220
+ PC9hd2F5PgogICAgICAgIDxicm9hZGNhc3QgbmV0d29yaz0iQ1NOLUNBIiBz
221
+ YXRlbGxpdGU9IjY5OCIvPgogICAgICA8L2dhbWU+CiAgICA8L2dhbWVzPgog
222
+ IDwvZGFpbHktc2NoZWR1bGU+CjwvbGVhZ3VlPgo8IS0tIEdlbmVyYXRpb24g
223
+ ZW5kZWQgQCAyMDE0LTAzLTEwIDE1OjQ3OjU5ICswMDAwIC0tPgo=
224
+ http_version:
225
+ recorded_at: Fri, 05 Sep 2014 01:51:21 GMT
226
+ recorded_with: VCR 2.4.0
@@ -12,6 +12,6 @@ describe SportsDataApi::Mlb::Players, vcr: {
12
12
  end
13
13
 
14
14
  subject { team_rosters }
15
- its(:count) { should eq 1150 }
15
+ its(:count) { should eq 900 }
16
16
 
17
17
  end
@@ -15,6 +15,11 @@ describe SportsDataApi::Nfl::Game, vcr: {
15
15
  SportsDataApi.set_access_level(:nfl, 't')
16
16
  SportsDataApi::Nfl.boxscore(2012, :REG, 9, 'IND', 'MIA')
17
17
  end
18
+ let(:game_statistics) do
19
+ SportsDataApi.set_key(:nfl, api_key(:nfl))
20
+ SportsDataApi.set_access_level(:nfl, 't')
21
+ SportsDataApi::Nfl.game_statistics(2013, :REG, 16, 'GB', 'PIT')
22
+ end
18
23
  let(:weekly_schedule) do
19
24
  SportsDataApi.set_access_level(:nfl, 't')
20
25
  SportsDataApi.set_key(:nfl, api_key(:nfl))
@@ -33,9 +38,6 @@ describe SportsDataApi::Nfl::Game, vcr: {
33
38
  its(:venue) { should be_an_instance_of(SportsDataApi::Nfl::Venue) }
34
39
  its(:broadcast) { should be_an_instance_of(SportsDataApi::Nfl::Broadcast) }
35
40
  its(:weather) { should be_an_instance_of(SportsDataApi::Nfl::Weather) }
36
- it '#statistics' do
37
- expect { subject.statistics }.to raise_error(NotImplementedError)
38
- end
39
41
  it '#summary' do
40
42
  expect { subject.summary }.to raise_error(NotImplementedError)
41
43
  end
@@ -52,6 +54,7 @@ describe SportsDataApi::Nfl::Game, vcr: {
52
54
  expect { subject.depthchart }.to raise_error(NotImplementedError)
53
55
  end
54
56
  its(:boxscore) { should be_an_instance_of(SportsDataApi::Nfl::Game) }
57
+ its(:statistics) { should be_an_instance_of(SportsDataApi::Nfl::Game) }
55
58
  end
56
59
  context 'results from boxscore fetch' do
57
60
  subject { boxscore }
@@ -68,9 +71,6 @@ describe SportsDataApi::Nfl::Game, vcr: {
68
71
  its(:venue) { should be_an_instance_of(SportsDataApi::Nfl::Venue) }
69
72
  its(:broadcast) { should be_an_instance_of(SportsDataApi::Nfl::Broadcast) }
70
73
  its(:weather) { should be_an_instance_of(SportsDataApi::Nfl::Weather) }
71
- it '#statistics' do
72
- expect { subject.statistics }.to raise_error(NotImplementedError)
73
- end
74
74
  it '#summary' do
75
75
  expect { subject.summary }.to raise_error(NotImplementedError)
76
76
  end
@@ -87,6 +87,7 @@ describe SportsDataApi::Nfl::Game, vcr: {
87
87
  expect { subject.depthchart }.to raise_error(NotImplementedError)
88
88
  end
89
89
  its(:boxscore) { should be_an_instance_of(SportsDataApi::Nfl::Game) }
90
+ its(:statistics) { should be_an_instance_of(SportsDataApi::Nfl::Game) }
90
91
  end
91
92
  context 'results from weekly schedule fetch' do
92
93
  subject { weekly_schedule.first }
@@ -103,9 +104,32 @@ describe SportsDataApi::Nfl::Game, vcr: {
103
104
  its(:venue) { should be_an_instance_of(SportsDataApi::Nfl::Venue) }
104
105
  its(:broadcast) { should be_an_instance_of(SportsDataApi::Nfl::Broadcast) }
105
106
  its(:weather) { should be_an_instance_of(SportsDataApi::Nfl::Weather) }
106
- it '#statistics' do
107
- expect { subject.statistics }.to raise_error(NotImplementedError)
107
+ it '#summary' do
108
+ expect { subject.summary }.to raise_error(NotImplementedError)
109
+ end
110
+ it '#pbp' do
111
+ expect { subject.pbp }.to raise_error(NotImplementedError)
112
+ end
113
+ it '#roster' do
114
+ expect { subject.roster }.to raise_error(NotImplementedError)
108
115
  end
116
+ it '#injuries' do
117
+ expect { subject.injuries }.to raise_error(NotImplementedError)
118
+ end
119
+ it '#depthchart' do
120
+ expect { subject.depthchart }.to raise_error(NotImplementedError)
121
+ end
122
+ its(:boxscore) { should be_an_instance_of(SportsDataApi::Nfl::Game) }
123
+ its(:statistics) { should be_an_instance_of(SportsDataApi::Nfl::Game) }
124
+ end
125
+ context 'results from game statistics fetch' do
126
+ subject { game_statistics }
127
+ its(:id) { should eq '00d5024b-0853-4e09-ad5a-4981a968f0ad' }
128
+ its(:status) { should eq 'closed' }
129
+ its(:scheduled) { should eq Time.parse("2013-12-22T21:25:00+00:00") }
130
+ its(:home_team) { should be_an_instance_of(SportsDataApi::Nfl::Team) }
131
+ its(:away_team) { should be_an_instance_of(SportsDataApi::Nfl::Team) }
132
+
109
133
  it '#summary' do
110
134
  expect { subject.summary }.to raise_error(NotImplementedError)
111
135
  end
@@ -123,4 +147,4 @@ describe SportsDataApi::Nfl::Game, vcr: {
123
147
  end
124
148
  its(:boxscore) { should be_an_instance_of(SportsDataApi::Nfl::Game) }
125
149
  end
126
- end
150
+ end
@@ -10,43 +10,73 @@ describe SportsDataApi::Nfl::Team, vcr: {
10
10
  SportsDataApi.set_access_level(:nfl, 't')
11
11
  SportsDataApi::Nfl.boxscore(2012, :REG, 9, 'IND', 'MIA')
12
12
  end
13
- describe 'home team' do
14
- subject { boxscore.home_team }
15
- it { should be_an_instance_of(SportsDataApi::Nfl::Team) }
16
- its(:id) { should eq 'IND' }
17
- its(:name) { should eq 'Colts' }
18
- its(:market) { should eq 'Indianapolis' }
19
- its(:remaining_challenges) { should eq 1 }
20
- its(:remaining_timeouts) { should eq 2 }
21
- its(:score) { should eq 23 }
22
- its(:quarters) { should have(4).scores }
23
- its(:quarters) { should eq [7, 6, 7, 3] }
13
+ let(:game_statistics) do
14
+ SportsDataApi.set_key(:nfl, api_key(:nfl))
15
+ SportsDataApi.set_access_level(:nfl, 't')
16
+ SportsDataApi::Nfl.game_statistics(2013, :REG, 16, 'GB', 'PIT')
17
+ end
18
+ context 'boxscore' do
19
+ describe 'home team' do
20
+ subject { boxscore.home_team }
21
+ it { should be_an_instance_of(SportsDataApi::Nfl::Team) }
22
+ its(:id) { should eq 'IND' }
23
+ its(:name) { should eq 'Colts' }
24
+ its(:market) { should eq 'Indianapolis' }
25
+ its(:remaining_challenges) { should eq 1 }
26
+ its(:remaining_timeouts) { should eq 2 }
27
+ its(:score) { should eq 23 }
28
+ its(:quarters) { should have(4).scores }
29
+ its(:quarters) { should eq [7, 6, 7, 3] }
30
+ end
31
+ describe 'away team' do
32
+ subject { boxscore.away_team }
33
+ it { should be_an_instance_of(SportsDataApi::Nfl::Team) }
34
+ its(:id) { should eq 'MIA' }
35
+ its(:name) { should eq 'Dolphins' }
36
+ its(:market) { should eq 'Miami' }
37
+ its(:remaining_challenges) { should eq 2 }
38
+ its(:remaining_timeouts) { should eq 2 }
39
+ its(:score) { should eq 20 }
40
+ its(:quarters) { should have(4).scores }
41
+ its(:quarters) { should eq [3, 14, 0, 3] }
42
+ end
43
+ describe 'eql' do
44
+ let(:url) { 'http://api.sportsdatallc.org/nfl-t1/teams/hierarchy.json' }
45
+
46
+ let(:dolphins_hash) do
47
+ str = RestClient.get(url, params: { api_key: api_key(:nfl) }).to_s
48
+ teams_hash = MultiJson.load(str)
49
+ teams_hash['conferences'][0]['divisions'][0]['teams'][1]
50
+ end
51
+
52
+ let(:dolphins1) { SportsDataApi::Nfl::Team.new(dolphins_hash) }
53
+ let(:dolphins2) { SportsDataApi::Nfl::Team.new(dolphins_hash) }
54
+
55
+ it { (dolphins1 == dolphins2).should be_true }
56
+ end
24
57
  end
25
- describe 'away team' do
26
- subject { boxscore.away_team }
27
- it { should be_an_instance_of(SportsDataApi::Nfl::Team) }
28
- its(:id) { should eq 'MIA' }
29
- its(:name) { should eq 'Dolphins' }
30
- its(:market) { should eq 'Miami' }
31
- its(:remaining_challenges) { should eq 2 }
32
- its(:remaining_timeouts) { should eq 2 }
33
- its(:score) { should eq 20 }
34
- its(:quarters) { should have(4).scores }
35
- its(:quarters) { should eq [3, 14, 0, 3] }
58
+ context 'game statistics' do
59
+ describe 'home team' do
60
+ subject { game_statistics.home_team }
61
+ its(:id) { should eq 'GB' }
62
+ its(:points) { should eq 31 }
63
+ end
64
+ describe 'away team' do
65
+ subject { game_statistics.away_team }
66
+ its(:id) { should eq 'PIT' }
67
+ its(:points) { should eq 38 }
68
+ end
36
69
  end
37
- describe 'eql' do
38
- let(:url) { 'http://api.sportsdatallc.org/nfl-t1/teams/hierarchy.xml' }
70
+ describe 'venue' do
71
+ let(:url) { 'http://api.sportsdatallc.org/nfl-t1/teams/hierarchy.json' }
39
72
 
40
- let(:dolphins_xml) do
73
+ let(:dolphins_hash) do
41
74
  str = RestClient.get(url, params: { api_key: api_key(:nfl) }).to_s
42
- xml = Nokogiri::XML(str)
43
- xml.remove_namespaces!
44
- xml.xpath('/league/conference/division/team[@id=\'MIA\']')
75
+ teams_hash = MultiJson.load(str)
76
+ teams_hash['conferences'][0]['divisions'][0]['teams'][1]
45
77
  end
46
78
 
47
- let(:dolphins1) { SportsDataApi::Nfl::Team.new(dolphins_xml) }
48
- let(:dolphins2) { SportsDataApi::Nfl::Team.new(dolphins_xml) }
49
-
50
- it { (dolphins1 == dolphins2).should be_true }
79
+ let(:dolphins) { SportsDataApi::Nfl::Team.new(dolphins_hash) }
80
+ it { dolphins.venue.should be_instance_of(SportsDataApi::Nfl::Venue)}
51
81
  end
52
82
  end
@@ -11,16 +11,15 @@ describe SportsDataApi::Nfl::Teams, vcr: {
11
11
  SportsDataApi::Nfl.teams
12
12
  end
13
13
 
14
- let(:url) { 'http://api.sportsdatallc.org/nfl-t1/teams/hierarchy.xml' }
14
+ let(:url) { 'http://api.sportsdatallc.org/nfl-t1/teams/hierarchy.json' }
15
15
 
16
- let(:dolphins_xml) do
16
+ let(:dolphins_hash) do
17
17
  str = RestClient.get(url, params: { api_key: api_key(:nfl) }).to_s
18
- xml = Nokogiri::XML(str)
19
- xml.remove_namespaces!
20
- xml.xpath('/league/conference/division/team[@id=\'MIA\']')
18
+ teams_hash = MultiJson.load(str)
19
+ teams_hash['conferences'][0]['divisions'][0]['teams'][1]
21
20
  end
22
21
 
23
- let(:dolphins) { SportsDataApi::Nfl::Team.new(dolphins_xml) }
22
+ let(:dolphins) { SportsDataApi::Nfl::Team.new(dolphins_hash) }
24
23
 
25
24
  subject { teams }
26
25
  its(:conferences) { should eq %w(AFC NFC).map { |str| str.to_sym } }