Class: BStats::NumberCrunch

Inherits:
Object
  • Object
show all
Defined in:
lib/bstats/number_crunch.rb

Class Method Summary collapse

Class Method Details

.most_improved_batting_average(from_year, to_year, min_at_bats = 200) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/bstats/number_crunch.rb', line 8

def self.most_improved_batting_average(from_year, to_year, min_at_bats=200)
  winner = BattingAverageWinner.new()
  get_grouped_at_bats(from_year, min_at_bats).each do |y1stat|
    get_grouped_at_bats(to_year, min_at_bats).each do | y2stat |
      if ((y2stat.hits_sum.to_f / y2stat.at_bats_sum.to_f) - (y1stat.hits_sum.to_f / y1stat.at_bats_sum.to_f)) > winner.percent_improved
        winner.percent_improved = ((y2stat.hits_sum.to_f / y2stat.at_bats_sum.to_f) - (y1stat.hits_sum.to_f / y1stat.at_bats_sum.to_f)).round(3)
        winner.player = y2stat.player
      end
    end
  end
  return winner
end

.team_slugging_percentage(team_id, year) ⇒ Object



21
22
23
# File 'lib/bstats/number_crunch.rb', line 21

def self.team_slugging_percentage(team_id, year)
  PlayerBattingStat.where("team_id = ? AND year = ?", team_id, year)
end

.triple_crown_winner(league, year, min_at_bats = 400) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/bstats/number_crunch.rb', line 25

def self.triple_crown_winner(league, year, min_at_bats=400)
  winner = Winner.new()
  btwinner = get_batting_title_winner(league, year, min_at_bats)
  home_run_king = get_home_run_king(league, year, min_at_bats)
  if btwinner.external_id == home_run_king.external_id
    most_rbis = get_most_rbis(league, year, min_at_bats)
    if btwinner.external_id == most_rbis.external_id
      winner.player = btwinner.player
    end
  end
  return winner
end