Method: Card#initialize

Defined in:
lib/hand_rank/test.rb

#initialize(value:, suit:) ⇒ Card

Returns a new instance of Card.

Raises:



118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
# File 'lib/hand_rank/test.rb', line 118

def initialize( value:, suit: )
  value = normalize_value( value )
  raise ValueError unless value.instance_of? Fixnum
  raise ValueError unless (1..14).cover? value

  suit = normalize_suit( suit )
  raise SuitError unless SUIT_NAMES.keys.include? suit

  value = 0 if suit == JOKER

  @value = value.to_i
  @suit = suit

  @s = "#{ VALUES[ value ] }#{ suit }"

  @sym = CARDS[ suit ][ value ]

  parts = [ VALUE_NAMES[ value ], SUIT_NAMES[ suit ]]
  @str = parts.compact.join( ' of ' ).strip

  @abs = ABSOLUTE_VALUE[ suit ][ value ]
  
  self.freeze
end