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.
- checksums.yaml +7 -0
- data/.gitignore +12 -0
- data/.rspec +2 -0
- data/.rubocop.yml +263 -0
- data/.ruby-version +1 -0
- data/.travis.yml +8 -0
- data/CODE_OF_CONDUCT.md +13 -0
- data/Gemfile +15 -0
- data/LICENSE +1 -0
- data/README.md +75 -0
- data/Rakefile +1 -0
- data/bin/console +7 -0
- data/bin/game_log_officials +32 -0
- data/bin/game_logs +69 -0
- data/bin/games +42 -0
- data/bin/in_progress +19 -0
- data/bin/injuries +18 -0
- data/bin/officials +42 -0
- data/bin/players +45 -0
- data/bin/scoreboard +43 -0
- data/bin/setup +7 -0
- data/bin/stat_leaders +25 -0
- data/bin/team_game_logs +35 -0
- data/bin/teams +29 -0
- data/bin/top_stats +25 -0
- data/bin/total_player_stat +33 -0
- data/bin/total_team_stat +22 -0
- data/examples/README.md +118 -0
- data/examples/baseball_feats.rb +35 -0
- data/examples/baseball_games.rb +32 -0
- data/examples/baseball_player_game_logs.rb +33 -0
- data/examples/baseball_stat_leaders.rb +30 -0
- data/examples/basketball_game_logs.rb +33 -0
- data/examples/basketball_injuries.rb +36 -0
- data/examples/basketball_season_player_performance_rankings.rb +31 -0
- data/examples/basketball_stat_leaders.rb +40 -0
- data/examples/basketball_team_game_logs.rb +38 -0
- data/examples/basketball_top_stats.rb +43 -0
- data/examples/basketball_winning_streaks.rb +27 -0
- data/examples/bears_team_game_logs.rb +46 -0
- data/examples/football_feats.rb +49 -0
- data/examples/football_game_logs.rb +40 -0
- data/examples/football_players.rb +43 -0
- data/examples/football_stats.rb +50 -0
- data/examples/football_total_player_stat.rb +32 -0
- data/examples/hockey_games.rb +56 -0
- data/examples/hockey_penalties.rb +47 -0
- data/examples/hockey_scoring_plays.rb +55 -0
- data/examples/hockey_team_ranked_streaks.rb +27 -0
- data/examples/hockey_teams.rb +54 -0
- data/examples/hockey_total_team_stat.rb +32 -0
- data/examples/sample.env +2 -0
- data/lib/stattleship.rb +117 -0
- data/lib/stattleship/baseball_feats.rb +15 -0
- data/lib/stattleship/baseball_game_logs.rb +159 -0
- data/lib/stattleship/baseball_games.rb +15 -0
- data/lib/stattleship/baseball_injuries.rb +15 -0
- data/lib/stattleship/baseball_penalties.rb +15 -0
- data/lib/stattleship/baseball_players.rb +15 -0
- data/lib/stattleship/baseball_scoring_plays.rb +15 -0
- data/lib/stattleship/baseball_stat_leaders.rb +15 -0
- data/lib/stattleship/baseball_stats.rb +15 -0
- data/lib/stattleship/baseball_team_game_logs.rb +142 -0
- data/lib/stattleship/baseball_team_outcome_streaks.rb +15 -0
- data/lib/stattleship/baseball_teams.rb +15 -0
- data/lib/stattleship/baseball_top_stats.rb +15 -0
- data/lib/stattleship/baseball_total_player_stat.rb +15 -0
- data/lib/stattleship/baseball_total_team_stat.rb +15 -0
- data/lib/stattleship/basketball_feats.rb +15 -0
- data/lib/stattleship/basketball_game_logs.rb +111 -0
- data/lib/stattleship/basketball_games.rb +15 -0
- data/lib/stattleship/basketball_injuries.rb +15 -0
- data/lib/stattleship/basketball_penalties.rb +15 -0
- data/lib/stattleship/basketball_players.rb +15 -0
- data/lib/stattleship/basketball_scoring_plays.rb +15 -0
- data/lib/stattleship/basketball_stat_leaders.rb +15 -0
- data/lib/stattleship/basketball_stats.rb +15 -0
- data/lib/stattleship/basketball_team_game_logs.rb +113 -0
- data/lib/stattleship/basketball_team_outcome_streaks.rb +15 -0
- data/lib/stattleship/basketball_teams.rb +15 -0
- data/lib/stattleship/basketball_top_stats.rb +15 -0
- data/lib/stattleship/basketball_total_player_stat.rb +15 -0
- data/lib/stattleship/basketball_total_team_stat.rb +15 -0
- data/lib/stattleship/client/client.rb +101 -0
- data/lib/stattleship/client/configuration.rb +42 -0
- data/lib/stattleship/endpoint.rb +208 -0
- data/lib/stattleship/feats.rb +150 -0
- data/lib/stattleship/football_feats.rb +15 -0
- data/lib/stattleship/football_game_logs.rb +255 -0
- data/lib/stattleship/football_games.rb +15 -0
- data/lib/stattleship/football_injuries.rb +15 -0
- data/lib/stattleship/football_penalties.rb +15 -0
- data/lib/stattleship/football_players.rb +15 -0
- data/lib/stattleship/football_scoring_plays.rb +15 -0
- data/lib/stattleship/football_stat_leaders.rb +15 -0
- data/lib/stattleship/football_stats.rb +15 -0
- data/lib/stattleship/football_team_game_logs.rb +176 -0
- data/lib/stattleship/football_team_outcome_streaks.rb +15 -0
- data/lib/stattleship/football_teams.rb +15 -0
- data/lib/stattleship/football_top_stats.rb +15 -0
- data/lib/stattleship/football_total_player_stat.rb +15 -0
- data/lib/stattleship/football_total_team_stat.rb +15 -0
- data/lib/stattleship/formatters/stat_formatter.rb +28 -0
- data/lib/stattleship/game_logs.rb +97 -0
- data/lib/stattleship/games.rb +38 -0
- data/lib/stattleship/hockey_feats.rb +15 -0
- data/lib/stattleship/hockey_game_logs.rb +107 -0
- data/lib/stattleship/hockey_games.rb +15 -0
- data/lib/stattleship/hockey_injuries.rb +15 -0
- data/lib/stattleship/hockey_penalties.rb +32 -0
- data/lib/stattleship/hockey_players.rb +15 -0
- data/lib/stattleship/hockey_scoring_plays.rb +15 -0
- data/lib/stattleship/hockey_stat_leaders.rb +15 -0
- data/lib/stattleship/hockey_stats.rb +15 -0
- data/lib/stattleship/hockey_team_game_logs.rb +128 -0
- data/lib/stattleship/hockey_team_outcome_streaks.rb +15 -0
- data/lib/stattleship/hockey_teams.rb +15 -0
- data/lib/stattleship/hockey_top_stats.rb +15 -0
- data/lib/stattleship/hockey_total_player_stat.rb +15 -0
- data/lib/stattleship/hockey_total_team_stat.rb +15 -0
- data/lib/stattleship/injuries.rb +32 -0
- data/lib/stattleship/models.rb +19 -0
- data/lib/stattleship/models/game.rb +360 -0
- data/lib/stattleship/models/injury.rb +22 -0
- data/lib/stattleship/models/league.rb +35 -0
- data/lib/stattleship/models/official.rb +20 -0
- data/lib/stattleship/models/penalty.rb +133 -0
- data/lib/stattleship/models/player.rb +124 -0
- data/lib/stattleship/models/playing_position.rb +17 -0
- data/lib/stattleship/models/ranking.rb +96 -0
- data/lib/stattleship/models/scoring_play.rb +201 -0
- data/lib/stattleship/models/scoring_player.rb +22 -0
- data/lib/stattleship/models/season.rb +18 -0
- data/lib/stattleship/models/team.rb +78 -0
- data/lib/stattleship/models/team_outcome_streak.rb +88 -0
- data/lib/stattleship/models/venue.rb +32 -0
- data/lib/stattleship/params.rb +102 -0
- data/lib/stattleship/params/baseball_feats_params.rb +6 -0
- data/lib/stattleship/params/baseball_game_logs_params.rb +6 -0
- data/lib/stattleship/params/baseball_games_params.rb +6 -0
- data/lib/stattleship/params/baseball_injuries_params.rb +6 -0
- data/lib/stattleship/params/baseball_penalties_params.rb +6 -0
- data/lib/stattleship/params/baseball_players_params.rb +6 -0
- data/lib/stattleship/params/baseball_scoring_plays_params.rb +6 -0
- data/lib/stattleship/params/baseball_stat_leaders_params.rb +6 -0
- data/lib/stattleship/params/baseball_stats_params.rb +6 -0
- data/lib/stattleship/params/baseball_team_game_logs_params.rb +6 -0
- data/lib/stattleship/params/baseball_team_outcome_streaks_params.rb +9 -0
- data/lib/stattleship/params/baseball_team_stats_params.rb +10 -0
- data/lib/stattleship/params/baseball_teams_params.rb +6 -0
- data/lib/stattleship/params/baseball_top_stats_params.rb +6 -0
- data/lib/stattleship/params/baseball_total_player_stat_params.rb +6 -0
- data/lib/stattleship/params/baseball_total_team_stat_params.rb +11 -0
- data/lib/stattleship/params/basketball_feats_params.rb +6 -0
- data/lib/stattleship/params/basketball_game_logs_params.rb +6 -0
- data/lib/stattleship/params/basketball_games_params.rb +6 -0
- data/lib/stattleship/params/basketball_injuries_params.rb +6 -0
- data/lib/stattleship/params/basketball_penalties_params.rb +6 -0
- data/lib/stattleship/params/basketball_players_params.rb +6 -0
- data/lib/stattleship/params/basketball_scoring_plays_params.rb +6 -0
- data/lib/stattleship/params/basketball_stat_leaders_params.rb +6 -0
- data/lib/stattleship/params/basketball_stats_params.rb +6 -0
- data/lib/stattleship/params/basketball_team_game_logs_params.rb +6 -0
- data/lib/stattleship/params/basketball_team_outcome_streaks_params.rb +9 -0
- data/lib/stattleship/params/basketball_team_stats_params.rb +10 -0
- data/lib/stattleship/params/basketball_teams_params.rb +6 -0
- data/lib/stattleship/params/basketball_top_stats_params.rb +6 -0
- data/lib/stattleship/params/basketball_total_player_stat_params.rb +6 -0
- data/lib/stattleship/params/basketball_total_team_stat_params.rb +11 -0
- data/lib/stattleship/params/feats_params.rb +23 -0
- data/lib/stattleship/params/football_feats_params.rb +6 -0
- data/lib/stattleship/params/football_game_logs_params.rb +11 -0
- data/lib/stattleship/params/football_games_params.rb +6 -0
- data/lib/stattleship/params/football_injuries_params.rb +6 -0
- data/lib/stattleship/params/football_penalties_params.rb +6 -0
- data/lib/stattleship/params/football_players_params.rb +6 -0
- data/lib/stattleship/params/football_scoring_plays_params.rb +6 -0
- data/lib/stattleship/params/football_stat_leaders_params.rb +6 -0
- data/lib/stattleship/params/football_stats_params.rb +6 -0
- data/lib/stattleship/params/football_team_game_logs_params.rb +6 -0
- data/lib/stattleship/params/football_team_outcome_streaks_params.rb +9 -0
- data/lib/stattleship/params/football_team_stats_params.rb +10 -0
- data/lib/stattleship/params/football_teams_params.rb +6 -0
- data/lib/stattleship/params/football_top_stats_params.rb +6 -0
- data/lib/stattleship/params/football_total_player_stat_params.rb +6 -0
- data/lib/stattleship/params/football_total_team_stat_params.rb +11 -0
- data/lib/stattleship/params/game_logs_params.rb +13 -0
- data/lib/stattleship/params/game_time_params.rb +17 -0
- data/lib/stattleship/params/games_params.rb +13 -0
- data/lib/stattleship/params/hockey_feats_params.rb +6 -0
- data/lib/stattleship/params/hockey_game_logs_params.rb +6 -0
- data/lib/stattleship/params/hockey_games_params.rb +6 -0
- data/lib/stattleship/params/hockey_injuries_params.rb +6 -0
- data/lib/stattleship/params/hockey_penalties_params.rb +6 -0
- data/lib/stattleship/params/hockey_players_params.rb +6 -0
- data/lib/stattleship/params/hockey_scoring_plays_params.rb +6 -0
- data/lib/stattleship/params/hockey_stat_leaders_params.rb +6 -0
- data/lib/stattleship/params/hockey_stats_params.rb +6 -0
- data/lib/stattleship/params/hockey_team_game_logs_params.rb +6 -0
- data/lib/stattleship/params/hockey_team_outcome_streaks_params.rb +9 -0
- data/lib/stattleship/params/hockey_team_stats_params.rb +10 -0
- data/lib/stattleship/params/hockey_teams_params.rb +6 -0
- data/lib/stattleship/params/hockey_top_stats_params.rb +6 -0
- data/lib/stattleship/params/hockey_total_player_stat_params.rb +6 -0
- data/lib/stattleship/params/hockey_total_team_stat_params.rb +11 -0
- data/lib/stattleship/params/injuries_params.rb +11 -0
- data/lib/stattleship/params/penalties_params.rb +11 -0
- data/lib/stattleship/params/players_params.rb +12 -0
- data/lib/stattleship/params/query_params.rb +50 -0
- data/lib/stattleship/params/rankings_params.rb +15 -0
- data/lib/stattleship/params/scoring_plays_params.rb +12 -0
- data/lib/stattleship/params/stat_leaders_params.rb +17 -0
- data/lib/stattleship/params/stats_params.rb +17 -0
- data/lib/stattleship/params/team_game_logs_params.rb +12 -0
- data/lib/stattleship/params/team_outcome_streaks_params.rb +24 -0
- data/lib/stattleship/params/teams_params.rb +9 -0
- data/lib/stattleship/params/top_stats_params.rb +17 -0
- data/lib/stattleship/params/total_player_stat_params.rb +17 -0
- data/lib/stattleship/params/total_team_stat_params.rb +18 -0
- data/lib/stattleship/penalties.rb +26 -0
- data/lib/stattleship/players.rb +26 -0
- data/lib/stattleship/rankings.rb +51 -0
- data/lib/stattleship/scoring_plays.rb +30 -0
- data/lib/stattleship/stat_leaders.rb +43 -0
- data/lib/stattleship/stats.rb +76 -0
- data/lib/stattleship/team_game_logs.rb +90 -0
- data/lib/stattleship/team_outcome_streaks.rb +28 -0
- data/lib/stattleship/teams.rb +20 -0
- data/lib/stattleship/top_stats.rb +58 -0
- data/lib/stattleship/total_player_stat.rb +37 -0
- data/lib/stattleship/total_team_stat.rb +30 -0
- data/lib/stattleship/validators.rb +33 -0
- data/lib/stattleship/validators/base_validator.rb +117 -0
- data/lib/stattleship/validators/birth_date_validator.rb +9 -0
- data/lib/stattleship/validators/current_validator.rb +9 -0
- data/lib/stattleship/validators/feat_validator.rb +9 -0
- data/lib/stattleship/validators/game_id_validator.rb +9 -0
- data/lib/stattleship/validators/interval_type_validator.rb +9 -0
- data/lib/stattleship/validators/level_up_validator.rb +9 -0
- data/lib/stattleship/validators/level_validator.rb +16 -0
- data/lib/stattleship/validators/on_validator.rb +9 -0
- data/lib/stattleship/validators/outcome_validator.rb +9 -0
- data/lib/stattleship/validators/page_validator.rb +9 -0
- data/lib/stattleship/validators/penalty_validator.rb +9 -0
- data/lib/stattleship/validators/per_page_validator.rb +9 -0
- data/lib/stattleship/validators/place_validator.rb +9 -0
- data/lib/stattleship/validators/player_id_validator.rb +9 -0
- data/lib/stattleship/validators/rank_validator.rb +9 -0
- data/lib/stattleship/validators/ranked_validator.rb +9 -0
- data/lib/stattleship/validators/ranking_validator.rb +9 -0
- data/lib/stattleship/validators/scoring_method_validator.rb +9 -0
- data/lib/stattleship/validators/scoring_type_validator.rb +9 -0
- data/lib/stattleship/validators/season_id_validator.rb +9 -0
- data/lib/stattleship/validators/since_validator.rb +9 -0
- data/lib/stattleship/validators/stat_validator.rb +23 -0
- data/lib/stattleship/validators/status_validator.rb +16 -0
- data/lib/stattleship/validators/streak_length_validator.rb +9 -0
- data/lib/stattleship/validators/team_id_validator.rb +9 -0
- data/lib/stattleship/validators/type_validator.rb +9 -0
- data/lib/stattleship/validators/week_validator.rb +9 -0
- data/lib/stattleship/version.rb +5 -0
- data/sample.env +1 -0
- data/stattleship-ruby.gemspec +33 -0
- 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
|