acpc_dealer 2.4.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (90) hide show
  1. checksums.yaml +4 -4
  2. data/Brickfile +6 -0
  3. data/README.md +7 -6
  4. data/Rakefile +30 -14
  5. data/acpc_dealer.gemspec +2 -1
  6. data/bin/acpc_dealer +4 -0
  7. data/ext/hand_evaluator/extconf.rb +10 -0
  8. data/lib/acpc_dealer/version.rb +1 -1
  9. data/lib/hand_evaluator.bundle +0 -0
  10. data/spec/dealer_runner_spec.rb +76 -72
  11. metadata +19 -82
  12. data/vendor/project_acpc_server/LICENCE +0 -23
  13. data/vendor/project_acpc_server/Makefile +0 -35
  14. data/vendor/project_acpc_server/README +0 -113
  15. data/vendor/project_acpc_server/README.submission +0 -42
  16. data/vendor/project_acpc_server/acpc_play_match.pl +0 -101
  17. data/vendor/project_acpc_server/bm_run_matches.c +0 -238
  18. data/vendor/project_acpc_server/bm_server.c +0 -1604
  19. data/vendor/project_acpc_server/bm_server.config +0 -78
  20. data/vendor/project_acpc_server/bm_widget.c +0 -230
  21. data/vendor/project_acpc_server/dealer.c +0 -1293
  22. data/vendor/project_acpc_server/evalHandTables +0 -4269
  23. data/vendor/project_acpc_server/example_player.c +0 -204
  24. data/vendor/project_acpc_server/example_player.limit.2p.sh +0 -3
  25. data/vendor/project_acpc_server/example_player.limit.3p.sh +0 -3
  26. data/vendor/project_acpc_server/example_player.nolimit.2p.sh +0 -3
  27. data/vendor/project_acpc_server/example_player.nolimit.3p.sh +0 -3
  28. data/vendor/project_acpc_server/game.c +0 -1792
  29. data/vendor/project_acpc_server/game.h +0 -253
  30. data/vendor/project_acpc_server/holdem.limit.2p.reverse_blinds.game +0 -13
  31. data/vendor/project_acpc_server/holdem.limit.3p.game +0 -13
  32. data/vendor/project_acpc_server/holdem.nolimit.2p.reverse_blinds.game +0 -12
  33. data/vendor/project_acpc_server/holdem.nolimit.3p.game +0 -12
  34. data/vendor/project_acpc_server/kuhn.limit.3p.game +0 -14
  35. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player.sf1.sh +0 -3
  36. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player.sf2.sh +0 -3
  37. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player.sf3.sh +0 -3
  38. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/LICENCE +0 -23
  39. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/Makefile +0 -127
  40. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/README.md +0 -35
  41. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/src/CExceptionConfig.h +0 -12
  42. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/src/dealer_connection.c +0 -49
  43. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/src/dealer_connection.h +0 -22
  44. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/src/kuhn_3p_equilibrium_player.c +0 -483
  45. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/src/kuhn_3p_equilibrium_player.h +0 -108
  46. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/src/main.c +0 -84
  47. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/src/player_config.c +0 -253
  48. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/src/player_config.h +0 -21
  49. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/test/support/test_helper.c +0 -45
  50. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/test/support/test_helper.h +0 -27
  51. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/test/test_kuhn_3p_equilibrium_player.c +0 -698
  52. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/test/test_kuhn_3p_equilibrium_player_sub_family_1.c +0 -324
  53. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/test/test_kuhn_3p_equilibrium_player_sub_family_2.c +0 -262
  54. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/test/test_kuhn_3p_equilibrium_player_sub_family_3.c +0 -177
  55. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/cexception/docs/license.txt +0 -30
  56. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/cexception/docs/readme.txt +0 -242
  57. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/cexception/lib/CException.c +0 -43
  58. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/cexception/lib/CException.h +0 -86
  59. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/cexception/release/build.info +0 -2
  60. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/cexception/release/version.info +0 -2
  61. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/History.md +0 -27
  62. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/Makefile +0 -8
  63. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/Readme.md +0 -103
  64. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/package.json +0 -9
  65. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/src/commander.c +0 -250
  66. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/src/commander.h +0 -88
  67. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/test.c +0 -34
  68. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/auto/colour_prompt.rb +0 -94
  69. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/auto/colour_reporter.rb +0 -39
  70. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/auto/generate_config.yml +0 -36
  71. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/auto/generate_module.rb +0 -202
  72. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/auto/generate_test_runner.rb +0 -316
  73. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/auto/test_file_filter.rb +0 -23
  74. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/auto/unity_test_summary.rb +0 -139
  75. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/docs/Unity Summary.txt +0 -216
  76. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/docs/license.txt +0 -31
  77. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/release/build.info +0 -2
  78. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/release/version.info +0 -2
  79. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/src/unity.c +0 -1146
  80. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/src/unity.h +0 -245
  81. data/vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/src/unity_internals.h +0 -546
  82. data/vendor/project_acpc_server/net.c +0 -218
  83. data/vendor/project_acpc_server/net.h +0 -62
  84. data/vendor/project_acpc_server/play_match.pl +0 -99
  85. data/vendor/project_acpc_server/protocol.md +0 -239
  86. data/vendor/project_acpc_server/protocol.odt +0 -0
  87. data/vendor/project_acpc_server/protocol.pdf +0 -0
  88. data/vendor/project_acpc_server/rng.c +0 -139
  89. data/vendor/project_acpc_server/rng.h +0 -63
  90. data/vendor/project_acpc_server/validate_submission.pl +0 -546
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c4fa53f651257274bf2aef2413cce48c12293cc2
4
- data.tar.gz: df26215d5c964c16c787474f3e3a903979eabec0
3
+ metadata.gz: 542b5073d045209f50bb901d42889333d11cf2c6
4
+ data.tar.gz: d2d0ca0919f50b6a8c74e94e45ce3d3785375a5a
5
5
  SHA512:
