sock-drawer 0.1.0 → 0.1.1

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: a2e3e0c5fd32ba6df30d8b2d50fec26a94bbcf51
4
- data.tar.gz: 0fd0deb7386a08d81f8a70a427282bab09b2b490
3
+ metadata.gz: db994d09442d34c3bbe8e8ceda3a29270e14d033
4
+ data.tar.gz: dcb43f57ec55b2fac092d28e8bf6ba61c27c88a8
5
5
  SHA512:
6
- metadata.gz: df26b6ff39efb6fb87292133e728c250728cd54a0f1cc819a0f41b555fea95eca245c32f650e839774182108c72c84c1cf100252b98e34332e20114ef8b36f14
7
- data.tar.gz: 753591b431fc63947bdf19836258fe6397431287052a93709938fcc74e99e896525acab419172b30f669615756697d6091ef691d5957bded4b9069706e07b1a5
6
+ metadata.gz: a503d9185396f95d453fee0762d409c9c42ca4cba42b86f5c3c4e93603fa4b54011e28f2a895813e18cca093be6ed7aea9d298c958f847fcfdb78d2729c2e5ec
7
+ data.tar.gz: d6827bf2e513bc32fb0e88a1c9f000a2fe2771400a829440ce1d10edf18d142ff171732eed5f5c37515c1970eef3a12ab9b8aa6aaa42fda1fff9d7743e6343a5
data/README.md CHANGED
@@ -74,7 +74,7 @@ end
74
74
  Then register your listener with the server
75
75
 
76
76
  ```Ruby
77
- Sock::Server.new(listener: MockClass)
77
+ Sock::Server.new(listener: MyListener)
78
78
  ```
79
79
 
80
80
  Whenever an event is fired on the `sock-hook/echo` channel the block will be executed.
@@ -98,7 +98,7 @@ Current supported configuration options:
98
98
 
99
99
  | keyword arg | default |
100
100
  | ----------- | ------- |
101
- | name | 'sock-hook'
101
+ | name | 'sock-hook' |
102
102
  | logger | Logger.new(STDOUT) |
103
103
  | socket_params | { host: '0.0.0.0', port: 8020 } |
104
104
  | mode | 'default' |
data/Rakefile CHANGED
@@ -7,3 +7,11 @@ namespace :sock do
7
7
  Sock::Server.new.start!
8
8
  end
9
9
  end
10
+
11
+ task :spec do
12
+ begin
13
+ require 'rspec/core/rake_task'
14
+ RSpec::Core::RakeTask.new(:spec)
15
+ rescue LoadError
16
+ end
17
+ end
@@ -0,0 +1,28 @@
1
+ <!doctype html>
2
+
3
+ <html lang="en">
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <title>Simple socket example</title>
7
+ <meta name="description" content="Simple socket example">
8
+ <meta name="author" content="HParker">
9
+ </head>
10
+
11
+ <body>
12
+ <h1>chat</h1>
13
+ <ul id="chat">
14
+ <li>chat begins under here</li>
15
+ </ul>
16
+
17
+ <script type="text/javascript">
18
+ var webSocket = new WebSocket("ws://localhost:8020/my-channel");
19
+
20
+ webSocket.onmessage = function(event) {
21
+ var li = document.createElement("li");
22
+ li.innerText = event.data;
23
+ var chat = document.getElementById("chat");
24
+ chat.appendChild(li);
25
+ }
26
+ </script>
27
+ </body>
28
+ </html>
@@ -0,0 +1,7 @@
1
+ How to use
2
+ =============
3
+
4
+ 1. start the sock server `rake sock:server`
5
+ 2. open `index.html` in your browser.
6
+ 3. then send a message `ruby send_message.rb "my message"`
7
+ 4. Grab a :beer:
@@ -0,0 +1,3 @@
1
+ require_relative '../../lib/sock/drawer'
2
+
3
+ Sock::Client.new.pub(ARGV.first, channel: 'my-channel')
@@ -2,6 +2,6 @@ module Sock
2
2
  # supply the version number
3
3
  class Drawer
4
4
  # The current version of sock-drawer
5
- VERSION = '0.1.0'
5
+ VERSION = '0.1.1'
6
6
  end
7
7
  end
data/lib/sock/server.rb CHANGED
@@ -20,7 +20,7 @@ module Sock
20
20
  # utility method used to subscribe on the default name and start the socket server
21
21
  def start!
22
22
  EM.run do
23
- register!
23
+ register! if @listener
24
24
  subscribe(@name)
25
25
  socket_start_listening
26
26
  end
@@ -51,7 +51,6 @@ module Sock
51
51
  EventMachine::WebSocket.start(@socket_params) do |ws|
52
52
  handle_open(ws)
53
53
  handle_message(ws)
54
- handle_close(ws)
55
54
  end
56
55
  end
57
56
 
@@ -69,7 +68,8 @@ module Sock
69
68
  def handle_open(ws)
70
69
  ws.onopen do |handshake|
71
70
  @logger.info "sock opened on #{handshake.path}"
72
- channel(@name + handshake.path).subscribe { |msg| ws.send(msg) }
71
+ sid = channel(@name + handshake.path).subscribe { |msg| ws.send(msg) }
72
+ handle_close(ws, sid, handshake)
73
73
  end
74
74
  end
75
75
 
@@ -77,11 +77,10 @@ module Sock
77
77
  ws.onmessage { |msg| channel('incoming-hook').push(msg) }
78
78
  end
79
79
 
80
- def handle_close(ws)
81
- # TODO: how can I know the sid to remove this subscription?
80
+ def handle_close(ws, sid, handshake)
82
81
  ws.onclose {
83
- @logger.info "connection closed"
84
- # channel(@name + handshake.path).unsubscribe(sid)
82
+ @logger.info "connection #{sid} closed"
83
+ channel(@name + handshake.path).unsubscribe(sid)
85
84
  }
86
85
  end
87
86
 
data/sock-drawer.gemspec CHANGED
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
  spec.summary = 'Super simple websocket manager. '
12
12
  spec.description = 'Provide a really simple interface '\
13
13
  'to manage events in ruby and via websockets using ruby and event machine.'
14
- spec.homepage = 'http://www.thisisadam.me'
14
+ spec.homepage = 'https://github.com/HParker/sock-drawer'
15
15
  spec.license = 'MIT'
16
16
 
17
17
  spec.files = `git ls-files -z`.split("\x0")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sock-drawer
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Hess
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-09-30 00:00:00.000000000 Z
11
+ date: 2015-11-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: redis
@@ -165,6 +165,9 @@ files:
165
165
  - LICENSE.txt
166
166
  - README.md
167
167
  - Rakefile
168
+ - examples/simple/index.html
169
+ - examples/simple/readme.md
170
+ - examples/simple/send_message.rb
168
171
  - lib/sock/client.rb
169
172
  - lib/sock/drawer.rb
170
173
  - lib/sock/drawer/version.rb
@@ -176,7 +179,7 @@ files:
176
179
  - spec/server_spec.rb
177
180
  - spec/spec_helper.rb
178
181
  - spec/subscriber_spec.rb
179
- homepage: http://www.thisisadam.me
182
+ homepage: https://github.com/HParker/sock-drawer
180
183
  licenses:
181
184
  - MIT
182
185
  metadata: {}