ably 0.8.10 → 0.8.11
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2940c3999a909ad6243c5c9f7b58577bb754a65
|
4
|
+
data.tar.gz: a26e8dcb896d65db2ac1037fda94229a6cafa0b7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 17a1afa89167265c13c1f63ed0a534f8af6cfbe799684cdac328331e24fe33851341cc5ac2ff214feb8fa5092ec6d461eb8c8d37e56032b870e294bca32c3d4b
|
7
|
+
data.tar.gz: c69805bf390839041e2d82283e0aedc1d22baa181386deeb870f267093f235d97419399c246fa7ed04dedd22c4430b6ec8f22f5325d2890559c12619fbb48c66
|
@@ -4,6 +4,9 @@ module Ably::Modules
|
|
4
4
|
# Message emitter, subscriber and unsubscriber (Pub/Sub) functionality common to Channels and Presence
|
5
5
|
# In addition to standard Pub/Sub functionality, it allows subscribers to subscribe to :all.
|
6
6
|
module MessageEmitter
|
7
|
+
|
8
|
+
include Ably::Modules::SafeYield
|
9
|
+
|
7
10
|
# Subscribe to events on this object
|
8
11
|
#
|
9
12
|
# @param names [String,Symbol] Optional, the event name(s) to subscribe to. Defaults to `:all` events
|
@@ -50,8 +53,8 @@ module Ably::Modules
|
|
50
53
|
#
|
51
54
|
# @api private
|
52
55
|
def emit_message(name, payload)
|
53
|
-
message_emitter_subscriptions[:all].each { |cb| cb
|
54
|
-
message_emitter_subscriptions[name].each { |cb| cb
|
56
|
+
message_emitter_subscriptions[:all].each { |cb| safe_yield(cb, payload) }
|
57
|
+
message_emitter_subscriptions[name].each { |cb| safe_yield(cb, payload) } if name
|
55
58
|
end
|
56
59
|
|
57
60
|
private
|
data/lib/ably/version.rb
CHANGED
@@ -908,6 +908,25 @@ describe Ably::Realtime::Channel, :event_machine do
|
|
908
908
|
end
|
909
909
|
end
|
910
910
|
|
911
|
+
context 'with a callback that raises an exception' do
|
912
|
+
let(:exception) { StandardError.new("Intentional error") }
|
913
|
+
|
914
|
+
it 'logs the error and continues' do
|
915
|
+
emitted_exception = false
|
916
|
+
expect(client.logger).to receive(:error).with(/#{exception.message}/)
|
917
|
+
channel.subscribe('click') do |message|
|
918
|
+
emitted_exception = true
|
919
|
+
raise exception
|
920
|
+
end
|
921
|
+
channel.publish('click', 'data') do
|
922
|
+
EventMachine.add_timer(1) do
|
923
|
+
expect(emitted_exception).to eql(true)
|
924
|
+
stop_reactor
|
925
|
+
end
|
926
|
+
end
|
927
|
+
end
|
928
|
+
end
|
929
|
+
|
911
930
|
context 'many times with different event names' do
|
912
931
|
it 'filters events accordingly to each callback' do
|
913
932
|
click_callback = proc { |message| messages << message }
|
@@ -1463,6 +1463,25 @@ describe Ably::Realtime::Presence, :event_machine do
|
|
1463
1463
|
stop_reactor
|
1464
1464
|
end
|
1465
1465
|
end
|
1466
|
+
|
1467
|
+
context 'with a callback that raises an exception' do
|
1468
|
+
let(:exception) { StandardError.new("Intentional error") }
|
1469
|
+
|
1470
|
+
it 'logs the error and continues' do
|
1471
|
+
emitted_exception = false
|
1472
|
+
expect(client_one.logger).to receive(:error).with(/#{exception.message}/)
|
1473
|
+
presence_client_one.subscribe do |presence_message|
|
1474
|
+
emitted_exception = true
|
1475
|
+
raise exception
|
1476
|
+
end
|
1477
|
+
presence_client_one.enter do
|
1478
|
+
EventMachine.add_timer(1) do
|
1479
|
+
expect(emitted_exception).to eql(true)
|
1480
|
+
stop_reactor
|
1481
|
+
end
|
1482
|
+
end
|
1483
|
+
end
|
1484
|
+
end
|
1466
1485
|
end
|
1467
1486
|
|
1468
1487
|
context '#unsubscribe' do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ably
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lewis Marshall
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2016-04-
|
12
|
+
date: 2016-04-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: eventmachine
|