stattleship-ruby 0.1.19

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 (264) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +12 -0
  3. data/.rspec +2 -0
  4. data/.rubocop.yml +263 -0
  5. data/.ruby-version +1 -0
  6. data/.travis.yml +8 -0
  7. data/CODE_OF_CONDUCT.md +13 -0
  8. data/Gemfile +15 -0
  9. data/LICENSE +1 -0
  10. data/README.md +75 -0
  11. data/Rakefile +1 -0
  12. data/bin/console +7 -0
  13. data/bin/game_log_officials +32 -0
  14. data/bin/game_logs +69 -0
  15. data/bin/games +42 -0
  16. data/bin/in_progress +19 -0
  17. data/bin/injuries +18 -0
  18. data/bin/officials +42 -0
  19. data/bin/players +45 -0
  20. data/bin/scoreboard +43 -0
  21. data/bin/setup +7 -0
  22. data/bin/stat_leaders +25 -0
  23. data/bin/team_game_logs +35 -0
  24. data/bin/teams +29 -0
  25. data/bin/top_stats +25 -0
  26. data/bin/total_player_stat +33 -0
  27. data/bin/total_team_stat +22 -0
  28. data/examples/README.md +118 -0
  29. data/examples/baseball_feats.rb +35 -0
  30. data/examples/baseball_games.rb +32 -0
  31. data/examples/baseball_player_game_logs.rb +33 -0
  32. data/examples/baseball_stat_leaders.rb +30 -0
  33. data/examples/basketball_game_logs.rb +33 -0
  34. data/examples/basketball_injuries.rb +36 -0
  35. data/examples/basketball_season_player_performance_rankings.rb +31 -0
  36. data/examples/basketball_stat_leaders.rb +40 -0
  37. data/examples/basketball_team_game_logs.rb +38 -0
  38. data/examples/basketball_top_stats.rb +43 -0
  39. data/examples/basketball_winning_streaks.rb +27 -0
  40. data/examples/bears_team_game_logs.rb +46 -0
  41. data/examples/football_feats.rb +49 -0
  42. data/examples/football_game_logs.rb +40 -0
  43. data/examples/football_players.rb +43 -0
  44. data/examples/football_stats.rb +50 -0
  45. data/examples/football_total_player_stat.rb +32 -0
  46. data/examples/hockey_games.rb +56 -0
  47. data/examples/hockey_penalties.rb +47 -0
  48. data/examples/hockey_scoring_plays.rb +55 -0
  49. data/examples/hockey_team_ranked_streaks.rb +27 -0
  50. data/examples/hockey_teams.rb +54 -0
  51. data/examples/hockey_total_team_stat.rb +32 -0
  52. data/examples/sample.env +2 -0
  53. data/lib/stattleship.rb +117 -0
  54. data/lib/stattleship/baseball_feats.rb +15 -0
  55. data/lib/stattleship/baseball_game_logs.rb +159 -0
  56. data/lib/stattleship/baseball_games.rb +15 -0
  57. data/lib/stattleship/baseball_injuries.rb +15 -0
  58. data/lib/stattleship/baseball_penalties.rb +15 -0
  59. data/lib/stattleship/baseball_players.rb +15 -0
  60. data/lib/stattleship/baseball_scoring_plays.rb +15 -0
  61. data/lib/stattleship/baseball_stat_leaders.rb +15 -0
  62. data/lib/stattleship/baseball_stats.rb +15 -0
  63. data/lib/stattleship/baseball_team_game_logs.rb +142 -0
  64. data/lib/stattleship/baseball_team_outcome_streaks.rb +15 -0
  65. data/lib/stattleship/baseball_teams.rb +15 -0
  66. data/lib/stattleship/baseball_top_stats.rb +15 -0
  67. data/lib/stattleship/baseball_total_player_stat.rb +15 -0
  68. data/lib/stattleship/baseball_total_team_stat.rb +15 -0
  69. data/lib/stattleship/basketball_feats.rb +15 -0
  70. data/lib/stattleship/basketball_game_logs.rb +111 -0
  71. data/lib/stattleship/basketball_games.rb +15 -0
  72. data/lib/stattleship/basketball_injuries.rb +15 -0
  73. data/lib/stattleship/basketball_penalties.rb +15 -0
  74. data/lib/stattleship/basketball_players.rb +15 -0
  75. data/lib/stattleship/basketball_scoring_plays.rb +15 -0
  76. data/lib/stattleship/basketball_stat_leaders.rb +15 -0
  77. data/lib/stattleship/basketball_stats.rb +15 -0
  78. data/lib/stattleship/basketball_team_game_logs.rb +113 -0
  79. data/lib/stattleship/basketball_team_outcome_streaks.rb +15 -0
  80. data/lib/stattleship/basketball_teams.rb +15 -0
  81. data/lib/stattleship/basketball_top_stats.rb +15 -0
  82. data/lib/stattleship/basketball_total_player_stat.rb +15 -0
  83. data/lib/stattleship/basketball_total_team_stat.rb +15 -0
  84. data/lib/stattleship/client/client.rb +101 -0
  85. data/lib/stattleship/client/configuration.rb +42 -0
  86. data/lib/stattleship/endpoint.rb +208 -0
  87. data/lib/stattleship/feats.rb +150 -0
  88. data/lib/stattleship/football_feats.rb +15 -0
  89. data/lib/stattleship/football_game_logs.rb +255 -0
  90. data/lib/stattleship/football_games.rb +15 -0
  91. data/lib/stattleship/football_injuries.rb +15 -0
  92. data/lib/stattleship/football_penalties.rb +15 -0
  93. data/lib/stattleship/football_players.rb +15 -0
  94. data/lib/stattleship/football_scoring_plays.rb +15 -0
  95. data/lib/stattleship/football_stat_leaders.rb +15 -0
  96. data/lib/stattleship/football_stats.rb +15 -0
  97. data/lib/stattleship/football_team_game_logs.rb +176 -0
  98. data/lib/stattleship/football_team_outcome_streaks.rb +15 -0
  99. data/lib/stattleship/football_teams.rb +15 -0
  100. data/lib/stattleship/football_top_stats.rb +15 -0
  101. data/lib/stattleship/football_total_player_stat.rb +15 -0
  102. data/lib/stattleship/football_total_team_stat.rb +15 -0
  103. data/lib/stattleship/formatters/stat_formatter.rb +28 -0
  104. data/lib/stattleship/game_logs.rb +97 -0
  105. data/lib/stattleship/games.rb +38 -0
  106. data/lib/stattleship/hockey_feats.rb +15 -0
  107. data/lib/stattleship/hockey_game_logs.rb +107 -0
  108. data/lib/stattleship/hockey_games.rb +15 -0
  109. data/lib/stattleship/hockey_injuries.rb +15 -0
  110. data/lib/stattleship/hockey_penalties.rb +32 -0
  111. data/lib/stattleship/hockey_players.rb +15 -0
  112. data/lib/stattleship/hockey_scoring_plays.rb +15 -0
  113. data/lib/stattleship/hockey_stat_leaders.rb +15 -0
  114. data/lib/stattleship/hockey_stats.rb +15 -0
  115. data/lib/stattleship/hockey_team_game_logs.rb +128 -0
  116. data/lib/stattleship/hockey_team_outcome_streaks.rb +15 -0
  117. data/lib/stattleship/hockey_teams.rb +15 -0
  118. data/lib/stattleship/hockey_top_stats.rb +15 -0
  119. data/lib/stattleship/hockey_total_player_stat.rb +15 -0
  120. data/lib/stattleship/hockey_total_team_stat.rb +15 -0
  121. data/lib/stattleship/injuries.rb +32 -0
  122. data/lib/stattleship/models.rb +19 -0
  123. data/lib/stattleship/models/game.rb +360 -0
  124. data/lib/stattleship/models/injury.rb +22 -0
  125. data/lib/stattleship/models/league.rb +35 -0
  126. data/lib/stattleship/models/official.rb +20 -0
  127. data/lib/stattleship/models/penalty.rb +133 -0
  128. data/lib/stattleship/models/player.rb +124 -0
  129. data/lib/stattleship/models/playing_position.rb +17 -0
  130. data/lib/stattleship/models/ranking.rb +96 -0
  131. data/lib/stattleship/models/scoring_play.rb +201 -0
  132. data/lib/stattleship/models/scoring_player.rb +22 -0
  133. data/lib/stattleship/models/season.rb +18 -0
  134. data/lib/stattleship/models/team.rb +78 -0
  135. data/lib/stattleship/models/team_outcome_streak.rb +88 -0
  136. data/lib/stattleship/models/venue.rb +32 -0
  137. data/lib/stattleship/params.rb +102 -0
  138. data/lib/stattleship/params/baseball_feats_params.rb +6 -0
  139. data/lib/stattleship/params/baseball_game_logs_params.rb +6 -0
  140. data/lib/stattleship/params/baseball_games_params.rb +6 -0
  141. data/lib/stattleship/params/baseball_injuries_params.rb +6 -0
  142. data/lib/stattleship/params/baseball_penalties_params.rb +6 -0
  143. data/lib/stattleship/params/baseball_players_params.rb +6 -0
  144. data/lib/stattleship/params/baseball_scoring_plays_params.rb +6 -0
  145. data/lib/stattleship/params/baseball_stat_leaders_params.rb +6 -0
  146. data/lib/stattleship/params/baseball_stats_params.rb +6 -0
  147. data/lib/stattleship/params/baseball_team_game_logs_params.rb +6 -0
  148. data/lib/stattleship/params/baseball_team_outcome_streaks_params.rb +9 -0
  149. data/lib/stattleship/params/baseball_team_stats_params.rb +10 -0
  150. data/lib/stattleship/params/baseball_teams_params.rb +6 -0
  151. data/lib/stattleship/params/baseball_top_stats_params.rb +6 -0
  152. data/lib/stattleship/params/baseball_total_player_stat_params.rb +6 -0
  153. data/lib/stattleship/params/baseball_total_team_stat_params.rb +11 -0
  154. data/lib/stattleship/params/basketball_feats_params.rb +6 -0
  155. data/lib/stattleship/params/basketball_game_logs_params.rb +6 -0
  156. data/lib/stattleship/params/basketball_games_params.rb +6 -0
  157. data/lib/stattleship/params/basketball_injuries_params.rb +6 -0
  158. data/lib/stattleship/params/basketball_penalties_params.rb +6 -0
  159. data/lib/stattleship/params/basketball_players_params.rb +6 -0
  160. data/lib/stattleship/params/basketball_scoring_plays_params.rb +6 -0
  161. data/lib/stattleship/params/basketball_stat_leaders_params.rb +6 -0
  162. data/lib/stattleship/params/basketball_stats_params.rb +6 -0
  163. data/lib/stattleship/params/basketball_team_game_logs_params.rb +6 -0
  164. data/lib/stattleship/params/basketball_team_outcome_streaks_params.rb +9 -0
  165. data/lib/stattleship/params/basketball_team_stats_params.rb +10 -0
  166. data/lib/stattleship/params/basketball_teams_params.rb +6 -0
  167. data/lib/stattleship/params/basketball_top_stats_params.rb +6 -0
  168. data/lib/stattleship/params/basketball_total_player_stat_params.rb +6 -0
  169. data/lib/stattleship/params/basketball_total_team_stat_params.rb +11 -0
  170. data/lib/stattleship/params/feats_params.rb +23 -0
  171. data/lib/stattleship/params/football_feats_params.rb +6 -0
  172. data/lib/stattleship/params/football_game_logs_params.rb +11 -0
  173. data/lib/stattleship/params/football_games_params.rb +6 -0
  174. data/lib/stattleship/params/football_injuries_params.rb +6 -0
  175. data/lib/stattleship/params/football_penalties_params.rb +6 -0
  176. data/lib/stattleship/params/football_players_params.rb +6 -0
  177. data/lib/stattleship/params/football_scoring_plays_params.rb +6 -0
  178. data/lib/stattleship/params/football_stat_leaders_params.rb +6 -0
  179. data/lib/stattleship/params/football_stats_params.rb +6 -0
  180. data/lib/stattleship/params/football_team_game_logs_params.rb +6 -0
  181. data/lib/stattleship/params/football_team_outcome_streaks_params.rb +9 -0
  182. data/lib/stattleship/params/football_team_stats_params.rb +10 -0
  183. data/lib/stattleship/params/football_teams_params.rb +6 -0
  184. data/lib/stattleship/params/football_top_stats_params.rb +6 -0
  185. data/lib/stattleship/params/football_total_player_stat_params.rb +6 -0
  186. data/lib/stattleship/params/football_total_team_stat_params.rb +11 -0
  187. data/lib/stattleship/params/game_logs_params.rb +13 -0
  188. data/lib/stattleship/params/game_time_params.rb +17 -0
  189. data/lib/stattleship/params/games_params.rb +13 -0
  190. data/lib/stattleship/params/hockey_feats_params.rb +6 -0
  191. data/lib/stattleship/params/hockey_game_logs_params.rb +6 -0
  192. data/lib/stattleship/params/hockey_games_params.rb +6 -0
  193. data/lib/stattleship/params/hockey_injuries_params.rb +6 -0
  194. data/lib/stattleship/params/hockey_penalties_params.rb +6 -0
  195. data/lib/stattleship/params/hockey_players_params.rb +6 -0
  196. data/lib/stattleship/params/hockey_scoring_plays_params.rb +6 -0
  197. data/lib/stattleship/params/hockey_stat_leaders_params.rb +6 -0
  198. data/lib/stattleship/params/hockey_stats_params.rb +6 -0
  199. data/lib/stattleship/params/hockey_team_game_logs_params.rb +6 -0
  200. data/lib/stattleship/params/hockey_team_outcome_streaks_params.rb +9 -0
  201. data/lib/stattleship/params/hockey_team_stats_params.rb +10 -0
  202. data/lib/stattleship/params/hockey_teams_params.rb +6 -0
  203. data/lib/stattleship/params/hockey_top_stats_params.rb +6 -0
  204. data/lib/stattleship/params/hockey_total_player_stat_params.rb +6 -0
  205. data/lib/stattleship/params/hockey_total_team_stat_params.rb +11 -0
  206. data/lib/stattleship/params/injuries_params.rb +11 -0
  207. data/lib/stattleship/params/penalties_params.rb +11 -0
  208. data/lib/stattleship/params/players_params.rb +12 -0
  209. data/lib/stattleship/params/query_params.rb +50 -0
  210. data/lib/stattleship/params/rankings_params.rb +15 -0
  211. data/lib/stattleship/params/scoring_plays_params.rb +12 -0
  212. data/lib/stattleship/params/stat_leaders_params.rb +17 -0
  213. data/lib/stattleship/params/stats_params.rb +17 -0
  214. data/lib/stattleship/params/team_game_logs_params.rb +12 -0
  215. data/lib/stattleship/params/team_outcome_streaks_params.rb +24 -0
  216. data/lib/stattleship/params/teams_params.rb +9 -0
  217. data/lib/stattleship/params/top_stats_params.rb +17 -0
  218. data/lib/stattleship/params/total_player_stat_params.rb +17 -0
  219. data/lib/stattleship/params/total_team_stat_params.rb +18 -0
  220. data/lib/stattleship/penalties.rb +26 -0
  221. data/lib/stattleship/players.rb +26 -0
  222. data/lib/stattleship/rankings.rb +51 -0
  223. data/lib/stattleship/scoring_plays.rb +30 -0
  224. data/lib/stattleship/stat_leaders.rb +43 -0
  225. data/lib/stattleship/stats.rb +76 -0
  226. data/lib/stattleship/team_game_logs.rb +90 -0
  227. data/lib/stattleship/team_outcome_streaks.rb +28 -0
  228. data/lib/stattleship/teams.rb +20 -0
  229. data/lib/stattleship/top_stats.rb +58 -0
  230. data/lib/stattleship/total_player_stat.rb +37 -0
  231. data/lib/stattleship/total_team_stat.rb +30 -0
  232. data/lib/stattleship/validators.rb +33 -0
  233. data/lib/stattleship/validators/base_validator.rb +117 -0
  234. data/lib/stattleship/validators/birth_date_validator.rb +9 -0
  235. data/lib/stattleship/validators/current_validator.rb +9 -0
  236. data/lib/stattleship/validators/feat_validator.rb +9 -0
  237. data/lib/stattleship/validators/game_id_validator.rb +9 -0
  238. data/lib/stattleship/validators/interval_type_validator.rb +9 -0
  239. data/lib/stattleship/validators/level_up_validator.rb +9 -0
  240. data/lib/stattleship/validators/level_validator.rb +16 -0
  241. data/lib/stattleship/validators/on_validator.rb +9 -0
  242. data/lib/stattleship/validators/outcome_validator.rb +9 -0
  243. data/lib/stattleship/validators/page_validator.rb +9 -0
  244. data/lib/stattleship/validators/penalty_validator.rb +9 -0
  245. data/lib/stattleship/validators/per_page_validator.rb +9 -0
  246. data/lib/stattleship/validators/place_validator.rb +9 -0
  247. data/lib/stattleship/validators/player_id_validator.rb +9 -0
  248. data/lib/stattleship/validators/rank_validator.rb +9 -0
  249. data/lib/stattleship/validators/ranked_validator.rb +9 -0
  250. data/lib/stattleship/validators/ranking_validator.rb +9 -0
  251. data/lib/stattleship/validators/scoring_method_validator.rb +9 -0
  252. data/lib/stattleship/validators/scoring_type_validator.rb +9 -0
  253. data/lib/stattleship/validators/season_id_validator.rb +9 -0
  254. data/lib/stattleship/validators/since_validator.rb +9 -0
  255. data/lib/stattleship/validators/stat_validator.rb +23 -0
  256. data/lib/stattleship/validators/status_validator.rb +16 -0
  257. data/lib/stattleship/validators/streak_length_validator.rb +9 -0
  258. data/lib/stattleship/validators/team_id_validator.rb +9 -0
  259. data/lib/stattleship/validators/type_validator.rb +9 -0
  260. data/lib/stattleship/validators/week_validator.rb +9 -0
  261. data/lib/stattleship/version.rb +5 -0
  262. data/sample.env +1 -0
  263. data/stattleship-ruby.gemspec +33 -0
  264. metadata +503 -0
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'stattleship'
5
+
6
+ params = Stattleship::Params::BasketballTotalTeamStatParams.new
7
+ params.stat = 'free_throws_attempted'
8
+ params.team_id = 'nba-gs'
9
+
10
+ puts Stattleship::BasketballTotalTeamStat.fetch(params: params).to_sentence
11
+
12
+ params = Stattleship::Params::FootballTotalTeamStatParams.new
13
+ params.stat = 'passing_touchdowns'
14
+ params.team_id = 'nfl-ne'
15
+
16
+ puts Stattleship::FootballTotalTeamStat.fetch(params: params).to_sentence
17
+
18
+ params = Stattleship::Params::HockeyTotalTeamStatParams.new
19
+ params.stat = 'shots'
20
+ params.team_id = 'nhl-bos'
21
+
22
+ puts Stattleship::HockeyTotalTeamStat.fetch(params: params).to_sentence
@@ -0,0 +1,118 @@
1
+ # Examples
2
+
3
+ Making Stattleship API calls is dead simple.
4
+
5
+ * Build and set parameters
6
+ * Use that to fetch data
7
+ * Use fully populated PORO's
8
+
9
+ The pattern is pretty much as follows:
10
+
11
+ ```
12
+ query_params = Stattleship::Params::BasketballGameLogsParams.new
13
+ query_params.player_id = 'nba-stephen-curry'
14
+ query_params.since = '1 week ago'
15
+ game_logs = Stattleship::BasketballGameLogs.fetch(params: query_params)
16
+ pp game_logs.first
17
+ ```
18
+
19
+ **That's it.**
20
+
21
+ Just repeat for other sports (ie, `HockeyGameLogsParams` and `HockeyGameLogs`) or other endpoints (`FootballPlayersParams` and `FootballPlayers`) etc.
22
+
23
+ The `fetch` call will automatically traverse the paginated response and you'll get easy to use PORO's of data specific to that model.
24
+
25
+ There's validation, too, on the params to make sure you set just the ones it accepts. Ie, you can't make a call to `FootballPlayers` with a player that whose slug doesn't start with `nfl-` and things like that.
26
+
27
+ ## Prerequisites
28
+
29
+ You'll need
30
+
31
+ * Stattleship API Access Token from https://www.stattleship.com
32
+ * Set that in your `.env` file as `STATTLESHIP_ACCESS_TOKEN=your_token`
33
+ * To run examples, that .env file should be the the `/examples` dir.
34
+ * Copy the `sample.env` file, insert your token and save as `examples/.env`
35
+ * The `cd` to the `/examples` directory and `ruby <example>.rb` such that the .env loads
36
+
37
+ ## Code
38
+
39
+ * [Basketball Game Logs](basketball_game_logs.rb)
40
+ * Uses `BasketballGameLogsParams` and makes a `BasketballGameLogs` request
41
+ * Use the `player_id` and `since` parameters to get Stephen Curry's game logs for the past week
42
+
43
+ * [Football Game Logs](basketball_game_logs.rb)
44
+ * Uses `FootballGameLogsParams` and makes a `FootballGameLogs` request
45
+ * Use the `player_id`, `inteval_type` and `since` parameters to get Cam Newton's game logs for the past weeks by specifying the interval type (divisionplayoffs, conferencechampionships, etc)
46
+
47
+ * [Hockey Games](hockey_games.rb)
48
+ * Uses `HockeyGamesParams` and makes a `HockeyGames` request
49
+ * Uses the `status` and `since` parameters to return ended Chicago Blackhawk games
50
+ * Demonstrates `started_at` is a proper DateTime and renders `scoreline`s
51
+
52
+ * [Football Feats](football_feats.rb)
53
+ * Uses `FootballFeatsParams` and makes a `FootballFeats` request
54
+ * Uses `player_id` and `level_up` parameters to return Cam Newton regular season accomplishments
55
+
56
+ * [Basketball Injuries](basketball_injuries.rb)
57
+ * Uses `BasketballInjuriesParams` and makes a `BasketballInjuries` request
58
+ * Use the `team_id` and `since` to get Spurs injuries and show the injury note and its injury location (knee, back, etc)
59
+
60
+ * [Hockey Penalties](hockey_penalties.rb)
61
+ * Uses `HockeyPenaltiesParams` and makes a `HockeyPenalties` request
62
+ * Uses the `status` and `since` parameters to return penalties for ended Buffalo Sabres games in last 2 weeks
63
+ * Demonstrates `minutes` is a proper Integer and renders a friendly-readable sentence describing the penalty
64
+
65
+ * [Football Players](football_players.rb)
66
+ * Uses `FootballPlayersParams` and makes a `FootballPlayers` request
67
+ * Uses `team_id` and `level_up` parameters to return Denver Broncos players
68
+ * Demonstrates ability to filter and sort on a numeric `salary` to get list of players making more than $5M and where they went to `school`
69
+
70
+ * [Hockey Scoring Plays](hockey_scoring_plays.rb)
71
+ * Uses `HockeyScoringPlaysParams` and makes a `HockeyScoringPlays` request
72
+ * Uses the `status` and `since` parameters to return scoring plays for ended Dallas Stars games in last month
73
+ * Demonstrates can access an array of players who assisted on each goal
74
+
75
+ * [Basketball Injuries](basketball_injuries.rb)
76
+ * Uses `BasketballStatLeadersParams` and makes a `BasketballStatLeaders` request
77
+ * Use the `type`, `stat` and `place` parameters get the top 5 three point leaders (with ties)
78
+
79
+ * [Football Stats](football_stats.rb)
80
+ * Uses `FootballStatsParams` and makes a `FootballStats` request
81
+ * Use the `type`, `stat` and `player_id` parameters get Aaron Rodgers TDs thrown in each game
82
+ * Demonstrates ability to get `game`-specific data per stat, such as `weather_conditions`
83
+
84
+ * [Basketball Team Game Logs](basketball_team_game_logs.rb)
85
+ * Uses `BasketballTeamGameLogsParams` and makes a `BasketballTeamGameLogs` request
86
+ * Use the `team_id` and `since` parameters to get Cavaliers team game logs for the past week
87
+
88
+ * [Football Total Player Stats](football_total_player_stat.rb)
89
+ * Uses `FootballTotalPlayerStatParams` and makes a `FootballTotalPlayerStat` request
90
+ * Use the `player_id`, `type` and `stat` parameters to Adrian Peterson's total number of rushing attempts in the regular season
91
+ * Demonstrates a fully populated player, so can access his `weight` etc
92
+
93
+ * [Hockey Total Team Stats](hockey_total_team_stat.rb)
94
+ * Uses `HockeyTotalTeamStatParams` and makes a `HockeyTotalTeamStat` request
95
+ * Use the `team_id` and `stat` parameters to the total number of third period goals the Canadiens has scored
96
+
97
+ * [Basketball Top Stats](basketball_top_stats.rb)
98
+ * Uses `BasketballTopStatsParams` and makes a `BasketballTopStats` request
99
+ * Use the `type`, `stat`, and `place` parameters to return the 3 best (highest) offensive rebounding performances in NBA
100
+ * Demonstrates a fully populated game, so know when this was accomplished
101
+
102
+ * [Basketball Winning Streaks](basketball_winning_streaks.rb)
103
+ * Uses `BasketballTeamOutcomeStreaksParams` and makes a `BasketballTeamOutcomeStreaks` request
104
+ * Use the `outcome` and `current` parameters to return winning streaks that filters to those more than 2 games in length
105
+ * Demonstrates a fully populated streak
106
+
107
+ * [Hockey Ranked Streaks](hockey_team_ranked_streaks.rb)
108
+ * Uses `HockeyTeamOutcomeStreaksParams` and makes a `HockeyTeamOutcomeStreaks` request
109
+ * Use the `team_id` and `ranked` parameters to the top 3 ranked streaks in length
110
+ * Demonstrates a fully populated streak with season and league
111
+
112
+ * [Game Officials](officials.rb)
113
+ * Uses games params and request for each sport
114
+ * Demonstrates a fully populated list of officials for each game
115
+
116
+ * [Game Log Officials](officials.rb)
117
+ * Uses game_log and team_game_log params and request for Hockey
118
+ * Demonstrates a fully populated list of officials for each game on the game_log
@@ -0,0 +1,35 @@
1
+ # Set your STATTLESHIP_ACCESS_TOKEN from https://www.stattleship.com in the examples/.env file
2
+
3
+ require 'dotenv'
4
+ Dotenv.load
5
+
6
+ dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
7
+ require File.join(dir, 'stattleship')
8
+ require 'pp'
9
+
10
+ # Construct params for the fetch
11
+ query_params = Stattleship::Params::BaseballFeatsParams.new
12
+
13
+ # use a slug, typically 'league-firstname-lastname'
14
+ query_params.interval_type = 'preseason'
15
+ query_params.season_id = 'mlb-2016'
16
+ query_params.level_up = 3
17
+ query_params.since = '1 week ago'
18
+
19
+ # fetch will automatically traverse the paginated response links
20
+ feats = Stattleship::BaseballFeats.fetch(params: query_params)
21
+
22
+ # the populated object
23
+ pp feats.first
24
+
25
+ # can access friendly helpers
26
+ pp feats.first.to_sentence
27
+
28
+ # ""
29
+
30
+ # or, individual attributes
31
+ feats.each do |feat|
32
+ pp "#{feat.actual.to_i} #{feat.name} #{feat.humanized_stat_type} #{feat.vs}"
33
+ end
34
+
35
+ # ...
@@ -0,0 +1,32 @@
1
+ # Set your STATTLESHIP_ACCESS_TOKEN from https://www.stattleship.com in the examples/.env file
2
+
3
+ require 'dotenv'
4
+ Dotenv.load
5
+
6
+ dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
7
+ require File.join(dir, 'stattleship')
8
+ require 'pp'
9
+
10
+ # Construct params for the fetch
11
+ query_params = Stattleship::Params::BaseballGamesParams.new
12
+
13
+ # use a slug, typically 'league-team_abbreviation'
14
+ query_params.team_id = 'mlb-bos'
15
+
16
+ # may need to adjust this depending on time of year
17
+ query_params.season_id = 'mlb-2016'
18
+ query_params.status = 'upcoming'
19
+
20
+ # fetch will automatically traverse the paginated response links
21
+ games = Stattleship::BaseballGames.fetch(params: query_params)
22
+
23
+ # the populated object
24
+ pp games.first
25
+
26
+ # can access friendly helpers
27
+ pp games.first.started_at.strftime('%b %e, %l:%M %p')
28
+
29
+ # or, individual attributes
30
+ games.each do |game|
31
+ pp game.scoreline
32
+ end
@@ -0,0 +1,33 @@
1
+ # Set your STATTLESHIP_ACCESS_TOKEN from https://www.stattleship.com in the examples/.env file
2
+
3
+ require 'dotenv'
4
+ Dotenv.load
5
+
6
+ dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
7
+ require File.join(dir, 'stattleship')
8
+ require 'pp'
9
+
10
+ # Construct params for the fetch
11
+ query_params = Stattleship::Params::BaseballGameLogsParams.new
12
+
13
+ # use a slug
14
+
15
+ query_params.player_id = 'mlb-pablo-sandoval'
16
+ query_params.season_id = 'mlb-2015'
17
+ query_params.interval_type = 'regularseason'
18
+ query_params.since = '1 year ago'
19
+
20
+ # fetch will automatically traverse the paginated response links
21
+ game_logs = Stattleship::BaseballGameLogs.fetch(params: query_params)
22
+
23
+ # the populated object
24
+ pp game_logs.first
25
+
26
+ # can access friendly helpers
27
+ pp game_logs.first.to_sentence
28
+
29
+ # or, individual attributes
30
+ game_logs.each do |game_log|
31
+ pp game_log.to_sentence
32
+ end
33
+
@@ -0,0 +1,30 @@
1
+ # Set your STATTLESHIP_ACCESS_TOKEN from https://www.stattleship.com in the examples/.env file
2
+
3
+ require 'dotenv'
4
+ Dotenv.load
5
+
6
+ dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
7
+ require File.join(dir, 'stattleship')
8
+ require 'pp'
9
+
10
+ # Construct params for the fetch
11
+ query_params = Stattleship::Params::BaseballStatLeadersParams.new
12
+
13
+ query_params.type = 'baseball_hitter_stat'
14
+ query_params.stat = 'home_runs'
15
+ query_params.place = 3
16
+
17
+ # fetch will automatically traverse the paginated response links
18
+ stat_leaders = Stattleship::BaseballStatLeaders.fetch(params: query_params)
19
+
20
+ # the populated object
21
+ pp stat_leaders.first
22
+
23
+ # can access friendly helpers
24
+ pp stat_leaders.first.to_sentence
25
+
26
+
27
+ # or, individual attributes
28
+ stat_leaders.each do |stat_leader|
29
+ pp "#{stat_leader.place} - #{stat_leader.player_name} with #{stat_leader.stat.to_i} HR"
30
+ end
@@ -0,0 +1,33 @@
1
+ # Set your STATTLESHIP_ACCESS_TOKEN from https://www.stattleship.com in the examples/.env file
2
+
3
+ require 'dotenv'
4
+ Dotenv.load
5
+
6
+ dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
7
+ require File.join(dir, 'stattleship')
8
+ require 'pp'
9
+
10
+ # Construct params for the fetch
11
+ query_params = Stattleship::Params::BasketballGameLogsParams.new
12
+
13
+ # use a slug, typically 'league-firstname-lastname'
14
+ query_params.player_id = 'nba-stephen-curry'
15
+
16
+ # may need to adjust this depending on time of year/NBA season
17
+ query_params.since = '1 week ago'
18
+
19
+ # fetch will automatically traverse the paginated response links
20
+ game_logs = Stattleship::BasketballGameLogs.fetch(params: query_params)
21
+
22
+ # the populated object
23
+ pp game_logs.first
24
+
25
+ # can access friendly helpers
26
+ pp game_logs.first.to_sentence
27
+
28
+ # "Stephen Curry 8 FGM, 44.4 FG%, 25 PTS, 7 RBD, 11 A, 2 STL, 1 BLK (Warriors vs Bulls January 20, 2016 at 7:00pm)"
29
+
30
+ # or, individual attributes
31
+ game_logs.each do |game_log|
32
+ pp game_log.three_pointers_made
33
+ end
@@ -0,0 +1,36 @@
1
+ # Set your STATTLESHIP_ACCESS_TOKEN from https://www.stattleship.com in the examples/.env file
2
+
3
+ require 'dotenv'
4
+ Dotenv.load
5
+
6
+ dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
7
+ require File.join(dir, 'stattleship')
8
+ require 'pp'
9
+
10
+ # Construct params for the fetch
11
+ query_params = Stattleship::Params::BasketballInjuriesParams.new
12
+
13
+ # use a slug, typically 'league-team_abbreviation'
14
+ query_params.team_id = 'nba-sa'
15
+
16
+ # fetch will automatically traverse the paginated response links
17
+ injuries = Stattleship::BasketballInjuries.fetch(params: query_params)
18
+
19
+ # the populated object
20
+ pp injuries.first
21
+
22
+ # or, individual attributes
23
+ pp injuries.first.note
24
+
25
+ # "Duncan missed last game due to soreness in his right knee and will not suit up against the Rockets on Wednesday."
26
+
27
+ injuries.each do |injury|
28
+ pp injury.location_name
29
+ end
30
+
31
+ # "Knee"
32
+ # "Back"
33
+ # "Hip"
34
+ # "Hip"
35
+ # "Rest"
36
+ # ...
@@ -0,0 +1,31 @@
1
+ # Set your STATTLESHIP_ACCESS_TOKEN from https://www.stattleship.com in the examples/.env file
2
+
3
+ require 'dotenv'
4
+ Dotenv.load
5
+
6
+ dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
7
+ require File.join(dir, 'stattleship')
8
+ require 'pp'
9
+
10
+ # Construct params for the fetch
11
+ query_params = Stattleship::Params::RankingsParams.new
12
+
13
+ # use a slug
14
+
15
+ query_params.ranking = 'basketball_season_player_performance_ranking'
16
+ query_params.place = 10
17
+
18
+ # fetch will automatically traverse the paginated response links
19
+ rankings = Stattleship::Rankings.fetch(params: query_params)
20
+
21
+ # the populated object
22
+ pp rankings.first
23
+
24
+ # can access friendly helpers
25
+ pp rankings.first.player_name
26
+
27
+ # or, individual attributes
28
+ rankings.each do |ranking|
29
+ pp ranking.to_sentence
30
+ end
31
+
@@ -0,0 +1,40 @@
1
+ # Set your STATTLESHIP_ACCESS_TOKEN from https://www.stattleship.com in the examples/.env file
2
+
3
+ require 'dotenv'
4
+ Dotenv.load
5
+
6
+ dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
7
+ require File.join(dir, 'stattleship')
8
+ require 'pp'
9
+
10
+ # Construct params for the fetch
11
+ query_params = Stattleship::Params::BasketballStatLeadersParams.new
12
+
13
+ # the stat must belong to the type, see: http://playbook.stattleship.com/#basketball-stats for a list
14
+ query_params.type = 'basketball_offensive_stat'
15
+ query_params.stat = 'three_pointers_made'
16
+ query_params.place = 5
17
+
18
+ # fetch will automatically traverse the paginated response links
19
+ stat_leaders = Stattleship::BasketballStatLeaders.fetch(params: query_params)
20
+
21
+ # the populated object
22
+ pp stat_leaders.first
23
+
24
+ # can access friendly helpers
25
+ pp stat_leaders.first.to_sentence
26
+
27
+ # "Stephen Curry is in first place with 210 three_pointers_made"
28
+
29
+ # or, individual attributes
30
+ stat_leaders.each do |stat_leader|
31
+ pp "#{stat_leader.place} - #{stat_leader.player_name} with #{stat_leader.stat.to_i} threes"
32
+ end
33
+
34
+ # "1 - Stephen Curry with 210 threes"
35
+ # "2 - Klay Thompson with 133 threes"
36
+ # "3 - Paul George with 128 threes"
37
+ # "3 - James Harden with 128 threes"
38
+ # "4 - Kyle Lowry with 125 threes"
39
+ # "5 - Damian Lillard with 121 threes"
40
+ # ...
@@ -0,0 +1,38 @@
1
+ # Set your STATTLESHIP_ACCESS_TOKEN from https://www.stattleship.com in the examples/.env file
2
+
3
+ require 'dotenv'
4
+ Dotenv.load
5
+
6
+ dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
7
+ require File.join(dir, 'stattleship')
8
+ require 'pp'
9
+
10
+ # Construct params for the fetch
11
+ query_params = Stattleship::Params::BasketballTeamGameLogsParams.new
12
+
13
+ # use a slug, typically 'league-team_abbreviation'
14
+ query_params.team_id = 'nba-cle'
15
+
16
+ # may need to adjust this depending on time of year/NBA season
17
+ query_params.since = '1 week ago'
18
+
19
+ # fetch will automatically traverse the paginated response links
20
+ game_logs = Stattleship::BasketballTeamGameLogs.fetch(params: query_params)
21
+
22
+ # the populated object
23
+ pp game_logs.first
24
+
25
+ # can access friendly helpers
26
+ pp game_logs.first.to_sentence
27
+
28
+ # "Cleveland 42 FGM, 50.6 FG%, 115 PTS, 33 DRB, 14 ORB, 47 REB (Clippers vs Cavaliers January 21, 2016 at 8:00pm)"
29
+
30
+ # or, individual attributes
31
+ game_logs.each do |game_log|
32
+ pp game_log.three_pointers_made
33
+ end
34
+
35
+ # 13
36
+ # 11
37
+ # 4
38
+ # 5