garufa 1.1.3 → 1.1.4.rc.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 840c11900b4e8b0400248410061d3bad8390367b
4
- data.tar.gz: 8f79b581ed7d590097d67d8f7df05f36957174dd
3
+ metadata.gz: c537042270fa7abbcd2be5811f5939c444deab3e
4
+ data.tar.gz: 6e720d0221a635101b71b2369a273f2ffe49d47e
5
5
  SHA512:
6
- metadata.gz: 79ff1526ec1a14b648a2068b17bac61accf08b89b14cf4f90d66092045f9c3cc180be1f32f20d6ef9978384627168588b7c61c9a10ff9a0ca2e59739d0521480
7
- data.tar.gz: 2e306dc6eedfaffe190073befdcbdd64821cf99cb8d31e49e33a570c4730432aff47e83866eb6fa11601df9883f4bb1e5162e7feb3a01acbec06a5f9af5ce6de
6
+ metadata.gz: a7632baa7076a9ff5d7034ef66901dd7882356ef57c3de8d2c4cad6badd80c405bd07a003d13e918ae585ff0f09ebaad7b0b6d77d8ae39a9beb547aea41be395
7
+ data.tar.gz: ad5f95c1b30a65651f6f17902bc268e305aab74c09ec86fe7c5e2e8352ece34077221a856f45c1aaee901ae5a5bcbd5736d3e9e6ac6840331b6b3281153b1d73
@@ -35,7 +35,7 @@ module Garufa
35
35
  when /^pusher:/
36
36
  handle_pusher_event(event, data)
37
37
  when /^client-/
38
- handle_client_event(event, data)
38
+ handle_client_event(event, data, message.channel)
39
39
  end
40
40
  end
41
41
 
@@ -69,9 +69,14 @@ module Garufa
69
69
  end
70
70
  end
71
71
 
72
- def handle_client_event(event, data)
73
- # NOTE: not supported yet
74
- error(nil, 'Client events are not supported yet')
72
+ def handle_client_event(event, data, channel)
73
+ return unless Config[:client_events_enabled]
74
+
75
+ subscription = @subscriptions[channel]
76
+
77
+ if subscription && (subscription.private_channel? || subscription.presence_channel?)
78
+ notify_clients(subscription, event, data)
79
+ end
75
80
  end
76
81
 
77
82
  def pusher_ping(data)
@@ -129,6 +134,14 @@ module Garufa
129
134
  send_message Message.subscription_succeeded(channel, data)
130
135
  end
131
136
 
137
+ def notify_clients(subscription, event, data)
138
+ options = {
139
+ data: data,
140
+ socket_id: subscription.socket_id
141
+ }
142
+ Subscriptions.notify [subscription.channel], event, options
143
+ end
144
+
132
145
  def notify_member(event, subscription)
133
146
  options = {
134
147
  data: subscription.channel_data,
@@ -35,6 +35,9 @@ module Garufa
35
35
  opts.on(v.first, v.last) { |value| Garufa::Config[k] = value }
36
36
  end
37
37
 
38
+ opts.on('--enable-client-events', 'Enable client events (default: false)') {
39
+ Garufa::Config[:client_events_enabled] = true
40
+ }
38
41
  end
39
42
 
40
43
  def response(env)
@@ -1,3 +1,3 @@
1
1
  module Garufa
2
- VERSION = '1.1.3'
2
+ VERSION = '1.1.4.rc.1'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: garufa
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.3
4
+ version: 1.1.4.rc.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Juan Manuel Cuello
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-07-04 00:00:00.000000000 Z
11
+ date: 2016-10-19 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: goliath
@@ -204,9 +204,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
204
204
  version: '1.9'
205
205
  required_rubygems_version: !ruby/object:Gem::Requirement
206
206
  requirements:
207
- - - ">="
207
+ - - ">"
208
208
  - !ruby/object:Gem::Version
209
- version: '0'
209
+ version: 1.3.1
210
210
  requirements: []
211
211
  rubyforge_project:
212
212
  rubygems_version: 2.2.2