Class: Lin::Parser
- Inherits:
-
Object
- Object
- Lin::Parser
- Defined in:
- lib/lin/parser.rb
Instance Attribute Summary collapse
-
#source ⇒ Object
readonly
Returns the value of attribute source.
Instance Method Summary collapse
-
#bids ⇒ Array<String>
Returns bids.
-
#board_name ⇒ String
Returns board name.
-
#cards ⇒ Array<String>
Returns played cards.
-
#claim ⇒ Integer?
Returns claimed number of tricks.
-
#dealer ⇒ "N", ...
Returns dealer.
-
#e ⇒ Array<String>
Returns cards for E hand.
-
#e_name ⇒ String
Returns E player name.
-
#initialize(source) ⇒ Parser
constructor
A new instance of Parser.
-
#n ⇒ Array<String>
Returns cards for N hand.
-
#n_name ⇒ String
Returns N player name.
-
#s ⇒ Array<String>
Returns cards for S hand.
-
#s_name ⇒ String
Returns S player name.
-
#vulnerable ⇒ "NONE" "NS", ...
Returns vulnerable.
-
#w ⇒ Array<String>
Returns cards for W hand.
-
#w_name ⇒ String
Returns W player name.
Constructor Details
#initialize(source) ⇒ Parser
Returns a new instance of Parser.
7 8 9 |
# File 'lib/lin/parser.rb', line 7 def initialize(source) @source = source end |
Instance Attribute Details
#source ⇒ Object (readonly)
Returns the value of attribute source.
5 6 7 |
# File 'lib/lin/parser.rb', line 5 def source @source end |
Instance Method Details
#bids ⇒ Array<String>
Returns bids
89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/lin/parser.rb', line 89 def bids @bids ||= parsed["mb"].map do |bid| case bid.upcase when "P" then "PASS" when "D" then "X" when "R" then "XX" when /\dN/ then bid[0] + "NT" else bid.upcase end end end |
#board_name ⇒ String
Returns board name
70 71 72 |
# File 'lib/lin/parser.rb', line 70 def board_name @board_name ||= parsed["ah"][0] end |
#cards ⇒ Array<String>
Returns played cards
105 106 107 |
# File 'lib/lin/parser.rb', line 105 def cards @cards ||= parsed["pc"] end |
#claim ⇒ Integer?
Returns claimed number of tricks
112 113 114 |
# File 'lib/lin/parser.rb', line 112 def claim @claim ||= parsed["mc"][0] && parsed["mc"][0].to_i end |
#dealer ⇒ "N", ...
Returns dealer
77 78 79 80 81 82 83 84 |
# File 'lib/lin/parser.rb', line 77 def dealer @dealer ||= case parsed["md"][0][0] when "1" then "S" when "2" then "W" when "3" then "N" when "4" then "E" end end |
#e ⇒ Array<String>
Returns cards for E hand
35 36 37 |
# File 'lib/lin/parser.rb', line 35 def e @e ||= deck - s - w - n end |
#e_name ⇒ String
Returns E player name
63 64 65 |
# File 'lib/lin/parser.rb', line 63 def e_name @e_name ||= players[3] end |
#n ⇒ Array<String>
Returns cards for N hand
28 29 30 |
# File 'lib/lin/parser.rb', line 28 def n @n ||= parse_hand(parsed["md"][0].split(",")[2]) end |
#n_name ⇒ String
Returns N player name
56 57 58 |
# File 'lib/lin/parser.rb', line 56 def n_name @n_name ||= players[2] end |
#s ⇒ Array<String>
Returns cards for S hand
14 15 16 |
# File 'lib/lin/parser.rb', line 14 def s @s ||= parse_hand(parsed["md"][0].split(",")[0][1..-1]) end |
#s_name ⇒ String
Returns S player name
42 43 44 |
# File 'lib/lin/parser.rb', line 42 def s_name @s_name ||= players[0] end |
#vulnerable ⇒ "NONE" "NS", ...
Returns vulnerable
119 120 121 122 123 124 125 126 127 |
# File 'lib/lin/parser.rb', line 119 def vulnerable @vulnerable ||= case parsed["sv"][0] when "n" then "NS" when "e" then "EW" when "b" then "BOTH" else "NONE" end end |
#w ⇒ Array<String>
Returns cards for W hand
21 22 23 |
# File 'lib/lin/parser.rb', line 21 def w @w ||= parse_hand(parsed["md"][0].split(",")[1]) end |
#w_name ⇒ String
Returns W player name
49 50 51 |
# File 'lib/lin/parser.rb', line 49 def w_name @w_name ||= players[1] end |