acpc_poker_types 3.1.4 → 3.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: acd3efe1c31ae712c2c769a0de10d36b40672277
4
- data.tar.gz: 2f9673e419e021d57b57fa42bb72299e9046c5c3
3
+ metadata.gz: bfe40c1a733d3678c62f4de63c649864408ca8ff
4
+ data.tar.gz: 75758c743dcdac65039dd7b369dcfe0f15dd2f94
5
5
  SHA512:
6
- metadata.gz: db0529f86318817bb6903239eb93a2a584394d8fc4e66ed2e3ba0a09eb59b9ab8a3f43a13bea69251be8ea4d3436738b247a84bea380c0b1b3fcb7ed3c4bb4dd
7
- data.tar.gz: 0faa2361747d22c426f03b6c42e9bad27133f572d93fec1b9e15ac365c6c36484de4bdb3fd7e132021cae4ec9ec970b92d5856cf9fbb05ae415501b22541b313
6
+ metadata.gz: 840f979748a1d5bb9dff3ea26371f807835cb36a2179eee010929e786fa6fc16571a070c84a6ba0d8d3254f16f774447fa40520c3e75847c39705740a2c596bb
7
+ data.tar.gz: 5463e698ad55cf608f8f79400b89015c030868ea80afdfca645efefa1a1d88e90d4e9bd63ffefd5ca5cd818d1902c5c0dc26b1f9eb42d22fef363db7c8482609
@@ -41,6 +41,13 @@ module AcpcPokerTypes
41
41
 
42
42
  class << self; alias_method(:parse, :new) end
43
43
 
44
+ # Receives a match state string from the given +connection+.
45
+ # @param [#gets] connection The connection from which a match state string should be received.
46
+ # @return [MatchState] The match state string that was received from the +connection+ or +nil+ if none could be received.
47
+ def self.receive(connection)
48
+ AcpcPokerTypes::MatchState.parse connection.gets
49
+ end
50
+
44
51
  # Builds a match state string from its given component parts.
45
52
  #
46
53
  # @param [#to_s] position_relative_to_dealer The position relative to the dealer.
@@ -1,3 +1,3 @@
1
1
  module AcpcPokerTypes
2
- VERSION = '3.1.4'
2
+ VERSION = '3.2.0'
3
3
  end
@@ -14,7 +14,7 @@
14
14
  <img src="./assets/0.7.1/loading.gif" alt="loading"/>
15
15
  </div>
16
16
  <div id="wrapper" style="display:none;">
17
- <div class="timestamp">Generated <abbr class="timeago" title="2013-05-14T11:28:29-06:00">2013-05-14T11:28:29-06:00</abbr></div>
17
+ <div class="timestamp">Generated <abbr class="timeago" title="2013-05-16T14:10:19-06:00">2013-05-16T14:10:19-06:00</abbr></div>
18
18
  <ul class="group_tabs"></ul>
19
19
 
20
20
  <div id="content">
@@ -2,12 +2,15 @@
2
2
  # Spec helper (must include first to track code coverage with SimpleCov)
3
3
  require File.expand_path('../support/spec_helper', __FILE__)
4
4
 
5
+ require 'acpc_dealer'
6
+
5
7
  require "acpc_poker_types/match_state"
6
8
  require "acpc_poker_types/poker_action"
7
9
  require "acpc_poker_types/rank"
8
10
  require "acpc_poker_types/suit"
9
11
  require "acpc_poker_types/hand"
10
12
  require "acpc_poker_types/card"
13
+ require 'acpc_poker_types/acpc_dealer_data/poker_match_data'
11
14
 
12
15
  describe AcpcPokerTypes::MatchState do
13
16
  describe '#parse' do
@@ -213,6 +216,29 @@ describe AcpcPokerTypes::MatchState do
213
216
  end
214
217
  end
215
218
  end
219
+ describe "#receive_matchstate_string" do
220
+ it 'receives matchstate strings properly' do
221
+ @connection = mock 'Socket'
222
+ MatchLog.all.each do |log_description|
223
+ match = AcpcPokerTypes::AcpcDealerData::PokerMatchData.parse_files(
224
+ log_description.actions_file_path,
225
+ log_description.results_file_path,
226
+ log_description.player_names,
227
+ AcpcDealer::DEALER_DIRECTORY,
228
+ 20
229
+ )
230
+ match.for_every_seat! do |seat|
231
+ match.for_every_hand! do
232
+ match.for_every_turn! do
233
+ @connection.expects(:gets).returns(match.current_hand.current_match_state.to_s)
234
+
235
+ AcpcPokerTypes::MatchState.receive(@connection).must_equal match.current_hand.current_match_state
236
+ end
237
+ end
238
+ end
239
+ end
240
+ end
241
+ end
216
242
 
