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,15 @@
1
+ module Stattleship
2
+ class BaseballPenalties < Stattleship::Penalties
3
+ BASEBALL_PENALTIES = 'baseball/mlb/penalties'.freeze
4
+
5
+ def self.fetch(params:)
6
+ super(path: BASEBALL_PENALTIES,
7
+ params: params)
8
+ end
9
+ end
10
+
11
+ module BaseballPenaltiesRepresenter
12
+ include Roar::JSON
13
+ include PenaltiesRepresenter
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Stattleship
2
+ class BaseballPlayers < Stattleship::Players
3
+ BASEBALL_PLAYERS = 'baseball/mlb/players'.freeze
4
+
5
+ def self.fetch(params:)
6
+ super(path: BASEBALL_PLAYERS,
7
+ params: params)
8
+ end
9
+ end
10
+
11
+ module BaseballPlayersRepresenter
12
+ include Roar::JSON
13
+ include PlayersRepresenter
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Stattleship
2
+ class BaseballScoringPlays < Stattleship::ScoringPlays
3
+ BASEBALL_SCORING_PLAYS = 'baseball/mlb/scoring_plays'.freeze
4
+
5
+ def self.fetch(params:)
6
+ super(path: BASEBALL_SCORING_PLAYS,
7
+ params: params)
8
+ end
9
+ end
10
+
11
+ module BaseballScoringPlaysRepresenter
12
+ include Roar::JSON
13
+ include ScoringPlaysRepresenter
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Stattleship
2
+ class BaseballStatLeaders < Stattleship::StatLeaders
3
+ BASEBALL_STAT_LEADERS = 'baseball/mlb/stat_leaders'.freeze
4
+
5
+ def self.fetch(params:)
6
+ super(path: BASEBALL_STAT_LEADERS,
7
+ params: params)
8
+ end
9
+ end
10
+
11
+ module BaseballStatLeadersRepresenter
12
+ include Roar::JSON
13
+ include StatLeadersRepresenter
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Stattleship
2
+ class BaseballStats < Stattleship::Stats
3
+ BASEBALL_STATS = 'baseball/mlb/stats'.freeze
4
+
5
+ def self.fetch(params:)
6
+ super(path: BASEBALL_STATS,
7
+ params: params)
8
+ end
9
+ end
10
+
11
+ module BaseballStatsRepresenter
12
+ include Roar::JSON
13
+ include StatsRepresenter
14
+ end
15
+ end
@@ -0,0 +1,142 @@
1
+ module Stattleship
2
+ class BaseballTeamGameLog < Stattleship::TeamGameLog
3
+ def stats
4
+ [
5
+ "#{hits.to_i} H",
6
+ "#{runs.to_i} R",
7
+ "#{runs_batted_in.to_i} RBI",
8
+ "#{errors_made} E"
9
+ ]
10
+ end
11
+
12
+ def to_sentence
13
+ "#{team_name} #{stats.join(', ')} (#{game.name})"
14
+ end
15
+ end
16
+
17
+ class BaseballTeamGameLogs < Stattleship::TeamGameLogs
18
+ BASEBALL_TEAM_GAME_LOGS = 'baseball/mlb/team_game_logs'.freeze
19
+
20
+ def self.fetch(params:)
21
+ super(path: BASEBALL_TEAM_GAME_LOGS,
22
+ params: params)
23
+ end
24
+ end
25
+
26
+ module BaseballTeamGameLogsRepresenter
27
+ include Roar::JSON
28
+ include Roar::Coercion
29
+ include Stattleship::TeamGameLogsRepresenter
30
+ include Virtus.model
31
+
32
+ collection :team_game_logs, class: Stattleship::BaseballTeamGameLog do
33
+
34
+ [
35
+ :away_team_outcome,
36
+ :home_team_outcome,
37
+ :team_outcome,
38
+ :opponent_outcome,
39
+ ].each do |attribute|
40
+ property attribute
41
+ end
42
+
43
+ [
44
+ :batting_average,
45
+ :earned_run_average,
46
+ :earned_runs_against,
47
+ :on_base_percentage,
48
+ :on_base_plus_slugging,
49
+ :slugging_percentage,
50
+ ].each do |attribute|
51
+ property attribute, type: BigDecimal
52
+ end
53
+
54
+ [
55
+ :home_team_score,
56
+ :away_team_score,
57
+ :team_score,
58
+ :opponent_score,
59
+ :at_bats,
60
+ :balks,
61
+ :caught_stealing,
62
+ :complete_games,
63
+ :double_plays,
64
+ :doubles,
65
+ :errors_made,
66
+ :games_lost,
67
+ :games_played,
68
+ :games_won,
69
+ :grounded_into_double_plays,
70
+ :hit_batters,
71
+ :hit_by_pitch,
72
+ :hits,
73
+ :home_runs,
74
+ :intentional_walks,
75
+ :intentional_walks_against,
76
+ :left_on_base,
77
+ :outs_pitched,
78
+ :passed_balls,
79
+ :pickoffs,
80
+ :rlisp_two_out,
81
+ :runs,
82
+ :runs_batted_in,
83
+ :runs_inning_1,
84
+ :runs_inning_2,
85
+ :runs_inning_3,
86
+ :runs_inning_4,
87
+ :runs_inning_5,
88
+ :runs_inning_6,
89
+ :runs_inning_7,
90
+ :runs_inning_8,
91
+ :runs_inning_9,
92
+ :runs_inning_10,
93
+ :runs_inning_11,
94
+ :runs_inning_12,
95
+ :runs_inning_13,
96
+ :runs_inning_14,
97
+ :runs_inning_15,
98
+ :runs_inning_16,
99
+ :runs_inning_17,
100
+ :runs_inning_18,
101
+ :runs_inning_19,
102
+ :runs_inning_20,
103
+ :runs_inning_21,
104
+ :runs_inning_22,
105
+ :runs_inning_23,
106
+ :runs_inning_24,
107
+ :runs_inning_extra,
108
+ :sacrifice_flys,
109
+ :sacrifice_hits,
110
+ :saves,
111
+ :shutouts,
112
+ :stolen_bases,
113
+ :strikeouts,
114
+ :team_left_on_base,
115
+ :total_bases,
116
+ :triple_plays,
117
+ :triples,
118
+ :two_out_left_on_base,
119
+ :walks,
120
+ :whip,
121
+ :wild_pitches,
122
+ ].each do |attribute|
123
+ property attribute, type: Integer
124
+ end
125
+
126
+ [
127
+ :is_home_team,
128
+ :is_away_team,
129
+ ].each do |attribute|
130
+ property attribute, type: Boolean, default: false
131
+ end
132
+
133
+ [
134
+ :game_id,
135
+ :opponent_id,
136
+ :team_id,
137
+ ].each do |relationship|
138
+ property relationship
139
+ end
140
+ end
141
+ end
142
+ end
@@ -0,0 +1,15 @@
1
+ module Stattleship
2
+ class BaseballTeamOutcomeStreaks < Stattleship::TeamOutcomeStreaks
3
+ BASEBALL_TEAM_OUTCOME_STREAKS = 'baseball/mlb/team_outcome_streaks'.freeze
4
+
5
+ def self.fetch(params:)
6
+ super(path: BASEBALL_TEAM_OUTCOME_STREAKS,
7
+ params: params)
8
+ end
9
+ end
10
+
11
+ module BaseballTeamOutcomeStreaksRepresenter
12
+ include Roar::JSON
13
+ include TeamOutcomeStreaksRepresenter
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Stattleship
2
+ class BaseballTeams < Stattleship::Teams
3
+ BASEBALL_TEAMS = 'baseball/mlb/teams'.freeze
4
+
5
+ def self.fetch(params:)
6
+ super(path: BASEBALL_TEAMS,
7
+ params: params)
8
+ end
9
+ end
10
+
11
+ module BaseballTeamsRepresenter
12
+ include Roar::JSON
13
+ include TeamsRepresenter
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Stattleship
2
+ class BaseballTopStats < Stattleship::TopStats
3
+ BASEBALL_TOP_STATS = 'baseball/mlb/top_stats'.freeze
4
+
5
+ def self.fetch(params:)
6
+ super(path: BASEBALL_TOP_STATS,
7
+ params: params)
8
+ end
9
+ end
10
+
11
+ module BaseballTopStatsRepresenter
12
+ include Roar::JSON
13
+ include TopStatsRepresenter
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Stattleship
2
+ class BaseballTotalPlayerStat < Stattleship::TotalPlayerStat
3
+ BASEBALL_TOTAL_PLAYER_STAT = 'baseball/mlb/total_stats'.freeze
4
+
5
+ def self.fetch(params:)
6
+ super(path: BASEBALL_TOTAL_PLAYER_STAT,
7
+ params: params)
8
+ end
9
+ end
10
+
11
+ module BaseballTotalPlayerStatRepresenter
12
+ include Roar::JSON
13
+ include TotalPlayerStatRepresenter
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Stattleship
2
+ class BaseballTotalTeamStat < Stattleship::TotalTeamStat
3
+ BASEBALL_TOTAL_TEAM_STAT = 'baseball/mlb/total_stats'.freeze
4
+
5
+ def self.fetch(params:)
6
+ super(path: BASEBALL_TOTAL_TEAM_STAT,
7
+ params: params)
8
+ end
9
+ end
10
+
11
+ module BaseballTotalTeamStatRepresenter
12
+ include Roar::JSON
13
+ include TotalTeamStatRepresenter
14
+ end
15
+ end
@@ -0,0 +1,15 @@
1
+ module Stattleship
2
+ class BasketballFeats < Stattleship::Feats
3
+ BASKETBALL_FEATS = 'basketball/nba/feats'.freeze
4
+
5
+ def self.fetch(params:)
6
+ super(path: BASKETBALL_FEATS,
7
+ params: params)
8
+ end
9
+ end
10
+
11
+ module BasketballFeatsRepresenter
12
+ include Roar::JSON
13
+ include FeatsRepresenter
14
+ end
15
+ end
@@ -0,0 +1,111 @@
1
+ module Stattleship
2
+ class BasketballGameLog < Stattleship::GameLog
3
+ def stats
4
+ [
5
+ "#{field_goals_made.to_i} FGM",
6
+ "#{(field_goals_pct.to_f * 100).round(1)} FG%",
7
+ "#{points.to_i} PTS",
8
+ "#{rebounds_total.to_i} RBD",
9
+ "#{assists.to_i} A",
10
+ "#{steals.to_i} STL",
11
+ "#{blocks.to_i} BLK"
12
+ ]
13
+ end
14
+
15
+ def to_sentence
16
+ "#{player_name} #{stats.join(', ')} (#{game.name})"
17
+ end
18
+ end
19
+
20
+ class BasketballGameLogs < Stattleship::GameLogs
21
+ BASKETBALL_GAME_LOGS = 'basketball/nba/game_logs'.freeze
22
+
23
+ def self.fetch(params:)
24
+ super(path: BASKETBALL_GAME_LOGS,
25
+ params: params)
26
+ end
27
+ end
28
+
29
+ module BasketballGameLogsRepresenter
30
+ include Roar::JSON
31
+ include Roar::Coercion
32
+ include Stattleship::GameLogsRepresenter
33
+ include Virtus.model
34
+
35
+ collection :game_logs, class: Stattleship::BasketballGameLog do
36
+
37
+ [
38
+ :away_team_outcome,
39
+ :home_team_outcome,
40
+ :team_outcome,
41
+ :opponent_outcome,
42
+ ].each do |attribute|
43
+ property attribute
44
+ end
45
+
46
+ [
47
+ :field_goals_pct,
48
+ :free_throws_pct,
49
+ :three_pointers_pct,
50
+ ].each do |attribute|
51
+ property attribute, type: BigDecimal
52
+ end
53
+
54
+ [
55
+ :game_played,
56
+ :game_started,
57
+ :home_team_score,
58
+ :away_team_score,
59
+ :team_score,
60
+ :opponent_score,
61
+ :assists,
62
+ :field_goals_attempted,
63
+ :field_goals_made,
64
+ :free_throws_attempted,
65
+ :free_throws_made,
66
+ :points,
67
+ :three_pointers_attempted,
68
+ :three_pointers_made,
69
+ :turnovers,
70
+ :steals,
71
+ :blocks,
72
+ :personal_fouls,
73
+ :technical_fouls,
74
+ :time_played_total,
75
+ :plus_minus,
76
+ :disqualifications,
77
+ :rebounds_defensive,
78
+ :rebounds_offensive,
79
+ :rebounds_total,
80
+ :double_double,
81
+ :double_triple_double,
82
+ :double_twenty,
83
+ :five_by_five,
84
+ :five_by_seven,
85
+ :five_by_six,
86
+ :five_by_steals_blocks,
87
+ :quadruple_double,
88
+ :quintuple_double,
89
+ :thirty_thirty,
90
+ :triple_double,
91
+ ].each do |attribute|
92
+ property attribute, type: Integer
93
+ end
94
+
95
+ [
96
+ :is_home_team,
97
+ :is_away_team,
98
+ ].each do |attribute|
99
+ property attribute, type: Boolean, default: false
100
+ end
101
+
102
+ [
103
+ :player_id,
104
+ :game_id,
105
+ :team_id
106
+ ].each do |relationship|
107
+ property relationship
108
+ end
109
+ end
110
+ end
111
+ end
@@ -0,0 +1,15 @@
1
+ module Stattleship
2
+ class BasketballGames < Stattleship::Games
3
+ BASKETBALL_GAMES = 'basketball/nba/games'.freeze
4
+
5
+ def self.fetch(params:)
6
+ super(path: BASKETBALL_GAMES,
7
+ params: params)
8
+ end
9
+ end
10
+
11
+ module BasketballGamesRepresenter
12
+ include Roar::JSON
13
+ include GamesRepresenter
14
+ end
15
+ end