diff --git a/poker_ex/lib/poker_ex/card.ex b/poker_ex/lib/poker_ex/card.ex index 1481071..e8daa3f 100644 --- a/poker_ex/lib/poker_ex/card.ex +++ b/poker_ex/lib/poker_ex/card.ex @@ -114,13 +114,14 @@ defmodule PokerEx.Card do def from_integers(suit, rank) do suit = Enum.at(@valid_suits, suit) - {:ok, case rank do - n when n >= 2 and n <= 10 -> %Card{suit: suit, rank: n} - 0x1 -> %Card{suit: suit, rank: :ace} - 0xB -> %Card{suit: suit, rank: :jack} - 0xD -> %Card{suit: suit, rank: :queen} - 0xE -> %Card{suit: suit, rank: :king} - end} + {:ok, + case rank do + n when n >= 2 and n <= 10 -> %Card{suit: suit, rank: n} + 0x1 -> %Card{suit: suit, rank: :ace} + 0xB -> %Card{suit: suit, rank: :jack} + 0xD -> %Card{suit: suit, rank: :queen} + 0xE -> %Card{suit: suit, rank: :king} + end} end @doc ~S""" @@ -169,23 +170,26 @@ defmodule PokerEx.Card do """ @spec sigil_p(atom() | String.t(), [char()]) :: Card.t() def sigil_p(<>, []) do - suit = case suit do - ?S -> :spades - ?H -> :hearts - ?D -> :diamonds - ?C -> :clubs - end + suit = + case suit do + ?S -> :spades + ?H -> :hearts + ?D -> :diamonds + ?C -> :clubs + end + + rank = + case rank do + "A" -> :ace + "K" -> :king + "Q" -> :queen + "J" -> :jack + n -> String.to_integer(n) + end - rank = case rank do - "A" -> :ace - "K" -> :king - "Q" -> :queen - "J" -> :jack - n -> String.to_integer(n) - end - card = %Card{suit: suit, rank: rank} - if not valid? card do + + if not valid?(card) do raise "Invalid card!" end