6
- metadata.gz: b3d5cf620ff3c03cd4e1fcf9c881866288eeae0e2020dbe7a5d5ad16e8140d840e2f200f26d20a838ef0c6ef5db9613bd0da81741a376a87fe76c6136a0603c2
7
- data.tar.gz: f315138fc37434e1941dab2c8c0adf237e7b31fa12f25ceecfbea45960a3b7220153f59509a2b9c609dcf22f7aded0a4543cf58893a27b33d0f8d9443f3cfec8
6
+ metadata.gz: 02b2d87deefe40a81943b2294f1d8782fc90ebc22c1119653f3257aa680ce784037e860f0c7b55a96af47c10dd83745047c14b5bea4680e428215c97e282fbb2
7
+ data.tar.gz: 905ddacae6985df06de5155353b6bb6c2b995a60583830158106318cf39f6fd255f79a88680cd309fb08b7afbbf1c8a6f38d2640be54305622f47aba21a71d28
data/Brickfile ADDED
@@ -0,0 +1,6 @@
1
+ -
2
+ name: project_acpc_server
3
+ version: 41
4
+ location:
5
+ method: svn
6
+ url: http://www.computerpokercompetition.org/repos/project_acpc_server/trunk/
data/README.md CHANGED
@@ -1,6 +1,8 @@
1
1
  ACPC Dealer
2
2
  ============
3
3
 
