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