module Card::Mark
Card::Mark
provides class methods for Card
to translate all different kind of card identifiers to card objects.
Public Instance Methods
cardish(cardish)
click to toggle source
translates marks (and other inputs) into a Card
@param cardish [Card, Card::Name
, String, Symbol, Integer] @return Card
# File lib/card/mark.rb, line 9 def cardish cardish if cardish.is_a? Card cardish else fetch cardish, new: {} end end
id_or_name(parts)
click to toggle source
translates various inputs into either an id or a name. @param parts [Array<Symbol, Integer, String, Card::Name
, Card>] a mark or mark parts @return [Integer or Card::Name
]
# File lib/card/mark.rb, line 20 def id_or_name parts mark = parts.flatten mark = mark.first if mark.size <= 1 id_from_mark(mark) || Card::Name[mark] end
Private Instance Methods
id_from_mark(mark)
click to toggle source
# File lib/card/mark.rb, line 28 def id_from_mark mark case mark when Integer then mark when Symbol then Codename.id! mark when String then Name.id_from_string! mark when Card then mark.id end end