class Yahtzee::ScoreCard

Public Class Methods

lower_keys() click to toggle source
# File lib/score_card.rb, line 32
def self.lower_keys
  [:yahtzee, :bonus_yahtzee_1, :bonus_yahtzee_2, 
   :bonus_yahtzee_3, :three_of_a_kind,
   :four_of_a_kind, :full_house, :small_straight,
   :large_straight, :chance]
end
meta_keys() click to toggle source
# File lib/score_card.rb, line 52
def self.meta_keys
  [:bonus_yahtzee_1, :bonus_yahtzee_2,
   :bonus_yahtzee_3, :upper_subtotal,
   :upper_total,     :lower_subtotal,
   :game_total] 
end
new(attrs={}) click to toggle source
Calls superclass method
# File lib/score_card.rb, line 18
def initialize(attrs={})
  super *attrs.values_at(*self.class.members)
end
persist(score_card) click to toggle source
# File lib/score_card.rb, line 40
def self.persist(score_card)
  ->(placement, value) {
    old_values = score_card.to_hash
    new_values = { placement => value }
    score_card = new(old_values.merge(new_values))
  }
end
placement_keys() click to toggle source
# File lib/score_card.rb, line 48
def self.placement_keys
  Yahtzee::SCORINGS - meta_keys
end
upper_keys() click to toggle source
# File lib/score_card.rb, line 28
def self.upper_keys
  [:aces, :twos, :threes, :fours, :fives, :sixes]
end

Public Instance Methods

to_hash() click to toggle source
# File lib/score_card.rb, line 22
def to_hash
  Yahtzee::SCORINGS.reduce({}) do |hash, attr|
    hash.merge(attr => send(attr))
  end
end