goat 0.3.19 → 0.3.21

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.
@@ -3,6 +3,7 @@
3
3
  require 'rubygems'
4
4
  require 'eventmachine'
5
5
  require 'json'
6
+ require 'optparse'
6
7
  require 'thin'
7
8
  require 'rack'
8
9
 
@@ -141,6 +142,27 @@ module Goat
141
142
  end
142
143
  end
143
144
 
145
+ $host = '0.0.0.0'
146
+ $port = 8050
147
+
148
+ $statesrv_host = '127.0.0.1'
149
+ $statesrv_port = 8011
150
+
151
+ def usage
152
+ $stderr.puts <<-EOH
153
+ #{__FILE__} [-p port] [-H host] [-s statesrv_port] [-S statesrv_host]
154
+ EOH
155
+ end
156
+
157
+ OptionParser.new do |opts|
158
+ opts.on('-pMANDATORY', Integer) {|p| $port = r}
159
+ opts.on('-HMANDATORY', String) {|h| $host = h}
160
+ opts.on('-SMANDATORY', String) {|h| $statesrv_host = h}
161
+ opts.on('-sMANDATORY', Integer) {|p| $statesrv_port = p}
162
+ opts.on('-v') {} # suppress optparse wanting to use -v as version
163
+ opts.on('-h') {usage; exit 1}
164
+ end.parse!(ARGV)
165
+
144
166
  app = Rack::Builder.app do |builder|
145
167
  use Rack::CommonLogger
146
168
  use Rack::ShowExceptions
@@ -149,6 +171,6 @@ end
149
171
 
150
172
  Goat.announce_launch('channel-srv')
151
173
  EM.run do
152
- Goat::ChannelSrv::ChannelStateConnection.connect
153
- Rack::Handler::Thin.run(app, :Port => (ARGV.first ? ARGV.first.to_i : 8050))
174
+ Goat::ChannelSrv::ChannelStateConnection.connect($statesrv_host, $statesrv_port)
175
+ Rack::Handler::Thin.run(app, :Host => $host, :Port => $port)
154
176
  end
@@ -344,7 +344,7 @@ module Goat
344
344
 
345
345
  def run
346
346
  @registry.connected_pages.each do |pgid|
347
- if @registry.last_connected_delta(pgid) > 300
347
+ if @registry.last_connected_delta(pgid) > (60 * 60)
348
348
  Goat.logd "Deleting page #{pgid}"
349
349
  @registry.delete_page(pgid)
350
350
  end
@@ -401,6 +401,12 @@ end
401
401
  $host = '127.0.0.1'
402
402
  $port = 8011
403
403
 
404
+ def usage
405
+ $stderr.puts <<-EOH
406
+ #{__FILE__} [-p port] [-H host]
407
+ EOH
408
+ end
409
+
404
410
  OptionParser.new do |opts|
405
411
  # this is the second jankiest optparser I've ever used
406
412
  opts.on('-pMANDATORY', Integer) {|r| $port = r}
@@ -1,6 +1,6 @@
1
1
  spec = Gem::Specification.new do |s|
2
2
  s.name = 'goat'
3
- s.version = '0.3.19'
3
+ s.version = '0.3.21'
4
4
  s.summary = 'Pre-release beta version of Goat'
5
5
  s.author = 'Patrick Collison'
6
6
  s.email = 'patrick@collison.ie'
@@ -2,7 +2,8 @@ module Goat
2
2
  module StateSrvClient
3
3
  def self.configure(opts={})
4
4
  # TODO implement fully
5
- EM.next_tick { StateSrvConnection.connect }
5
+ EM.next_tick { StateSrvConnection.connect(opts[:host] || '127.0.0.1',
6
+ opts[:port] || 8011) }
6
7
  end
7
8
 
8
9
  def self.send_message(type, m, sync=false)
@@ -46,12 +47,17 @@ module Goat
46
47
  def self.connection=(c); @@connection = c; end
47
48
  def self.connected?; @@connection != nil; end
48
49
 
49
- def self.connect(host='127.0.0.1', port=8011, &dlg)
50
+ def self.connect(host, port, &dlg)
50
51
  @host = host
51
52
  @port = port
52
53
  EM.connect(host, port, self)
53
54
  end
54
55
 
56
+ def self.reconnect
57
+ raise 'Reconnect called before connection made' if @host.nil? || @port.nil?
58
+ self.connect(@host, @port)
59
+ end
60
+
55
61
  def self.send_message_sync(msg)
56
62
  s = TCPSocket.open(@host, @port)
57
63
  s.write(msg.to_json + "\n")
@@ -113,7 +119,7 @@ module Goat
113
119
  end
114
120
 
115
121
  StateSrvConnection.connection = nil
116
- EM.add_timer(5) { self.class.connect }
122
+ EM.add_timer(5) { self.class.reconnect }
117
123
  end
118
124
  end
119
125
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: goat
3
3
  version: !ruby/object:Gem::Version
4
- hash: 53
4
+ hash: 57
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 3
9
- - 19
10
- version: 0.3.19
9
+ - 21
10
+ version: 0.3.21
11
11
  platform: ruby
12
12
  authors:
13
13
  - Patrick Collison
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2010-12-06 00:00:00 +00:00
18
+ date: 2010-12-08 00:00:00 +00:00
19
19
  default_executable:
20
20
  dependencies: []
21
21