217
243
  def for_every_card
218
244
  AcpcPokerTypes::Rank::DOMAIN.map do |rank, rank_properties|
data/spec/player_spec.rb CHANGED
@@ -179,7 +179,7 @@ describe AcpcPokerTypes::Player do
179
179
  end
180
180
  it 'works properly over samples of data from the ACPC Dealer' do
181
181
  dealer_log_directory = File.expand_path('../support/dealer_logs', __FILE__)
182
- match_logs.each do |log_description|
182
+ MatchLog.all.each do |log_description|
183
183
  match = AcpcPokerTypes::AcpcDealerData::PokerMatchData.parse_files(
184
184
  "#{dealer_log_directory}/#{log_description.actions_file_name}",
185
185
  "#{dealer_log_directory}/#{log_description.results_file_name}",
@@ -260,44 +260,13 @@ describe AcpcPokerTypes::Player do
260
260
  end
261
261
  end
262
262
 
263
- class Array
264
- def reject_empty_elements
265
- reject do |elem|
266
- elem.empty?
263
+ class Array
264
+ def reject_empty_elements
265
+ reject do |elem|
266
+ elem.empty?
267
+ end
267
268
  end
268
269
  end
269
- end
270
-
271
- MatchLog = Struct.new(
272
- :results_file_name,
273
- :actions_file_name,
274
- :player_names
275
- )
276
-
277
- def match_logs
278
- [
279
- MatchLog.new(
280
- '2p.limit.h1000.r0.log',
281
- '2p.limit.h1000.r0.actions.log',
282
- ['p1', 'p2']
283
- ),
284
- MatchLog.new(
285
- '2p.nolimit.h1000.r0.log',
286
- '2p.nolimit.h1000.r0.actions.log',
287
- ['p1', 'p2']
288
- ),
289
- MatchLog.new(
290
- '3p.limit.h1000.r0.log',
291
- '3p.limit.h1000.r0.actions.log',
292
- ['p1', 'p2', 'p3']
293
- ),
294
- MatchLog.new(
295
- '3p.nolimit.h1000.r0.log',
296
- '3p.nolimit.h1000.r0.actions.log',
297
- ['p1', 'p2', 'p3']
298
- )
299
- ]
300
- end
301
270
 
302
271
  def various_actions
303
272
  various_amounts_to_put_in_pot do |amount|
@@ -2,7 +2,6 @@ require 'simplecov'
2
2
  SimpleCov.start
3
3
 
4
4
  require 'minitest/spec'
5
- require 'minitest/pride'
6
5
 
7
6
  begin
8
7
  require 'turn'
@@ -30,4 +29,50 @@ begin
30
29
  require 'pry-rescue/minitest'
31
30
  require 'mocha/setup'
32
31
  rescue LoadError
32
+ end
33
+
34
+ # Match log information in dealer_logs
35
+ class MatchLog
36
+ DEALER_LOG_DIRECTORY = File.expand_path('../dealer_logs', __FILE__)
37
+
38
+ attr_reader :results_file_name, :actions_file_name, :player_names, :dealer_log_directory
39
+
40
+ def self.all
41
+ [
42
+ MatchLog.new(
43
+ '2p.limit.h1000.r0.log',
44
+ '2p.limit.h1000.r0.actions.log',
45
+ ['p1', 'p2']
46
+ ),
47
+ MatchLog.new(
48
+ '2p.nolimit.h1000.r0.log',
49
+ '2p.nolimit.h1000.r0.actions.log',
50
+ ['p1', 'p2']
51
+ ),
52
+ MatchLog.new(
53
+ '3p.limit.h1000.r0.log',
54
+ '3p.limit.h1000.r0.actions.log',
55
+ ['p1', 'p2', 'p3']
56
+ ),
57
+ MatchLog.new(
58
+ '3p.nolimit.h1000.r0.log',
59
+ '3p.nolimit.h1000.r0.actions.log',
60
+ ['p1', 'p2', 'p3']
61
+ )
62
+ ]
63
+ end
64
+
65
+ def initialize(results_file_name, actions_file_name, player_names)
66
+ @results_file_name = results_file_name
67
+ @actions_file_name = actions_file_name
68
+ @player_names = player_names
69
+ end
70
+
71
+ def actions_file_path
72
+ "#{DEALER_LOG_DIRECTORY}/#{@actions_file_name}"
73
+ end
74
+
75
+ def results_file_path
76
+ "#{DEALER_LOG_DIRECTORY}/#{@results_file_name}"
77
+ end
33
78
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acpc_poker_types
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.4
4
+ version: 3.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dustin Morrill
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-05-14 00:00:00.000000000 Z
11
+ date: 2013-05-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: process_runner