class Shithead::Stack

Attributes

sets[R]

Public Class Methods

new() click to toggle source
# File lib/shithead/stack.rb, line 4
def initialize
  @sets = []
end

Public Instance Methods

add(card) click to toggle source
# File lib/shithead/stack.rb, line 8
def add(card)
  if empty? || top.value != card.value
    sets.unshift Shithead::Set.new([card])
  else
    top.add card
  end
end
cards() click to toggle source
# File lib/shithead/stack.rb, line 16
def cards
  sets.collect(&:cards).flatten
end
clearable?() click to toggle source
# File lib/shithead/stack.rb, line 20
def clearable?
  return false if empty?

  top.value == "10" || top.size >= 4
end
delete(card) click to toggle source
# File lib/shithead/stack.rb, line 26
def delete(card)
  sets.each { |set| set.delete card }
end
empty?() click to toggle source
# File lib/shithead/stack.rb, line 30
def empty?
  sets.empty?
end
release_to(stack) click to toggle source
# File lib/shithead/stack.rb, line 34
def release_to(stack)
  sets.each { |set| set.release_to stack }
  sets.clear
end
size() click to toggle source
# File lib/shithead/stack.rb, line 39
def size
  sets.sum &:size
end
to_s() click to toggle source
# File lib/shithead/stack.rb, line 47
def to_s
  sets.first && sets.first.to_s
end
top() click to toggle source
# File lib/shithead/stack.rb, line 43
def top
  sets.first
end