acpc_dealer 2.3.6 → 2.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: a8998af69ff11e4a86dfe55ecbf63e454aa8f5aa
4
- data.tar.gz: c8df506f42bca83ce2b3335255a141bfabe12610
3
+ metadata.gz: dea56490ccff82a20e8813b2d119c9259575dded
4
+ data.tar.gz: 5fcf82680db42c45104c62b7135eaba342dfcda5
5
5
  SHA512:
6
- metadata.gz: f8d0f9907fe8dd86b739068b00e856321e2325003ac63fd2cf914423058f08c6d843940656f6945769d1e07d7f832f4e831e217a0d2f1f7a8b43aae556176b6f
7
- data.tar.gz: 98c890a51115e2cfecf692975681ddd089ec7490c2800fb5aa642bf4375d6cba95a3a4567564a4240bf18db950348ea06c9ecfadb41914d87b4c6c8f671e2eec
6
+ metadata.gz: 2144d0a98e76951268b5d26ab45eae283166eeaf509dba3924e38097ab97a7afd82877b766323bf33bdce8b1db35e68389508a76e1a870e26f8efc8185d7be32
7
+ data.tar.gz: 40061dfbd06b1f45c45aeec2ac304ab0da3f3bab2be4d65d1e6792369d8a3157e7f414d186111777f0ce21deef591bcea2e7cb31ab8c303b099bb9678d6f629d
data/lib/acpc_dealer.rb CHANGED
@@ -2,6 +2,8 @@ require 'acpc_dealer/version'
2
2
  require 'hand_evaluator'
3
3
  require "acpc_dealer/dealer_runner"
4
4
  require 'date'
5
+ require 'socket'
6
+ require 'timeout'
5
7
 
6
8
  module AcpcDealer
7
9
  VENDOR_DIRECTORY = File.expand_path('../../vendor', __FILE__)
@@ -52,6 +54,36 @@ module AcpcDealer
52
54
  "#{players.join('-')}.#{game_def}.r#{seed}.#{date}"
53
55
  end
54
56
 
57
+ def self.dealer_running?(dealer_process_hash)
58
+ (
59
+ dealer_process_hash &&
60
+ dealer_process_hash[:pid] &&
61
+ dealer_process_hash[:pid].process_exists?
62
+ )
63
+ end
64
+
65
+ # Thanks to joast and Chris Rice
66
+ # (http://stackoverflow.com/questions/517219/ruby-see-if-a-port-is-open)
67
+ # for this (modified)
68
+ def self.port_available?(port, ip = 'localhost')
69
+ begin
70
+ Timeout::timeout(1) do
71
+ begin
72
+ s = TCPSocket.new(ip, port)
73
+ s.close
74
+ return false
75
+ rescue Errno::EHOSTUNREACH
76
+ return false
77
+ rescue Errno::ECONNREFUSED
78
+ return true
79
+ end
80
+ end
81
+ rescue Timeout::Error
82
+ end
83
+
84
+ return false
85
+ end
86
+
55
87
  private
56
88
 
57
89
  def self.date
@@ -1,3 +1,3 @@
1
1
  module AcpcDealer
2
- VERSION = "2.3.6"
2
+ VERSION = "2.4.0"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: acpc_dealer
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.3.6
4
+ version: 2.4.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dustin Morrill