class Cardistry::Deck
Attributes
suits[R]
Public Class Methods
new()
click to toggle source
# File lib/cardistry/deck.rb, line 10 def initialize @cards = [] @suits = [] end
Public Instance Methods
[](index)
click to toggle source
# File lib/cardistry/deck.rb, line 34 def [] index @cards[index] || "Not found" end
each(&block)
click to toggle source
# File lib/cardistry/deck.rb, line 30 def each &block @cards.each &block end
info()
click to toggle source
# File lib/cardistry/deck.rb, line 42 def info info = <<~INFO cards: #{size} suits: #{@suits} INFO end
load(from_file)
click to toggle source
# File lib/cardistry/deck.rb, line 15 def load from_file data = File.read from_file JSON.parse(data, { symbolize_names: true }).each do |entry| rank = entry[:rank] suit = entry[:suit] ? entry[:suit].to_sym : nil kind = entry[:kind] ? entry[:kind].to_sym : nil name = entry[:name] card = Card.new( rank, suit, kind, name ) register_suit card.suit @cards << card end end
size()
click to toggle source
# File lib/cardistry/deck.rb, line 38 def size @cards.size end
Private Instance Methods
register_suit(suit)
click to toggle source
# File lib/cardistry/deck.rb, line 51 def register_suit suit @suits << suit unless @suits.include?(suit) or !suit end