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,27 @@
|
|
1
|
+
# Set your STATTLESHIP_ACCESS_TOKEN from https://www.stattleship.com in the examples/.env file
|
2
|
+
|
3
|
+
require 'dotenv'
|
4
|
+
Dotenv.load
|
5
|
+
|
6
|
+
dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
|
7
|
+
require File.join(dir, 'stattleship')
|
8
|
+
require 'pp'
|
9
|
+
|
10
|
+
# Construct params for the fetch
|
11
|
+
query_params = Stattleship::Params::HockeyTeamOutcomeStreaksParams.new
|
12
|
+
query_params.team_id = 'nhl-was'
|
13
|
+
query_params.ranked = 3
|
14
|
+
|
15
|
+
# fetch will automatically traverse the paginated response links
|
16
|
+
streaks = Stattleship::HockeyTeamOutcomeStreaks.fetch(params: query_params).sort_by(&:rank)
|
17
|
+
|
18
|
+
# The Capitals first longest streak of the 2015-2016 NHL season is 9 games (win from Dec 12-Dec 31)
|
19
|
+
# The Capitals second longest streak of the 2015-2016 NHL season is 6 games (win from Nov 21-Dec 05)
|
20
|
+
# The Capitals third longest streak of the 2015-2016 NHL season is 5 games (win from Oct 15-Oct 28)
|
21
|
+
# The Capitals third longest streak of the 2015-2016 NHL season is 5 games (win from Jan 05-Jan 16)
|
22
|
+
# The Capitals third longest streak of the 2015-2016 NHL season is 5 games (win from Feb 04-Feb 13)
|
23
|
+
|
24
|
+
# or, individual attributes
|
25
|
+
streaks.each do |streak|
|
26
|
+
puts "The #{streak.team.nickname} #{streak.rank.ordinalize} longest streak of the #{streak.season.name} #{streak.league.abbreviation} season is #{streak.streak_length} games (#{streak.outcome} from #{streak.started_on_short_date}-#{streak.ended_on_short_date})"
|
27
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
# Set your STATTLESHIP_ACCESS_TOKEN from https://www.stattleship.com in the examples/.env file
|
2
|
+
|
3
|
+
require 'dotenv'
|
4
|
+
Dotenv.load
|
5
|
+
|
6
|
+
dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
|
7
|
+
require File.join(dir, 'stattleship')
|
8
|
+
require 'pp'
|
9
|
+
|
10
|
+
# Construct params for the fetch
|
11
|
+
query_params = Stattleship::Params::HockeyTeamsParams.new
|
12
|
+
|
13
|
+
# fetch will automatically traverse the paginated response links
|
14
|
+
teams = Stattleship::HockeyTeams.fetch(params: query_params)
|
15
|
+
|
16
|
+
# the populated object
|
17
|
+
pp teams.first
|
18
|
+
|
19
|
+
# or, individual attributes
|
20
|
+
teams.each do |team|
|
21
|
+
pp "#{team.nickname} #{team.colors.join(' ')}"
|
22
|
+
end
|
23
|
+
|
24
|
+
# "Ducks 000000 91764B EF5225"
|
25
|
+
# "Coyotes 841F27 000000 EFE1C6"
|
26
|
+
# "Bruins 000000 FFC422"
|
27
|
+
# "Sabres 002E62 FDBB2F AEB6B9"
|
28
|
+
# "Flames E03A3E FFC758 000000"
|
29
|
+
# "Hurricanes E03A3E 000000 8E8E90"
|
30
|
+
# "Blackhawks E3263A 000000"
|
31
|
+
# "Avalanche 8B2942 01548A 000000 A9B0B8"
|
32
|
+
# "Blue Jackets 00285C E03A3E A9B0B8"
|
33
|
+
# "Stars 006A4E 000000 C0C0C0"
|
34
|
+
# "Red Wings EC1F26"
|
35
|
+
# "Oilers 003777 E66A20"
|
36
|
+
# "Panthers C8213F 002E5F D59C05"
|
37
|
+
# "Kings 000000 AFB7BA"
|
38
|
+
# "Wild 025736 BF2B37 EFB410 EEE3C7"
|
39
|
+
# "Canadiens BF2F38 213770"
|
40
|
+
# "Predators FDBB2F 002E62"
|
41
|
+
# "Devils E03A3E 000000"
|
42
|
+
# "Islanders 00529B F57D31"
|
43
|
+
# "Rangers 0161AB E6393F"
|
44
|
+
# "Senators E4173E 000000 D69F0F"
|
45
|
+
# "Flyers F47940 000000"
|
46
|
+
# "Penguins 000000 D1BD80"
|
47
|
+
# "Sharks 05535D F38F20 000000"
|
48
|
+
# "Blues 0546A0 FFC325 101F48"
|
49
|
+
# "Lightning 013E7D 000000 C0C0C0"
|
50
|
+
# "Maple Leafs 003777"
|
51
|
+
# "Canucks 07346F 047A4A A8A9AD"
|
52
|
+
# "Capitals CF132B 00214E 000000"
|
53
|
+
# "Jets 002E62 0168AB A8A9AD"
|
54
|
+
# ...
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# Set your STATTLESHIP_ACCESS_TOKEN from https://www.stattleship.com in the examples/.env file
|
2
|
+
|
3
|
+
require 'dotenv'
|
4
|
+
Dotenv.load
|
5
|
+
|
6
|
+
dir = File.expand_path(File.join(File.dirname(__FILE__), '..', 'lib'))
|
7
|
+
require File.join(dir, 'stattleship')
|
8
|
+
require 'pp'
|
9
|
+
|
10
|
+
# Construct params for the fetch
|
11
|
+
query_params = Stattleship::Params::HockeyTotalTeamStatParams.new
|
12
|
+
|
13
|
+
# use a slug, typically 'league-team_abbreviation'
|
14
|
+
# we know that you'll want the `hockey_team_stat' type, so no need to specify that
|
15
|
+
query_params.team_id = 'nhl-mon'
|
16
|
+
query_params.stat = 'goals_period_3'
|
17
|
+
|
18
|
+
# fetch will automatically traverse the paginated response links
|
19
|
+
total_stat = Stattleship::HockeyTotalTeamStat.fetch(params: query_params)
|
20
|
+
|
21
|
+
# the populated object
|
22
|
+
pp total_stat
|
23
|
+
|
24
|
+
# can access friendly helpers
|
25
|
+
pp total_stat.to_sentence
|
26
|
+
|
27
|
+
# "The Montreal Canadiens have 46 goals_period_3"
|
28
|
+
|
29
|
+
# or, individual attributes
|
30
|
+
pp "#{total_stat.team.nickname} who play in #{total_stat.team.location} had #{total_stat.total.to_i} goals in the 3rd period"
|
31
|
+
|
32
|
+
# "Canadiens who play in Montreal had 46 goals in the 3rd period"
|
data/examples/sample.env
ADDED
data/lib/stattleship.rb
ADDED
@@ -0,0 +1,117 @@
|
|
1
|
+
require 'addressable/uri'
|
2
|
+
require 'addressable/template'
|
3
|
+
require 'bigdecimal'
|
4
|
+
require 'bigdecimal/util'
|
5
|
+
require 'date'
|
6
|
+
require 'dotenv'
|
7
|
+
require 'link_header'
|
8
|
+
require 'net/https'
|
9
|
+
require 'ordinalize'
|
10
|
+
require 'ostruct'
|
11
|
+
require 'roar/coercion'
|
12
|
+
require 'roar/json'
|
13
|
+
|
14
|
+
require 'stattleship/version'
|
15
|
+
|
16
|
+
require 'stattleship/client/configuration'
|
17
|
+
require 'stattleship/client/client'
|
18
|
+
|
19
|
+
require 'stattleship/endpoint'
|
20
|
+
require 'stattleship/formatters/stat_formatter'
|
21
|
+
require 'stattleship/models'
|
22
|
+
require 'stattleship/params'
|
23
|
+
require 'stattleship/validators'
|
24
|
+
|
25
|
+
require 'stattleship/feats'
|
26
|
+
require 'stattleship/baseball_feats'
|
27
|
+
require 'stattleship/football_feats'
|
28
|
+
require 'stattleship/basketball_feats'
|
29
|
+
require 'stattleship/hockey_feats'
|
30
|
+
|
31
|
+
require 'stattleship/games'
|
32
|
+
require 'stattleship/basketball_games'
|
33
|
+
require 'stattleship/football_games'
|
34
|
+
require 'stattleship/hockey_games'
|
35
|
+
require 'stattleship/baseball_games'
|
36
|
+
|
37
|
+
require 'stattleship/game_logs'
|
38
|
+
require 'stattleship/basketball_game_logs'
|
39
|
+
require 'stattleship/football_game_logs'
|
40
|
+
require 'stattleship/hockey_game_logs'
|
41
|
+
require 'stattleship/baseball_game_logs'
|
42
|
+
|
43
|
+
require 'stattleship/injuries'
|
44
|
+
require 'stattleship/basketball_injuries'
|
45
|
+
require 'stattleship/football_injuries'
|
46
|
+
require 'stattleship/hockey_injuries'
|
47
|
+
require 'stattleship/baseball_injuries'
|
48
|
+
|
49
|
+
require 'stattleship/penalties'
|
50
|
+
require 'stattleship/basketball_penalties'
|
51
|
+
require 'stattleship/football_penalties'
|
52
|
+
require 'stattleship/hockey_penalties'
|
53
|
+
require 'stattleship/baseball_penalties'
|
54
|
+
|
55
|
+
require 'stattleship/players'
|
56
|
+
require 'stattleship/basketball_players'
|
57
|
+
require 'stattleship/football_players'
|
58
|
+
require 'stattleship/hockey_players'
|
59
|
+
require 'stattleship/baseball_players'
|
60
|
+
|
61
|
+
require 'stattleship/rankings'
|
62
|
+
|
63
|
+
require 'stattleship/scoring_plays'
|
64
|
+
require 'stattleship/basketball_scoring_plays'
|
65
|
+
require 'stattleship/football_scoring_plays'
|
66
|
+
require 'stattleship/hockey_scoring_plays'
|
67
|
+
require 'stattleship/baseball_scoring_plays'
|
68
|
+
|
69
|
+
require 'stattleship/stat_leaders'
|
70
|
+
require 'stattleship/basketball_stat_leaders'
|
71
|
+
require 'stattleship/football_stat_leaders'
|
72
|
+
require 'stattleship/hockey_stat_leaders'
|
73
|
+
require 'stattleship/baseball_stat_leaders'
|
74
|
+
|
75
|
+
require 'stattleship/stats'
|
76
|
+
require 'stattleship/basketball_stats'
|
77
|
+
require 'stattleship/football_stats'
|
78
|
+
require 'stattleship/hockey_stats'
|
79
|
+
require 'stattleship/baseball_stats'
|
80
|
+
|
81
|
+
require 'stattleship/teams'
|
82
|
+
require 'stattleship/basketball_teams'
|
83
|
+
require 'stattleship/football_teams'
|
84
|
+
require 'stattleship/hockey_teams'
|
85
|
+
require 'stattleship/baseball_teams'
|
86
|
+
|
87
|
+
require 'stattleship/team_game_logs'
|
88
|
+
require 'stattleship/basketball_team_game_logs'
|
89
|
+
require 'stattleship/football_team_game_logs'
|
90
|
+
require 'stattleship/hockey_team_game_logs'
|
91
|
+
require 'stattleship/baseball_team_game_logs'
|
92
|
+
|
93
|
+
require 'stattleship/team_outcome_streaks'
|
94
|
+
require 'stattleship/basketball_team_outcome_streaks'
|
95
|
+
require 'stattleship/football_team_outcome_streaks'
|
96
|
+
require 'stattleship/hockey_team_outcome_streaks'
|
97
|
+
require 'stattleship/baseball_team_outcome_streaks'
|
98
|
+
|
99
|
+
require 'stattleship/total_player_stat'
|
100
|
+
require 'stattleship/basketball_total_player_stat'
|
101
|
+
require 'stattleship/football_total_player_stat'
|
102
|
+
require 'stattleship/hockey_total_player_stat'
|
103
|
+
require 'stattleship/baseball_total_player_stat'
|
104
|
+
|
105
|
+
require 'stattleship/total_team_stat'
|
106
|
+
require 'stattleship/basketball_total_team_stat'
|
107
|
+
require 'stattleship/football_total_team_stat'
|
108
|
+
require 'stattleship/hockey_total_team_stat'
|
109
|
+
require 'stattleship/baseball_total_team_stat'
|
110
|
+
|
111
|
+
require 'stattleship/top_stats'
|
112
|
+
require 'stattleship/basketball_top_stats'
|
113
|
+
require 'stattleship/football_top_stats'
|
114
|
+
require 'stattleship/hockey_top_stats'
|
115
|
+
require 'stattleship/baseball_top_stats'
|
116
|
+
|
117
|
+
Dotenv.load
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Stattleship
|
2
|
+
class BaseballFeats < Stattleship::Feats
|
3
|
+
BASEBALL_FEATS = 'baseball/mlb/feats'.freeze
|
4
|
+
|
5
|
+
def self.fetch(params:)
|
6
|
+
super(path: BASEBALL_FEATS,
|
7
|
+
params: params)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
module BaseballFeatsRepresenter
|
12
|
+
include Roar::JSON
|
13
|
+
include FeatsRepresenter
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,159 @@
|
|
1
|
+
module Stattleship
|
2
|
+
class BaseballGameLog < Stattleship::GameLog
|
3
|
+
def stats
|
4
|
+
if player.pitcher?
|
5
|
+
[
|
6
|
+
"#{pitcher_strikeouts.to_i} K",
|
7
|
+
"#{pitches_thrown.to_i} thrown",
|
8
|
+
"#{strikes_thrown.to_i} K thrown",
|
9
|
+
"#{pitcher_runs.to_i} R"
|
10
|
+
]
|
11
|
+
else
|
12
|
+
[
|
13
|
+
"#{hits.to_i} H",
|
14
|
+
"#{runs.to_i} R",
|
15
|
+
"#{runs_batted_in.to_i} RBI",
|
16
|
+
"#{fielding_errors.to_i} E"
|
17
|
+
]
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
def to_sentence
|
22
|
+
"#{player_name} #{stats.join(', ')} (#{game.name})"
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
class BaseballGameLogs < Stattleship::GameLogs
|
27
|
+
BASEBALL_GAME_LOGS = 'baseball/mlb/game_logs'.freeze
|
28
|
+
|
29
|
+
def self.fetch(params:)
|
30
|
+
super(path: BASEBALL_GAME_LOGS,
|
31
|
+
params: params)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
|
35
|
+
module BaseballGameLogsRepresenter
|
36
|
+
include Roar::JSON
|
37
|
+
include Roar::Coercion
|
38
|
+
include Stattleship::GameLogsRepresenter
|
39
|
+
include Virtus.model
|
40
|
+
|
41
|
+
collection :game_logs, class: Stattleship::BaseballGameLog do
|
42
|
+
|
43
|
+
[
|
44
|
+
:away_team_outcome,
|
45
|
+
:home_team_outcome,
|
46
|
+
:team_outcome,
|
47
|
+
:opponent_outcome,
|
48
|
+
].each do |attribute|
|
49
|
+
property attribute
|
50
|
+
end
|
51
|
+
|
52
|
+
[
|
53
|
+
:batting_average,
|
54
|
+
:earned_run_average,
|
55
|
+
:inherited_runner_scoring_percentage,
|
56
|
+
:innings_pitched,
|
57
|
+
:on_base_percentage,
|
58
|
+
:on_base_plus_slugging,
|
59
|
+
:slugging_percentage,
|
60
|
+
:strike_percentage,
|
61
|
+
:whip,
|
62
|
+
].each do |attribute|
|
63
|
+
property attribute, type: BigDecimal
|
64
|
+
end
|
65
|
+
|
66
|
+
[
|
67
|
+
:at_bats,
|
68
|
+
:away_team_score,
|
69
|
+
:balks,
|
70
|
+
:balls_thrown,
|
71
|
+
:batters_faced,
|
72
|
+
:blown_saves,
|
73
|
+
:catcher_interferences,
|
74
|
+
:catcher_stealers_allowed,
|
75
|
+
:catcher_stealers_caught,
|
76
|
+
:caught_stealing,
|
77
|
+
:complete_games,
|
78
|
+
:doubles,
|
79
|
+
:extra_base_hits,
|
80
|
+
:fielding_errors,
|
81
|
+
:fly_ball_outs,
|
82
|
+
:game_played,
|
83
|
+
:game_started,
|
84
|
+
:ground_ball_outs,
|
85
|
+
:grounded_into_double_plays,
|
86
|
+
:hit_by_pitch,
|
87
|
+
:hits,
|
88
|
+
:holds,
|
89
|
+
:home_runs,
|
90
|
+
:home_team_score,
|
91
|
+
:inherited_runners,
|
92
|
+
:inherited_runners_scored,
|
93
|
+
:intentional_walks,
|
94
|
+
:intentional_walks_against,
|
95
|
+
:left_on_base,
|
96
|
+
:losses,
|
97
|
+
:no_decisions,
|
98
|
+
:opponent_score,
|
99
|
+
:outfield_assists,
|
100
|
+
:outs_pitched,
|
101
|
+
:passed_balls,
|
102
|
+
:pickoffs,
|
103
|
+
:pitcher_caught_stealing,
|
104
|
+
:pitcher_earned_runs,
|
105
|
+
:pitcher_fielding_errors,
|
106
|
+
:pitcher_games_played,
|
107
|
+
:pitcher_games_started,
|
108
|
+
:pitcher_hit_by_pitch,
|
109
|
+
:pitcher_hits,
|
110
|
+
:pitcher_home_runs,
|
111
|
+
:pitcher_intentional_walks,
|
112
|
+
:pitcher_runs,
|
113
|
+
:pitcher_sacrifice_flys,
|
114
|
+
:pitcher_sacrifice_hits,
|
115
|
+
:pitcher_stolen_bases,
|
116
|
+
:pitcher_strikeouts,
|
117
|
+
:pitcher_walks,
|
118
|
+
:pitches_thrown,
|
119
|
+
:quality_starts,
|
120
|
+
:rlisp_two_out,
|
121
|
+
:runs,
|
122
|
+
:runs_batted_in,
|
123
|
+
:sacrifice_flys,
|
124
|
+
:sacrifice_hits,
|
125
|
+
:saves,
|
126
|
+
:shutouts,
|
127
|
+
:singles,
|
128
|
+
:starting_pitches_thrown,
|
129
|
+
:stolen_bases,
|
130
|
+
:strikeouts,
|
131
|
+
:strikes_thrown,
|
132
|
+
:team_score,
|
133
|
+
:total_bases,
|
134
|
+
:triples,
|
135
|
+
:two_out_rbi,
|
136
|
+
:walks,
|
137
|
+
:wild_pitches,
|
138
|
+
:wins,
|
139
|
+
].each do |attribute|
|
140
|
+
property attribute, type: Integer
|
141
|
+
end
|
142
|
+
|
143
|
+
[
|
144
|
+
:is_home_team,
|
145
|
+
:is_away_team,
|
146
|
+
].each do |attribute|
|
147
|
+
property attribute, type: Boolean, default: false
|
148
|
+
end
|
149
|
+
|
150
|
+
[
|
151
|
+
:player_id,
|
152
|
+
:game_id,
|
153
|
+
:team_id
|
154
|
+
].each do |relationship|
|
155
|
+
property relationship
|
156
|
+
end
|
157
|
+
end
|
158
|
+
end
|
159
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Stattleship
|
2
|
+
class BaseballGames < Stattleship::Games
|
3
|
+
BASEBALL_GAMES = 'baseball/mlb/games'.freeze
|
4
|
+
|
5
|
+
def self.fetch(params:)
|
6
|
+
super(path: BASEBALL_GAMES,
|
7
|
+
params: params)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
module BaseballGamesRepresenter
|
12
|
+
include Roar::JSON
|
13
|
+
include GamesRepresenter
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
module Stattleship
|
2
|
+
class BaseballInjuries < Stattleship::Injuries
|
3
|
+
BASEBALL_INJURIES = 'baseball/mlb/injuries'.freeze
|
4
|
+
|
5
|
+
def self.fetch(params:)
|
6
|
+
super(path: BASEBALL_INJURIES,
|
7
|
+
params: params)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
module BaseballInjuriesRepresenter
|
12
|
+
include Roar::JSON
|
13
|
+
include InjuriesRepresenter
|
14
|
+
end
|
15
|
+
end
|