simplepubsub 1.1.2 → 1.1.3

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: b1645d664bb8d17df53546e410a8f3949dcafd45
4
- data.tar.gz: 873640bc3f729fe73680bf4e0e1d03f7c476e92d
3
+ metadata.gz: e4193fc0ed3384cdeb8ab00f6ec6977ec28e1b70
4
+ data.tar.gz: 0b0b38417f75b4179588093ca183a2d29cf414bb
5
5
  SHA512:
6
- metadata.gz: ddb62ee9595b7936bf9a5e16916c67800ee98f5800dee305c8eef39223ee4bf80b85acc59f3c5c66947ff6f319053a9c9858733eff6e5569507e89fbebb06286
7
- data.tar.gz: 77e342c3f03f92ef2cc2a7c717f245f6299b357d9a1f410b2d491fd8ffefe7ee91f253f46a1ac7d41eb5779f379d1d1810844a65976893316651b52ebea9fbdb
6
+ metadata.gz: cb424c06c857fa76c361f3345f5c1bc4cc311291746cabab853a5e4e57d3dcc2b23b87685cd857006ec9afd6232c8f8198d6c49d6d100a1ad05155b98219e507
7
+ data.tar.gz: a1709839802a3d0b8b3dba597a2b9ccf94e1b9a3ca4addb5af81a8df7a41eb38655755712ba4203fcecc7022c9b0a08ad99b594b33e83e31343f87749cf33510
checksums.yaml.gz.sig CHANGED
@@ -1,2 +1,4 @@
1
- �Yc��m8������^M ���T����L���=�I�^��74��^�� ����Dj�q
2
- 9�M��680C~����>���9��M;�5`ց*7Ѻœ ��!o���
1
+ �"�����;��֮��[sH��Q��LY.rf�d)5��[3�-�KGo
2
+ {7ފtŝ9“����j���Qrm���-Z0�{�Uђ�T,����P���3�h��@E�F��E��c�m(o}c
3
+ �3�gjH��~���F���"B ��n�k�!/f�.ư�dzi�|t5��-L
4
+ ��3�ᩩ�a��/c�2 YѰZo%xlס�b��l,�-9sAɧ���'i&m;峉f����"F ���=��i
data/lib/simplepubsub.rb CHANGED
@@ -11,7 +11,7 @@ module SimplePubSub
11
11
 
12
12
  class Server
13
13
 
14
- def start(host: '0.0.0.0', port: 59000)
14
+ def self.start(host: '0.0.0.0', port: 59000)
15
15
 
16
16
 
17
17
  EM.run do
@@ -89,23 +89,25 @@ module SimplePubSub
89
89
 
90
90
  attr_reader :proc, :topic, :message
91
91
 
92
- def get(topic, options={}, &get_proc)
92
+ def get(topic, &get_proc)
93
93
 
94
94
  @topic = 'subscribe to topic'
95
95
  @proc, @message = get_proc, topic
96
96
  end
97
97
 
98
- def publish(topic, message)
98
+ def publish(*args)
99
+
100
+ topic, message = args.length > 1 ? args : args.first.split(':',2)
99
101
 
100
102
  @topic, @message = topic, message
101
- @proc = ->(_,_){ :stop}
103
+ @proc = ->(_,_){}
102
104
  end
103
105
  end
104
106
 
105
- def self.connect(hostname, port='59000', options={})
107
+ def self.connect(hostname, port: '59000', &connect_blk)
106
108
 
107
109
  pubsub = PubSub.new
108
- yield(pubsub)
110
+ connect_blk.call(pubsub)
109
111
 
110
112
  blk = lambda do |ws, pubsub, em_already_running|
111
113
 
@@ -117,16 +119,26 @@ module SimplePubSub
117
119
 
118
120
  a = msg.split(/\s*:\s*/,2)
119
121
  topic, message = a
120
- r = pubsub.proc.call topic, message
122
+ EM.defer {pubsub.proc.call topic, message}
121
123
 
122
- if r == :stop then
123
- ws.close
124
- EM.stop if em_already_running == false
125
- end
126
124
  end
127
125
 
128
126
  ws.onclose do
129
127
  puts "Disconnected"
128
+
129
+ # reconnect within a minute
130
+ seconds = rand(60)
131
+
132
+ seconds.downto(1) do |i|
133
+ s = "reconnecting in %s seconds" % i;
134
+ print s
135
+ sleep 1
136
+ print "\b" * s.length
137
+ end
138
+ puts
139
+
140
+
141
+ self.connect hostname, port: port, &connect_blk
130
142
  end
131
143
 
132
144
  EventMachine.next_tick do
@@ -143,13 +155,15 @@ module SimplePubSub
143
155
 
144
156
  # attempt to run a websocket assuming the EventMachine is
145
157
  # already running
146
- ws = c.connect(params)
158
+
159
+ ws = c.connect(params, &connect_blk)
147
160
  blk.call ws, pubsub, em_already_running = true
148
161
  rescue
149
162
 
150
163
  thread = Thread.new do
151
164
  EM.run do
152
- ws = c.connect(params)
165
+
166
+ ws = c.connect(params, &connect_blk)
153
167
  blk.call(ws, pubsub, em_already_running = false)
154
168
  end
155
169
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: simplepubsub
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - James Robertson
@@ -12,69 +12,87 @@ cert_chain:
12
12
  -----BEGIN CERTIFICATE-----
13
13
  MIIDljCCAn6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBIMRIwEAYDVQQDDAlnZW1t
14
14
  YXN0ZXIxHjAcBgoJkiaJk/IsZAEZFg5qYW1lc3JvYmVydHNvbjESMBAGCgmSJomT
15
- 8ixkARkWAmV1MB4XDTEzMDYxMzE4MzEwNloXDTE0MDYxMzE4MzEwNlowSDESMBAG
15
+ 8ixkARkWAmV1MB4XDTE0MDcxNjEyMzUzMloXDTE1MDcxNjEyMzUzMlowSDESMBAG
16
16
  A1UEAwwJZ2VtbWFzdGVyMR4wHAYKCZImiZPyLGQBGRYOamFtZXNyb2JlcnRzb24x
17
17
  EjAQBgoJkiaJk/IsZAEZFgJldTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC
18
- ggEBANfWZSPkb3SO0BM5jfTmO5ylGI/cVztwY36r6zhkivdPyHxn9zLsYF2mMSvO
19
- dUnG+JJGPJhpy/qycqRfsikS1CORLI4BGffqinFGd9cCLmiJrOXsiSKY+lDVAm4G
20
- uo0U3uckoDRmJbz6rjqPjan7ihC0MAyi5MFjgKRfxzKsFfRrZuPy8lnnFCYdEIQc
21
- F8LxsUP5ZeBLVn8ecMkirAXfpbUgGp4aGWCazkoygiQesZZ55IUIl8fKrgmQ7i1I
22
- 4A7W6ZwSe6ZY2y+plWGnf/ds5KcUjuGP29P4e0f2EsFXuHESIRJAvdKpDYuz4vNJ
23
- mFT8r6Umq9LyIBES3JY1J6dxTzECAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
- DwQEAwIEsDAdBgNVHQ4EFgQUcFsisZOwRgK+ET71eec8rD0GWTwwJgYDVR0RBB8w
18
+ ggEBAK6Q3hJvYMyIqt8HYWLuI8pquJwloqnrxpF7iwbHL45bZQt1w4jJcFUNgY0W
19
+ NrXuf63A/CXYzJT/QHIYd5D+DODf7yOUto9zo9/sxZR2vsr2K2hNteSjDiXGcznl
20
+ YjZoiYSRz9HsN+cIueQy/buriC5b5L+7TifP8xCMrB5ArR1G8g5XiIa5wu4IAPLK
21
+ ScrJZJvvqp4mKYypOZLCNTgAALUyZL4dZ0apevj7y1RJmR93MQp938nnPhbpHELa
22
+ RVfLuPew9y692PcZhYupGoIOL6VLZMOGpNJHuIaE922K4mSXHRgrHCHDDLOUhhEf
23
+ 98bBxW6fHQVR9vBRSLej30BHMbMCAwEAAaOBijCBhzAJBgNVHRMEAjAAMAsGA1Ud
24
+ DwQEAwIEsDAdBgNVHQ4EFgQUu1CMcKa3y7w94xOkbcHu0K1W2H4wJgYDVR0RBB8w
25
25
  HYEbZ2VtbWFzdGVyQGphbWVzcm9iZXJ0c29uLmV1MCYGA1UdEgQfMB2BG2dlbW1h
26
- c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAH6WfaknF
27
- rPo7zRx6dyMaBGKDxqGvmrsUHFsiN/Ck762qvx+BUOfZFAit4ItTv1byqagU1mA1
28
- 4jeX+nozK5F4Q8D+vTX1gzmWTL66Y1mYQ94iqIufRjl6MyHrsI0SBEvkj8k7vQvk
29
- Y/ZGjKI1onZm3qotZlmW+YM4p9iHCASDDladI1hR/wpQ953+7Tr/SxkcgaYJDsyK
30
- ItQZ+BbGa0bgmBUDnLC7vJQ+Y8nXTpE9HlGSmVecUkIl7vpkJR/E28GwLZd2MOEL
31
- i0PBE6fLwlIMk8jNNUcX3J1csSMgLNTwE8CwrlSZE8sueHj0pQzICM7lF0gGREO6
32
- hQHD0LljU3MusQ==
26
+ c3RlckBqYW1lc3JvYmVydHNvbi5ldTANBgkqhkiG9w0BAQUFAAOCAQEAbMLLOjxf
27
+ iJ2sMYS9Ha6mCF2UbZWjtrcMniJQw2LipLnxtR95lICHLn+P2K0Kg/0AnZYOSGIe
28
+ rTMyZKt7kW+zBJYQRBPE7usLULwGj72JRE/aySgQHoF3uCIHb/UDV8XXwXkwlSoo
29
+ 1R5AgQLaWKY3zFXUuvxbb/flJwvHF1cbHJvc7kZXeILOnbP0XXiiuulgFYZlcZI2
30
+ MAC+xoMLQY6qQSE/BmK8vBaaWbZ6tVZpk2tx969f/2lZYfwHKmguQKE3lmarRDX6
31
+ uOVdk9PsRKwYmaspqeSKWj4fpSd1mCtTjPlLbGQC/8sULVs7AlYVp2pAKbkXkbTn
32
+ EkYZt+RIxgYhhw==
33
33
  -----END CERTIFICATE-----
34
- date: 2014-06-03 00:00:00.000000000 Z
34
+ date: 2014-07-16 00:00:00.000000000 Z
35
35
  dependencies:
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: websocket-eventmachine-server
38
38
  requirement: !ruby/object:Gem::Requirement
39
39
  requirements:
40
+ - - "~>"
41
+ - !ruby/object:Gem::Version
42
+ version: '1.0'
40
43
  - - ">="
41
44
  - !ruby/object:Gem::Version
42
- version: '0'
45
+ version: 1.0.1
43
46
  type: :runtime
44
47
  prerelease: false
45
48
  version_requirements: !ruby/object:Gem::Requirement
46
49
  requirements:
50
+ - - "~>"
51
+ - !ruby/object:Gem::Version
52
+ version: '1.0'
47
53
  - - ">="
48
54
  - !ruby/object:Gem::Version
49
- version: '0'
55
+ version: 1.0.1
50
56
  - !ruby/object:Gem::Dependency
51
57
  name: websocket-eventmachine-client
52
58
  requirement: !ruby/object:Gem::Requirement
53
59
  requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '1.0'
54
63
  - - ">="
55
64
  - !ruby/object:Gem::Version
56
- version: '0'
65
+ version: 1.0.1
57
66
  type: :runtime
58
67
  prerelease: false
59
68
  version_requirements: !ruby/object:Gem::Requirement
60
69
  requirements:
70
+ - - "~>"
71
+ - !ruby/object:Gem::Version
72
+ version: '1.0'
61
73
  - - ">="
62
74
  - !ruby/object:Gem::Version
63
- version: '0'
75
+ version: 1.0.1
64
76
  - !ruby/object:Gem::Dependency
65
77
  name: xml-registry
66
78
  requirement: !ruby/object:Gem::Requirement
67
79
  requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '0.2'
68
83
  - - ">="
69
84
  - !ruby/object:Gem::Version
70
- version: '0'
85
+ version: 0.2.3
71
86
  type: :runtime
72
87
  prerelease: false
73
88
  version_requirements: !ruby/object:Gem::Requirement
74
89
  requirements:
90
+ - - "~>"
91
+ - !ruby/object:Gem::Version
92
+ version: '0.2'
75
93
  - - ">="
76
94
  - !ruby/object:Gem::Version
77
- version: '0'
95
+ version: 0.2.3
78
96
  description:
79
97
  email: james@r0bertson.co.uk
80
98
  executables: []
@@ -94,7 +112,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
94
112
  requirements:
95
113
  - - ">="
96
114
  - !ruby/object:Gem::Version
97
- version: '0'
115
+ version: 2.1.0
98
116
  required_rubygems_version: !ruby/object:Gem::Requirement
99
117
  requirements:
100
118
  - - ">="
@@ -107,3 +125,4 @@ signing_key:
107
125
  specification_version: 4
108
126
  summary: simplepubsub
109
127
  test_files: []
128
+ has_rdoc:
metadata.gz.sig CHANGED
Binary file