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,17 @@
1
+ module Stattleship
2
+ module Params
3
+ class GameTimeParams < Stattleship::Params::QueryParams
4
+ attr_accessor :season_id, :interval_type, :status, :on, :since
5
+
6
+ def params
7
+ {
8
+ 'season_id' => season_id,
9
+ 'interval_type' => interval_type,
10
+ 'status' => status,
11
+ 'on' => on,
12
+ 'since' => since,
13
+ }
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,13 @@
1
+ module Stattleship
2
+ module Params
3
+ class GamesParams < Stattleship::Params::GameTimeParams
4
+ attr_accessor :player_id, :team_id, :game_id
5
+
6
+ def params
7
+ super.merge('player_id' => player_id,
8
+ 'team_id' => team_id,
9
+ 'game_id' => game_id)
10
+ end
11
+ end
12
+ end
13
+ end
@@ -0,0 +1,6 @@
1
+ module Stattleship
2
+ module Params
3
+ class HockeyFeatsParams < Stattleship::Params::FeatsParams
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module Stattleship
2
+ module Params
3
+ class HockeyGameLogsParams < Stattleship::Params::GameLogsParams
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module Stattleship
2
+ module Params
3
+ class HockeyGamesParams < GamesParams
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module Stattleship
2
+ module Params
3
+ class HockeyInjuriesParams < Stattleship::Params::InjuriesParams
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module Stattleship
2
+ module Params
3
+ class HockeyPenaltiesParams < Stattleship::Params::PenaltiesParams
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module Stattleship
2
+ module Params
3
+ class HockeyPlayersParams < PlayersParams
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module Stattleship
2
+ module Params
3
+ class HockeyScoringPlaysParams < Stattleship::Params::ScoringPlaysParams
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module Stattleship
2
+ module Params
3
+ class HockeyStatLeadersParams < Stattleship::Params::StatLeadersParams
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module Stattleship
2
+ module Params
3
+ class HockeyStatsParams < Stattleship::Params::StatsParams
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module Stattleship
2
+ module Params
3
+ class HockeyTeamGameLogsParams < TeamGameLogsParams
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,9 @@
1
+ module Stattleship
2
+ module Params
3
+ class HockeyTeamOutcomeStreaksParams < TeamOutcomeStreaksParams
4
+ def params
5
+ super
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,10 @@
1
+ module Stattleship
2
+ module Params
3
+ class HockeyTeamStatsParams < Stattleship::Params::HockeyStatsParams
4
+ def params
5
+ super.merge('type' => 'hockey_team_stat').
6
+ delete_if { |key| key == 'player_id' }
7
+ end
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,6 @@
1
+ module Stattleship
2
+ module Params
3
+ class HockeyTeamsParams < TeamsParams
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module Stattleship
2
+ module Params
3
+ class HockeyTopStatsParams < Stattleship::Params::TopStatsParams
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,6 @@
1
+ module Stattleship
2
+ module Params
3
+ class HockeyTotalPlayerStatParams < TotalPlayerStatParams
4
+ end
5
+ end
6
+ end
@@ -0,0 +1,11 @@
1
+ module Stattleship
2
+ module Params
3
+ class HockeyTotalTeamStatParams < TotalTeamStatParams
4
+ private
5
+
6
+ def params
7
+ super.merge('type' => 'hockey_team_stat')
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module Stattleship
2
+ module Params
3
+ class InjuriesParams < Stattleship::Params::QueryParams
4
+ attr_accessor :team_id
5
+
6
+ def params
7
+ super.merge('team_id' => team_id)
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,11 @@
1
+ module Stattleship
2
+ module Params
3
+ class PenaltiesParams < Stattleship::Params::GameLogsParams
4
+ attr_accessor :penalty
5
+
6
+ def params
7
+ super.merge('penalty' => penalty)
8
+ end
9
+ end
10
+ end
11
+ end
@@ -0,0 +1,12 @@
1
+ module Stattleship
2
+ module Params
3
+ class PlayersParams < Stattleship::Params::QueryParams
4
+ attr_accessor :birth_date, :team_id
5
+
6
+ def params
7
+ super.merge('birth_date' => birth_date,
8
+ 'team_id' => team_id)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,50 @@
1
+ module Stattleship
2
+ module Params
3
+ class QueryParams
4
+ attr_accessor :page, :per_page, :season_id
5
+
6
+ def params
7
+ {
8
+ 'page' => page,
9
+ 'per_page' => per_page,
10
+ 'season_id' => season_id,
11
+ }
12
+ end
13
+
14
+ def query
15
+ { 'query' => validate }
16
+ end
17
+
18
+ def validate
19
+ query_parameters.keys.each do |key|
20
+ validator(key).new(key: key,
21
+ params: query_parameters,
22
+ class_name: self.class.name).
23
+ validate
24
+ end
25
+
26
+ query_parameters
27
+ end
28
+
29
+ private
30
+
31
+ def query_parameters
32
+ params.delete_if { |_key, value| blank?(value) }
33
+ end
34
+
35
+ def blank?(value)
36
+ value.to_s.strip == ''
37
+ end
38
+
39
+ def present?(value)
40
+ !blank?(value)
41
+ end
42
+
43
+ def validator(key)
44
+ validator_klass = "#{key.split('_').map(&:capitalize).join}Validator"
45
+ klass = "Stattleship::Validators::#{validator_klass}"
46
+ Kernel.const_get(klass)
47
+ end
48
+ end
49
+ end
50
+ end
@@ -0,0 +1,15 @@
1
+ module Stattleship
2
+ module Params
3
+ class RankingsParams < Stattleship::Params::QueryParams
4
+ attr_accessor :on, :place, :ranking
5
+
6
+ def params
7
+ {
8
+ 'on' => on,
9
+ 'place' => place,
10
+ 'ranking' => ranking,
11
+ }
12
+ end
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,12 @@
1
+ module Stattleship
2
+ module Params
3
+ class ScoringPlaysParams < Stattleship::Params::GameLogsParams
4
+ attr_accessor :scoring_method, :scoring_type
5
+
6
+ def params
7
+ super.merge('scoring_method' => scoring_method,
8
+ 'scoring_type' => scoring_type)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ module Stattleship
2
+ module Params
3
+ class StatLeadersParams < Stattleship::Params::QueryParams
4
+ attr_accessor :place, :stat, :type
5
+
6
+ private
7
+
8
+ def params
9
+ {
10
+ 'stat' => stat,
11
+ 'type' => type,
12
+ 'place' => place
13
+ }
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Stattleship
2
+ module Params
3
+ class StatsParams < Stattleship::Params::GameTimeParams
4
+ attr_accessor :game_id, :player_id, :team_id, :stat, :type
5
+
6
+ private
7
+
8
+ def params
9
+ super.merge('player_id' => player_id,
10
+ 'team_id' => team_id,
11
+ 'game_id' => game_id,
12
+ 'stat' => stat,
13
+ 'type' => type)
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,12 @@
1
+ module Stattleship
2
+ module Params
3
+ class TeamGameLogsParams < Stattleship::Params::GameTimeParams
4
+ attr_accessor :team_id, :game_id
5
+
6
+ def params
7
+ super.merge('team_id' => team_id,
8
+ 'game_id' => game_id)
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,24 @@
1
+ module Stattleship
2
+ module Params
3
+ class TeamOutcomeStreaksParams < Stattleship::Params::QueryParams
4
+ attr_accessor :current,
5
+ :interval_type,
6
+ :outcome,
7
+ :rank,
8
+ :ranked,
9
+ :season_id,
10
+ :streak_length,
11
+ :team_id
12
+ def params
13
+ super.merge('current' => current,
14
+ 'interval_type' => interval_type,
15
+ 'outcome' => outcome,
16
+ 'rank' => rank,
17
+ 'ranked' => ranked,
18
+ 'season_id' => season_id,
19
+ 'streak_length' => streak_length,
20
+ 'team_id' => team_id)
21
+ end
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,9 @@
1
+ module Stattleship
2
+ module Params
3
+ class TeamsParams < Stattleship::Params::QueryParams
4
+ def params
5
+ super
6
+ end
7
+ end
8
+ end
9
+ end
@@ -0,0 +1,17 @@
1
+ module Stattleship
2
+ module Params
3
+ class TopStatsParams < Stattleship::Params::QueryParams
4
+ attr_accessor :place, :stat, :type
5
+
6
+ private
7
+
8
+ def params
9
+ {
10
+ 'stat' => stat,
11
+ 'type' => type,
12
+ 'place' => place
13
+ }
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,17 @@
1
+ module Stattleship
2
+ module Params
3
+ class TotalPlayerStatParams < Stattleship::Params::QueryParams
4
+ attr_accessor :player_id, :stat, :type
5
+
6
+ private
7
+
8
+ def params
9
+ {
10
+ 'player_id' => player_id,
11
+ 'stat' => stat,
12
+ 'type' => type,
13
+ }
14
+ end
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,18 @@
1
+ module Stattleship
2
+ module Params
3
+ class TotalTeamStatParams < Stattleship::Params::QueryParams
4
+ attr_accessor :team_id, :stat
5
+ attr_reader :type
6
+
7
+ private
8
+
9
+ def params
10
+ {
11
+ 'team_id' => team_id,
12
+ 'stat' => stat,
13
+ 'type' => type,
14
+ }
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,26 @@
1
+ module Stattleship
2
+ class Penalties < Stattleship::Endpoint
3
+ def populate
4
+ penalties.each do |penalty|
5
+ populate_games(penalty)
6
+
7
+ games.each do |game|
8
+ populate_game(game)
9
+ end
10
+
11
+ populate_players(penalty)
12
+ populate_player_teams(penalty)
13
+ populate_opponents(penalty)
14
+ end
15
+ end
16
+ end
17
+
18
+ module PenaltiesRepresenter
19
+ include Roar::JSON
20
+ include Stattleship::Models
21
+ include Stattleship::GameLogsRepresenter
22
+
23
+ collection :penalties, extend: PenaltyRepresenter,
24
+ class: Stattleship::Models::Penalty
25
+ end
26
+ end