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
+ module Stattleship
2
+ module Models
3
+ class Injury < OpenStruct
4
+ end
5
+
6
+ module InjuryRepresenter
7
+ include Roar::JSON
8
+ include Roar::Coercion
9
+
10
+ property :id
11
+ property :location_name
12
+ property :note
13
+ property :player_id
14
+ property :season_id
15
+ property :started_on, type: Date
16
+ property :status
17
+ property :status_label
18
+ property :status_updated_at, type: DateTime
19
+ property :team_id
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,35 @@
1
+ module Stattleship
2
+ module Models
3
+ class League < OpenStruct
4
+ def hockey?
5
+ sport == 'hockey'
6
+ end
7
+
8
+ def basetball?
9
+ sport == 'baseball'
10
+ end
11
+
12
+ def basketball?
13
+ sport == 'basketball'
14
+ end
15
+
16
+ def football?
17
+ sport == 'football'
18
+ end
19
+ end
20
+
21
+ module LeagueRepresenter
22
+ include Roar::JSON
23
+ include Roar::Coercion
24
+
25
+ property :abbreviation
26
+ property :color
27
+ property :id
28
+ property :minutes_per_period, type: Integer
29
+ property :name
30
+ property :periods, type: Integer
31
+ property :slug
32
+ property :sport
33
+ end
34
+ end
35
+ end
@@ -0,0 +1,20 @@
1
+ module Stattleship
2
+ module Models
3
+ class Official < OpenStruct
4
+ end
5
+
6
+ module OfficialRepresenter
7
+ include Roar::JSON
8
+ include Roar::Coercion
9
+ include Virtus.model
10
+
11
+ property :id
12
+ property :first_name
13
+ property :last_name
14
+ property :name
15
+ property :role
16
+ property :role_label
17
+ property :uniform_number
18
+ end
19
+ end
20
+ end
@@ -0,0 +1,133 @@
1
+ module Stattleship
2
+ module Models
3
+ class Penalty < OpenStruct
4
+ def away_team
5
+ game.away_team
6
+ end
7
+
8
+ def home_team
9
+ game.home_team
10
+ end
11
+
12
+ def winning_team
13
+ game.winning_team
14
+ end
15
+
16
+ def away_team_name
17
+ away_team.name
18
+ end
19
+
20
+ def home_team_name
21
+ home_team.name
22
+ end
23
+
24
+ def winning_team_name
25
+ winning_team.name
26
+ end
27
+
28
+ def city
29
+ venue.city
30
+ end
31
+
32
+ def league_name
33
+ league.name
34
+ end
35
+
36
+ def league_abbreviation
37
+ league.abbreviation
38
+ end
39
+
40
+ def player_name
41
+ player.name
42
+ end
43
+
44
+ def opponent_name
45
+ opponent.name
46
+ end
47
+
48
+ def opponent_full_name
49
+ opponent.full_name
50
+ end
51
+
52
+ def scoreline
53
+ game.scoreline
54
+ end
55
+
56
+ def team_name
57
+ team.name
58
+ end
59
+
60
+ def team_full_name
61
+ team.full_name
62
+ end
63
+
64
+ def venue
65
+ game.venue
66
+ end
67
+
68
+ def venue_name
69
+ venue.name
70
+ end
71
+
72
+ def subject_name
73
+ if team_penalty
74
+ team_name
75
+ else
76
+ "#{player_name} (#{team_name})"
77
+ end
78
+ end
79
+
80
+ def period_time
81
+ Time.at(period_seconds).utc.strftime('%M:%S')
82
+ end
83
+
84
+ def period_abbreviation
85
+ if game.hockey?
86
+ "P"
87
+ else
88
+ "Q"
89
+ end
90
+ end
91
+
92
+ def period
93
+ "#{period_number}#{period_abbreviation}"
94
+ end
95
+
96
+ def at
97
+ "#{period_time} of #{period}"
98
+ end
99
+
100
+ def vs
101
+ if game
102
+ "vs #{opponent_name} #{game.short_date}"
103
+ end
104
+ end
105
+
106
+ def to_sentence
107
+ "#{subject_name} - #{label} - #{minutes} minutes - #{at} - #{vs}"
108
+ end
109
+ end
110
+
111
+ module PenaltyRepresenter
112
+ include Roar::JSON
113
+ include Roar::Coercion
114
+ include Virtus.model
115
+
116
+ property :id
117
+ property :game_id
118
+ property :opponent_id
119
+ property :label
120
+ property :minutes, type: Integer
121
+ property :name
122
+ property :period_number, type: Integer
123
+ property :period_seconds, type: Integer
124
+ property :period_abbreviation
125
+ property :period_time
126
+ property :player_id
127
+ property :seconds, type: Integer
128
+ property :team_penalty, type: Boolean, default: false
129
+ property :team_id
130
+ property :time_code
131
+ end
132
+ end
133
+ end
@@ -0,0 +1,124 @@
1
+ module Stattleship
2
+ module Models
3
+ class Player < OpenStruct
4
+ def active?
5
+ active
6
+ end
7
+
8
+ def label
9
+ "#{name} (#{position_abbreviation}) - #{team_nickname}"
10
+ end
11
+
12
+ def team_name
13
+ if team
14
+ team.name
15
+ end
16
+ end
17
+
18
+ def team_nickname
19
+ if team
20
+ team.nickname
21
+ end
22
+ end
23
+
24
+ def team_hash
25
+ if team
26
+ team.dump
27
+ end
28
+ end
29
+
30
+ def pitcher?
31
+ position_abbreviation == 'SP' ||
32
+ position_abbreviation == 'SP'
33
+ end
34
+
35
+ def inflielder?
36
+ position_abbreviation == '1B' ||
37
+ position_abbreviation == '2B' ||
38
+ position_abbreviation == '3B' ||
39
+ position_abbreviation == 'SS' ||
40
+ position_abbreviation == 'C'
41
+ end
42
+
43
+ def outflielder?
44
+ position_abbreviation == 'LF' ||
45
+ position_abbreviation == 'CF' ||
46
+ position_abbreviation == 'RF' ||
47
+ position_abbreviation == 'OF'
48
+ end
49
+
50
+ def dump
51
+ {
52
+ active: active?,
53
+ birth_date: birth_date,
54
+ first_name: first_name,
55
+ handedness: handedness,
56
+ height: height,
57
+ humanized_salary: humanized_salary,
58
+ inflielder: inflielder?,
59
+ label: label,
60
+ last_name: last_name,
61
+ name: name,
62
+ outflielder: outflielder?,
63
+ pitcher: pitcher?,
64
+ position_abbreviation: position_abbreviation,
65
+ position_name: position_name,
66
+ salary: salary,
67
+ salary_currency: salary_currency,
68
+ school: school,
69
+ slug: slug,
70
+ sport: sport,
71
+ team_name: team_name,
72
+ team_nickname: team_nickname,
73
+ team: team_hash,
74
+ unit_of_height: unit_of_height,
75
+ unit_of_weight: unit_of_weight,
76
+ weight: weight,
77
+ years_of_experience: years_of_experience,
78
+ city: city,
79
+ state: state,
80
+ country: country,
81
+ draft_season: draft_season,
82
+ draft_round: draft_round,
83
+ draft_overall_pick: draft_overall_pick,
84
+ draft_team_name: draft_team_name,
85
+ }
86
+ end
87
+ end
88
+
89
+ module PlayerRepresenter
90
+ include Roar::JSON
91
+ include Roar::Coercion
92
+ include Virtus.model
93
+
94
+ property :active, type: Boolean
95
+ property :birth_date, type: Date
96
+ property :first_name
97
+ property :handedness
98
+ property :height, type: Integer
99
+ property :humanized_salary
100
+ property :id
101
+ property :last_name
102
+ property :name
103
+ property :position_abbreviation
104
+ property :position_name
105
+ property :salary, type: Bignum
106
+ property :salary_currency
107
+ property :school
108
+ property :slug
109
+ property :sport
110
+ property :team_id
111
+ property :unit_of_height
112
+ property :unit_of_weight
113
+ property :weight, type: Integer
114
+ property :years_of_experience, type: Integer
115
+ property :city
116
+ property :state
117
+ property :country
118
+ property :draft_season
119
+ property :draft_round, type: Integer
120
+ property :draft_overall_pick, type: Integer
121
+ property :draft_team_name
122
+ end
123
+ end
124
+ end
@@ -0,0 +1,17 @@
1
+ module Stattleship
2
+ module Models
3
+ class PlayingPosition < OpenStruct
4
+ end
5
+
6
+ module PlayingPositionRepresenter
7
+ include Roar::JSON
8
+
9
+ property :abbreviation
10
+ property :description
11
+ property :formation
12
+ property :id
13
+ property :league_id
14
+ property :name
15
+ end
16
+ end
17
+ end
@@ -0,0 +1,96 @@
1
+ module Stattleship
2
+ module Models
3
+ class Ranking < OpenStruct
4
+ def player_name
5
+ player.name if player
6
+ end
7
+
8
+ def season
9
+ game.season if game
10
+ end
11
+
12
+ def season_name
13
+ season.name if season
14
+ end
15
+
16
+ def team_name
17
+ team.name if team
18
+ end
19
+
20
+ def short_date
21
+ game.short_date if game
22
+ end
23
+
24
+ def to_sentence
25
+ description
26
+ end
27
+
28
+ def dump
29
+ {
30
+ data: data,
31
+ description: description,
32
+ interval_type: interval_type,
33
+ interval_value: interval_value,
34
+ name: name,
35
+ ordinal_place: ordinal_place,
36
+ place: place,
37
+ player_name: player_name,
38
+ season_name: season_name,
39
+ short_date: short_date,
40
+ stat: stat,
41
+ stat_value: stat_value,
42
+ statline: statline,
43
+ superlative: superlative,
44
+ team_name: team_name,
45
+ title: title
46
+ }
47
+ end
48
+ end
49
+
50
+ module RankingRepresenter
51
+ include Roar::JSON
52
+ include Roar::Coercion
53
+
54
+ [
55
+ :id,
56
+ :description,
57
+ :name,
58
+ :ordinal_place,
59
+ :stat,
60
+ :interval_type,
61
+ :interval_value,
62
+ :statline,
63
+ :superlative,
64
+ :title
65
+ ].each do |attribute|
66
+ property attribute
67
+ end
68
+
69
+ [
70
+ :place,
71
+ ].each do |attribute|
72
+ property attribute, type: Integer
73
+ end
74
+
75
+ [
76
+ :stat_value,
77
+ ].each do |attribute|
78
+ property attribute, type: BigDecimal
79
+ end
80
+
81
+ [
82
+ :data,
83
+ ].each do |attribute|
84
+ property attribute, type: Hash
85
+ end
86
+
87
+ [
88
+ :game_id,
89
+ :player_id,
90
+ :team_id
91
+ ].each do |relationship|
92
+ property relationship
93
+ end
94
+ end
95
+ end
96
+ end