4
+ [![Build Status](https://travis-ci.org/dmorrill10/acpc_dealer.svg?branch=master)](https://travis-ci.org/dmorrill10/acpc_dealer)
5
+
4
6
  The [Annual Computer Poker Competition Dealer][ACPC Dealer GitHub] gem wraps the [<em>ACPC Dealer Server</em>][ACPC competition server] in a handy gem with a convenient runner class, and a script for compiling and running the dealer and example players.
5
7
 
6
8
  ## Installation
@@ -17,15 +19,11 @@ Or install it yourself as:
17
19
 
18
20
  $ gem install acpc_dealer
19
21
 
20
- Then run (may need to restart your terminal first):
21
-
22
- $ acpc_dealer --compile
23
- to compile the ACPC Dealer and example players.
24
22
 
25
23
  ## Usage
26
24
 
27
25
  Run
28
-
26
+
29
27
  $ acpc_dealer -h
30
28
  to see a list of commands available in the command line interface.
31
29
 
@@ -45,9 +43,12 @@ See the [issue tracker](https://github.com/dmorrill10/acpc_dealer/issues) for cu
45
43
  4. Push to the branch (`git push origin my-new-feature`)
46
44
  5. Create new Pull Request
47
45
 
46
+ Please test your changes, otherwise I may not be able to find the time to
47
+ incorporate them into this project.
48
+
48
49
  Copyright
49
50
  ---------
50
- Copyright &copy; 2012 by the Computer Poker Research Group, University of Alberta. See [LICENSE](LICENSE.md) for details.
51
+ Copyright &copy; 2012-2017 by the Computer Poker Research Group, University of Alberta. See [LICENSE](LICENSE.md) for details.
51
52
 
52
53
 
53
54
  <!---
data/Rakefile CHANGED
@@ -8,15 +8,19 @@ require 'rubygems/package_task'
8
8
 
9
9
  require File.expand_path('../lib/acpc_dealer/version', __FILE__)
10
10
 
11
- desc 'Build gem'
12
- task :default => [:test]
11
+ task :default => :test
13
12
 
14
- task :compile => ['dealer:clean', 'dealer:compile']
13
+ desc 'Compile hand_evaluator and dealer'
14
+ task :compile => ['compile:hand_evaluator', 'compile:dealer']
15
15
 
16
+ desc 'Run tests'
16
17
  task :test => :compile
17
18
 
18
19
  task :build => :clean
19
20
 
21
+ desc 'Remove compiled products'
22
+ task :clean => ['clean:hand_evaluator', 'clean:dealer']
23
+
20
24
  Rake::TestTask.new do |t|
21
25
  t.libs << "lib" << 'spec/support'
22
26
  t.test_files = FileList['spec/**/*_spec.rb']
@@ -28,25 +32,37 @@ def gemspec
28
32
  @clean_gemspec ||= eval(File.read(File.expand_path('../acpc_dealer.gemspec', __FILE__)))
29
33
  end
30
34
 
31
- Gem::PackageTask.new(gemspec) { |pkg| }
35
+ Gem::PackageTask.new(gemspec)
32
36
  Rake::ExtensionTask.new('hand_evaluator', gemspec)
33
37
 
34
- task :clean => 'dealer:clean' do
35
- sh "rm -f lib/hand_evaluator.so"
36
- end
37
-
38
- namespace :dealer do
38
+ namespace :compile do
39
39
  desc 'Compile ACPC dealer'
40
- task :compile do
40
+ task :dealer do
41
41
  Dir.chdir(File.expand_path('../vendor/project_acpc_server', __FILE__)) do
42
42
  sh "make"
43
43
  end
44
44
  end
45
+ end
46
+
47
+ namespace :clean do
48
+ desc 'Clean hand_evaluator'
49
+ task :hand_evaluator do
50
+ Dir.chdir(File.expand_path('../ext/hand_evaluator', __FILE__)) do
51
+ begin
52
+ sh 'make clean'
53
+ rescue
54
+ end
55
+ end
56
+ sh "rm -f #{File.expand_path('../lib/hand_evaluator.so', __FILE__)}"
57
+ end
45
58
 
46
59
  desc 'Clean ACPC dealer'
47
- task :clean do
48
- Dir.chdir(File.expand_path('../vendor/project_acpc_server', __FILE__)) do
49
- sh "make clean"
60
+ task :dealer do
61
+ begin
62
+ Dir.chdir(File.expand_path('../vendor/project_acpc_server', __FILE__)) do
63
+ sh "make clean"
64
+ end
65
+ rescue Errno::ENOENT
50
66
  end
51
67
  end
52
- end
68
+ end
data/acpc_dealer.gemspec CHANGED
@@ -15,6 +15,7 @@ Gem::Specification.new do |gem|
15
15
  gem.add_dependency 'clive', '~> 1.2'
16
16
  gem.add_dependency 'process_runner', '~> 0.0'
17
17
  gem.add_dependency 'rake-compiler', '~> 0.8'
18
+ gem.add_dependency 'brick_and_mortar'
18
19
 
19
20
  gem.add_development_dependency 'minitest', '~> 5.0'
20
21
  gem.add_development_dependency 'mocha', '~> 0.13'
@@ -22,7 +23,7 @@ Gem::Specification.new do |gem|
22
23
  gem.add_development_dependency 'simplecov', '~> 0.7'
23
24
 
24
25
  gem.files = Dir.glob("lib/**/*") + Dir.glob("ext/**/*") + Dir.glob('*.gemspec') +
25
- %w(Rakefile README.md) + Dir.glob('spec/**/*') + Dir.glob("vendor/**/*")
26
+ %w(Rakefile README.md Brickfile) + Dir.glob('spec/**/*')
26
27
  gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
27
28
  gem.extensions = Dir.glob("ext/**/extconf.rb")
28
29
  gem.require_paths = ["lib"]
data/bin/acpc_dealer CHANGED
@@ -31,6 +31,10 @@ class AcpcDealerCli < Clive
31
31
  game_def
32
32
  end
33
33
 
34
+ opt :v, :version, "Display version" do
35
+ puts AcpcDealer::VERSION
36
+ end
37
+
34
38
  command :compile, 'Compiles the ACPC Dealer program' do
35
39
  opt :c, :clean, 'Do a clean and full recompile' do
36
40
  print 'Cleaning...'
@@ -2,4 +2,14 @@
2
2
  #Run 'ruby -r mkmf extconf.rb' to generate a Makefile
3
3
 
4
4
  require 'mkmf'
5
+ root_dir = File.expand_path('../../../', __FILE__)
6
+ Dir.chdir(root_dir) do
7
+ command = "mortar --store #{File.join(root_dir, '.bricks')}"
8
+ puts "Getting Bricks (non-gem dependencies): `#{command}`"
9
+ system command
10
+
11
+ command = 'rake compile:dealer'
12
+ puts "Compiling project_acpc_server: `#{command}`"
13
+ system command
14
+ end
5
15
  create_makefile("hand_evaluator")
@@ -1,3 +1,3 @@
1
1
  module AcpcDealer
2
- VERSION = "2.4.1"
2
+ VERSION = "3.0.0"
3
3
  end
Binary file
@@ -1,5 +1,5 @@
1
1
  require_relative 'support/spec_helper'
2
-
2
+ require 'timeout'
3
3
  require 'socket'
4
4
  require 'tmpdir'
5
5
 
@@ -8,13 +8,35 @@ require_relative '../lib/acpc_dealer/dealer_runner'
8
8
  include AcpcDealer
9
9
 
10
10
  describe DealerRunner do
11
- before do
12
- reset_state!
11
+ let(:various_numbers_of_players) { [2, 3] }
12
+
13
+ def cleanup(pid)
14
+ Process.kill 'KILL', pid
15
+ begin
16
+ Timeout::timeout(3) do
17
+ Process.getpgid(pid)
18
+ sleep 0.2
19
+ end
20
+ rescue Errno::ESRCH
21
+ else
22
+ ->() { Process.getpgid(pid) }.must_raise Errno::ESRCH
23
+ end
24
+ end
25
+
26
+ def check_process_exists(pid)
27
+ Process.getpgid(pid)
28
+ rescue Errno::ESRCH => e
29
+ flunk "Dealer with pid #{pid} does not exist: #{e.message}"
13
30
  end
14
31
 
15
- def reset_state!
16
- @pid = nil
17
- @port_numbers = nil
32
+ def check_ports_are_in_use(port_numbers)
33
+ port_numbers.each do |port|
34
+ begin
35
+ Socket.tcp('localhost', port, connect_timeout: 1)
36
+ rescue
37
+ flunk "No dealer listening on port #{port}"
38
+ end
39
+ end
18
40
  end
19
41
 
20
42
  describe '::ports_for_players' do
@@ -22,7 +44,7 @@ describe DealerRunner do
22
44
  various_numbers_of_players.each do |number_of_players|
23
45
  DealerRunner.ports_for_players(number_of_players).each do |port|
24
46
  begin
25
- TCPServer.open('localhost', port) { }
47
+ TCPServer.open('localhost', port) {}
26
48
  rescue Errno::EADDRINUSE => e
27
49
  flunk "Port #{port} is not open: #{e.message}"
28
50
  end
@@ -31,94 +53,76 @@ describe DealerRunner do
31
53
  end
32
54
  end
33
55
 
56
+ def in_tmp_dir_with_process_cleanup
57
+ Dir.mktmpdir do |temp_log_directory|
58
+ cleanup(yield(temp_log_directory))
59
+ end
60
+ end
61
+
34
62
  describe '::start' do
63
+ let(:options) { ['--start_timeout 1000'].join(' ') }
64
+ let(:match_name) { 'test_match' }
65
+ let(:hands) { 10 }
66
+ let(:random_seed) { 0 }
67
+
68
+ def player_names(number_of_players)
69
+ number_of_players.times.inject([]) do |names, i|
70
+ names << "p#{i}"
71
+ end.join(' ')
72
+ end
73
+
74
+ def game_def(number_of_players)
75
+ GAME_DEFINITION_FILE_PATHS[number_of_players][:limit]
76
+ end
77
+
35
78
  it 'starts a dealer asynchronously that can clean up after itself and returns both its PID and the ports that each player can use to connect' do
36
79
  various_numbers_of_players.each do |number_of_players|
37
- Dir.mktmpdir do |temp_log_directory|
38
- result = DealerRunner.start(
80
+ in_tmp_dir_with_process_cleanup do |temp_log_directory|
81
+ patient = DealerRunner.start(
39
82
  {
40
- match_name: 'test_match',
41
- game_def_file_name: GAME_DEFINITION_FILE_PATHS[number_of_players][:limit],
42
- hands: 10,
43
- random_seed: 0,
44
- player_names: number_of_players.times.inject([]) do |names, i|
45
- names << "p#{i}"
46
- end.join(' '),
47
- options: ['--start_timeout 1000'].join(' ')
83
+ match_name: match_name,
84
+ game_def_file_name: game_def(number_of_players),
85
+ hands: hands,
86
+ random_seed: random_seed,
87
+ player_names: player_names(number_of_players),
88
+ options: options
48
89
  },
49
90
  temp_log_directory
50
91
  )
51
92
 
52
- @pid = result[:pid]
53
- @port_numbers = result[:port_numbers]
54
-
55
- result[:log_directory].must_equal temp_log_directory
56
-
57
- check_ports_are_in_use
58
-
59
- check_process_exists
60
-
61
- cleanup
62
- reset_state!
93
+ patient[:log_directory].must_equal temp_log_directory
94
+ check_process_exists patient[:pid]
95
+ check_ports_are_in_use patient[:port_numbers]
96
+ patient[:pid]
63
97
  end
64
98
  end
65
99
  end
66
100
 
67
101
  it 'starts a dealer listening on specific ports' do
68
102
  various_numbers_of_players.each do |number_of_players|
69
- Dir.mktmpdir do |temp_log_directory|
70
- port_numbers = [10000, 20000]
71
- result = DealerRunner.start(
103
+ in_tmp_dir_with_process_cleanup do |temp_log_directory|
104
+ port_numbers = [10_000, 20_000]
105
+ patient = DealerRunner.start(
72
106
  {
73
- match_name: 'test_match',
74
- game_def_file_name: GAME_DEFINITION_FILE_PATHS[number_of_players][:limit],
75
- hands: 10,
76
- random_seed: 0,
77
- player_names: number_of_players.times.inject([]) do |names, i|
78
- names << "p#{i}"
79
- end.join(' '),
80
- options: ['--start_timeout 1000'].join(' ')
107
+ match_name: match_name,
108
+ game_def_file_name: game_def(number_of_players),
109
+ hands: hands,
110
+ random_seed: random_seed,
111
+ player_names: player_names(number_of_players),
112
+ options: options
81
113
  },
82
114
  temp_log_directory,
83
115
  port_numbers
84
116
  )
85
117
 
86
- @pid = result[:pid]
87
- @port_numbers = result[:port_numbers]
88
- (@port_numbers.map { |n| n.to_i })[0..port_numbers.length-1].must_equal port_numbers
118
+ patient[:port_numbers].map(&:to_i)[0..port_numbers.length - 1].must_equal port_numbers
89
119
 
90
- result[:log_directory].must_equal temp_log_directory
91
-
92
- check_ports_are_in_use
93
-
94
- check_process_exists
95
-
96
- cleanup
97
- reset_state!
120
+ patient[:log_directory].must_equal temp_log_directory
121
+ check_process_exists patient[:pid]
122
+ check_ports_are_in_use patient[:port_numbers]
123
+ patient[:pid]
98
124
  end
99
125
  end
100
126
  end
101
127
  end
102
-
103
- def cleanup
104
- Process.kill 'KILL', @pid
105
- sleep 1
106
-
107
- ->() { Process.getpgid(@pid) }.must_raise Errno::ESRCH
108
- end
109
- def check_process_exists
110
- begin
111
- Process.getpgid(@pid)
112
- rescue Errno::ESRCH => e
113
- flunk "Dealer with pid #{@pid} does not exist: #{e.message}"
114
- end
115
- end
116
- def check_ports_are_in_use
117
- @port_numbers.each do |port|
118
- ->() do
119
- TCPServer.open('localhost', port)
120
- end.must_raise Errno::EADDRINUSE
121
- end
122
- end
123
- def various_numbers_of_players() [2, 3] end
124
128
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acpc_dealer
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.4.1
4
+ version: 3.0.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: 2015-09-15 00:00:00.000000000 Z
11
+ date: 2017-01-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: clive
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.8'
55
+ - !ruby/object:Gem::Dependency
56
+ name: brick_and_mortar
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: minitest
57
71
  requirement: !ruby/object:Gem::Requirement
@@ -117,6 +131,7 @@ extensions:
117
131
  - ext/hand_evaluator/extconf.rb
118
132
  extra_rdoc_files: []
119
133
  files:
134
+ - Brickfile
120
135
  - README.md
121
136
  - Rakefile
122
137
  - acpc_dealer.gemspec
@@ -126,88 +141,10 @@ files:
126
141
  - lib/acpc_dealer.rb
127
142
  - lib/acpc_dealer/dealer_runner.rb
128
143
  - lib/acpc_dealer/version.rb
144
+ - lib/hand_evaluator.bundle
129
145
  - spec/connection_information_spec.rb
130
146
  - spec/dealer_runner_spec.rb
131
147
  - spec/support/spec_helper.rb
132
- - vendor/project_acpc_server/LICENCE
133
- - vendor/project_acpc_server/Makefile
134
- - vendor/project_acpc_server/README
135
- - vendor/project_acpc_server/README.submission
136
- - vendor/project_acpc_server/acpc_play_match.pl
137
- - vendor/project_acpc_server/bm_run_matches.c
138
- - vendor/project_acpc_server/bm_server.c
139
- - vendor/project_acpc_server/bm_server.config
140
- - vendor/project_acpc_server/bm_widget.c
141
- - vendor/project_acpc_server/dealer.c
142
- - vendor/project_acpc_server/evalHandTables
143
- - vendor/project_acpc_server/example_player.c
144
- - vendor/project_acpc_server/example_player.limit.2p.sh
145
- - vendor/project_acpc_server/example_player.limit.3p.sh
146
- - vendor/project_acpc_server/example_player.nolimit.2p.sh
147
- - vendor/project_acpc_server/example_player.nolimit.3p.sh
148
- - vendor/project_acpc_server/game.c
149
- - vendor/project_acpc_server/game.h
150
- - vendor/project_acpc_server/holdem.limit.2p.reverse_blinds.game
151
- - vendor/project_acpc_server/holdem.limit.3p.game
152
- - vendor/project_acpc_server/holdem.nolimit.2p.reverse_blinds.game
153
- - vendor/project_acpc_server/holdem.nolimit.3p.game
154
- - vendor/project_acpc_server/kuhn.limit.3p.game
155
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player.sf1.sh
156
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player.sf2.sh
157
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player.sf3.sh
158
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/LICENCE
159
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/Makefile
160
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/README.md
161
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/src/CExceptionConfig.h
162
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/src/dealer_connection.c
163
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/src/dealer_connection.h
164
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/src/kuhn_3p_equilibrium_player.c
165
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/src/kuhn_3p_equilibrium_player.h
166
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/src/main.c
167
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/src/player_config.c
168
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/src/player_config.h
169
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/test/support/test_helper.c
170
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/test/support/test_helper.h
171
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/test/test_kuhn_3p_equilibrium_player.c
172
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/test/test_kuhn_3p_equilibrium_player_sub_family_1.c
173
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/test/test_kuhn_3p_equilibrium_player_sub_family_2.c
174
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/test/test_kuhn_3p_equilibrium_player_sub_family_3.c
175
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/cexception/docs/license.txt
176
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/cexception/docs/readme.txt
177
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/cexception/lib/CException.c
178
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/cexception/lib/CException.h
179
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/cexception/release/build.info
180
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/cexception/release/version.info
181
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/History.md
182
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/Makefile
183
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/Readme.md
184
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/package.json
185
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/src/commander.c
186
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/src/commander.h
187
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/commander.c/test.c
188
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/auto/colour_prompt.rb
189
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/auto/colour_reporter.rb
190
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/auto/generate_config.yml
191
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/auto/generate_module.rb
192
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/auto/generate_test_runner.rb
193
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/auto/test_file_filter.rb
194
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/auto/unity_test_summary.rb
195
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/docs/Unity Summary.txt
196
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/docs/license.txt
197
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/release/build.info
198
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/release/version.info
199
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/src/unity.c
200
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/src/unity.h
201
- - vendor/project_acpc_server/kuhn_3p_equilibrium_player/vendor/unity/src/unity_internals.h
202
- - vendor/project_acpc_server/net.c
203
- - vendor/project_acpc_server/net.h
204
- - vendor/project_acpc_server/play_match.pl
205
- - vendor/project_acpc_server/protocol.md
206
- - vendor/project_acpc_server/protocol.odt
207
- - vendor/project_acpc_server/protocol.pdf
208
- - vendor/project_acpc_server/rng.c
209
- - vendor/project_acpc_server/rng.h
210
- - vendor/project_acpc_server/validate_submission.pl
211
148
  homepage: https://github.com/dmorrill10/acpc_dealer
212
149
  licenses:
213
150
  - MIT
@@ -228,7 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
228
165
  version: '0'
229
166
  requirements: []
230
167
  rubyforge_project:
231
- rubygems_version: 2.2.2
168
+ rubygems_version: 2.5.1
232
169
  signing_key:
233
170
  specification_version: 4
234
171
  summary: Ruby interface to the Annual Computer Poker Competition's dealer program.