class Alucard::Card
Constants
- RANKS
- RANK_NAMES
- SUITS
- SUIT_NAMES
Attributes
rank[R]
suit[R]
Public Class Methods
new(spec)
click to toggle source
# File lib/alucard/card.rb, line 10 def initialize spec case spec when Fixnum @rank, @suit = spec % 13, spec / 13 when /([#{RANKS}])([#{SUITS}])/ @rank, @suit = RANKS.index($1), SUITS.index($2) when /(\w+) of (\w+)/ r, s = $1.capitalize, $2.capitalize raise ArgumentError, "Not a rank name: '#{r}'" unless RANK_NAMES.include? r raise ArgumentError, "Not a suit name: '#{s}'" unless SUIT_NAMES.include? s @rank, @suit = RANK_NAMES.index(r), SUIT_NAMES.index(s) else raise ArgumentError, "Bad card spec: '#{spec}'" end end
Public Instance Methods
to_s()
click to toggle source
# File lib/alucard/card.rb, line 28 def to_s RANKS[@rank] + SUITS[@suit] end