ably-rest 0.8.6 → 0.8.9
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/SPEC.md +1049 -1001
- data/lib/submodules/ably-ruby/CHANGELOG.md +75 -3
- data/lib/submodules/ably-ruby/LICENSE +2 -2
- data/lib/submodules/ably-ruby/README.md +81 -20
- data/lib/submodules/ably-ruby/SPEC.md +1209 -693
- data/lib/submodules/ably-ruby/ably.gemspec +4 -4
- data/lib/submodules/ably-ruby/lib/ably/auth.rb +13 -4
- data/lib/submodules/ably-ruby/lib/ably/exceptions.rb +10 -1
- data/lib/submodules/ably-ruby/lib/ably/logger.rb +3 -1
- data/lib/submodules/ably-ruby/lib/ably/models/cipher_params.rb +114 -0
- data/lib/submodules/ably-ruby/lib/ably/models/connection_details.rb +10 -7
- data/lib/submodules/ably-ruby/lib/ably/models/error_info.rb +3 -3
- data/lib/submodules/ably-ruby/lib/ably/models/idiomatic_ruby_wrapper.rb +28 -21
- data/lib/submodules/ably-ruby/lib/ably/models/message.rb +19 -17
- data/lib/submodules/ably-ruby/lib/ably/models/message_encoders/cipher.rb +10 -9
- data/lib/submodules/ably-ruby/lib/ably/models/paginated_result.rb +27 -1
- data/lib/submodules/ably-ruby/lib/ably/models/presence_message.rb +20 -18
- data/lib/submodules/ably-ruby/lib/ably/models/protocol_message.rb +26 -19
- data/lib/submodules/ably-ruby/lib/ably/models/{stat.rb → stats.rb} +21 -19
- data/lib/submodules/ably-ruby/lib/ably/models/token_details.rb +14 -12
- data/lib/submodules/ably-ruby/lib/ably/models/token_request.rb +16 -14
- data/lib/submodules/ably-ruby/lib/ably/modules/async_wrapper.rb +2 -2
- data/lib/submodules/ably-ruby/lib/ably/modules/channels_collection.rb +11 -1
- data/lib/submodules/ably-ruby/lib/ably/modules/encodeable.rb +10 -10
- data/lib/submodules/ably-ruby/lib/ably/modules/enum.rb +18 -2
- data/lib/submodules/ably-ruby/lib/ably/modules/event_emitter.rb +3 -3
- data/lib/submodules/ably-ruby/lib/ably/modules/model_common.rb +13 -5
- data/lib/submodules/ably-ruby/lib/ably/modules/safe_deferrable.rb +1 -1
- data/lib/submodules/ably-ruby/lib/ably/modules/safe_yield.rb +2 -2
- data/lib/submodules/ably-ruby/lib/ably/modules/state_emitter.rb +8 -8
- data/lib/submodules/ably-ruby/lib/ably/modules/statesman_monkey_patch.rb +2 -2
- data/lib/submodules/ably-ruby/lib/ably/modules/uses_state_machine.rb +4 -2
- data/lib/submodules/ably-ruby/lib/ably/realtime.rb +1 -0
- data/lib/submodules/ably-ruby/lib/ably/realtime/auth.rb +6 -2
- data/lib/submodules/ably-ruby/lib/ably/realtime/channel.rb +7 -6
- data/lib/submodules/ably-ruby/lib/ably/realtime/channel/channel_manager.rb +7 -1
- data/lib/submodules/ably-ruby/lib/ably/realtime/client.rb +7 -12
- data/lib/submodules/ably-ruby/lib/ably/realtime/client/incoming_message_dispatcher.rb +9 -2
- data/lib/submodules/ably-ruby/lib/ably/realtime/client/outgoing_message_dispatcher.rb +7 -1
- data/lib/submodules/ably-ruby/lib/ably/realtime/connection.rb +19 -8
- data/lib/submodules/ably-ruby/lib/ably/realtime/connection/connection_manager.rb +16 -9
- data/lib/submodules/ably-ruby/lib/ably/realtime/connection/websocket_transport.rb +12 -3
- data/lib/submodules/ably-ruby/lib/ably/realtime/presence.rb +35 -64
- data/lib/submodules/ably-ruby/lib/ably/realtime/presence/members_map.rb +23 -9
- data/lib/submodules/ably-ruby/lib/ably/rest/channel.rb +9 -10
- data/lib/submodules/ably-ruby/lib/ably/rest/client.rb +1 -1
- data/lib/submodules/ably-ruby/lib/ably/rest/middleware/exceptions.rb +16 -4
- data/lib/submodules/ably-ruby/lib/ably/rest/presence.rb +7 -5
- data/lib/submodules/ably-ruby/lib/ably/util/crypto.rb +50 -40
- data/lib/submodules/ably-ruby/lib/ably/version.rb +1 -1
- data/lib/submodules/ably-ruby/spec/acceptance/realtime/channel_history_spec.rb +4 -4
- data/lib/submodules/ably-ruby/spec/acceptance/realtime/connection_failures_spec.rb +2 -4
- data/lib/submodules/ably-ruby/spec/acceptance/realtime/connection_spec.rb +46 -8
- data/lib/submodules/ably-ruby/spec/acceptance/realtime/message_spec.rb +20 -20
- data/lib/submodules/ably-ruby/spec/acceptance/realtime/presence_history_spec.rb +7 -7
- data/lib/submodules/ably-ruby/spec/acceptance/realtime/presence_spec.rb +114 -111
- data/lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb +9 -9
- data/lib/submodules/ably-ruby/spec/acceptance/rest/base_spec.rb +5 -5
- data/lib/submodules/ably-ruby/spec/acceptance/rest/channel_spec.rb +1 -1
- data/lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb +1 -1
- data/lib/submodules/ably-ruby/spec/acceptance/rest/encoders_spec.rb +4 -4
- data/lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb +15 -15
- data/lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb +4 -4
- data/lib/submodules/ably-ruby/spec/shared/model_behaviour.rb +7 -7
- data/lib/submodules/ably-ruby/spec/shared/safe_deferrable_behaviour.rb +4 -4
- data/lib/submodules/ably-ruby/spec/unit/models/cipher_params_spec.rb +140 -0
- data/lib/submodules/ably-ruby/spec/unit/models/idiomatic_ruby_wrapper_spec.rb +15 -8
- data/lib/submodules/ably-ruby/spec/unit/models/message_encoders/cipher_spec.rb +28 -22
- data/lib/submodules/ably-ruby/spec/unit/models/message_encoders/json_spec.rb +24 -0
- data/lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb +3 -3
- data/lib/submodules/ably-ruby/spec/unit/models/token_details_spec.rb +20 -18
- data/lib/submodules/ably-ruby/spec/unit/modules/event_emitter_spec.rb +2 -2
- data/lib/submodules/ably-ruby/spec/unit/modules/state_emitter_spec.rb +6 -6
- data/lib/submodules/ably-ruby/spec/unit/realtime/channel_spec.rb +4 -4
- data/lib/submodules/ably-ruby/spec/unit/realtime/connection_spec.rb +1 -1
- data/lib/submodules/ably-ruby/spec/unit/realtime/presence_spec.rb +5 -5
- data/lib/submodules/ably-ruby/spec/unit/util/crypto_spec.rb +50 -17
- metadata +5 -3
@@ -1,8 +1,8 @@
|
|
1
|
-
# Ably Realtime & REST Client Library 0.8.
|
1
|
+
# Ably Realtime & REST Client Library 0.8.9 Specification
|
2
2
|
|
3
3
|
### Ably::Realtime::Auth
|
4
4
|
_(see [spec/acceptance/realtime/auth_spec.rb](./spec/acceptance/realtime/auth_spec.rb))_
|
5
|
-
* using JSON
|
5
|
+
* using JSON protocol
|
6
6
|
* with basic auth
|
7
7
|
* #authentication_security_requirements_met?
|
8
8
|
* [returns true](./spec/acceptance/realtime/auth_spec.rb#L20)
|
@@ -19,45 +19,93 @@ _(see [spec/acceptance/realtime/auth_spec.rb](./spec/acceptance/realtime/auth_sp
|
|
19
19
|
* with token auth
|
20
20
|
* #client_id
|
21
21
|
* [contains the ClientOptions client ID](./spec/acceptance/realtime/auth_spec.rb#L67)
|
22
|
-
* #token
|
23
|
-
* [contains the current token after auth](./spec/acceptance/realtime/auth_spec.rb#L76)
|
24
22
|
* #current_token_details
|
25
|
-
* [contains the current token after auth](./spec/acceptance/realtime/auth_spec.rb#
|
23
|
+
* [contains the current token after auth](./spec/acceptance/realtime/auth_spec.rb#L74)
|
26
24
|
* #token_renewable?
|
27
|
-
* [is true when an API key exists](./spec/acceptance/realtime/auth_spec.rb#
|
25
|
+
* [is true when an API key exists](./spec/acceptance/realtime/auth_spec.rb#L84)
|
28
26
|
* #options (auth_options)
|
29
|
-
* [contains the configured auth options](./spec/acceptance/realtime/auth_spec.rb#
|
27
|
+
* [contains the configured auth options](./spec/acceptance/realtime/auth_spec.rb#L95)
|
30
28
|
* #token_params
|
31
|
-
* [contains the configured auth options](./spec/acceptance/realtime/auth_spec.rb#
|
29
|
+
* [contains the configured auth options](./spec/acceptance/realtime/auth_spec.rb#L106)
|
32
30
|
* #using_basic_auth?
|
33
|
-
* [is false when using Token Auth](./spec/acceptance/realtime/auth_spec.rb#
|
31
|
+
* [is false when using Token Auth](./spec/acceptance/realtime/auth_spec.rb#L115)
|
34
32
|
* #using_token_auth?
|
35
|
-
* [is true when using Token Auth](./spec/acceptance/realtime/auth_spec.rb#
|
33
|
+
* [is true when using Token Auth](./spec/acceptance/realtime/auth_spec.rb#L124)
|
36
34
|
*
|
37
35
|
* #create_token_request
|
38
|
-
* [returns a token request asynchronously](./spec/acceptance/realtime/auth_spec.rb#
|
36
|
+
* [returns a token request asynchronously](./spec/acceptance/realtime/auth_spec.rb#L138)
|
39
37
|
* #create_token_request_async
|
40
|
-
* [returns a token request synchronously](./spec/acceptance/realtime/auth_spec.rb#
|
38
|
+
* [returns a token request synchronously](./spec/acceptance/realtime/auth_spec.rb#L148)
|
41
39
|
* #request_token
|
42
|
-
* [returns a token asynchronously](./spec/acceptance/realtime/auth_spec.rb#
|
40
|
+
* [returns a token asynchronously](./spec/acceptance/realtime/auth_spec.rb#L158)
|
43
41
|
* #request_token_async
|
44
|
-
* [returns a token synchronously](./spec/acceptance/realtime/auth_spec.rb#
|
42
|
+
* [returns a token synchronously](./spec/acceptance/realtime/auth_spec.rb#L169)
|
45
43
|
* #authorise
|
46
|
-
* [returns a token asynchronously](./spec/acceptance/realtime/auth_spec.rb#
|
44
|
+
* [returns a token asynchronously](./spec/acceptance/realtime/auth_spec.rb#L180)
|
45
|
+
* when implicitly called, with an explicit ClientOptions client_id
|
46
|
+
* and an incompatible client_id in a TokenDetails object passed to the auth callback
|
47
|
+
* [rejects a TokenDetails object with an incompatible client_id and raises an exception](./spec/acceptance/realtime/auth_spec.rb#L197)
|
48
|
+
* and an incompatible client_id in a TokenRequest object passed to the auth callback and raises an exception
|
49
|
+
* [rejects a TokenRequests object with an incompatible client_id and raises an exception](./spec/acceptance/realtime/auth_spec.rb#L212)
|
50
|
+
* when explicitly called, with an explicit ClientOptions client_id
|
51
|
+
* and an incompatible client_id in a TokenDetails object passed to the auth callback
|
52
|
+
* [rejects a TokenDetails object with an incompatible client_id and raises an exception](./spec/acceptance/realtime/auth_spec.rb#L243)
|
47
53
|
* #authorise_async
|
48
|
-
* [returns a token synchronously](./spec/acceptance/realtime/auth_spec.rb#
|
49
|
-
* #auth_params
|
50
|
-
* [returns the auth params asynchronously](./spec/acceptance/realtime/auth_spec.rb#L211)
|
54
|
+
* [returns a token synchronously](./spec/acceptance/realtime/auth_spec.rb#L260)
|
51
55
|
* #auth_params
|
52
|
-
* [returns the auth params
|
53
|
-
* #
|
54
|
-
* [returns
|
56
|
+
* [returns the auth params asynchronously](./spec/acceptance/realtime/auth_spec.rb#L272)
|
57
|
+
* #auth_params_sync
|
58
|
+
* [returns the auth params synchronously](./spec/acceptance/realtime/auth_spec.rb#L281)
|
55
59
|
* #auth_header
|
56
|
-
* [returns an auth header
|
60
|
+
* [returns an auth header asynchronously](./spec/acceptance/realtime/auth_spec.rb#L288)
|
61
|
+
* #auth_header_sync
|
62
|
+
* [returns an auth header synchronously](./spec/acceptance/realtime/auth_spec.rb#L297)
|
63
|
+
* #client_id_validated?
|
64
|
+
* when using basic auth
|
65
|
+
* before connected
|
66
|
+
* [is false as basic auth users do not have an identity](./spec/acceptance/realtime/auth_spec.rb#L310)
|
67
|
+
* once connected
|
68
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L317)
|
69
|
+
* [contains a validated wildcard client_id](./spec/acceptance/realtime/auth_spec.rb#L324)
|
70
|
+
* when using a token string
|
71
|
+
* with a valid client_id
|
72
|
+
* before connected
|
73
|
+
* [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#L338)
|
74
|
+
* [#client_id is nil](./spec/acceptance/realtime/auth_spec.rb#L343)
|
75
|
+
* once connected
|
76
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L350)
|
77
|
+
* [#client_id is populated](./spec/acceptance/realtime/auth_spec.rb#L357)
|
78
|
+
* with no client_id (anonymous)
|
79
|
+
* before connected
|
80
|
+
* [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#L370)
|
81
|
+
* once connected
|
82
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L377)
|
83
|
+
* with a wildcard client_id (anonymous)
|
84
|
+
* before connected
|
85
|
+
* [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#L390)
|
86
|
+
* once connected
|
87
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L397)
|
88
|
+
* when using a token
|
89
|
+
* with a client_id
|
90
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L411)
|
91
|
+
* once connected
|
92
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L417)
|
93
|
+
* with no client_id (anonymous)
|
94
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L429)
|
95
|
+
* once connected
|
96
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L435)
|
97
|
+
* with a wildcard client_id (anonymous)
|
98
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L447)
|
99
|
+
* once connected
|
100
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L453)
|
101
|
+
* when using a token request with a client_id
|
102
|
+
* [is not true as identification is not confirmed until authenticated](./spec/acceptance/realtime/auth_spec.rb#L466)
|
103
|
+
* once connected
|
104
|
+
* [is true as identification is completed following CONNECTED ProtocolMessage](./spec/acceptance/realtime/auth_spec.rb#L472)
|
57
105
|
|
58
106
|
### Ably::Realtime::Channel#history
|
59
107
|
_(see [spec/acceptance/realtime/channel_history_spec.rb](./spec/acceptance/realtime/channel_history_spec.rb))_
|
60
|
-
* using JSON
|
108
|
+
* using JSON protocol
|
61
109
|
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/channel_history_spec.rb#L21)
|
62
110
|
* with a single client publishing and receiving
|
63
111
|
* [retrieves realtime history](./spec/acceptance/realtime/channel_history_spec.rb#L34)
|
@@ -74,13 +122,13 @@ _(see [spec/acceptance/realtime/channel_history_spec.rb](./spec/acceptance/realt
|
|
74
122
|
* [return the same results with unique matching message IDs](./spec/acceptance/realtime/channel_history_spec.rb#L135)
|
75
123
|
* with option until_attach: true
|
76
124
|
* [retrieves all messages before channel was attached](./spec/acceptance/realtime/channel_history_spec.rb#L160)
|
77
|
-
* [raises an exception unless state is attached](./spec/acceptance/realtime/channel_history_spec.rb#
|
125
|
+
* [raises an exception unless state is attached](./spec/acceptance/realtime/channel_history_spec.rb#L209)
|
78
126
|
* and two pages of messages
|
79
127
|
* [retrieves two pages of messages before channel was attached](./spec/acceptance/realtime/channel_history_spec.rb#L175)
|
80
128
|
|
81
129
|
### Ably::Realtime::Channel
|
82
130
|
_(see [spec/acceptance/realtime/channel_spec.rb](./spec/acceptance/realtime/channel_spec.rb))_
|
83
|
-
* using JSON
|
131
|
+
* using JSON protocol
|
84
132
|
* initialization
|
85
133
|
* with :auto_connect option set to false on connection
|
86
134
|
* [remains initialized when accessing a channel](./spec/acceptance/realtime/channel_spec.rb#L21)
|
@@ -108,113 +156,184 @@ _(see [spec/acceptance/realtime/channel_spec.rb](./spec/acceptance/realtime/chan
|
|
108
156
|
* #detach
|
109
157
|
* [detaches from a channel](./spec/acceptance/realtime/channel_spec.rb#L212)
|
110
158
|
* [detaches from a channel and calls the provided block](./spec/acceptance/realtime/channel_spec.rb#L222)
|
111
|
-
* [emits :detaching then :detached events](./spec/acceptance/realtime/channel_spec.rb#
|
112
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/channel_spec.rb#
|
113
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/channel_spec.rb#
|
159
|
+
* [emits :detaching then :detached events](./spec/acceptance/realtime/channel_spec.rb#L232)
|
160
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/channel_spec.rb#L244)
|
161
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/channel_spec.rb#L251)
|
114
162
|
* when state is :failed
|
115
|
-
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#
|
163
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L264)
|
116
164
|
* when state is :attaching
|
117
|
-
* [moves straight to :detaching state and skips :attached](./spec/acceptance/realtime/channel_spec.rb#
|
165
|
+
* [moves straight to :detaching state and skips :attached](./spec/acceptance/realtime/channel_spec.rb#L275)
|
118
166
|
* when state is :detaching
|
119
|
-
* [ignores subsequent #detach calls but calls the callback if provided](./spec/acceptance/realtime/channel_spec.rb#
|
167
|
+
* [ignores subsequent #detach calls but calls the callback if provided](./spec/acceptance/realtime/channel_spec.rb#L293)
|
120
168
|
* when state is :initialized
|
121
|
-
* [does nothing as there is no channel to detach](./spec/acceptance/realtime/channel_spec.rb#
|
122
|
-
* [returns a valid deferrable](./spec/acceptance/realtime/channel_spec.rb#
|
169
|
+
* [does nothing as there is no channel to detach](./spec/acceptance/realtime/channel_spec.rb#L310)
|
170
|
+
* [returns a valid deferrable](./spec/acceptance/realtime/channel_spec.rb#L318)
|
123
171
|
* channel recovery in :attaching state
|
124
172
|
* the transport is disconnected before the ATTACHED protocol message is received
|
125
|
-
* PENDING: *[attach times out and fails if not ATTACHED protocol message received](./spec/acceptance/realtime/channel_spec.rb#
|
126
|
-
* PENDING: *[channel is ATTACHED if ATTACHED protocol message is later received](./spec/acceptance/realtime/channel_spec.rb#
|
127
|
-
* PENDING: *[sends an ATTACH protocol message in response to a channel message being received on the attaching channel](./spec/acceptance/realtime/channel_spec.rb#
|
173
|
+
* PENDING: *[attach times out and fails if not ATTACHED protocol message received](./spec/acceptance/realtime/channel_spec.rb#L330)*
|
174
|
+
* PENDING: *[channel is ATTACHED if ATTACHED protocol message is later received](./spec/acceptance/realtime/channel_spec.rb#L331)*
|
175
|
+
* PENDING: *[sends an ATTACH protocol message in response to a channel message being received on the attaching channel](./spec/acceptance/realtime/channel_spec.rb#L332)*
|
128
176
|
* #publish
|
129
177
|
* when attached
|
130
|
-
* [publishes messages](./spec/acceptance/realtime/channel_spec.rb#
|
178
|
+
* [publishes messages](./spec/acceptance/realtime/channel_spec.rb#L341)
|
131
179
|
* when not yet attached
|
132
|
-
* [publishes queued messages once attached](./spec/acceptance/realtime/channel_spec.rb#
|
133
|
-
* [publishes queued messages within a single protocol message](./spec/acceptance/realtime/channel_spec.rb#
|
180
|
+
* [publishes queued messages once attached](./spec/acceptance/realtime/channel_spec.rb#L353)
|
181
|
+
* [publishes queued messages within a single protocol message](./spec/acceptance/realtime/channel_spec.rb#L361)
|
134
182
|
* with :queue_messages client option set to false
|
135
183
|
* and connection state initialized
|
136
|
-
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#
|
184
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L384)
|
137
185
|
* and connection state connecting
|
138
|
-
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#
|
186
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L392)
|
139
187
|
* and connection state disconnected
|
140
|
-
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#
|
188
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L404)
|
141
189
|
* and connection state connected
|
142
|
-
* [publishes the message](./spec/acceptance/realtime/channel_spec.rb#
|
190
|
+
* [publishes the message](./spec/acceptance/realtime/channel_spec.rb#L417)
|
143
191
|
* with name and data arguments
|
144
|
-
* [publishes the message and return true indicating success](./spec/acceptance/realtime/channel_spec.rb#
|
192
|
+
* [publishes the message and return true indicating success](./spec/acceptance/realtime/channel_spec.rb#L428)
|
193
|
+
* and additional attributes
|
194
|
+
* [publishes the message with the attributes and return true indicating success](./spec/acceptance/realtime/channel_spec.rb#L441)
|
145
195
|
* with an array of Hash objects with :name and :data attributes
|
146
|
-
* [publishes an array of messages in one ProtocolMessage](./spec/acceptance/realtime/channel_spec.rb#
|
196
|
+
* [publishes an array of messages in one ProtocolMessage](./spec/acceptance/realtime/channel_spec.rb#L459)
|
147
197
|
* with an array of Message objects
|
148
|
-
* [publishes an array of messages in one ProtocolMessage](./spec/acceptance/realtime/channel_spec.rb#
|
198
|
+
* [publishes an array of messages in one ProtocolMessage](./spec/acceptance/realtime/channel_spec.rb#L487)
|
199
|
+
* nil attributes
|
200
|
+
* when name is nil
|
201
|
+
* [publishes the message without a name attribute in the payload](./spec/acceptance/realtime/channel_spec.rb#L511)
|
202
|
+
* when data is nil
|
203
|
+
* [publishes the message without a data attribute in the payload](./spec/acceptance/realtime/channel_spec.rb#L534)
|
204
|
+
* with neither name or data attributes
|
205
|
+
* [publishes the message without any attributes in the payload](./spec/acceptance/realtime/channel_spec.rb#L557)
|
149
206
|
* with two invalid message out of 12
|
150
|
-
*
|
207
|
+
* before client_id is known (validated)
|
208
|
+
* [calls the errback once](./spec/acceptance/realtime/channel_spec.rb#L581)
|
209
|
+
* when client_id is known (validated)
|
210
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L601)
|
151
211
|
* only invalid messages
|
152
|
-
*
|
212
|
+
* before client_id is known (validated)
|
213
|
+
* [calls the errback once](./spec/acceptance/realtime/channel_spec.rb#L620)
|
214
|
+
* when client_id is known (validated)
|
215
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L639)
|
153
216
|
* with many many messages and many connections simultaneously
|
154
|
-
* [publishes all messages, all success callbacks are called, and a history request confirms all messages were published](./spec/acceptance/realtime/channel_spec.rb#
|
217
|
+
* [publishes all messages, all success callbacks are called, and a history request confirms all messages were published](./spec/acceptance/realtime/channel_spec.rb#L653)
|
218
|
+
* identified clients
|
219
|
+
* when authenticated with a wildcard client_id
|
220
|
+
* with a valid client_id in the message
|
221
|
+
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#L681)
|
222
|
+
* with a wildcard client_id in the message
|
223
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L693)
|
224
|
+
* with an empty client_id in the message
|
225
|
+
* [succeeds and publishes without a client_id](./spec/acceptance/realtime/channel_spec.rb#L700)
|
226
|
+
* when authenticated with a Token string with an implicit client_id
|
227
|
+
* before the client is CONNECTED and the client's identity has been obtained
|
228
|
+
* with a valid client_id in the message
|
229
|
+
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#L720)
|
230
|
+
* with an invalid client_id in the message
|
231
|
+
* [succeeds in the client library but then fails when delivered to Ably](./spec/acceptance/realtime/channel_spec.rb#L733)
|
232
|
+
* with an empty client_id in the message
|
233
|
+
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L744)
|
234
|
+
* after the client is CONNECTED and the client's identity is known
|
235
|
+
* with a valid client_id in the message
|
236
|
+
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#L758)
|
237
|
+
* with an invalid client_id in the message
|
238
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L772)
|
239
|
+
* with an empty client_id in the message
|
240
|
+
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L781)
|
241
|
+
* when authenticated with a valid client_id
|
242
|
+
* with a valid client_id
|
243
|
+
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#L803)
|
244
|
+
* with a wildcard client_id in the message
|
245
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L815)
|
246
|
+
* with an invalid client_id in the message
|
247
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L822)
|
248
|
+
* with an empty client_id in the message
|
249
|
+
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L829)
|
250
|
+
* when anonymous and no client_id
|
251
|
+
* with a client_id in the message
|
252
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L848)
|
253
|
+
* with a wildcard client_id in the message
|
254
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L855)
|
255
|
+
* with an empty client_id in the message
|
256
|
+
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L862)
|
155
257
|
* #subscribe
|
156
258
|
* with an event argument
|
157
|
-
* [subscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#
|
259
|
+
* [subscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L878)
|
158
260
|
* before attach
|
159
|
-
* [receives messages as soon as attached](./spec/acceptance/realtime/channel_spec.rb#
|
261
|
+
* [receives messages as soon as attached](./spec/acceptance/realtime/channel_spec.rb#L888)
|
160
262
|
* with no event argument
|
161
|
-
* [subscribes for all events](./spec/acceptance/realtime/channel_spec.rb#
|
263
|
+
* [subscribes for all events](./spec/acceptance/realtime/channel_spec.rb#L902)
|
162
264
|
* many times with different event names
|
163
|
-
* [filters events accordingly to each callback](./spec/acceptance/realtime/channel_spec.rb#
|
265
|
+
* [filters events accordingly to each callback](./spec/acceptance/realtime/channel_spec.rb#L912)
|
164
266
|
* #unsubscribe
|
165
267
|
* with an event argument
|
166
|
-
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#
|
268
|
+
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L935)
|
167
269
|
* with no event argument
|
168
|
-
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#
|
270
|
+
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L948)
|
169
271
|
* when connection state changes to
|
170
272
|
* :failed
|
171
273
|
* an :attached channel
|
172
|
-
* [transitions state to :failed](./spec/acceptance/realtime/channel_spec.rb#
|
173
|
-
* [emits an error event on the channel](./spec/acceptance/realtime/channel_spec.rb#
|
174
|
-
* [updates the channel error_reason](./spec/acceptance/realtime/channel_spec.rb#
|
274
|
+
* [transitions state to :failed](./spec/acceptance/realtime/channel_spec.rb#L971)
|
275
|
+
* [emits an error event on the channel](./spec/acceptance/realtime/channel_spec.rb#L983)
|
276
|
+
* [updates the channel error_reason](./spec/acceptance/realtime/channel_spec.rb#L994)
|
175
277
|
* a :detached channel
|
176
|
-
* [remains in the :detached state](./spec/acceptance/realtime/channel_spec.rb#
|
278
|
+
* [remains in the :detached state](./spec/acceptance/realtime/channel_spec.rb#L1008)
|
177
279
|
* a :failed channel
|
178
|
-
* [remains in the :failed state and ignores the failure error](./spec/acceptance/realtime/channel_spec.rb#
|
280
|
+
* [remains in the :failed state and ignores the failure error](./spec/acceptance/realtime/channel_spec.rb#L1028)
|
179
281
|
* a channel ATTACH request
|
180
|
-
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#
|
282
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L1049)
|
181
283
|
* :closed
|
182
284
|
* an :attached channel
|
183
|
-
* [transitions state to :detached](./spec/acceptance/realtime/channel_spec.rb#
|
285
|
+
* [transitions state to :detached](./spec/acceptance/realtime/channel_spec.rb#L1063)
|
184
286
|
* a :detached channel
|
185
|
-
* [remains in the :detached state](./spec/acceptance/realtime/channel_spec.rb#
|
287
|
+
* [remains in the :detached state](./spec/acceptance/realtime/channel_spec.rb#L1074)
|
186
288
|
* a :failed channel
|
187
|
-
* [remains in the :failed state and retains the error_reason](./spec/acceptance/realtime/channel_spec.rb#
|
289
|
+
* [remains in the :failed state and retains the error_reason](./spec/acceptance/realtime/channel_spec.rb#L1095)
|
188
290
|
* a channel ATTACH request when connection CLOSED
|
189
|
-
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#
|
291
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L1116)
|
190
292
|
* a channel ATTACH request when connection CLOSING
|
191
|
-
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#
|
293
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L1128)
|
294
|
+
* :suspended
|
295
|
+
* an :attached channel
|
296
|
+
* [transitions state to :detached](./spec/acceptance/realtime/channel_spec.rb#L1144)
|
297
|
+
* a :detached channel
|
298
|
+
* [remains in the :detached state](./spec/acceptance/realtime/channel_spec.rb#L1155)
|
299
|
+
* a :failed channel
|
300
|
+
* [remains in the :failed state and retains the error_reason](./spec/acceptance/realtime/channel_spec.rb#L1176)
|
301
|
+
* a channel ATTACH request when connection SUSPENDED
|
302
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L1199)
|
192
303
|
* #presence
|
193
|
-
* [returns a Ably::Realtime::Presence object](./spec/acceptance/realtime/channel_spec.rb#
|
304
|
+
* [returns a Ably::Realtime::Presence object](./spec/acceptance/realtime/channel_spec.rb#L1213)
|
305
|
+
* channel state change
|
306
|
+
* [emits a ChannelStateChange object](./spec/acceptance/realtime/channel_spec.rb#L1220)
|
307
|
+
* ChannelStateChange object
|
308
|
+
* [has current state](./spec/acceptance/realtime/channel_spec.rb#L1229)
|
309
|
+
* [has a previous state](./spec/acceptance/realtime/channel_spec.rb#L1237)
|
310
|
+
* [has an empty reason when there is no error](./spec/acceptance/realtime/channel_spec.rb#L1254)
|
311
|
+
* on failure
|
312
|
+
* [has a reason Error object when there is an error on the channel](./spec/acceptance/realtime/channel_spec.rb#L1267)
|
194
313
|
|
195
314
|
### Ably::Realtime::Channels
|
196
315
|
_(see [spec/acceptance/realtime/channels_spec.rb](./spec/acceptance/realtime/channels_spec.rb))_
|
197
|
-
* using JSON
|
316
|
+
* using JSON protocol
|
198
317
|
* using shortcut method #channel on the client object
|
199
318
|
* behaves like a channel
|
200
319
|
* [returns a channel object](./spec/acceptance/realtime/channels_spec.rb#L6)
|
201
|
-
* [returns channel object and passes the provided options](./spec/acceptance/realtime/channels_spec.rb#
|
320
|
+
* [returns channel object and passes the provided options](./spec/acceptance/realtime/channels_spec.rb#L12)
|
202
321
|
* using #get method on client#channels
|
203
322
|
* behaves like a channel
|
204
323
|
* [returns a channel object](./spec/acceptance/realtime/channels_spec.rb#L6)
|
205
|
-
* [returns channel object and passes the provided options](./spec/acceptance/realtime/channels_spec.rb#
|
324
|
+
* [returns channel object and passes the provided options](./spec/acceptance/realtime/channels_spec.rb#L12)
|
206
325
|
* accessing an existing channel object with different options
|
207
|
-
* [overrides the existing channel options and returns the channel object](./spec/acceptance/realtime/channels_spec.rb#
|
326
|
+
* [overrides the existing channel options and returns the channel object](./spec/acceptance/realtime/channels_spec.rb#L41)
|
208
327
|
* accessing an existing channel object without specifying any channel options
|
209
|
-
* [returns the existing channel without modifying the channel options](./spec/acceptance/realtime/channels_spec.rb#
|
328
|
+
* [returns the existing channel without modifying the channel options](./spec/acceptance/realtime/channels_spec.rb#L53)
|
210
329
|
* using undocumented array accessor [] method on client#channels
|
211
330
|
* behaves like a channel
|
212
331
|
* [returns a channel object](./spec/acceptance/realtime/channels_spec.rb#L6)
|
213
|
-
* [returns channel object and passes the provided options](./spec/acceptance/realtime/channels_spec.rb#
|
332
|
+
* [returns channel object and passes the provided options](./spec/acceptance/realtime/channels_spec.rb#L12)
|
214
333
|
|
215
334
|
### Ably::Realtime::Client
|
216
335
|
_(see [spec/acceptance/realtime/client_spec.rb](./spec/acceptance/realtime/client_spec.rb))_
|
217
|
-
* using JSON
|
336
|
+
* using JSON protocol
|
218
337
|
* initialization
|
219
338
|
* basic auth
|
220
339
|
* [is enabled by default with a provided :key option](./spec/acceptance/realtime/client_spec.rb#L18)
|
@@ -224,96 +343,117 @@ _(see [spec/acceptance/realtime/client_spec.rb](./spec/acceptance/realtime/clien
|
|
224
343
|
* token auth
|
225
344
|
* with TLS enabled
|
226
345
|
* and a pre-generated Token provided with the :token option
|
227
|
-
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#
|
346
|
+
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#L52)
|
228
347
|
* with valid :key and :use_token_auth option set to true
|
229
|
-
* [automatically authorises on connect and generates a token](./spec/acceptance/realtime/client_spec.rb#
|
348
|
+
* [automatically authorises on connect and generates a token](./spec/acceptance/realtime/client_spec.rb#L65)
|
230
349
|
* with client_id
|
231
|
-
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#
|
350
|
+
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#L78)
|
232
351
|
* with TLS disabled
|
233
352
|
* and a pre-generated Token provided with the :token option
|
234
|
-
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#
|
353
|
+
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#L52)
|
235
354
|
* with valid :key and :use_token_auth option set to true
|
236
|
-
* [automatically authorises on connect and generates a token](./spec/acceptance/realtime/client_spec.rb#
|
355
|
+
* [automatically authorises on connect and generates a token](./spec/acceptance/realtime/client_spec.rb#L65)
|
237
356
|
* with client_id
|
238
|
-
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#
|
357
|
+
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#L78)
|
239
358
|
* with a Proc for the :auth_callback option
|
240
|
-
* [calls the Proc](./spec/acceptance/realtime/client_spec.rb#
|
241
|
-
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/realtime/client_spec.rb#
|
359
|
+
* [calls the Proc](./spec/acceptance/realtime/client_spec.rb#L103)
|
360
|
+
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/realtime/client_spec.rb#L110)
|
361
|
+
* when the returned token has a client_id
|
362
|
+
* [sets Auth#client_id to the new token's client_id immediately when connecting](./spec/acceptance/realtime/client_spec.rb#L118)
|
363
|
+
* [sets Client#client_id to the new token's client_id immediately when connecting](./spec/acceptance/realtime/client_spec.rb#L126)
|
364
|
+
* with a wildcard client_id token
|
365
|
+
* and an explicit client_id in ClientOptions
|
366
|
+
* [allows uses the explicit client_id in the connection](./spec/acceptance/realtime/client_spec.rb#L144)
|
367
|
+
* and client_id omitted in ClientOptions
|
368
|
+
* [uses the token provided clientId in the connection](./spec/acceptance/realtime/client_spec.rb#L160)
|
369
|
+
* with an invalid wildcard "*" :client_id
|
370
|
+
* [raises an exception](./spec/acceptance/realtime/client_spec.rb#L176)
|
371
|
+
* realtime connection settings
|
372
|
+
* defaults
|
373
|
+
* [disconnected_retry_timeout is 15s](./spec/acceptance/realtime/client_spec.rb#L185)
|
374
|
+
* [suspended_retry_timeout is 30s](./spec/acceptance/realtime/client_spec.rb#L190)
|
375
|
+
* overriden in ClientOptions
|
376
|
+
* [disconnected_retry_timeout is updated](./spec/acceptance/realtime/client_spec.rb#L199)
|
377
|
+
* [suspended_retry_timeout is updated](./spec/acceptance/realtime/client_spec.rb#L204)
|
242
378
|
* #connection
|
243
|
-
* [provides access to the Connection object](./spec/acceptance/realtime/client_spec.rb#
|
379
|
+
* [provides access to the Connection object](./spec/acceptance/realtime/client_spec.rb#L213)
|
244
380
|
* #channels
|
245
|
-
* [provides access to the Channels collection object](./spec/acceptance/realtime/client_spec.rb#
|
381
|
+
* [provides access to the Channels collection object](./spec/acceptance/realtime/client_spec.rb#L220)
|
246
382
|
* #auth
|
247
|
-
* [provides access to the Realtime::Auth object](./spec/acceptance/realtime/client_spec.rb#
|
383
|
+
* [provides access to the Realtime::Auth object](./spec/acceptance/realtime/client_spec.rb#L227)
|
248
384
|
|
249
385
|
### Ably::Realtime::Connection failures
|
250
386
|
_(see [spec/acceptance/realtime/connection_failures_spec.rb](./spec/acceptance/realtime/connection_failures_spec.rb))_
|
251
|
-
* using JSON
|
387
|
+
* using JSON protocol
|
252
388
|
* authentication failure
|
253
389
|
* when API key is invalid
|
254
390
|
* with invalid app part of the key
|
255
391
|
* [enters the failed state and returns a not found error](./spec/acceptance/realtime/connection_failures_spec.rb#L26)
|
256
392
|
* with invalid key name part of the key
|
257
|
-
* [enters the failed state and returns an authorization error](./spec/acceptance/realtime/connection_failures_spec.rb#
|
393
|
+
* [enters the failed state and returns an authorization error](./spec/acceptance/realtime/connection_failures_spec.rb#L41)
|
258
394
|
* automatic connection retry
|
259
395
|
* with invalid WebSocket host
|
260
396
|
* when disconnected
|
261
397
|
* [enters the suspended state after multiple attempts to connect](./spec/acceptance/realtime/connection_failures_spec.rb#L95)
|
398
|
+
* for the first time
|
399
|
+
* [reattempts connection immediately and then waits disconnected_retry_timeout for a subsequent attempt](./spec/acceptance/realtime/connection_failures_spec.rb#L116)
|
262
400
|
* #close
|
263
|
-
* [transitions connection state to :closed](./spec/acceptance/realtime/connection_failures_spec.rb#
|
401
|
+
* [transitions connection state to :closed](./spec/acceptance/realtime/connection_failures_spec.rb#L133)
|
264
402
|
* when connection state is :suspended
|
265
|
-
* [
|
403
|
+
* [stays in the suspended state after any number of reconnection attempts](./spec/acceptance/realtime/connection_failures_spec.rb#L152)
|
404
|
+
* for the first time
|
405
|
+
* [waits suspended_retry_timeout before attempting to reconnect](./spec/acceptance/realtime/connection_failures_spec.rb#L175)
|
266
406
|
* #close
|
267
|
-
* [transitions connection state to :closed](./spec/acceptance/realtime/connection_failures_spec.rb#
|
407
|
+
* [transitions connection state to :closed](./spec/acceptance/realtime/connection_failures_spec.rb#L197)
|
268
408
|
* when connection state is :failed
|
269
409
|
* #close
|
270
|
-
* [will not transition state to :close and raises a InvalidStateChange exception](./spec/acceptance/realtime/connection_failures_spec.rb#
|
410
|
+
* [will not transition state to :close and raises a InvalidStateChange exception](./spec/acceptance/realtime/connection_failures_spec.rb#L216)
|
271
411
|
* #error_reason
|
272
|
-
* [contains the error when state is disconnected](./spec/acceptance/realtime/connection_failures_spec.rb#
|
273
|
-
* [contains the error when state is suspended](./spec/acceptance/realtime/connection_failures_spec.rb#
|
274
|
-
* [contains the error when state is failed](./spec/acceptance/realtime/connection_failures_spec.rb#
|
275
|
-
* [is reset to nil when :connected](./spec/acceptance/realtime/connection_failures_spec.rb#
|
276
|
-
* [is reset to nil when :closed](./spec/acceptance/realtime/connection_failures_spec.rb#
|
412
|
+
* [contains the error when state is disconnected](./spec/acceptance/realtime/connection_failures_spec.rb#L234)
|
413
|
+
* [contains the error when state is suspended](./spec/acceptance/realtime/connection_failures_spec.rb#L234)
|
414
|
+
* [contains the error when state is failed](./spec/acceptance/realtime/connection_failures_spec.rb#L234)
|
415
|
+
* [is reset to nil when :connected](./spec/acceptance/realtime/connection_failures_spec.rb#L248)
|
416
|
+
* [is reset to nil when :closed](./spec/acceptance/realtime/connection_failures_spec.rb#L259)
|
277
417
|
* #connect
|
278
418
|
* connection opening times out
|
279
|
-
* [attempts to reconnect](./spec/acceptance/realtime/connection_failures_spec.rb#
|
280
|
-
* [calls the errback of the returned Deferrable object when first connection attempt fails](./spec/acceptance/realtime/connection_failures_spec.rb#L246)
|
419
|
+
* [attempts to reconnect](./spec/acceptance/realtime/connection_failures_spec.rb#L290)
|
281
420
|
* when retry intervals are stubbed to attempt reconnection quickly
|
282
|
-
* [never calls the provided success block](./spec/acceptance/realtime/connection_failures_spec.rb#
|
421
|
+
* [never calls the provided success block](./spec/acceptance/realtime/connection_failures_spec.rb#L314)
|
283
422
|
* connection resume
|
284
423
|
* when DISCONNECTED ProtocolMessage received from the server
|
285
|
-
* [reconnects automatically and immediately](./spec/acceptance/realtime/connection_failures_spec.rb#
|
424
|
+
* [reconnects automatically and immediately](./spec/acceptance/realtime/connection_failures_spec.rb#L345)
|
286
425
|
* and subsequently fails to reconnect
|
287
|
-
* [retries every 15 seconds](./spec/acceptance/realtime/connection_failures_spec.rb#
|
426
|
+
* [retries every 15 seconds](./spec/acceptance/realtime/connection_failures_spec.rb#L377)
|
288
427
|
* when websocket transport is closed
|
289
|
-
* [reconnects automatically](./spec/acceptance/realtime/connection_failures_spec.rb#
|
428
|
+
* [reconnects automatically](./spec/acceptance/realtime/connection_failures_spec.rb#L420)
|
290
429
|
* after successfully reconnecting and resuming
|
291
|
-
* [retains connection_id and connection_key](./spec/acceptance/realtime/connection_failures_spec.rb#
|
292
|
-
* [
|
430
|
+
* [retains connection_id and updates the connection_key](./spec/acceptance/realtime/connection_failures_spec.rb#L437)
|
431
|
+
* [emits any error received from Ably but leaves the channels attached](./spec/acceptance/realtime/connection_failures_spec.rb#L452)
|
432
|
+
* [retains channel subscription state](./spec/acceptance/realtime/connection_failures_spec.rb#L483)
|
293
433
|
* when messages were published whilst the client was disconnected
|
294
|
-
* [receives the messages published whilst offline](./spec/acceptance/realtime/connection_failures_spec.rb#
|
434
|
+
* [receives the messages published whilst offline](./spec/acceptance/realtime/connection_failures_spec.rb#L511)
|
295
435
|
* when failing to resume
|
296
436
|
* because the connection_key is not or no longer valid
|
297
|
-
* [updates the connection_id and connection_key](./spec/acceptance/realtime/connection_failures_spec.rb#
|
298
|
-
* [detaches all channels](./spec/acceptance/realtime/connection_failures_spec.rb#
|
299
|
-
* [emits an error on the channel and sets the error reason](./spec/acceptance/realtime/connection_failures_spec.rb#
|
437
|
+
* [updates the connection_id and connection_key](./spec/acceptance/realtime/connection_failures_spec.rb#L554)
|
438
|
+
* [detaches all channels](./spec/acceptance/realtime/connection_failures_spec.rb#L569)
|
439
|
+
* [emits an error on the channel and sets the error reason](./spec/acceptance/realtime/connection_failures_spec.rb#L589)
|
300
440
|
* fallback host feature
|
301
441
|
* with custom realtime websocket host option
|
302
|
-
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#
|
442
|
+
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#L629)
|
303
443
|
* with custom realtime websocket port option
|
304
|
-
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#
|
444
|
+
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#L647)
|
305
445
|
* with non-production environment
|
306
|
-
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#
|
446
|
+
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#L666)
|
307
447
|
* with production environment
|
308
448
|
* when the Internet is down
|
309
|
-
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#
|
449
|
+
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#L696)
|
310
450
|
* when the Internet is up
|
311
|
-
* [uses a fallback host on every subsequent disconnected attempt until suspended](./spec/acceptance/realtime/connection_failures_spec.rb#
|
312
|
-
* [uses the primary host when suspended, and a fallback host on every subsequent suspended attempt](./spec/acceptance/realtime/connection_failures_spec.rb#
|
451
|
+
* [uses a fallback host on every subsequent disconnected attempt until suspended](./spec/acceptance/realtime/connection_failures_spec.rb#L716)
|
452
|
+
* [uses the primary host when suspended, and a fallback host on every subsequent suspended attempt](./spec/acceptance/realtime/connection_failures_spec.rb#L735)
|
313
453
|
|
314
454
|
### Ably::Realtime::Connection
|
315
455
|
_(see [spec/acceptance/realtime/connection_spec.rb](./spec/acceptance/realtime/connection_spec.rb))_
|
316
|
-
* using JSON
|
456
|
+
* using JSON protocol
|
317
457
|
* intialization
|
318
458
|
* [connects automatically](./spec/acceptance/realtime/connection_spec.rb#L23)
|
319
459
|
* with :auto_connect option set to false
|
@@ -328,128 +468,163 @@ _(see [spec/acceptance/realtime/connection_spec.rb](./spec/acceptance/realtime/c
|
|
328
468
|
* [uses the token created by the implicit authorisation](./spec/acceptance/realtime/connection_spec.rb#L76)
|
329
469
|
* that expire
|
330
470
|
* opening a new connection
|
331
|
-
* with
|
332
|
-
* [renews
|
333
|
-
* with immediately
|
334
|
-
* [renews the token on connect, and
|
335
|
-
*
|
471
|
+
* with almost expired tokens
|
472
|
+
* [renews token every time after it expires](./spec/acceptance/realtime/connection_spec.rb#L110)
|
473
|
+
* with immediately expired token
|
474
|
+
* [renews the token on connect, and makes one immediate subsequent attempt to obtain a new token](./spec/acceptance/realtime/connection_spec.rb#L140)
|
475
|
+
* when disconnected_retry_timeout is 0.5 seconds
|
476
|
+
* [renews the token on connect, and continues to attempt renew based on the retry schedule](./spec/acceptance/realtime/connection_spec.rb#L155)
|
477
|
+
* using implicit token auth
|
478
|
+
* [uses the primary host for subsequent connection and auth requests](./spec/acceptance/realtime/connection_spec.rb#L177)
|
336
479
|
* when connected with a valid non-expired token
|
337
480
|
* that then expires following the connection being opened
|
338
|
-
* PENDING: *[retains connection state](./spec/acceptance/realtime/connection_spec.rb#L193)*
|
339
|
-
* PENDING: *[changes state to failed if a new token cannot be issued](./spec/acceptance/realtime/connection_spec.rb#L194)*
|
340
481
|
* the server
|
341
|
-
* [disconnects the client, and the client automatically renews the token and then reconnects](./spec/acceptance/realtime/connection_spec.rb#
|
482
|
+
* [disconnects the client, and the client automatically renews the token and then reconnects](./spec/acceptance/realtime/connection_spec.rb#L204)
|
483
|
+
* connection state
|
484
|
+
* [retains messages published when disconnected twice during authentication](./spec/acceptance/realtime/connection_spec.rb#L273)
|
485
|
+
* and subsequent token is invalid
|
486
|
+
* [transitions the connection to the failed state](./spec/acceptance/realtime/connection_spec.rb#L302)
|
342
487
|
* for non-renewable tokens
|
343
488
|
* that are expired
|
344
489
|
* opening a new connection
|
345
|
-
* [transitions state to failed](./spec/acceptance/realtime/connection_spec.rb#
|
490
|
+
* [transitions state to failed](./spec/acceptance/realtime/connection_spec.rb#L331)
|
346
491
|
* when connected
|
347
|
-
* PENDING: *[transitions state to failed](./spec/acceptance/realtime/connection_spec.rb#
|
492
|
+
* PENDING: *[transitions state to failed](./spec/acceptance/realtime/connection_spec.rb#L344)*
|
493
|
+
* with opaque token string that contain an implicit client_id
|
494
|
+
* string
|
495
|
+
* [sets the Client#client_id and Auth#client_id once CONNECTED](./spec/acceptance/realtime/connection_spec.rb#L357)
|
496
|
+
* that is incompatible with the current client client_id
|
497
|
+
* [fails the connection](./spec/acceptance/realtime/connection_spec.rb#L369)
|
498
|
+
* wildcard
|
499
|
+
* [configures the Client#client_id and Auth#client_id with a wildcard once CONNECTED](./spec/acceptance/realtime/connection_spec.rb#L383)
|
348
500
|
* initialization state changes
|
349
501
|
* with implicit #connect
|
350
|
-
* [are emitted in order](./spec/acceptance/realtime/connection_spec.rb#
|
502
|
+
* [are emitted in order](./spec/acceptance/realtime/connection_spec.rb#L415)
|
351
503
|
* with explicit #connect
|
352
|
-
* [are emitted in order](./spec/acceptance/realtime/connection_spec.rb#
|
504
|
+
* [are emitted in order](./spec/acceptance/realtime/connection_spec.rb#L421)
|
353
505
|
* #connect
|
354
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#
|
355
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#
|
506
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#L429)
|
507
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#L434)
|
508
|
+
* [calls the provided block on success even if state changes to disconnected first](./spec/acceptance/realtime/connection_spec.rb#L441)
|
509
|
+
* with invalid auth details
|
510
|
+
* [calls the Deferrable errback only once on connection failure](./spec/acceptance/realtime/connection_spec.rb#L470)
|
356
511
|
* when already connected
|
357
|
-
* [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#
|
512
|
+
* [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#L486)
|
358
513
|
* connection#id
|
359
|
-
* [is null before connecting](./spec/acceptance/realtime/connection_spec.rb#
|
514
|
+
* [is null before connecting](./spec/acceptance/realtime/connection_spec.rb#L500)
|
360
515
|
* connection#key
|
361
|
-
* [is null before connecting](./spec/acceptance/realtime/connection_spec.rb#
|
516
|
+
* [is null before connecting](./spec/acceptance/realtime/connection_spec.rb#L507)
|
362
517
|
* once connected
|
363
518
|
* connection#id
|
364
|
-
* [is a string](./spec/acceptance/realtime/connection_spec.rb#
|
365
|
-
* [is unique from the connection#key](./spec/acceptance/realtime/connection_spec.rb#
|
366
|
-
* [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#
|
519
|
+
* [is a string](./spec/acceptance/realtime/connection_spec.rb#L518)
|
520
|
+
* [is unique from the connection#key](./spec/acceptance/realtime/connection_spec.rb#L525)
|
521
|
+
* [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#L532)
|
367
522
|
* connection#key
|
368
|
-
* [is a string](./spec/acceptance/realtime/connection_spec.rb#
|
369
|
-
* [is unique from the connection#id](./spec/acceptance/realtime/connection_spec.rb#
|
370
|
-
* [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#
|
523
|
+
* [is a string](./spec/acceptance/realtime/connection_spec.rb#L541)
|
524
|
+
* [is unique from the connection#id](./spec/acceptance/realtime/connection_spec.rb#L548)
|
525
|
+
* [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#L555)
|
371
526
|
* following a previous connection being opened and closed
|
372
|
-
* [reconnects and is provided with a new connection ID and connection key from the server](./spec/acceptance/realtime/connection_spec.rb#
|
527
|
+
* [reconnects and is provided with a new connection ID and connection key from the server](./spec/acceptance/realtime/connection_spec.rb#L565)
|
373
528
|
* when closing
|
374
|
-
* [raises an exception before the connection is closed](./spec/acceptance/realtime/connection_spec.rb#
|
529
|
+
* [raises an exception before the connection is closed](./spec/acceptance/realtime/connection_spec.rb#L582)
|
375
530
|
* #serial connection serial
|
376
|
-
* [is set to -1 when a new connection is opened](./spec/acceptance/realtime/connection_spec.rb#
|
377
|
-
* [is set to 0 when a message sent ACK is received](./spec/acceptance/realtime/connection_spec.rb#
|
378
|
-
* [is set to 1 when the second message sent ACK is received](./spec/acceptance/realtime/connection_spec.rb#
|
531
|
+
* [is set to -1 when a new connection is opened](./spec/acceptance/realtime/connection_spec.rb#L597)
|
532
|
+
* [is set to 0 when a message sent ACK is received](./spec/acceptance/realtime/connection_spec.rb#L618)
|
533
|
+
* [is set to 1 when the second message sent ACK is received](./spec/acceptance/realtime/connection_spec.rb#L625)
|
379
534
|
* when a message is sent but the ACK has not yet been received
|
380
|
-
* [the sent message msgSerial is 0 but the connection serial remains at -1](./spec/acceptance/realtime/connection_spec.rb#
|
535
|
+
* [the sent message msgSerial is 0 but the connection serial remains at -1](./spec/acceptance/realtime/connection_spec.rb#L605)
|
381
536
|
* #close
|
382
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#
|
383
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#
|
537
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#L636)
|
538
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#L643)
|
384
539
|
* when already closed
|
385
|
-
* [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#
|
540
|
+
* [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#L654)
|
386
541
|
* when connection state is
|
387
542
|
* :initialized
|
388
|
-
* [changes the connection state to :closing and then immediately :closed without sending a ProtocolMessage CLOSE](./spec/acceptance/realtime/connection_spec.rb#
|
543
|
+
* [changes the connection state to :closing and then immediately :closed without sending a ProtocolMessage CLOSE](./spec/acceptance/realtime/connection_spec.rb#L682)
|
389
544
|
* :connected
|
390
|
-
* [changes the connection state to :closing and waits for the server to confirm connection is :closed with a ProtocolMessage](./spec/acceptance/realtime/connection_spec.rb#
|
545
|
+
* [changes the connection state to :closing and waits for the server to confirm connection is :closed with a ProtocolMessage](./spec/acceptance/realtime/connection_spec.rb#L700)
|
391
546
|
* with an unresponsive connection
|
392
|
-
* [force closes the connection when a :closed ProtocolMessage response is not received](./spec/acceptance/realtime/connection_spec.rb#
|
547
|
+
* [force closes the connection when a :closed ProtocolMessage response is not received](./spec/acceptance/realtime/connection_spec.rb#L728)
|
393
548
|
* #ping
|
394
|
-
* [echoes a heart beat](./spec/acceptance/realtime/connection_spec.rb#
|
549
|
+
* [echoes a heart beat](./spec/acceptance/realtime/connection_spec.rb#L751)
|
395
550
|
* when not connected
|
396
|
-
* [raises an exception](./spec/acceptance/realtime/connection_spec.rb#
|
551
|
+
* [raises an exception](./spec/acceptance/realtime/connection_spec.rb#L761)
|
397
552
|
* with a success block that raises an exception
|
398
|
-
* [catches the exception and logs the error](./spec/acceptance/realtime/connection_spec.rb#
|
553
|
+
* [catches the exception and logs the error](./spec/acceptance/realtime/connection_spec.rb#L768)
|
554
|
+
* when ping times out
|
555
|
+
* [logs a warning](./spec/acceptance/realtime/connection_spec.rb#L781)
|
556
|
+
* [yields to the block with a nil value](./spec/acceptance/realtime/connection_spec.rb#L791)
|
557
|
+
* #details
|
558
|
+
* [is nil before connected](./spec/acceptance/realtime/connection_spec.rb#L806)
|
559
|
+
* [contains the ConnectionDetails object once connected](./spec/acceptance/realtime/connection_spec.rb#L813)
|
560
|
+
* [contains the new ConnectionDetails object once a subsequent connection is created](./spec/acceptance/realtime/connection_spec.rb#L822)
|
399
561
|
* recovery
|
400
562
|
* #recovery_key
|
401
|
-
* [is composed of connection key and serial that is kept up to date with each message ACK received](./spec/acceptance/realtime/connection_spec.rb#
|
402
|
-
* [is available when connection is in one of the states: connecting, connected, disconnected, suspended, failed](./spec/acceptance/realtime/connection_spec.rb#
|
403
|
-
* [is nil when connection is explicitly CLOSED](./spec/acceptance/realtime/connection_spec.rb#
|
563
|
+
* [is composed of connection key and serial that is kept up to date with each message ACK received](./spec/acceptance/realtime/connection_spec.rb#L864)
|
564
|
+
* [is available when connection is in one of the states: connecting, connected, disconnected, suspended, failed](./spec/acceptance/realtime/connection_spec.rb#L887)
|
565
|
+
* [is nil when connection is explicitly CLOSED](./spec/acceptance/realtime/connection_spec.rb#L916)
|
404
566
|
* opening a new connection using a recently disconnected connection's #recovery_key
|
405
567
|
* connection#id and connection#key after recovery
|
406
|
-
* [remains the same](./spec/acceptance/realtime/connection_spec.rb#
|
568
|
+
* [remains the same for id and party for key](./spec/acceptance/realtime/connection_spec.rb#L928)
|
407
569
|
* when messages have been sent whilst the old connection is disconnected
|
408
570
|
* the new connection
|
409
|
-
* [recovers server-side queued messages](./spec/acceptance/realtime/connection_spec.rb#
|
571
|
+
* [recovers server-side queued messages](./spec/acceptance/realtime/connection_spec.rb#L970)
|
410
572
|
* with :recover option
|
411
573
|
* with invalid syntax
|
412
|
-
* [raises an exception](./spec/acceptance/realtime/connection_spec.rb#
|
574
|
+
* [raises an exception](./spec/acceptance/realtime/connection_spec.rb#L996)
|
413
575
|
* with invalid formatted value sent to server
|
414
|
-
* [emits a fatal error on the connection object, sets the #error_reason and disconnects](./spec/acceptance/realtime/connection_spec.rb#
|
576
|
+
* [emits a fatal error on the connection object, sets the #error_reason and disconnects](./spec/acceptance/realtime/connection_spec.rb#L1005)
|
415
577
|
* with expired (missing) value sent to server
|
416
|
-
* [emits an error on the connection object, sets the #error_reason, yet will connect anyway](./spec/acceptance/realtime/connection_spec.rb#
|
578
|
+
* [emits an error on the connection object, sets the #error_reason, yet will connect anyway](./spec/acceptance/realtime/connection_spec.rb#L1020)
|
417
579
|
* with many connections simultaneously
|
418
|
-
* [opens each with a unique connection#id and connection#key](./spec/acceptance/realtime/connection_spec.rb#
|
580
|
+
* [opens each with a unique connection#id and connection#key](./spec/acceptance/realtime/connection_spec.rb#L1039)
|
419
581
|
* when a state transition is unsupported
|
420
|
-
* [emits a InvalidStateChange](./spec/acceptance/realtime/connection_spec.rb#
|
582
|
+
* [emits a InvalidStateChange](./spec/acceptance/realtime/connection_spec.rb#L1059)
|
421
583
|
* protocol failure
|
422
584
|
* receiving an invalid ProtocolMessage
|
423
|
-
* [emits an error on the connection and logs a fatal error message](./spec/acceptance/realtime/connection_spec.rb#
|
585
|
+
* [emits an error on the connection and logs a fatal error message](./spec/acceptance/realtime/connection_spec.rb#L1075)
|
424
586
|
* undocumented method
|
425
587
|
* #internet_up?
|
426
|
-
* [returns a Deferrable](./spec/acceptance/realtime/connection_spec.rb#
|
588
|
+
* [returns a Deferrable](./spec/acceptance/realtime/connection_spec.rb#L1091)
|
427
589
|
* internet up URL protocol
|
428
590
|
* when using TLS for the connection
|
429
|
-
* [uses TLS for the Internet check to https://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#
|
591
|
+
* [uses TLS for the Internet check to https://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#L1102)
|
430
592
|
* when using a non-secured connection
|
431
|
-
* [uses TLS for the Internet check to http://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#
|
593
|
+
* [uses TLS for the Internet check to http://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#L1112)
|
432
594
|
* when the Internet is up
|
433
|
-
* [calls the block with true](./spec/acceptance/realtime/connection_spec.rb#
|
434
|
-
* [calls the success callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#
|
595
|
+
* [calls the block with true](./spec/acceptance/realtime/connection_spec.rb#L1143)
|
596
|
+
* [calls the success callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#L1150)
|
435
597
|
* with a TLS connection
|
436
|
-
* [checks the Internet up URL over TLS](./spec/acceptance/realtime/connection_spec.rb#
|
598
|
+
* [checks the Internet up URL over TLS](./spec/acceptance/realtime/connection_spec.rb#L1126)
|
437
599
|
* with a non-TLS connection
|
438
|
-
* [checks the Internet up URL over TLS](./spec/acceptance/realtime/connection_spec.rb#
|
600
|
+
* [checks the Internet up URL over TLS](./spec/acceptance/realtime/connection_spec.rb#L1136)
|
439
601
|
* when the Internet is down
|
440
|
-
* [calls the block with false](./spec/acceptance/realtime/connection_spec.rb#
|
441
|
-
* [calls the failure callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#
|
602
|
+
* [calls the block with false](./spec/acceptance/realtime/connection_spec.rb#L1165)
|
603
|
+
* [calls the failure callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#L1172)
|
442
604
|
* state change side effects
|
443
605
|
* when connection enters the :disconnected state
|
444
|
-
* [queues messages to be sent and all channels remain attached](./spec/acceptance/realtime/connection_spec.rb#
|
606
|
+
* [queues messages to be sent and all channels remain attached](./spec/acceptance/realtime/connection_spec.rb#L1186)
|
445
607
|
* when connection enters the :suspended state
|
446
|
-
* [detaches the channels and prevents publishing of messages on those channels](./spec/acceptance/realtime/connection_spec.rb#
|
608
|
+
* [detaches the channels and prevents publishing of messages on those channels](./spec/acceptance/realtime/connection_spec.rb#L1219)
|
447
609
|
* when connection enters the :failed state
|
448
|
-
* [sets all channels to failed and prevents publishing of messages on those channels](./spec/acceptance/realtime/connection_spec.rb#
|
610
|
+
* [sets all channels to failed and prevents publishing of messages on those channels](./spec/acceptance/realtime/connection_spec.rb#L1248)
|
611
|
+
* connection state change
|
612
|
+
* [emits a ConnectionStateChange object](./spec/acceptance/realtime/connection_spec.rb#L1259)
|
613
|
+
* ConnectionStateChange object
|
614
|
+
* [has current state](./spec/acceptance/realtime/connection_spec.rb#L1267)
|
615
|
+
* [has a previous state](./spec/acceptance/realtime/connection_spec.rb#L1274)
|
616
|
+
* [has an empty reason when there is no error](./spec/acceptance/realtime/connection_spec.rb#L1289)
|
617
|
+
* on failure
|
618
|
+
* [has a reason Error object when there is an error on the connection](./spec/acceptance/realtime/connection_spec.rb#L1302)
|
619
|
+
* retry_in
|
620
|
+
* [is nil when a retry is not required](./spec/acceptance/realtime/connection_spec.rb#L1317)
|
621
|
+
* [is 0 when first attempt to connect fails](./spec/acceptance/realtime/connection_spec.rb#L1324)
|
622
|
+
* [is 0 when an immediate reconnect will occur](./spec/acceptance/realtime/connection_spec.rb#L1334)
|
623
|
+
* [contains the next retry period when an immediate reconnect will not occur](./spec/acceptance/realtime/connection_spec.rb#L1344)
|
449
624
|
|
450
625
|
### Ably::Realtime::Channel Message
|
451
626
|
_(see [spec/acceptance/realtime/message_spec.rb](./spec/acceptance/realtime/message_spec.rb))_
|
452
|
-
* using JSON
|
627
|
+
* using JSON protocol
|
453
628
|
* [sends a String data payload](./spec/acceptance/realtime/message_spec.rb#L25)
|
454
629
|
* with supported data payload content type
|
455
630
|
* JSON Object (Hash)
|
@@ -472,444 +647,538 @@ _(see [spec/acceptance/realtime/message_spec.rb](./spec/acceptance/realtime/mess
|
|
472
647
|
* with ASCII_8BIT message name
|
473
648
|
* [is converted into UTF_8](./spec/acceptance/realtime/message_spec.rb#L118)
|
474
649
|
* when the message publisher has a client_id
|
475
|
-
*
|
650
|
+
* [contains a #client_id attribute](./spec/acceptance/realtime/message_spec.rb#L134)
|
476
651
|
* #connection_id attribute
|
477
652
|
* over realtime
|
478
|
-
* [matches the sender connection#id](./spec/acceptance/realtime/message_spec.rb#
|
653
|
+
* [matches the sender connection#id](./spec/acceptance/realtime/message_spec.rb#L147)
|
479
654
|
* when retrieved over REST
|
480
|
-
* [matches the sender connection#id](./spec/acceptance/realtime/message_spec.rb#
|
655
|
+
* [matches the sender connection#id](./spec/acceptance/realtime/message_spec.rb#L159)
|
481
656
|
* local echo when published
|
482
|
-
* [is enabled by default](./spec/acceptance/realtime/message_spec.rb#
|
657
|
+
* [is enabled by default](./spec/acceptance/realtime/message_spec.rb#L171)
|
483
658
|
* with :echo_messages option set to false
|
484
|
-
* [will not echo messages to the client but will still broadcast messages to other connected clients](./spec/acceptance/realtime/message_spec.rb#
|
659
|
+
* [will not echo messages to the client but will still broadcast messages to other connected clients](./spec/acceptance/realtime/message_spec.rb#L191)
|
660
|
+
* [will not echo messages to the client from other REST clients publishing using that connection_key](./spec/acceptance/realtime/message_spec.rb#L210)
|
661
|
+
* [will echo messages with a valid connection_id to the client from other REST clients publishing using that connection_key](./spec/acceptance/realtime/message_spec.rb#L223)
|
485
662
|
* publishing lots of messages across two connections
|
486
|
-
* [sends and receives the messages on both opened connections and calls the success callbacks for each message published](./spec/acceptance/realtime/message_spec.rb#
|
663
|
+
* [sends and receives the messages on both opened connections and calls the success callbacks for each message published](./spec/acceptance/realtime/message_spec.rb#L249)
|
487
664
|
* without suitable publishing permissions
|
488
|
-
* [calls the error callback](./spec/acceptance/realtime/message_spec.rb#
|
665
|
+
* [calls the error callback](./spec/acceptance/realtime/message_spec.rb#L294)
|
489
666
|
* server incorrectly resends a message that was already received by the client library
|
490
|
-
* [discards the message and logs it as an error to the channel](./spec/acceptance/realtime/message_spec.rb#
|
667
|
+
* [discards the message and logs it as an error to the channel](./spec/acceptance/realtime/message_spec.rb#L313)
|
491
668
|
* encoding and decoding encrypted messages
|
492
669
|
* with AES-128-CBC using crypto-data-128.json fixtures
|
493
670
|
* item 0 with encrypted encoding utf-8/cipher+aes-128-cbc/base64
|
494
671
|
* behaves like an Ably encrypter and decrypter
|
495
672
|
* with #publish and #subscribe
|
496
|
-
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#
|
497
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#
|
673
|
+
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#L377)
|
674
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#L395)
|
498
675
|
* item 1 with encrypted encoding cipher+aes-128-cbc/base64
|
499
676
|
* behaves like an Ably encrypter and decrypter
|
500
677
|
* with #publish and #subscribe
|
501
|
-
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#
|
502
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#
|
678
|
+
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#L377)
|
679
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#L395)
|
503
680
|
* item 2 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
|
504
681
|
* behaves like an Ably encrypter and decrypter
|
505
682
|
* with #publish and #subscribe
|
506
|
-
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#
|
507
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#
|
683
|
+
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#L377)
|
684
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#L395)
|
508
685
|
* item 3 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
|
509
686
|
* behaves like an Ably encrypter and decrypter
|
510
687
|
* with #publish and #subscribe
|
511
|
-
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#
|
512
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#
|
688
|
+
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#L377)
|
689
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#L395)
|
513
690
|
* with AES-256-CBC using crypto-data-256.json fixtures
|
514
691
|
* item 0 with encrypted encoding utf-8/cipher+aes-256-cbc/base64
|
515
692
|
* behaves like an Ably encrypter and decrypter
|
516
693
|
* with #publish and #subscribe
|
517
|
-
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#
|
518
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#
|
694
|
+
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#L377)
|
695
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#L395)
|
519
696
|
* item 1 with encrypted encoding cipher+aes-256-cbc/base64
|
520
697
|
* behaves like an Ably encrypter and decrypter
|
521
698
|
* with #publish and #subscribe
|
522
|
-
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#
|
523
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#
|
699
|
+
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#L377)
|
700
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#L395)
|
524
701
|
* item 2 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
|
525
702
|
* behaves like an Ably encrypter and decrypter
|
526
703
|
* with #publish and #subscribe
|
527
|
-
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#
|
528
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#
|
704
|
+
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#L377)
|
705
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#L395)
|
529
706
|
* item 3 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
|
530
707
|
* behaves like an Ably encrypter and decrypter
|
531
708
|
* with #publish and #subscribe
|
532
|
-
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#
|
533
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#
|
709
|
+
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#L377)
|
710
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#L395)
|
534
711
|
* with multiple sends from one client to another
|
535
|
-
* [encrypts and decrypts all messages](./spec/acceptance/realtime/message_spec.rb#
|
712
|
+
* [encrypts and decrypts all messages](./spec/acceptance/realtime/message_spec.rb#L434)
|
713
|
+
* [receives raw messages with the correct encoding](./spec/acceptance/realtime/message_spec.rb#L451)
|
536
714
|
* subscribing with a different transport protocol
|
537
|
-
* [delivers a String ASCII-8BIT payload to the receiver](./spec/acceptance/realtime/message_spec.rb#
|
538
|
-
* [delivers a String UTF-8 payload to the receiver](./spec/acceptance/realtime/message_spec.rb#
|
539
|
-
* [delivers a Hash payload to the receiver](./spec/acceptance/realtime/message_spec.rb#
|
715
|
+
* [delivers a String ASCII-8BIT payload to the receiver](./spec/acceptance/realtime/message_spec.rb#L485)
|
716
|
+
* [delivers a String UTF-8 payload to the receiver](./spec/acceptance/realtime/message_spec.rb#L485)
|
717
|
+
* [delivers a Hash payload to the receiver](./spec/acceptance/realtime/message_spec.rb#L485)
|
540
718
|
* publishing on an unencrypted channel and subscribing on an encrypted channel with another client
|
541
|
-
* [does not attempt to decrypt the message](./spec/acceptance/realtime/message_spec.rb#
|
719
|
+
* [does not attempt to decrypt the message](./spec/acceptance/realtime/message_spec.rb#L504)
|
542
720
|
* publishing on an encrypted channel and subscribing on an unencrypted channel with another client
|
543
|
-
* [delivers the message but still encrypted with a value in the #encoding attribute](./spec/acceptance/realtime/message_spec.rb#
|
544
|
-
* [emits a Cipher error on the channel](./spec/acceptance/realtime/message_spec.rb#
|
721
|
+
* [delivers the message but still encrypted with a value in the #encoding attribute](./spec/acceptance/realtime/message_spec.rb#L522)
|
722
|
+
* [emits a Cipher error on the channel](./spec/acceptance/realtime/message_spec.rb#L531)
|
545
723
|
* publishing on an encrypted channel and subscribing with a different algorithm on another client
|
546
|
-
* [delivers the message but still encrypted with the cipher detials in the #encoding attribute](./spec/acceptance/realtime/message_spec.rb#
|
547
|
-
* [emits a Cipher error on the channel](./spec/acceptance/realtime/message_spec.rb#
|
724
|
+
* [delivers the message but still encrypted with the cipher detials in the #encoding attribute](./spec/acceptance/realtime/message_spec.rb#L553)
|
725
|
+
* [emits a Cipher error on the channel](./spec/acceptance/realtime/message_spec.rb#L562)
|
548
726
|
* publishing on an encrypted channel and subscribing with a different key on another client
|
549
|
-
* [delivers the message but still encrypted with the cipher details in the #encoding attribute](./spec/acceptance/realtime/message_spec.rb#
|
550
|
-
* [emits a Cipher error on the channel](./spec/acceptance/realtime/message_spec.rb#
|
727
|
+
* [delivers the message but still encrypted with the cipher details in the #encoding attribute](./spec/acceptance/realtime/message_spec.rb#L584)
|
728
|
+
* [emits a Cipher error on the channel](./spec/acceptance/realtime/message_spec.rb#L595)
|
729
|
+
* when message is published, the connection disconnects before the ACK is received, and the connection is resumed
|
730
|
+
* [publishes the message again, later receives the ACK and only one message is ever received from Ably](./spec/acceptance/realtime/message_spec.rb#L616)
|
731
|
+
* when message is published, the connection disconnects before the ACK is received
|
732
|
+
* the connection is not resumed
|
733
|
+
* [calls the errback for all messages](./spec/acceptance/realtime/message_spec.rb#L659)
|
734
|
+
* the connection becomes suspended
|
735
|
+
* [calls the errback for all messages](./spec/acceptance/realtime/message_spec.rb#L685)
|
736
|
+
* the connection becomes failed
|
737
|
+
* [calls the errback for all messages](./spec/acceptance/realtime/message_spec.rb#L712)
|
551
738
|
|
552
739
|
### Ably::Realtime::Presence history
|
553
740
|
_(see [spec/acceptance/realtime/presence_history_spec.rb](./spec/acceptance/realtime/presence_history_spec.rb))_
|
554
|
-
* using JSON
|
741
|
+
* using JSON protocol
|
555
742
|
* [provides up to the moment presence history](./spec/acceptance/realtime/presence_history_spec.rb#L21)
|
556
743
|
* [ensures REST presence history message IDs match ProtocolMessage wrapped message and connection IDs via Realtime](./spec/acceptance/realtime/presence_history_spec.rb#L42)
|
557
744
|
* with option until_attach: true
|
558
745
|
* [retrieves all presence messages before channel was attached](./spec/acceptance/realtime/presence_history_spec.rb#L61)
|
559
|
-
* [raises an exception unless state is attached](./spec/acceptance/realtime/presence_history_spec.rb#
|
746
|
+
* [raises an exception unless state is attached](./spec/acceptance/realtime/presence_history_spec.rb#L97)
|
560
747
|
* and two pages of messages
|
561
|
-
* [retrieves two pages of messages before channel was attached](./spec/acceptance/realtime/presence_history_spec.rb#
|
748
|
+
* [retrieves two pages of messages before channel was attached](./spec/acceptance/realtime/presence_history_spec.rb#L78)
|
562
749
|
|
563
750
|
### Ably::Realtime::Presence
|
564
751
|
_(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/presence_spec.rb))_
|
565
|
-
* using JSON
|
752
|
+
* using JSON protocol
|
566
753
|
* when attached (but not present) on a presence channel with an anonymous client (no client ID)
|
567
|
-
* [maintains state as other clients enter and leave the channel](./spec/acceptance/realtime/presence_spec.rb#
|
754
|
+
* [maintains state as other clients enter and leave the channel](./spec/acceptance/realtime/presence_spec.rb#L412)
|
568
755
|
* #sync_complete?
|
569
756
|
* when attaching to a channel without any members present
|
570
|
-
* [is true and the presence channel is considered synced immediately](./spec/acceptance/realtime/presence_spec.rb#
|
757
|
+
* [is true and the presence channel is considered synced immediately](./spec/acceptance/realtime/presence_spec.rb#L488)
|
571
758
|
* when attaching to a channel with members present
|
572
|
-
* [is false and the presence channel will subsequently be synced](./spec/acceptance/realtime/presence_spec.rb#
|
759
|
+
* [is false and the presence channel will subsequently be synced](./spec/acceptance/realtime/presence_spec.rb#L497)
|
573
760
|
* 250 existing (present) members on a channel (3 SYNC pages)
|
574
761
|
* requires at least 3 SYNC ProtocolMessages
|
575
762
|
* when a client attaches to the presence channel
|
576
|
-
* [emits :present for each member](./spec/acceptance/realtime/presence_spec.rb#
|
763
|
+
* [emits :present for each member](./spec/acceptance/realtime/presence_spec.rb#L533)
|
577
764
|
* and a member leaves before the SYNC operation is complete
|
578
|
-
* [emits :leave immediately as the member leaves](./spec/acceptance/realtime/presence_spec.rb#
|
579
|
-
* [ignores presence events with timestamps prior to the current :present event in the MembersMap](./spec/acceptance/realtime/presence_spec.rb#
|
580
|
-
* [does not emit :present after the :leave event has been emitted, and that member is not included in the list of members via #get with :wait_for_sync](./spec/acceptance/realtime/presence_spec.rb#
|
765
|
+
* [emits :leave immediately as the member leaves](./spec/acceptance/realtime/presence_spec.rb#L547)
|
766
|
+
* [ignores presence events with timestamps prior to the current :present event in the MembersMap](./spec/acceptance/realtime/presence_spec.rb#L588)
|
767
|
+
* [does not emit :present after the :leave event has been emitted, and that member is not included in the list of members via #get with :wait_for_sync](./spec/acceptance/realtime/presence_spec.rb#L630)
|
581
768
|
* #get
|
582
769
|
* with :wait_for_sync option set to true
|
583
|
-
* [waits until sync is complete](./spec/acceptance/realtime/presence_spec.rb#
|
770
|
+
* [waits until sync is complete](./spec/acceptance/realtime/presence_spec.rb#L680)
|
584
771
|
* by default
|
585
|
-
* [it does not wait for sync](./spec/acceptance/realtime/presence_spec.rb#
|
772
|
+
* [it does not wait for sync](./spec/acceptance/realtime/presence_spec.rb#L699)
|
586
773
|
* state
|
587
774
|
* once opened
|
588
|
-
* [once opened, enters the :left state if the channel detaches](./spec/acceptance/realtime/presence_spec.rb#
|
775
|
+
* [once opened, enters the :left state if the channel detaches](./spec/acceptance/realtime/presence_spec.rb#L725)
|
589
776
|
* #enter
|
590
|
-
* [allows client_id to be set on enter for anonymous clients](./spec/acceptance/realtime/presence_spec.rb#L601)
|
591
|
-
* [raises an exception if client_id is not set](./spec/acceptance/realtime/presence_spec.rb#L648)
|
592
777
|
* data attribute
|
593
778
|
* when provided as argument option to #enter
|
594
|
-
* [
|
779
|
+
* [changes to value provided in #leave](./spec/acceptance/realtime/presence_spec.rb#L750)
|
595
780
|
* message #connection_id
|
596
|
-
* [matches the current client connection_id](./spec/acceptance/realtime/presence_spec.rb#
|
781
|
+
* [matches the current client connection_id](./spec/acceptance/realtime/presence_spec.rb#L774)
|
597
782
|
* without necessary capabilities to join presence
|
598
|
-
* [calls the Deferrable errback on capabilities failure](./spec/acceptance/realtime/presence_spec.rb#
|
783
|
+
* [calls the Deferrable errback on capabilities failure](./spec/acceptance/realtime/presence_spec.rb#L793)
|
599
784
|
* it should behave like a public presence method
|
600
|
-
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
601
|
-
* [raise an exception if the channel is failed](./spec/acceptance/realtime/presence_spec.rb#
|
602
|
-
* [implicitly attaches the channel](./spec/acceptance/realtime/presence_spec.rb#
|
603
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#
|
604
|
-
* [allows a block to be passed in that is executed upon success](./spec/acceptance/realtime/presence_spec.rb#
|
605
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#
|
606
|
-
* [catches exceptions in the provided method block and logs them to the logger](./spec/acceptance/realtime/presence_spec.rb#
|
785
|
+
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#L54)
|
786
|
+
* [raise an exception if the channel is failed](./spec/acceptance/realtime/presence_spec.rb#L66)
|
787
|
+
* [implicitly attaches the channel](./spec/acceptance/realtime/presence_spec.rb#L77)
|
788
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#L234)
|
789
|
+
* [allows a block to be passed in that is executed upon success](./spec/acceptance/realtime/presence_spec.rb#L241)
|
790
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#L249)
|
791
|
+
* [catches exceptions in the provided method block and logs them to the logger](./spec/acceptance/realtime/presence_spec.rb#L259)
|
607
792
|
* when :queue_messages client option is false
|
608
793
|
* and connection state initialized
|
609
|
-
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#
|
794
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L89)
|
610
795
|
* and connection state connecting
|
611
|
-
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#
|
796
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L97)
|
612
797
|
* and connection state disconnected
|
613
|
-
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#
|
798
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L110)
|
614
799
|
* and connection state connected
|
615
|
-
* [publishes the message](./spec/acceptance/realtime/presence_spec.rb#
|
800
|
+
* [publishes the message](./spec/acceptance/realtime/presence_spec.rb#L123)
|
616
801
|
* with supported data payload content type
|
617
802
|
* JSON Object (Hash)
|
618
|
-
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/presence_spec.rb#
|
803
|
+
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/presence_spec.rb#L150)
|
619
804
|
* JSON Array
|
620
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#
|
805
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L160)
|
621
806
|
* String
|
622
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#
|
807
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L170)
|
623
808
|
* Binary
|
624
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#
|
809
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L180)
|
625
810
|
* with unsupported data payload content type
|
626
811
|
* Integer
|
627
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
812
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L200)
|
628
813
|
* Float
|
629
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
814
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L209)
|
630
815
|
* Boolean
|
631
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
816
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L218)
|
632
817
|
* False
|
633
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
818
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L227)
|
634
819
|
* if connection fails before success
|
635
|
-
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
820
|
+
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L271)
|
636
821
|
* #update
|
637
|
-
* [without previous #enter automatically enters](./spec/acceptance/realtime/presence_spec.rb#
|
638
|
-
* [updates the data if :data argument provided](./spec/acceptance/realtime/presence_spec.rb#
|
639
|
-
* [updates the data to nil if :data argument is not provided (assumes nil value)](./spec/acceptance/realtime/presence_spec.rb#
|
822
|
+
* [without previous #enter automatically enters](./spec/acceptance/realtime/presence_spec.rb#L805)
|
823
|
+
* [updates the data if :data argument provided](./spec/acceptance/realtime/presence_spec.rb#L830)
|
824
|
+
* [updates the data to nil if :data argument is not provided (assumes nil value)](./spec/acceptance/realtime/presence_spec.rb#L840)
|
640
825
|
* when ENTERED
|
641
|
-
* [has no effect on the state](./spec/acceptance/realtime/presence_spec.rb#
|
826
|
+
* [has no effect on the state](./spec/acceptance/realtime/presence_spec.rb#L815)
|
642
827
|
* it should behave like a public presence method
|
643
|
-
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
644
|
-
* [raise an exception if the channel is failed](./spec/acceptance/realtime/presence_spec.rb#
|
645
|
-
* [implicitly attaches the channel](./spec/acceptance/realtime/presence_spec.rb#
|
646
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#
|
647
|
-
* [allows a block to be passed in that is executed upon success](./spec/acceptance/realtime/presence_spec.rb#
|
648
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#
|
649
|
-
* [catches exceptions in the provided method block and logs them to the logger](./spec/acceptance/realtime/presence_spec.rb#
|
828
|
+
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#L54)
|
829
|
+
* [raise an exception if the channel is failed](./spec/acceptance/realtime/presence_spec.rb#L66)
|
830
|
+
* [implicitly attaches the channel](./spec/acceptance/realtime/presence_spec.rb#L77)
|
831
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#L234)
|
832
|
+
* [allows a block to be passed in that is executed upon success](./spec/acceptance/realtime/presence_spec.rb#L241)
|
833
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#L249)
|
834
|
+
* [catches exceptions in the provided method block and logs them to the logger](./spec/acceptance/realtime/presence_spec.rb#L259)
|
650
835
|
* when :queue_messages client option is false
|
651
836
|
* and connection state initialized
|
652
|
-
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#
|
837
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L89)
|
653
838
|
* and connection state connecting
|
654
|
-
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#
|
839
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L97)
|
655
840
|
* and connection state disconnected
|
656
|
-
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#
|
841
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L110)
|
657
842
|
* and connection state connected
|
658
|
-
* [publishes the message](./spec/acceptance/realtime/presence_spec.rb#
|
843
|
+
* [publishes the message](./spec/acceptance/realtime/presence_spec.rb#L123)
|
659
844
|
* with supported data payload content type
|
660
845
|
* JSON Object (Hash)
|
661
|
-
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/presence_spec.rb#
|
846
|
+
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/presence_spec.rb#L150)
|
662
847
|
* JSON Array
|
663
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#
|
848
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L160)
|
664
849
|
* String
|
665
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#
|
850
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L170)
|
666
851
|
* Binary
|
667
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#
|
852
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L180)
|
668
853
|
* with unsupported data payload content type
|
669
854
|
* Integer
|
670
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
855
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L200)
|
671
856
|
* Float
|
672
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
857
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L209)
|
673
858
|
* Boolean
|
674
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
859
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L218)
|
675
860
|
* False
|
676
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
861
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L227)
|
677
862
|
* if connection fails before success
|
678
|
-
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
863
|
+
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L271)
|
679
864
|
* #leave
|
680
|
-
* [raises an exception if not entered](./spec/acceptance/realtime/presence_spec.rb#
|
865
|
+
* [raises an exception if not entered](./spec/acceptance/realtime/presence_spec.rb#L914)
|
681
866
|
* :data option
|
682
867
|
* when set to a string
|
683
|
-
* [emits the new data for the leave event](./spec/acceptance/realtime/presence_spec.rb#
|
868
|
+
* [emits the new data for the leave event](./spec/acceptance/realtime/presence_spec.rb#L859)
|
684
869
|
* when set to nil
|
685
|
-
* [emits
|
686
|
-
* when not passed as an argument
|
687
|
-
* [emits the
|
870
|
+
* [emits the last value for the data attribute when leaving](./spec/acceptance/realtime/presence_spec.rb#L872)
|
871
|
+
* when not passed as an argument (i.e. nil)
|
872
|
+
* [emits the previous value for the data attribute when leaving](./spec/acceptance/realtime/presence_spec.rb#L885)
|
688
873
|
* and sync is complete
|
689
|
-
* [does not cache members that have left](./spec/acceptance/realtime/presence_spec.rb#
|
874
|
+
* [does not cache members that have left](./spec/acceptance/realtime/presence_spec.rb#L898)
|
690
875
|
* it should behave like a public presence method
|
691
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#
|
692
|
-
* [allows a block to be passed in that is executed upon success](./spec/acceptance/realtime/presence_spec.rb#
|
693
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#
|
694
|
-
* [catches exceptions in the provided method block and logs them to the logger](./spec/acceptance/realtime/presence_spec.rb#
|
876
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#L234)
|
877
|
+
* [allows a block to be passed in that is executed upon success](./spec/acceptance/realtime/presence_spec.rb#L241)
|
878
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#L249)
|
879
|
+
* [catches exceptions in the provided method block and logs them to the logger](./spec/acceptance/realtime/presence_spec.rb#L259)
|
695
880
|
* with supported data payload content type
|
696
881
|
* JSON Object (Hash)
|
697
|
-
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/presence_spec.rb#
|
882
|
+
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/presence_spec.rb#L150)
|
698
883
|
* JSON Array
|
699
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#
|
884
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L160)
|
700
885
|
* String
|
701
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#
|
886
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L170)
|
702
887
|
* Binary
|
703
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#
|
888
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L180)
|
704
889
|
* with unsupported data payload content type
|
705
890
|
* Integer
|
706
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
891
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L200)
|
707
892
|
* Float
|
708
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
893
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L209)
|
709
894
|
* Boolean
|
710
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
895
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L218)
|
711
896
|
* False
|
712
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
897
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L227)
|
713
898
|
* if connection fails before success
|
714
|
-
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
899
|
+
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L271)
|
715
900
|
* :left event
|
716
|
-
* [emits the data defined in enter](./spec/acceptance/realtime/presence_spec.rb#
|
717
|
-
* [emits the data defined in update](./spec/acceptance/realtime/presence_spec.rb#
|
901
|
+
* [emits the data defined in enter](./spec/acceptance/realtime/presence_spec.rb#L923)
|
902
|
+
* [emits the data defined in update](./spec/acceptance/realtime/presence_spec.rb#L934)
|
718
903
|
* entering/updating/leaving presence state on behalf of another client_id
|
719
904
|
* #enter_client
|
720
905
|
* multiple times on the same channel with different client_ids
|
721
|
-
* [has no affect on the client's presence state and only enters on behalf of the provided client_id](./spec/acceptance/realtime/presence_spec.rb#
|
722
|
-
* [enters a channel and sets the data based on the provided :data option](./spec/acceptance/realtime/presence_spec.rb#
|
906
|
+
* [has no affect on the client's presence state and only enters on behalf of the provided client_id](./spec/acceptance/realtime/presence_spec.rb#L957)
|
907
|
+
* [enters a channel and sets the data based on the provided :data option](./spec/acceptance/realtime/presence_spec.rb#L971)
|
723
908
|
* message #connection_id
|
724
|
-
* [matches the current client connection_id](./spec/acceptance/realtime/presence_spec.rb#
|
909
|
+
* [matches the current client connection_id](./spec/acceptance/realtime/presence_spec.rb#L990)
|
910
|
+
* without necessary capabilities to enter on behalf of another client
|
911
|
+
* [calls the Deferrable errback on capabilities failure](./spec/acceptance/realtime/presence_spec.rb#L1010)
|
725
912
|
* it should behave like a public presence method
|
726
|
-
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
727
|
-
* [raise an exception if the channel is failed](./spec/acceptance/realtime/presence_spec.rb#
|
728
|
-
* [implicitly attaches the channel](./spec/acceptance/realtime/presence_spec.rb#
|
729
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#
|
730
|
-
* [allows a block to be passed in that is executed upon success](./spec/acceptance/realtime/presence_spec.rb#
|
731
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#
|
732
|
-
* [catches exceptions in the provided method block and logs them to the logger](./spec/acceptance/realtime/presence_spec.rb#
|
913
|
+
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#L54)
|
914
|
+
* [raise an exception if the channel is failed](./spec/acceptance/realtime/presence_spec.rb#L66)
|
915
|
+
* [implicitly attaches the channel](./spec/acceptance/realtime/presence_spec.rb#L77)
|
916
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#L234)
|
917
|
+
* [allows a block to be passed in that is executed upon success](./spec/acceptance/realtime/presence_spec.rb#L241)
|
918
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#L249)
|
919
|
+
* [catches exceptions in the provided method block and logs them to the logger](./spec/acceptance/realtime/presence_spec.rb#L259)
|
733
920
|
* when :queue_messages client option is false
|
734
921
|
* and connection state initialized
|
735
|
-
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#
|
922
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L89)
|
736
923
|
* and connection state connecting
|
737
|
-
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#
|
924
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L97)
|
738
925
|
* and connection state disconnected
|
739
|
-
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#
|
926
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L110)
|
740
927
|
* and connection state connected
|
741
|
-
* [publishes the message](./spec/acceptance/realtime/presence_spec.rb#
|
928
|
+
* [publishes the message](./spec/acceptance/realtime/presence_spec.rb#L123)
|
742
929
|
* with supported data payload content type
|
743
930
|
* JSON Object (Hash)
|
744
|
-
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/presence_spec.rb#
|
931
|
+
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/presence_spec.rb#L150)
|
745
932
|
* JSON Array
|
746
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#
|
933
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L160)
|
747
934
|
* String
|
748
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#
|
935
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L170)
|
749
936
|
* Binary
|
750
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#
|
937
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L180)
|
751
938
|
* with unsupported data payload content type
|
752
939
|
* Integer
|
753
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
940
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L200)
|
754
941
|
* Float
|
755
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
942
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L209)
|
756
943
|
* Boolean
|
757
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
944
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L218)
|
758
945
|
* False
|
759
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
946
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L227)
|
760
947
|
* if connection fails before success
|
761
|
-
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
762
|
-
*
|
763
|
-
*
|
948
|
+
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L271)
|
949
|
+
* it should behave like a presence on behalf of another client method
|
950
|
+
* :enter_client when authenticated with a wildcard client_id
|
951
|
+
* and a valid client_id
|
952
|
+
* [succeeds](./spec/acceptance/realtime/presence_spec.rb#L302)
|
953
|
+
* and a wildcard client_id
|
954
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L312)
|
955
|
+
* and an empty client_id
|
956
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L319)
|
957
|
+
* :enter_client when authenticated with a valid client_id
|
958
|
+
* and another invalid client_id
|
959
|
+
* before authentication
|
960
|
+
* [allows the operation and then Ably rejects the operation](./spec/acceptance/realtime/presence_spec.rb#L335)
|
961
|
+
* after authentication
|
962
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L344)
|
963
|
+
* and a wildcard client_id
|
964
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L354)
|
965
|
+
* and an empty client_id
|
966
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L361)
|
967
|
+
* :enter_client when anonymous and no client_id
|
968
|
+
* and another invalid client_id
|
969
|
+
* before authentication
|
970
|
+
* [allows the operation and then Ably rejects the operation](./spec/acceptance/realtime/presence_spec.rb#L377)
|
971
|
+
* after authentication
|
972
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L386)
|
973
|
+
* and a wildcard client_id
|
974
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L396)
|
975
|
+
* and an empty client_id
|
976
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L403)
|
764
977
|
* #update_client
|
765
978
|
* multiple times on the same channel with different client_ids
|
766
|
-
* [updates the data attribute for the member when :data option provided](./spec/acceptance/realtime/presence_spec.rb#
|
767
|
-
* [updates the data attribute to null for the member when :data option is not provided (assumed null)](./spec/acceptance/realtime/presence_spec.rb#
|
768
|
-
* [enters if not already entered](./spec/acceptance/realtime/presence_spec.rb#
|
979
|
+
* [updates the data attribute for the member when :data option provided](./spec/acceptance/realtime/presence_spec.rb#L1024)
|
980
|
+
* [updates the data attribute to null for the member when :data option is not provided (assumed null)](./spec/acceptance/realtime/presence_spec.rb#L1048)
|
981
|
+
* [enters if not already entered](./spec/acceptance/realtime/presence_spec.rb#L1060)
|
769
982
|
* it should behave like a public presence method
|
770
|
-
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
771
|
-
* [raise an exception if the channel is failed](./spec/acceptance/realtime/presence_spec.rb#
|
772
|
-
* [implicitly attaches the channel](./spec/acceptance/realtime/presence_spec.rb#
|
773
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#
|
774
|
-
* [allows a block to be passed in that is executed upon success](./spec/acceptance/realtime/presence_spec.rb#
|
775
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#
|
776
|
-
* [catches exceptions in the provided method block and logs them to the logger](./spec/acceptance/realtime/presence_spec.rb#
|
983
|
+
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#L54)
|
984
|
+
* [raise an exception if the channel is failed](./spec/acceptance/realtime/presence_spec.rb#L66)
|
985
|
+
* [implicitly attaches the channel](./spec/acceptance/realtime/presence_spec.rb#L77)
|
986
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#L234)
|
987
|
+
* [allows a block to be passed in that is executed upon success](./spec/acceptance/realtime/presence_spec.rb#L241)
|
988
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#L249)
|
989
|
+
* [catches exceptions in the provided method block and logs them to the logger](./spec/acceptance/realtime/presence_spec.rb#L259)
|
777
990
|
* when :queue_messages client option is false
|
778
991
|
* and connection state initialized
|
779
|
-
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#
|
992
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L89)
|
780
993
|
* and connection state connecting
|
781
|
-
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#
|
994
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L97)
|
782
995
|
* and connection state disconnected
|
783
|
-
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#
|
996
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L110)
|
784
997
|
* and connection state connected
|
785
|
-
* [publishes the message](./spec/acceptance/realtime/presence_spec.rb#
|
998
|
+
* [publishes the message](./spec/acceptance/realtime/presence_spec.rb#L123)
|
786
999
|
* with supported data payload content type
|
787
1000
|
* JSON Object (Hash)
|
788
|
-
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/presence_spec.rb#
|
1001
|
+
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/presence_spec.rb#L150)
|
789
1002
|
* JSON Array
|
790
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#
|
1003
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L160)
|
791
1004
|
* String
|
792
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#
|
1005
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L170)
|
793
1006
|
* Binary
|
794
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#
|
1007
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L180)
|
795
1008
|
* with unsupported data payload content type
|
796
1009
|
* Integer
|
797
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
1010
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L200)
|
798
1011
|
* Float
|
799
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
1012
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L209)
|
800
1013
|
* Boolean
|
801
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
1014
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L218)
|
802
1015
|
* False
|
803
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
1016
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L227)
|
804
1017
|
* if connection fails before success
|
805
|
-
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
1018
|
+
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L271)
|
1019
|
+
* it should behave like a presence on behalf of another client method
|
1020
|
+
* :update_client when authenticated with a wildcard client_id
|
1021
|
+
* and a valid client_id
|
1022
|
+
* [succeeds](./spec/acceptance/realtime/presence_spec.rb#L302)
|
1023
|
+
* and a wildcard client_id
|
1024
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L312)
|
1025
|
+
* and an empty client_id
|
1026
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L319)
|
1027
|
+
* :update_client when authenticated with a valid client_id
|
1028
|
+
* and another invalid client_id
|
1029
|
+
* before authentication
|
1030
|
+
* [allows the operation and then Ably rejects the operation](./spec/acceptance/realtime/presence_spec.rb#L335)
|
1031
|
+
* after authentication
|
1032
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L344)
|
1033
|
+
* and a wildcard client_id
|
1034
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L354)
|
1035
|
+
* and an empty client_id
|
1036
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L361)
|
1037
|
+
* :update_client when anonymous and no client_id
|
1038
|
+
* and another invalid client_id
|
1039
|
+
* before authentication
|
1040
|
+
* [allows the operation and then Ably rejects the operation](./spec/acceptance/realtime/presence_spec.rb#L377)
|
1041
|
+
* after authentication
|
1042
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L386)
|
1043
|
+
* and a wildcard client_id
|
1044
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L396)
|
1045
|
+
* and an empty client_id
|
1046
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L403)
|
806
1047
|
* #leave_client
|
807
1048
|
* leaves a channel
|
808
1049
|
* multiple times on the same channel with different client_ids
|
809
|
-
* [emits the :leave event for each client_id](./spec/acceptance/realtime/presence_spec.rb#
|
810
|
-
* [succeeds if that client_id has not previously entered the channel](./spec/acceptance/realtime/presence_spec.rb#
|
1050
|
+
* [emits the :leave event for each client_id](./spec/acceptance/realtime/presence_spec.rb#L1090)
|
1051
|
+
* [succeeds if that client_id has not previously entered the channel](./spec/acceptance/realtime/presence_spec.rb#L1114)
|
811
1052
|
* with a new value in :data option
|
812
|
-
* [emits the leave event with the new data value](./spec/acceptance/realtime/presence_spec.rb#
|
1053
|
+
* [emits the leave event with the new data value](./spec/acceptance/realtime/presence_spec.rb#L1138)
|
813
1054
|
* with a nil value in :data option
|
814
|
-
* [emits the leave event with the previous value as a convenience](./spec/acceptance/realtime/presence_spec.rb#
|
1055
|
+
* [emits the leave event with the previous value as a convenience](./spec/acceptance/realtime/presence_spec.rb#L1151)
|
815
1056
|
* with no :data option
|
816
|
-
* [emits the leave event with the previous value as a convenience](./spec/acceptance/realtime/presence_spec.rb#
|
1057
|
+
* [emits the leave event with the previous value as a convenience](./spec/acceptance/realtime/presence_spec.rb#L1164)
|
817
1058
|
* it should behave like a public presence method
|
818
|
-
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
819
|
-
* [raise an exception if the channel is failed](./spec/acceptance/realtime/presence_spec.rb#
|
820
|
-
* [implicitly attaches the channel](./spec/acceptance/realtime/presence_spec.rb#
|
821
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#
|
822
|
-
* [allows a block to be passed in that is executed upon success](./spec/acceptance/realtime/presence_spec.rb#
|
823
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#
|
824
|
-
* [catches exceptions in the provided method block and logs them to the logger](./spec/acceptance/realtime/presence_spec.rb#
|
1059
|
+
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#L54)
|
1060
|
+
* [raise an exception if the channel is failed](./spec/acceptance/realtime/presence_spec.rb#L66)
|
1061
|
+
* [implicitly attaches the channel](./spec/acceptance/realtime/presence_spec.rb#L77)
|
1062
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#L234)
|
1063
|
+
* [allows a block to be passed in that is executed upon success](./spec/acceptance/realtime/presence_spec.rb#L241)
|
1064
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#L249)
|
1065
|
+
* [catches exceptions in the provided method block and logs them to the logger](./spec/acceptance/realtime/presence_spec.rb#L259)
|
825
1066
|
* when :queue_messages client option is false
|
826
1067
|
* and connection state initialized
|
827
|
-
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#
|
1068
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L89)
|
828
1069
|
* and connection state connecting
|
829
|
-
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#
|
1070
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L97)
|
830
1071
|
* and connection state disconnected
|
831
|
-
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#
|
1072
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L110)
|
832
1073
|
* and connection state connected
|
833
|
-
* [publishes the message](./spec/acceptance/realtime/presence_spec.rb#
|
1074
|
+
* [publishes the message](./spec/acceptance/realtime/presence_spec.rb#L123)
|
834
1075
|
* with supported data payload content type
|
835
1076
|
* JSON Object (Hash)
|
836
|
-
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/presence_spec.rb#
|
1077
|
+
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/presence_spec.rb#L150)
|
837
1078
|
* JSON Array
|
838
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#
|
1079
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L160)
|
839
1080
|
* String
|
840
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#
|
1081
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L170)
|
841
1082
|
* Binary
|
842
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#
|
1083
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L180)
|
843
1084
|
* with unsupported data payload content type
|
844
1085
|
* Integer
|
845
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
1086
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L200)
|
846
1087
|
* Float
|
847
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
1088
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L209)
|
848
1089
|
* Boolean
|
849
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
1090
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L218)
|
850
1091
|
* False
|
851
|
-
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#
|
1092
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L227)
|
852
1093
|
* if connection fails before success
|
853
|
-
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
1094
|
+
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L271)
|
1095
|
+
* it should behave like a presence on behalf of another client method
|
1096
|
+
* :leave_client when authenticated with a wildcard client_id
|
1097
|
+
* and a valid client_id
|
1098
|
+
* [succeeds](./spec/acceptance/realtime/presence_spec.rb#L302)
|
1099
|
+
* and a wildcard client_id
|
1100
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L312)
|
1101
|
+
* and an empty client_id
|
1102
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L319)
|
1103
|
+
* :leave_client when authenticated with a valid client_id
|
1104
|
+
* and another invalid client_id
|
1105
|
+
* before authentication
|
1106
|
+
* [allows the operation and then Ably rejects the operation](./spec/acceptance/realtime/presence_spec.rb#L335)
|
1107
|
+
* after authentication
|
1108
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L344)
|
1109
|
+
* and a wildcard client_id
|
1110
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L354)
|
1111
|
+
* and an empty client_id
|
1112
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L361)
|
1113
|
+
* :leave_client when anonymous and no client_id
|
1114
|
+
* and another invalid client_id
|
1115
|
+
* before authentication
|
1116
|
+
* [allows the operation and then Ably rejects the operation](./spec/acceptance/realtime/presence_spec.rb#L377)
|
1117
|
+
* after authentication
|
1118
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L386)
|
1119
|
+
* and a wildcard client_id
|
1120
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L396)
|
1121
|
+
* and an empty client_id
|
1122
|
+
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L403)
|
854
1123
|
* #get
|
855
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#
|
856
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#
|
857
|
-
* [catches exceptions in the provided method block](./spec/acceptance/realtime/presence_spec.rb#
|
858
|
-
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
859
|
-
* [raise an exception if the channel is failed](./spec/acceptance/realtime/presence_spec.rb#
|
860
|
-
* [returns the current members on the channel](./spec/acceptance/realtime/presence_spec.rb#
|
861
|
-
* [filters by connection_id option if provided](./spec/acceptance/realtime/presence_spec.rb#
|
862
|
-
* [filters by client_id option if provided](./spec/acceptance/realtime/presence_spec.rb#
|
863
|
-
* [does not wait for SYNC to complete if :wait_for_sync option is false](./spec/acceptance/realtime/presence_spec.rb#
|
1124
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#L1183)
|
1125
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#L1188)
|
1126
|
+
* [catches exceptions in the provided method block](./spec/acceptance/realtime/presence_spec.rb#L1195)
|
1127
|
+
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#L1202)
|
1128
|
+
* [raise an exception if the channel is failed](./spec/acceptance/realtime/presence_spec.rb#L1212)
|
1129
|
+
* [returns the current members on the channel](./spec/acceptance/realtime/presence_spec.rb#L1292)
|
1130
|
+
* [filters by connection_id option if provided](./spec/acceptance/realtime/presence_spec.rb#L1307)
|
1131
|
+
* [filters by client_id option if provided](./spec/acceptance/realtime/presence_spec.rb#L1329)
|
1132
|
+
* [does not wait for SYNC to complete if :wait_for_sync option is false](./spec/acceptance/realtime/presence_spec.rb#L1353)
|
864
1133
|
* during a sync
|
865
1134
|
* when :wait_for_sync is true
|
866
|
-
* [fails if the connection fails](./spec/acceptance/realtime/presence_spec.rb#
|
867
|
-
* [fails if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
1135
|
+
* [fails if the connection fails](./spec/acceptance/realtime/presence_spec.rb#L1243)
|
1136
|
+
* [fails if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#L1266)
|
868
1137
|
* when a member enters and then leaves
|
869
|
-
* [has no members](./spec/acceptance/realtime/presence_spec.rb#
|
1138
|
+
* [has no members](./spec/acceptance/realtime/presence_spec.rb#L1363)
|
870
1139
|
* with lots of members on different clients
|
871
|
-
* [returns a complete list of members on all clients](./spec/acceptance/realtime/presence_spec.rb#
|
1140
|
+
* [returns a complete list of members on all clients](./spec/acceptance/realtime/presence_spec.rb#L1382)
|
872
1141
|
* #subscribe
|
873
|
-
* [implicitly attaches](./spec/acceptance/realtime/presence_spec.rb#
|
1142
|
+
* [implicitly attaches](./spec/acceptance/realtime/presence_spec.rb#L1457)
|
874
1143
|
* with no arguments
|
875
|
-
* [calls the callback for all presence events](./spec/acceptance/realtime/presence_spec.rb#
|
1144
|
+
* [calls the callback for all presence events](./spec/acceptance/realtime/presence_spec.rb#L1418)
|
876
1145
|
* with event name
|
877
|
-
* [calls the callback for specified presence event](./spec/acceptance/realtime/presence_spec.rb#
|
1146
|
+
* [calls the callback for specified presence event](./spec/acceptance/realtime/presence_spec.rb#L1438)
|
878
1147
|
* #unsubscribe
|
879
1148
|
* with no arguments
|
880
|
-
* [removes the callback for all presence events](./spec/acceptance/realtime/presence_spec.rb#
|
1149
|
+
* [removes the callback for all presence events](./spec/acceptance/realtime/presence_spec.rb#L1470)
|
881
1150
|
* with event name
|
882
|
-
* [removes the callback for specified presence event](./spec/acceptance/realtime/presence_spec.rb#
|
1151
|
+
* [removes the callback for specified presence event](./spec/acceptance/realtime/presence_spec.rb#L1488)
|
883
1152
|
* REST #get
|
884
|
-
* [returns current members](./spec/acceptance/realtime/presence_spec.rb#
|
885
|
-
* [returns no members once left](./spec/acceptance/realtime/presence_spec.rb#
|
1153
|
+
* [returns current members](./spec/acceptance/realtime/presence_spec.rb#L1507)
|
1154
|
+
* [returns no members once left](./spec/acceptance/realtime/presence_spec.rb#L1520)
|
886
1155
|
* client_id with ASCII_8BIT
|
887
1156
|
* in connection set up
|
888
|
-
* [is converted into UTF_8](./spec/acceptance/realtime/presence_spec.rb#
|
1157
|
+
* [is converted into UTF_8](./spec/acceptance/realtime/presence_spec.rb#L1537)
|
889
1158
|
* in channel options
|
890
|
-
* [is converted into UTF_8](./spec/acceptance/realtime/presence_spec.rb#
|
1159
|
+
* [is converted into UTF_8](./spec/acceptance/realtime/presence_spec.rb#L1550)
|
891
1160
|
* encoding and decoding of presence message data
|
892
|
-
* [encrypts presence message data](./spec/acceptance/realtime/presence_spec.rb#
|
1161
|
+
* [encrypts presence message data](./spec/acceptance/realtime/presence_spec.rb#L1576)
|
893
1162
|
* #subscribe
|
894
|
-
* [emits decrypted enter events](./spec/acceptance/realtime/presence_spec.rb#
|
895
|
-
* [emits decrypted update events](./spec/acceptance/realtime/presence_spec.rb#
|
896
|
-
* [emits previously set data for leave events](./spec/acceptance/realtime/presence_spec.rb#
|
1163
|
+
* [emits decrypted enter events](./spec/acceptance/realtime/presence_spec.rb#L1595)
|
1164
|
+
* [emits decrypted update events](./spec/acceptance/realtime/presence_spec.rb#L1607)
|
1165
|
+
* [emits previously set data for leave events](./spec/acceptance/realtime/presence_spec.rb#L1621)
|
897
1166
|
* #get
|
898
|
-
* [returns a list of members with decrypted data](./spec/acceptance/realtime/presence_spec.rb#
|
1167
|
+
* [returns a list of members with decrypted data](./spec/acceptance/realtime/presence_spec.rb#L1637)
|
899
1168
|
* REST #get
|
900
|
-
* [returns a list of members with decrypted data](./spec/acceptance/realtime/presence_spec.rb#
|
1169
|
+
* [returns a list of members with decrypted data](./spec/acceptance/realtime/presence_spec.rb#L1650)
|
901
1170
|
* when cipher settings do not match publisher
|
902
|
-
* [delivers an unencoded presence message left with encoding value](./spec/acceptance/realtime/presence_spec.rb#
|
903
|
-
* [emits an error when cipher does not match and presence data cannot be decoded](./spec/acceptance/realtime/presence_spec.rb#
|
1171
|
+
* [delivers an unencoded presence message left with encoding value](./spec/acceptance/realtime/presence_spec.rb#L1665)
|
1172
|
+
* [emits an error when cipher does not match and presence data cannot be decoded](./spec/acceptance/realtime/presence_spec.rb#L1678)
|
904
1173
|
* leaving
|
905
|
-
* [expect :left event once underlying connection is closed](./spec/acceptance/realtime/presence_spec.rb#
|
906
|
-
* [expect :left event with client data from enter event](./spec/acceptance/realtime/presence_spec.rb#
|
1174
|
+
* [expect :left event once underlying connection is closed](./spec/acceptance/realtime/presence_spec.rb#L1695)
|
1175
|
+
* [expect :left event with client data from enter event](./spec/acceptance/realtime/presence_spec.rb#L1705)
|
907
1176
|
* connection failure mid-way through a large member sync
|
908
|
-
* [resumes the SYNC operation](./spec/acceptance/realtime/presence_spec.rb#
|
1177
|
+
* [resumes the SYNC operation](./spec/acceptance/realtime/presence_spec.rb#L1724)
|
909
1178
|
|
910
1179
|
### Ably::Realtime::Client#stats
|
911
1180
|
_(see [spec/acceptance/realtime/stats_spec.rb](./spec/acceptance/realtime/stats_spec.rb))_
|
912
|
-
* using JSON
|
1181
|
+
* using JSON protocol
|
913
1182
|
* fetching stats
|
914
1183
|
* [returns a PaginatedResult](./spec/acceptance/realtime/stats_spec.rb#L10)
|
915
1184
|
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/stats_spec.rb#L29)
|
@@ -918,14 +1187,16 @@ _(see [spec/acceptance/realtime/stats_spec.rb](./spec/acceptance/realtime/stats_
|
|
918
1187
|
|
919
1188
|
### Ably::Realtime::Client#time
|
920
1189
|
_(see [spec/acceptance/realtime/time_spec.rb](./spec/acceptance/realtime/time_spec.rb))_
|
921
|
-
* using JSON
|
1190
|
+
* using JSON protocol
|
922
1191
|
* fetching the service time
|
923
1192
|
* [should return the service time as a Time object](./spec/acceptance/realtime/time_spec.rb#L10)
|
924
1193
|
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/time_spec.rb#L19)
|
1194
|
+
* with reconfigured HTTP timeout
|
1195
|
+
* [should raise a timeout exception](./spec/acceptance/realtime/time_spec.rb#L31)
|
925
1196
|
|
926
1197
|
### Ably::Auth
|
927
1198
|
_(see [spec/acceptance/rest/auth_spec.rb](./spec/acceptance/rest/auth_spec.rb))_
|
928
|
-
* using JSON
|
1199
|
+
* using JSON protocol
|
929
1200
|
* [has immutable options](./spec/acceptance/rest/auth_spec.rb#L60)
|
930
1201
|
* #request_token
|
931
1202
|
* [creates a TokenRequest automatically and sends it to Ably to obtain a token](./spec/acceptance/rest/auth_spec.rb#L75)
|
@@ -948,110 +1219,158 @@ _(see [spec/acceptance/rest/auth_spec.rb](./spec/acceptance/rest/auth_spec.rb))_
|
|
948
1219
|
* [queries the server for the time](./spec/acceptance/rest/auth_spec.rb#L185)
|
949
1220
|
* without :query_time option
|
950
1221
|
* [does not query the server for the time](./spec/acceptance/rest/auth_spec.rb#L194)
|
1222
|
+
* with :auth_url option merging
|
1223
|
+
* with existing configured auth options
|
1224
|
+
* using unspecified :auth_method
|
1225
|
+
* [requests a token using a GET request with provided headers, and merges client_id into auth_params](./spec/acceptance/rest/auth_spec.rb#L234)
|
1226
|
+
* with provided token_params
|
1227
|
+
* [merges provided token_params with existing auth_params and client_id](./spec/acceptance/rest/auth_spec.rb#L242)
|
1228
|
+
* with provided auth option auth_params and auth_headers
|
1229
|
+
* [replaces any preconfigured auth_params](./spec/acceptance/rest/auth_spec.rb#L250)
|
1230
|
+
* using :get :auth_method and query params in the URL
|
1231
|
+
* [requests a token using a GET request with provided headers, and merges client_id into auth_params and existing URL querystring into new URL querystring](./spec/acceptance/rest/auth_spec.rb#L261)
|
1232
|
+
* using :post :auth_method
|
1233
|
+
* [requests a token using a POST request with provided headers, and merges client_id into auth_params as form-encoded post data](./spec/acceptance/rest/auth_spec.rb#L271)
|
951
1234
|
* with :auth_url option
|
952
1235
|
* when response from :auth_url is a valid token request
|
953
|
-
* [requests a token from :auth_url using an HTTP GET request](./spec/acceptance/rest/auth_spec.rb#
|
954
|
-
* [returns a valid token generated from the token request](./spec/acceptance/rest/auth_spec.rb#
|
1236
|
+
* [requests a token from :auth_url using an HTTP GET request](./spec/acceptance/rest/auth_spec.rb#L321)
|
1237
|
+
* [returns a valid token generated from the token request](./spec/acceptance/rest/auth_spec.rb#L326)
|
955
1238
|
* with :query_params
|
956
|
-
* [requests a token from :auth_url with the :query_params](./spec/acceptance/rest/auth_spec.rb#
|
1239
|
+
* [requests a token from :auth_url with the :query_params](./spec/acceptance/rest/auth_spec.rb#L333)
|
957
1240
|
* with :headers
|
958
|
-
* [requests a token from :auth_url with the HTTP headers set](./spec/acceptance/rest/auth_spec.rb#
|
1241
|
+
* [requests a token from :auth_url with the HTTP headers set](./spec/acceptance/rest/auth_spec.rb#L341)
|
959
1242
|
* with POST
|
960
|
-
* [requests a token from :auth_url using an HTTP POST instead of the default GET](./spec/acceptance/rest/auth_spec.rb#
|
1243
|
+
* [requests a token from :auth_url using an HTTP POST instead of the default GET](./spec/acceptance/rest/auth_spec.rb#L349)
|
961
1244
|
* when response from :auth_url is a token details object
|
962
|
-
* [returns TokenDetails created from the token JSON](./spec/acceptance/rest/auth_spec.rb#
|
1245
|
+
* [returns TokenDetails created from the token JSON](./spec/acceptance/rest/auth_spec.rb#L374)
|
963
1246
|
* when response from :auth_url is text/plain content type and a token string
|
964
|
-
* [returns TokenDetails created from the token JSON](./spec/acceptance/rest/auth_spec.rb#
|
1247
|
+
* [returns TokenDetails created from the token JSON](./spec/acceptance/rest/auth_spec.rb#L392)
|
965
1248
|
* when response is invalid
|
966
1249
|
* 500
|
967
|
-
* [raises ServerError](./spec/acceptance/rest/auth_spec.rb#
|
1250
|
+
* [raises ServerError](./spec/acceptance/rest/auth_spec.rb#L406)
|
968
1251
|
* XML
|
969
|
-
* [raises InvalidResponseBody](./spec/acceptance/rest/auth_spec.rb#
|
1252
|
+
* [raises InvalidResponseBody](./spec/acceptance/rest/auth_spec.rb#L417)
|
970
1253
|
* with a Proc for the :auth_callback option
|
971
1254
|
* that returns a TokenRequest
|
972
|
-
* [calls the Proc with token_params when authenticating to obtain the request token](./spec/acceptance/rest/auth_spec.rb#
|
973
|
-
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#
|
1255
|
+
* [calls the Proc with token_params when authenticating to obtain the request token](./spec/acceptance/rest/auth_spec.rb#L440)
|
1256
|
+
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#L444)
|
1257
|
+
* when authorised
|
1258
|
+
* [sets Auth#client_id to the new token's client_id](./spec/acceptance/rest/auth_spec.rb#L451)
|
1259
|
+
* [sets Client#client_id to the new token's client_id](./spec/acceptance/rest/auth_spec.rb#L455)
|
974
1260
|
* that returns a TokenDetails JSON object
|
975
|
-
* [calls the Proc when authenticating to obtain the request token](./spec/acceptance/rest/auth_spec.rb#
|
976
|
-
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#
|
1261
|
+
* [calls the Proc when authenticating to obtain the request token](./spec/acceptance/rest/auth_spec.rb#L489)
|
1262
|
+
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#L494)
|
1263
|
+
* when authorised
|
1264
|
+
* [sets Auth#client_id to the new token's client_id](./spec/acceptance/rest/auth_spec.rb#L506)
|
1265
|
+
* [sets Client#client_id to the new token's client_id](./spec/acceptance/rest/auth_spec.rb#L510)
|
977
1266
|
* that returns a TokenDetails object
|
978
|
-
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#
|
1267
|
+
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#L525)
|
979
1268
|
* that returns a Token string
|
980
|
-
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#
|
1269
|
+
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#L541)
|
981
1270
|
* with auth_option :client_id
|
982
|
-
* [returns a token with the client_id](./spec/acceptance/rest/auth_spec.rb#
|
1271
|
+
* [returns a token with the client_id](./spec/acceptance/rest/auth_spec.rb#L571)
|
983
1272
|
* with token_param :client_id
|
984
|
-
* [returns a token with the client_id](./spec/acceptance/rest/auth_spec.rb#
|
1273
|
+
* [returns a token with the client_id](./spec/acceptance/rest/auth_spec.rb#L580)
|
985
1274
|
* before #authorise has been called
|
986
|
-
* [has no current_token_details](./spec/acceptance/rest/auth_spec.rb#
|
1275
|
+
* [has no current_token_details](./spec/acceptance/rest/auth_spec.rb#L587)
|
987
1276
|
* #authorise
|
988
|
-
* [updates the persisted
|
1277
|
+
* [updates the persisted token params that are then used for subsequent authorise requests](./spec/acceptance/rest/auth_spec.rb#L637)
|
1278
|
+
* [updates the persisted token params that are then used for subsequent authorise requests](./spec/acceptance/rest/auth_spec.rb#L643)
|
989
1279
|
* when called for the first time since the client has been instantiated
|
990
|
-
* [passes all auth_options and token_params to #request_token](./spec/acceptance/rest/auth_spec.rb#
|
991
|
-
* [returns a valid token](./spec/acceptance/rest/auth_spec.rb#
|
992
|
-
* [issues a new token if option :force => true](./spec/acceptance/rest/auth_spec.rb#
|
1280
|
+
* [passes all auth_options and token_params to #request_token](./spec/acceptance/rest/auth_spec.rb#L601)
|
1281
|
+
* [returns a valid token](./spec/acceptance/rest/auth_spec.rb#L606)
|
1282
|
+
* [issues a new token if option :force => true](./spec/acceptance/rest/auth_spec.rb#L610)
|
993
1283
|
* with previous authorisation
|
994
|
-
* [does not request a token if current_token_details has not expired](./spec/acceptance/rest/auth_spec.rb#
|
995
|
-
* [requests a new token if token is expired](./spec/acceptance/rest/auth_spec.rb#
|
996
|
-
* [issues a new token if option :force => true](./spec/acceptance/rest/auth_spec.rb#
|
1284
|
+
* [does not request a token if current_token_details has not expired](./spec/acceptance/rest/auth_spec.rb#L621)
|
1285
|
+
* [requests a new token if token is expired](./spec/acceptance/rest/auth_spec.rb#L626)
|
1286
|
+
* [issues a new token if option :force => true](./spec/acceptance/rest/auth_spec.rb#L632)
|
997
1287
|
* with a Proc for the :auth_callback option
|
998
|
-
* [calls the Proc](./spec/acceptance/rest/auth_spec.rb#
|
999
|
-
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#
|
1288
|
+
* [calls the Proc](./spec/acceptance/rest/auth_spec.rb#L659)
|
1289
|
+
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#L663)
|
1000
1290
|
* for every subsequent #request_token
|
1001
1291
|
* without a :auth_callback Proc
|
1002
|
-
* [calls the originally provided block](./spec/acceptance/rest/auth_spec.rb#
|
1292
|
+
* [calls the originally provided block](./spec/acceptance/rest/auth_spec.rb#L669)
|
1003
1293
|
* with a provided block
|
1004
|
-
* [does not call the originally provided Proc and calls the new #request_token :auth_callback Proc](./spec/acceptance/rest/auth_spec.rb#
|
1294
|
+
* [does not call the originally provided Proc and calls the new #request_token :auth_callback Proc](./spec/acceptance/rest/auth_spec.rb#L676)
|
1295
|
+
* with an explicit token string that expires
|
1296
|
+
* and a Proc for the :auth_callback option to provide a means to renew the token
|
1297
|
+
* [calls the Proc once the token has expired and the new token is used](./spec/acceptance/rest/auth_spec.rb#L703)
|
1298
|
+
* with an explicit ClientOptions client_id
|
1299
|
+
* and an incompatible client_id in a TokenDetails object passed to the auth callback
|
1300
|
+
* [rejects a TokenDetails object with an incompatible client_id and raises an exception](./spec/acceptance/rest/auth_spec.rb#L721)
|
1301
|
+
* and an incompatible client_id in a TokenRequest object passed to the auth callback and raises an exception
|
1302
|
+
* [rejects a TokenRequests object with an incompatible client_id and raises an exception](./spec/acceptance/rest/auth_spec.rb#L729)
|
1303
|
+
* and a token string without any retrievable client_id
|
1304
|
+
* [rejects a TokenRequests object with an incompatible client_id and raises an exception](./spec/acceptance/rest/auth_spec.rb#L737)
|
1005
1305
|
* #create_token_request
|
1006
|
-
* [returns a TokenRequest object](./spec/acceptance/rest/auth_spec.rb#
|
1007
|
-
* [returns a TokenRequest that can be passed to a client that can use it for authentication without an API key](./spec/acceptance/rest/auth_spec.rb#
|
1008
|
-
* [uses the key name from the client](./spec/acceptance/rest/auth_spec.rb#
|
1009
|
-
* [uses the default TTL](./spec/acceptance/rest/auth_spec.rb#
|
1010
|
-
* [uses the default capability](./spec/acceptance/rest/auth_spec.rb#
|
1306
|
+
* [returns a TokenRequest object](./spec/acceptance/rest/auth_spec.rb#L752)
|
1307
|
+
* [returns a TokenRequest that can be passed to a client that can use it for authentication without an API key](./spec/acceptance/rest/auth_spec.rb#L756)
|
1308
|
+
* [uses the key name from the client](./spec/acceptance/rest/auth_spec.rb#L763)
|
1309
|
+
* [uses the default TTL](./spec/acceptance/rest/auth_spec.rb#L767)
|
1310
|
+
* [uses the default capability](./spec/acceptance/rest/auth_spec.rb#L780)
|
1011
1311
|
* with a :ttl option below the Token expiry buffer that ensures tokens are renewed 15s before they expire as they are considered expired
|
1012
|
-
* [uses the Token expiry buffer default + 10s to allow for a token request in flight](./spec/acceptance/rest/auth_spec.rb#
|
1312
|
+
* [uses the Token expiry buffer default + 10s to allow for a token request in flight](./spec/acceptance/rest/auth_spec.rb#L774)
|
1013
1313
|
* the nonce
|
1014
|
-
* [is unique for every request](./spec/acceptance/rest/auth_spec.rb#
|
1015
|
-
* [is at least 16 characters](./spec/acceptance/rest/auth_spec.rb#
|
1314
|
+
* [is unique for every request](./spec/acceptance/rest/auth_spec.rb#L785)
|
1315
|
+
* [is at least 16 characters](./spec/acceptance/rest/auth_spec.rb#L790)
|
1016
1316
|
* with token param :ttl
|
1017
|
-
* [overrides default](./spec/acceptance/rest/auth_spec.rb#
|
1317
|
+
* [overrides default](./spec/acceptance/rest/auth_spec.rb#L801)
|
1018
1318
|
* with token param :nonce
|
1019
|
-
* [overrides default](./spec/acceptance/rest/auth_spec.rb#
|
1319
|
+
* [overrides default](./spec/acceptance/rest/auth_spec.rb#L801)
|
1020
1320
|
* with token param :client_id
|
1021
|
-
* [overrides default](./spec/acceptance/rest/auth_spec.rb#
|
1321
|
+
* [overrides default](./spec/acceptance/rest/auth_spec.rb#L801)
|
1022
1322
|
* when specifying capability
|
1023
|
-
* [overrides the default](./spec/acceptance/rest/auth_spec.rb#
|
1024
|
-
* [uses these capabilities when Ably issues an actual token](./spec/acceptance/rest/auth_spec.rb#
|
1323
|
+
* [overrides the default](./spec/acceptance/rest/auth_spec.rb#L812)
|
1324
|
+
* [uses these capabilities when Ably issues an actual token](./spec/acceptance/rest/auth_spec.rb#L816)
|
1025
1325
|
* with additional invalid attributes
|
1026
|
-
* [are ignored](./spec/acceptance/rest/auth_spec.rb#
|
1326
|
+
* [are ignored](./spec/acceptance/rest/auth_spec.rb#L826)
|
1027
1327
|
* when required fields are missing
|
1028
|
-
* [should raise an exception if key secret is missing](./spec/acceptance/rest/auth_spec.rb#
|
1029
|
-
* [should raise an exception if key name is missing](./spec/acceptance/rest/auth_spec.rb#
|
1328
|
+
* [should raise an exception if key secret is missing](./spec/acceptance/rest/auth_spec.rb#L837)
|
1329
|
+
* [should raise an exception if key name is missing](./spec/acceptance/rest/auth_spec.rb#L841)
|
1030
1330
|
* timestamp attribute
|
1031
|
-
* [is a Time object in Ruby and is set to the local time](./spec/acceptance/rest/auth_spec.rb#
|
1331
|
+
* [is a Time object in Ruby and is set to the local time](./spec/acceptance/rest/auth_spec.rb#L868)
|
1032
1332
|
* with :query_time auth_option
|
1033
|
-
* [queries the server for the timestamp](./spec/acceptance/rest/auth_spec.rb#
|
1333
|
+
* [queries the server for the timestamp](./spec/acceptance/rest/auth_spec.rb#L853)
|
1034
1334
|
* with :timestamp option
|
1035
|
-
* [uses the provided timestamp in the token request](./spec/acceptance/rest/auth_spec.rb#
|
1335
|
+
* [uses the provided timestamp in the token request](./spec/acceptance/rest/auth_spec.rb#L863)
|
1036
1336
|
* signing
|
1037
|
-
* [generates a valid HMAC](./spec/acceptance/rest/auth_spec.rb#
|
1337
|
+
* [generates a valid HMAC](./spec/acceptance/rest/auth_spec.rb#L892)
|
1038
1338
|
* using token authentication
|
1039
1339
|
* with :token option
|
1040
|
-
* [authenticates successfully using the provided :token](./spec/acceptance/rest/auth_spec.rb#
|
1041
|
-
* [disallows publishing on unspecified capability channels](./spec/acceptance/rest/auth_spec.rb#
|
1042
|
-
* [fails if timestamp is invalid](./spec/acceptance/rest/auth_spec.rb#
|
1043
|
-
* [cannot be renewed automatically](./spec/acceptance/rest/auth_spec.rb#
|
1044
|
-
* when implicit as a result of using :
|
1340
|
+
* [authenticates successfully using the provided :token](./spec/acceptance/rest/auth_spec.rb#L915)
|
1341
|
+
* [disallows publishing on unspecified capability channels](./spec/acceptance/rest/auth_spec.rb#L919)
|
1342
|
+
* [fails if timestamp is invalid](./spec/acceptance/rest/auth_spec.rb#L927)
|
1343
|
+
* [cannot be renewed automatically](./spec/acceptance/rest/auth_spec.rb#L935)
|
1344
|
+
* when implicit as a result of using :client_id
|
1045
1345
|
* and requests to the Ably server are mocked
|
1046
|
-
* [will send a token request to the server](./spec/acceptance/rest/auth_spec.rb#
|
1346
|
+
* [will send a token request to the server](./spec/acceptance/rest/auth_spec.rb#L963)
|
1047
1347
|
* a token is created
|
1048
|
-
* [before a request is made](./spec/acceptance/rest/auth_spec.rb#
|
1049
|
-
* [when a message is published](./spec/acceptance/rest/auth_spec.rb#
|
1050
|
-
* [with capability and TTL defaults](./spec/acceptance/rest/auth_spec.rb#
|
1051
|
-
|
1052
|
-
*
|
1053
|
-
|
1054
|
-
|
1348
|
+
* [before a request is made](./spec/acceptance/rest/auth_spec.rb#L972)
|
1349
|
+
* [when a message is published](./spec/acceptance/rest/auth_spec.rb#L976)
|
1350
|
+
* [with capability and TTL defaults](./spec/acceptance/rest/auth_spec.rb#L980)
|
1351
|
+
* [#client_id contains the client_id](./spec/acceptance/rest/auth_spec.rb#L991)
|
1352
|
+
* when :client_id is provided in a token
|
1353
|
+
* [#client_id contains the client_id](./spec/acceptance/rest/auth_spec.rb#L1006)
|
1354
|
+
* #client_id_validated?
|
1355
|
+
* when using basic auth
|
1356
|
+
* [is false as basic auth users do not have an identity](./spec/acceptance/rest/auth_spec.rb#L1018)
|
1357
|
+
* when using a token auth string for a token with a client_id
|
1358
|
+
* [is false as identification is not possible from an opaque token string](./spec/acceptance/rest/auth_spec.rb#L1026)
|
1359
|
+
* when using a token
|
1360
|
+
* with a client_id
|
1361
|
+
* [is true](./spec/acceptance/rest/auth_spec.rb#L1035)
|
1362
|
+
* with no client_id (anonymous)
|
1363
|
+
* [is true](./spec/acceptance/rest/auth_spec.rb#L1043)
|
1364
|
+
* with a wildcard client_id (anonymous)
|
1365
|
+
* [is false](./spec/acceptance/rest/auth_spec.rb#L1051)
|
1366
|
+
* when using a token request with a client_id
|
1367
|
+
* [is not true as identification is not confirmed until authenticated](./spec/acceptance/rest/auth_spec.rb#L1060)
|
1368
|
+
* after authentication
|
1369
|
+
* [is true as identification is completed during implicit authentication](./spec/acceptance/rest/auth_spec.rb#L1067)
|
1370
|
+
* when using a :key and basic auth
|
1371
|
+
* [#using_token_auth? is false](./spec/acceptance/rest/auth_spec.rb#L1075)
|
1372
|
+
* [#key attribute contains the key string](./spec/acceptance/rest/auth_spec.rb#L1079)
|
1373
|
+
* [#using_basic_auth? is true](./spec/acceptance/rest/auth_spec.rb#L1083)
|
1055
1374
|
|
1056
1375
|
### Ably::Rest
|
1057
1376
|
_(see [spec/acceptance/rest/base_spec.rb](./spec/acceptance/rest/base_spec.rb))_
|
@@ -1066,7 +1385,7 @@ _(see [spec/acceptance/rest/base_spec.rb](./spec/acceptance/rest/base_spec.rb))_
|
|
1066
1385
|
* [uses MsgPack](./spec/acceptance/rest/base_spec.rb#L60)
|
1067
1386
|
* when option {:use_binary_protocol=>true} is used
|
1068
1387
|
* [uses MsgPack](./spec/acceptance/rest/base_spec.rb#L60)
|
1069
|
-
* using JSON
|
1388
|
+
* using JSON protocol
|
1070
1389
|
* failed requests
|
1071
1390
|
* due to invalid Auth
|
1072
1391
|
* [should raise an InvalidRequest exception with a valid error message and code](./spec/acceptance/rest/base_spec.rb#L75)
|
@@ -1082,55 +1401,92 @@ _(see [spec/acceptance/rest/base_spec.rb](./spec/acceptance/rest/base_spec.rb))_
|
|
1082
1401
|
|
1083
1402
|
### Ably::Rest::Channel
|
1084
1403
|
_(see [spec/acceptance/rest/channel_spec.rb](./spec/acceptance/rest/channel_spec.rb))_
|
1085
|
-
* using JSON
|
1404
|
+
* using JSON protocol
|
1086
1405
|
* #publish
|
1087
1406
|
* with name and data arguments
|
1088
|
-
* [publishes the message and return true indicating success](./spec/acceptance/rest/channel_spec.rb#
|
1407
|
+
* [publishes the message and return true indicating success](./spec/acceptance/rest/channel_spec.rb#L21)
|
1408
|
+
* and additional attributes
|
1409
|
+
* [publishes the message with the attributes and return true indicating success](./spec/acceptance/rest/channel_spec.rb#L30)
|
1410
|
+
* with a client_id configured in the ClientOptions
|
1411
|
+
* [publishes the message without a client_id](./spec/acceptance/rest/channel_spec.rb#L41)
|
1412
|
+
* [expects a client_id to be added by the realtime service](./spec/acceptance/rest/channel_spec.rb#L49)
|
1089
1413
|
* with an array of Hash objects with :name and :data attributes
|
1090
|
-
* [publishes an array of messages in one HTTP request](./spec/acceptance/rest/channel_spec.rb#
|
1414
|
+
* [publishes an array of messages in one HTTP request](./spec/acceptance/rest/channel_spec.rb#L62)
|
1091
1415
|
* with an array of Message objects
|
1092
|
-
* [publishes an array of messages in one HTTP request](./spec/acceptance/rest/channel_spec.rb#
|
1416
|
+
* [publishes an array of messages in one HTTP request](./spec/acceptance/rest/channel_spec.rb#L77)
|
1093
1417
|
* without adequate permissions on the channel
|
1094
|
-
* [raises a permission error when publishing](./spec/acceptance/rest/channel_spec.rb#
|
1418
|
+
* [raises a permission error when publishing](./spec/acceptance/rest/channel_spec.rb#L89)
|
1095
1419
|
* null attributes
|
1096
1420
|
* when name is null
|
1097
|
-
* [publishes the message without a name attribute in the payload](./spec/acceptance/rest/channel_spec.rb#
|
1421
|
+
* [publishes the message without a name attribute in the payload](./spec/acceptance/rest/channel_spec.rb#L98)
|
1098
1422
|
* when data is null
|
1099
|
-
* [publishes the message without a data attribute in the payload](./spec/acceptance/rest/channel_spec.rb#
|
1423
|
+
* [publishes the message without a data attribute in the payload](./spec/acceptance/rest/channel_spec.rb#L109)
|
1100
1424
|
* with neither name or data attributes
|
1101
|
-
* [publishes the message without any attributes in the payload](./spec/acceptance/rest/channel_spec.rb#
|
1425
|
+
* [publishes the message without any attributes in the payload](./spec/acceptance/rest/channel_spec.rb#L120)
|
1426
|
+
* identified clients
|
1427
|
+
* when authenticated with a wildcard client_id
|
1428
|
+
* with a valid client_id in the message
|
1429
|
+
* [succeeds](./spec/acceptance/rest/channel_spec.rb#L137)
|
1430
|
+
* with a wildcard client_id in the message
|
1431
|
+
* [throws an exception](./spec/acceptance/rest/channel_spec.rb#L146)
|
1432
|
+
* with an empty client_id in the message
|
1433
|
+
* [succeeds and publishes without a client_id](./spec/acceptance/rest/channel_spec.rb#L152)
|
1434
|
+
* when authenticated with a Token string with an implicit client_id
|
1435
|
+
* without having a confirmed identity
|
1436
|
+
* with a valid client_id in the message
|
1437
|
+
* [succeeds](./spec/acceptance/rest/channel_spec.rb#L169)
|
1438
|
+
* with an invalid client_id in the message
|
1439
|
+
* [succeeds in the client library but then fails when published to Ably](./spec/acceptance/rest/channel_spec.rb#L178)
|
1440
|
+
* with an empty client_id in the message
|
1441
|
+
* [succeeds and publishes with an implicit client_id](./spec/acceptance/rest/channel_spec.rb#L184)
|
1442
|
+
* when authenticated with TokenDetails with a valid client_id
|
1443
|
+
* with a valid client_id in the message
|
1444
|
+
* [succeeds](./spec/acceptance/rest/channel_spec.rb#L201)
|
1445
|
+
* with a wildcard client_id in the message
|
1446
|
+
* [throws an exception](./spec/acceptance/rest/channel_spec.rb#L210)
|
1447
|
+
* with an invalid client_id in the message
|
1448
|
+
* [throws an exception](./spec/acceptance/rest/channel_spec.rb#L216)
|
1449
|
+
* with an empty client_id in the message
|
1450
|
+
* [succeeds and publishes with an implicit client_id](./spec/acceptance/rest/channel_spec.rb#L222)
|
1451
|
+
* when anonymous and no client_id
|
1452
|
+
* with a client_id in the message
|
1453
|
+
* [throws an exception](./spec/acceptance/rest/channel_spec.rb#L238)
|
1454
|
+
* with a wildcard client_id in the message
|
1455
|
+
* [throws an exception](./spec/acceptance/rest/channel_spec.rb#L244)
|
1456
|
+
* with an empty client_id in the message
|
1457
|
+
* [succeeds and publishes with an implicit client_id](./spec/acceptance/rest/channel_spec.rb#L250)
|
1102
1458
|
* #history
|
1103
|
-
* [returns a PaginatedResult model](./spec/acceptance/rest/channel_spec.rb#
|
1104
|
-
* [returns the current message history for the channel](./spec/acceptance/rest/channel_spec.rb#
|
1105
|
-
* [returns paged history using the PaginatedResult model](./spec/acceptance/rest/channel_spec.rb#
|
1459
|
+
* [returns a PaginatedResult model](./spec/acceptance/rest/channel_spec.rb#L278)
|
1460
|
+
* [returns the current message history for the channel](./spec/acceptance/rest/channel_spec.rb#L282)
|
1461
|
+
* [returns paged history using the PaginatedResult model](./spec/acceptance/rest/channel_spec.rb#L310)
|
1106
1462
|
* message timestamps
|
1107
|
-
* [are after the messages were published](./spec/acceptance/rest/channel_spec.rb#
|
1463
|
+
* [are after the messages were published](./spec/acceptance/rest/channel_spec.rb#L295)
|
1108
1464
|
* message IDs
|
1109
|
-
* [is unique](./spec/acceptance/rest/channel_spec.rb#
|
1465
|
+
* [is unique](./spec/acceptance/rest/channel_spec.rb#L303)
|
1110
1466
|
* direction
|
1111
|
-
* [returns paged history backwards by default](./spec/acceptance/rest/channel_spec.rb#
|
1112
|
-
* [returns history forward if specified in the options](./spec/acceptance/rest/channel_spec.rb#
|
1467
|
+
* [returns paged history backwards by default](./spec/acceptance/rest/channel_spec.rb#L331)
|
1468
|
+
* [returns history forward if specified in the options](./spec/acceptance/rest/channel_spec.rb#L337)
|
1113
1469
|
* limit
|
1114
|
-
* [defaults to 100](./spec/acceptance/rest/channel_spec.rb#
|
1470
|
+
* [defaults to 100](./spec/acceptance/rest/channel_spec.rb#L349)
|
1115
1471
|
* #history option
|
1116
1472
|
* :start
|
1117
1473
|
* with milliseconds since epoch value
|
1118
|
-
* [uses this value in the history request](./spec/acceptance/rest/channel_spec.rb#
|
1474
|
+
* [uses this value in the history request](./spec/acceptance/rest/channel_spec.rb#L392)
|
1119
1475
|
* with a Time object value
|
1120
|
-
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/channel_spec.rb#
|
1476
|
+
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/channel_spec.rb#L402)
|
1121
1477
|
* :end
|
1122
1478
|
* with milliseconds since epoch value
|
1123
|
-
* [uses this value in the history request](./spec/acceptance/rest/channel_spec.rb#
|
1479
|
+
* [uses this value in the history request](./spec/acceptance/rest/channel_spec.rb#L392)
|
1124
1480
|
* with a Time object value
|
1125
|
-
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/channel_spec.rb#
|
1481
|
+
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/channel_spec.rb#L402)
|
1126
1482
|
* when argument start is after end
|
1127
|
-
* [should raise an exception](./spec/acceptance/rest/channel_spec.rb#
|
1483
|
+
* [should raise an exception](./spec/acceptance/rest/channel_spec.rb#L412)
|
1128
1484
|
* #presence
|
1129
|
-
* [returns a REST Presence object](./spec/acceptance/rest/channel_spec.rb#
|
1485
|
+
* [returns a REST Presence object](./spec/acceptance/rest/channel_spec.rb#L422)
|
1130
1486
|
|
1131
1487
|
### Ably::Rest::Channels
|
1132
1488
|
_(see [spec/acceptance/rest/channels_spec.rb](./spec/acceptance/rest/channels_spec.rb))_
|
1133
|
-
* using JSON
|
1489
|
+
* using JSON protocol
|
1134
1490
|
* using shortcut method #channel on the client object
|
1135
1491
|
* behaves like a channel
|
1136
1492
|
* [returns a channel object](./spec/acceptance/rest/channels_spec.rb#L6)
|
@@ -1150,7 +1506,7 @@ _(see [spec/acceptance/rest/channels_spec.rb](./spec/acceptance/rest/channels_sp
|
|
1150
1506
|
|
1151
1507
|
### Ably::Rest::Client
|
1152
1508
|
_(see [spec/acceptance/rest/client_spec.rb](./spec/acceptance/rest/client_spec.rb))_
|
1153
|
-
* using JSON
|
1509
|
+
* using JSON protocol
|
1154
1510
|
* #initialize
|
1155
1511
|
* with only an API key
|
1156
1512
|
* [uses basic authentication](./spec/acceptance/rest/client_spec.rb#L24)
|
@@ -1160,61 +1516,87 @@ _(see [spec/acceptance/rest/client_spec.rb](./spec/acceptance/rest/client_spec.r
|
|
1160
1516
|
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#L40)
|
1161
1517
|
* with a :client_id configured
|
1162
1518
|
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#L48)
|
1519
|
+
* with an invalid wildcard "*" :client_id
|
1520
|
+
* [raises an exception](./spec/acceptance/rest/client_spec.rb#L54)
|
1163
1521
|
* with an :auth_callback Proc
|
1164
|
-
* [calls the auth Proc to get a new token](./spec/acceptance/rest/client_spec.rb#
|
1165
|
-
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#
|
1522
|
+
* [calls the auth Proc to get a new token](./spec/acceptance/rest/client_spec.rb#L62)
|
1523
|
+
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#L67)
|
1524
|
+
* with an :auth_callback Proc (clientId provided in library options instead of as a token_request param)
|
1525
|
+
* [correctly sets the clientId on the token](./spec/acceptance/rest/client_spec.rb#L76)
|
1166
1526
|
* with an auth URL
|
1167
|
-
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#
|
1527
|
+
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#L86)
|
1168
1528
|
* before any REST request
|
1169
|
-
* [sends an HTTP request to the provided auth URL to get a new token](./spec/acceptance/rest/client_spec.rb#
|
1529
|
+
* [sends an HTTP request to the provided auth URL to get a new token](./spec/acceptance/rest/client_spec.rb#L97)
|
1170
1530
|
* auth headers
|
1171
1531
|
* with basic auth
|
1172
|
-
* [sends the API key in authentication part of the secure URL (the Authorization: Basic header is not used with the Faraday HTTP library by default)](./spec/acceptance/rest/client_spec.rb#
|
1532
|
+
* [sends the API key in authentication part of the secure URL (the Authorization: Basic header is not used with the Faraday HTTP library by default)](./spec/acceptance/rest/client_spec.rb#L117)
|
1173
1533
|
* with token auth
|
1174
1534
|
* without specifying protocol
|
1175
|
-
* [sends the token string over HTTPS in the Authorization Bearer header with Base64 encoding](./spec/acceptance/rest/client_spec.rb#
|
1535
|
+
* [sends the token string over HTTPS in the Authorization Bearer header with Base64 encoding](./spec/acceptance/rest/client_spec.rb#L136)
|
1176
1536
|
* when setting constructor ClientOption :tls to false
|
1177
|
-
* [sends the token string over HTTP in the Authorization Bearer header with Base64 encoding](./spec/acceptance/rest/client_spec.rb#
|
1537
|
+
* [sends the token string over HTTP in the Authorization Bearer header with Base64 encoding](./spec/acceptance/rest/client_spec.rb#L146)
|
1178
1538
|
* using tokens
|
1179
1539
|
* when expired
|
1180
|
-
* [creates a new token automatically when the old token expires](./spec/acceptance/rest/client_spec.rb#
|
1540
|
+
* [creates a new token automatically when the old token expires](./spec/acceptance/rest/client_spec.rb#L179)
|
1541
|
+
* with a different client_id in the subsequent token
|
1542
|
+
* [fails to authenticate and raises an exception](./spec/acceptance/rest/client_spec.rb#L192)
|
1181
1543
|
* when token has not expired
|
1182
|
-
* [reuses the existing token for every request](./spec/acceptance/rest/client_spec.rb#
|
1544
|
+
* [reuses the existing token for every request](./spec/acceptance/rest/client_spec.rb#L203)
|
1183
1545
|
* connection transport
|
1184
|
-
*
|
1185
|
-
*
|
1186
|
-
|
1187
|
-
|
1188
|
-
*
|
1189
|
-
|
1546
|
+
* defaults
|
1547
|
+
* for default host
|
1548
|
+
* [is configured to timeout connection opening in 4 seconds](./spec/acceptance/rest/client_spec.rb#L220)
|
1549
|
+
* [is configured to timeout connection requests in 15 seconds](./spec/acceptance/rest/client_spec.rb#L224)
|
1550
|
+
* for the fallback hosts
|
1551
|
+
* [is configured to timeout connection opening in 4 seconds](./spec/acceptance/rest/client_spec.rb#L230)
|
1552
|
+
* [is configured to timeout connection requests in 15 seconds](./spec/acceptance/rest/client_spec.rb#L234)
|
1553
|
+
* with custom http_open_timeout and http_request_timeout options
|
1554
|
+
* for default host
|
1555
|
+
* [is configured to use custom open timeout](./spec/acceptance/rest/client_spec.rb#L246)
|
1556
|
+
* [is configured to use custom request timeout](./spec/acceptance/rest/client_spec.rb#L250)
|
1557
|
+
* for the fallback hosts
|
1558
|
+
* [is configured to timeout connection opening in 4 seconds](./spec/acceptance/rest/client_spec.rb#L256)
|
1559
|
+
* [is configured to timeout connection requests in 15 seconds](./spec/acceptance/rest/client_spec.rb#L260)
|
1190
1560
|
* fallback hosts
|
1191
1561
|
* configured
|
1192
|
-
* [should make connection attempts to A.ably-realtime.com, B.ably-realtime.com, C.ably-realtime.com, D.ably-realtime.com, E.ably-realtime.com](./spec/acceptance/rest/client_spec.rb#
|
1562
|
+
* [should make connection attempts to A.ably-realtime.com, B.ably-realtime.com, C.ably-realtime.com, D.ably-realtime.com, E.ably-realtime.com](./spec/acceptance/rest/client_spec.rb#L274)
|
1193
1563
|
* when environment is NOT production
|
1194
|
-
* [does not retry failed requests with fallback hosts when there is a connection error](./spec/acceptance/rest/client_spec.rb#
|
1564
|
+
* [does not retry failed requests with fallback hosts when there is a connection error](./spec/acceptance/rest/client_spec.rb#L291)
|
1195
1565
|
* when environment is production
|
1196
1566
|
* and connection times out
|
1197
|
-
* [tries fallback hosts 3 times](./spec/acceptance/rest/client_spec.rb#
|
1567
|
+
* [tries fallback hosts 3 times](./spec/acceptance/rest/client_spec.rb#L329)
|
1198
1568
|
* and the total request time exeeds 10 seconds
|
1199
|
-
* [makes no further attempts to any fallback hosts](./spec/acceptance/rest/client_spec.rb#
|
1569
|
+
* [makes no further attempts to any fallback hosts](./spec/acceptance/rest/client_spec.rb#L344)
|
1200
1570
|
* and connection fails
|
1201
|
-
* [tries fallback hosts 3 times](./spec/acceptance/rest/client_spec.rb#
|
1571
|
+
* [tries fallback hosts 3 times](./spec/acceptance/rest/client_spec.rb#L360)
|
1202
1572
|
* and basic authentication fails
|
1203
|
-
* [does not attempt the fallback hosts as this is an authentication failure](./spec/acceptance/rest/client_spec.rb#
|
1573
|
+
* [does not attempt the fallback hosts as this is an authentication failure](./spec/acceptance/rest/client_spec.rb#L384)
|
1204
1574
|
* and server returns a 50x error
|
1205
|
-
* [attempts the fallback hosts as this is an authentication failure](./spec/acceptance/rest/client_spec.rb#
|
1575
|
+
* [attempts the fallback hosts as this is an authentication failure](./spec/acceptance/rest/client_spec.rb#L406)
|
1206
1576
|
* with a custom host
|
1207
1577
|
* that does not exist
|
1208
|
-
* [fails immediately and raises a Faraday Error](./spec/acceptance/rest/client_spec.rb#
|
1578
|
+
* [fails immediately and raises a Faraday Error](./spec/acceptance/rest/client_spec.rb#L422)
|
1209
1579
|
* fallback hosts
|
1210
|
-
* [are never used](./spec/acceptance/rest/client_spec.rb#
|
1580
|
+
* [are never used](./spec/acceptance/rest/client_spec.rb#L443)
|
1211
1581
|
* that times out
|
1212
|
-
* [fails immediately and raises a Faraday Error](./spec/acceptance/rest/client_spec.rb#
|
1582
|
+
* [fails immediately and raises a Faraday Error](./spec/acceptance/rest/client_spec.rb#L458)
|
1213
1583
|
* fallback hosts
|
1214
|
-
* [are never used](./spec/acceptance/rest/client_spec.rb#
|
1584
|
+
* [are never used](./spec/acceptance/rest/client_spec.rb#L471)
|
1585
|
+
* HTTP configuration options
|
1586
|
+
* [is frozen](./spec/acceptance/rest/client_spec.rb#L528)
|
1587
|
+
* defaults
|
1588
|
+
* [#http_open_timeout is 4s](./spec/acceptance/rest/client_spec.rb#L483)
|
1589
|
+
* [#http_request_timeout is 15s](./spec/acceptance/rest/client_spec.rb#L487)
|
1590
|
+
* [#http_max_retry_count is 3](./spec/acceptance/rest/client_spec.rb#L491)
|
1591
|
+
* [#http_max_retry_duration is 10s](./spec/acceptance/rest/client_spec.rb#L495)
|
1592
|
+
* configured
|
1593
|
+
* [#http_open_timeout uses provided value](./spec/acceptance/rest/client_spec.rb#L511)
|
1594
|
+
* [#http_request_timeout uses provided value](./spec/acceptance/rest/client_spec.rb#L515)
|
1595
|
+
* [#http_max_retry_count uses provided value](./spec/acceptance/rest/client_spec.rb#L519)
|
1596
|
+
* [#http_max_retry_duration uses provided value](./spec/acceptance/rest/client_spec.rb#L523)
|
1215
1597
|
* #auth
|
1216
|
-
* [is provides access to the Auth object](./spec/acceptance/rest/client_spec.rb#
|
1217
|
-
* [configures the Auth object with all ClientOptions passed to client in the initializer](./spec/acceptance/rest/client_spec.rb#
|
1598
|
+
* [is provides access to the Auth object](./spec/acceptance/rest/client_spec.rb#L539)
|
1599
|
+
* [configures the Auth object with all ClientOptions passed to client in the initializer](./spec/acceptance/rest/client_spec.rb#L543)
|
1218
1600
|
|
1219
1601
|
### Ably::Models::MessageEncoders
|
1220
1602
|
_(see [spec/acceptance/rest/encoders_spec.rb](./spec/acceptance/rest/encoders_spec.rb))_
|
@@ -1251,7 +1633,7 @@ _(see [spec/acceptance/rest/encoders_spec.rb](./spec/acceptance/rest/encoders_sp
|
|
1251
1633
|
|
1252
1634
|
### Ably::Rest::Channel messages
|
1253
1635
|
_(see [spec/acceptance/rest/message_spec.rb](./spec/acceptance/rest/message_spec.rb))_
|
1254
|
-
* using JSON
|
1636
|
+
* using JSON protocol
|
1255
1637
|
* publishing with an ASCII_8BIT message name
|
1256
1638
|
* [is converted into UTF_8](./spec/acceptance/rest/message_spec.rb#L18)
|
1257
1639
|
* with supported data payload content type
|
@@ -1328,7 +1710,7 @@ _(see [spec/acceptance/rest/message_spec.rb](./spec/acceptance/rest/message_spec
|
|
1328
1710
|
|
1329
1711
|
### Ably::Rest::Presence
|
1330
1712
|
_(see [spec/acceptance/rest/presence_spec.rb](./spec/acceptance/rest/presence_spec.rb))_
|
1331
|
-
* using JSON
|
1713
|
+
* using JSON protocol
|
1332
1714
|
* tested against presence fixture data set up in test app
|
1333
1715
|
* #get
|
1334
1716
|
* [returns current members on the channel with their action set to :present](./spec/acceptance/rest/presence_spec.rb#L41)
|
@@ -1337,61 +1719,62 @@ _(see [spec/acceptance/rest/presence_spec.rb](./spec/acceptance/rest/presence_sp
|
|
1337
1719
|
* default :limit
|
1338
1720
|
* [defaults to a limit of 100](./spec/acceptance/rest/presence_spec.rb#L89)
|
1339
1721
|
* with :client_id option
|
1340
|
-
*
|
1722
|
+
* [returns a list members filtered by the provided client ID](./spec/acceptance/rest/presence_spec.rb#L98)
|
1341
1723
|
* with :connection_id option
|
1342
|
-
*
|
1724
|
+
* [returns a list members filtered by the provided connection ID](./spec/acceptance/rest/presence_spec.rb#L109)
|
1725
|
+
* [returns a list members filtered by the provided connection ID](./spec/acceptance/rest/presence_spec.rb#L113)
|
1343
1726
|
* #history
|
1344
|
-
* [returns recent presence activity](./spec/acceptance/rest/presence_spec.rb#
|
1727
|
+
* [returns recent presence activity](./spec/acceptance/rest/presence_spec.rb#L122)
|
1345
1728
|
* default behaviour
|
1346
|
-
* [uses backwards direction](./spec/acceptance/rest/presence_spec.rb#
|
1729
|
+
* [uses backwards direction](./spec/acceptance/rest/presence_spec.rb#L137)
|
1347
1730
|
* with options
|
1348
1731
|
* direction: :forwards
|
1349
|
-
* [returns recent presence activity forwards with most recent history last](./spec/acceptance/rest/presence_spec.rb#
|
1732
|
+
* [returns recent presence activity forwards with most recent history last](./spec/acceptance/rest/presence_spec.rb#L149)
|
1350
1733
|
* direction: :backwards
|
1351
|
-
* [returns recent presence activity backwards with most recent history first](./spec/acceptance/rest/presence_spec.rb#
|
1734
|
+
* [returns recent presence activity backwards with most recent history first](./spec/acceptance/rest/presence_spec.rb#L164)
|
1352
1735
|
* #history
|
1353
1736
|
* with options
|
1354
1737
|
* limit options
|
1355
1738
|
* default
|
1356
|
-
* [is set to 100](./spec/acceptance/rest/presence_spec.rb#
|
1739
|
+
* [is set to 100](./spec/acceptance/rest/presence_spec.rb#L212)
|
1357
1740
|
* set to 1000
|
1358
|
-
* [is passes the limit query param value 1000](./spec/acceptance/rest/presence_spec.rb#
|
1741
|
+
* [is passes the limit query param value 1000](./spec/acceptance/rest/presence_spec.rb#L225)
|
1359
1742
|
* with time range options
|
1360
1743
|
* :start
|
1361
1744
|
* with milliseconds since epoch value
|
1362
|
-
* [uses this value in the history request](./spec/acceptance/rest/presence_spec.rb#
|
1745
|
+
* [uses this value in the history request](./spec/acceptance/rest/presence_spec.rb#L255)
|
1363
1746
|
* with Time object value
|
1364
|
-
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/presence_spec.rb#
|
1747
|
+
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/presence_spec.rb#L265)
|
1365
1748
|
* :end
|
1366
1749
|
* with milliseconds since epoch value
|
1367
|
-
* [uses this value in the history request](./spec/acceptance/rest/presence_spec.rb#
|
1750
|
+
* [uses this value in the history request](./spec/acceptance/rest/presence_spec.rb#L255)
|
1368
1751
|
* with Time object value
|
1369
|
-
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/presence_spec.rb#
|
1752
|
+
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/presence_spec.rb#L265)
|
1370
1753
|
* when argument start is after end
|
1371
|
-
* [should raise an exception](./spec/acceptance/rest/presence_spec.rb#
|
1754
|
+
* [should raise an exception](./spec/acceptance/rest/presence_spec.rb#L276)
|
1372
1755
|
* decoding
|
1373
1756
|
* with encoded fixture data
|
1374
1757
|
* #history
|
1375
|
-
* [decodes encoded and encryped presence fixture data automatically](./spec/acceptance/rest/presence_spec.rb#
|
1758
|
+
* [decodes encoded and encryped presence fixture data automatically](./spec/acceptance/rest/presence_spec.rb#L295)
|
1376
1759
|
* #get
|
1377
|
-
* [decodes encoded and encryped presence fixture data automatically](./spec/acceptance/rest/presence_spec.rb#
|
1760
|
+
* [decodes encoded and encryped presence fixture data automatically](./spec/acceptance/rest/presence_spec.rb#L302)
|
1378
1761
|
* decoding permutations using mocked #history
|
1379
1762
|
* valid decodeable content
|
1380
1763
|
* #get
|
1381
|
-
* [automaticaly decodes presence messages](./spec/acceptance/rest/presence_spec.rb#
|
1764
|
+
* [automaticaly decodes presence messages](./spec/acceptance/rest/presence_spec.rb#L358)
|
1382
1765
|
* #history
|
1383
|
-
* [automaticaly decodes presence messages](./spec/acceptance/rest/presence_spec.rb#
|
1766
|
+
* [automaticaly decodes presence messages](./spec/acceptance/rest/presence_spec.rb#L375)
|
1384
1767
|
* invalid data
|
1385
1768
|
* #get
|
1386
|
-
* [returns the messages still encoded](./spec/acceptance/rest/presence_spec.rb#
|
1387
|
-
* [logs a cipher error](./spec/acceptance/rest/presence_spec.rb#
|
1769
|
+
* [returns the messages still encoded](./spec/acceptance/rest/presence_spec.rb#L406)
|
1770
|
+
* [logs a cipher error](./spec/acceptance/rest/presence_spec.rb#L410)
|
1388
1771
|
* #history
|
1389
|
-
* [returns the messages still encoded](./spec/acceptance/rest/presence_spec.rb#
|
1390
|
-
* [logs a cipher error](./spec/acceptance/rest/presence_spec.rb#
|
1772
|
+
* [returns the messages still encoded](./spec/acceptance/rest/presence_spec.rb#L430)
|
1773
|
+
* [logs a cipher error](./spec/acceptance/rest/presence_spec.rb#L434)
|
1391
1774
|
|
1392
1775
|
### Ably::Rest::Client#stats
|
1393
1776
|
_(see [spec/acceptance/rest/stats_spec.rb](./spec/acceptance/rest/stats_spec.rb))_
|
1394
|
-
* using JSON
|
1777
|
+
* using JSON protocol
|
1395
1778
|
* fetching application stats
|
1396
1779
|
* [returns a PaginatedResult object](./spec/acceptance/rest/stats_spec.rb#L54)
|
1397
1780
|
* by minute
|
@@ -1435,9 +1818,11 @@ _(see [spec/acceptance/rest/stats_spec.rb](./spec/acceptance/rest/stats_spec.rb)
|
|
1435
1818
|
|
1436
1819
|
### Ably::Rest::Client#time
|
1437
1820
|
_(see [spec/acceptance/rest/time_spec.rb](./spec/acceptance/rest/time_spec.rb))_
|
1438
|
-
* using JSON
|
1821
|
+
* using JSON protocol
|
1439
1822
|
* fetching the service time
|
1440
1823
|
* [should return the service time as a Time object](./spec/acceptance/rest/time_spec.rb#L10)
|
1824
|
+
* with reconfigured HTTP timeout
|
1825
|
+
* [should raise a timeout exception](./spec/acceptance/rest/time_spec.rb#L19)
|
1441
1826
|
|
1442
1827
|
### Ably::Auth
|
1443
1828
|
_(see [spec/unit/auth_spec.rb](./spec/unit/auth_spec.rb))_
|
@@ -1469,6 +1854,105 @@ _(see [spec/unit/logger_spec.rb](./spec/unit/logger_spec.rb))_
|
|
1469
1854
|
* with a valid interface
|
1470
1855
|
* [is used](./spec/unit/logger_spec.rb#L135)
|
1471
1856
|
|
1857
|
+
### Ably::Models::ChannelStateChange
|
1858
|
+
_(see [spec/unit/models/channel_state_change_spec.rb](./spec/unit/models/channel_state_change_spec.rb))_
|
1859
|
+
* #current
|
1860
|
+
* [is required](./spec/unit/models/channel_state_change_spec.rb#L10)
|
1861
|
+
* [is an attribute](./spec/unit/models/channel_state_change_spec.rb#L14)
|
1862
|
+
* #previous
|
1863
|
+
* [is required](./spec/unit/models/channel_state_change_spec.rb#L20)
|
1864
|
+
* [is an attribute](./spec/unit/models/channel_state_change_spec.rb#L24)
|
1865
|
+
* #reason
|
1866
|
+
* [is not required](./spec/unit/models/channel_state_change_spec.rb#L30)
|
1867
|
+
* [is an attribute](./spec/unit/models/channel_state_change_spec.rb#L34)
|
1868
|
+
* invalid attributes
|
1869
|
+
* [raises an argument error](./spec/unit/models/channel_state_change_spec.rb#L40)
|
1870
|
+
|
1871
|
+
### Ably::Models::CipherParams
|
1872
|
+
_(see [spec/unit/models/cipher_params_spec.rb](./spec/unit/models/cipher_params_spec.rb))_
|
1873
|
+
* :key missing from constructor
|
1874
|
+
* [raises an exception](./spec/unit/models/cipher_params_spec.rb#L8)
|
1875
|
+
* #key
|
1876
|
+
* with :key in constructor
|
1877
|
+
* as nil
|
1878
|
+
* [raises an exception](./spec/unit/models/cipher_params_spec.rb#L20)
|
1879
|
+
* as a base64 encoded string
|
1880
|
+
* [is a binary representation of the base64 encoded string](./spec/unit/models/cipher_params_spec.rb#L29)
|
1881
|
+
* as a URL safe base64 encoded string
|
1882
|
+
* [is a binary representation of the URL safe base64 encoded string](./spec/unit/models/cipher_params_spec.rb#L40)
|
1883
|
+
* as a binary encoded string
|
1884
|
+
* [contains the binary string](./spec/unit/models/cipher_params_spec.rb#L48)
|
1885
|
+
* with an incompatible :key_length constructor param
|
1886
|
+
* [raises an exception](./spec/unit/models/cipher_params_spec.rb#L58)
|
1887
|
+
* with an unsupported :key_length for aes-cbc encryption
|
1888
|
+
* [raises an exception](./spec/unit/models/cipher_params_spec.rb#L67)
|
1889
|
+
* with an invalid type
|
1890
|
+
* [raises an exception](./spec/unit/models/cipher_params_spec.rb#L76)
|
1891
|
+
* with specified params in the constructor
|
1892
|
+
* #cipher_type
|
1893
|
+
* [contains the complete algorithm string as an upper case string](./spec/unit/models/cipher_params_spec.rb#L88)
|
1894
|
+
* #mode
|
1895
|
+
* [contains the mode](./spec/unit/models/cipher_params_spec.rb#L94)
|
1896
|
+
* #algorithm
|
1897
|
+
* [contains the algorithm](./spec/unit/models/cipher_params_spec.rb#L100)
|
1898
|
+
* #key_length
|
1899
|
+
* [contains the key_length](./spec/unit/models/cipher_params_spec.rb#L106)
|
1900
|
+
* with combined param in the constructor
|
1901
|
+
* #cipher_type
|
1902
|
+
* [contains the complete algorithm string as an upper case string](./spec/unit/models/cipher_params_spec.rb#L117)
|
1903
|
+
* #mode
|
1904
|
+
* [contains the mode](./spec/unit/models/cipher_params_spec.rb#L123)
|
1905
|
+
* #algorithm
|
1906
|
+
* [contains the algorithm](./spec/unit/models/cipher_params_spec.rb#L129)
|
1907
|
+
* #key_length
|
1908
|
+
* [contains the key_length](./spec/unit/models/cipher_params_spec.rb#L135)
|
1909
|
+
|
1910
|
+
### Ably::Models::ConnectionDetails
|
1911
|
+
_(see [spec/unit/models/connection_details_spec.rb](./spec/unit/models/connection_details_spec.rb))_
|
1912
|
+
* behaves like a model
|
1913
|
+
* attributes
|
1914
|
+
* #client_id
|
1915
|
+
* [retrieves attribute :client_id](./spec/shared/model_behaviour.rb#L15)
|
1916
|
+
* #connection_key
|
1917
|
+
* [retrieves attribute :connection_key](./spec/shared/model_behaviour.rb#L15)
|
1918
|
+
* #max_message_size
|
1919
|
+
* [retrieves attribute :max_message_size](./spec/shared/model_behaviour.rb#L15)
|
1920
|
+
* #max_frame_size
|
1921
|
+
* [retrieves attribute :max_frame_size](./spec/shared/model_behaviour.rb#L15)
|
1922
|
+
* #max_inbound_rate
|
1923
|
+
* [retrieves attribute :max_inbound_rate](./spec/shared/model_behaviour.rb#L15)
|
1924
|
+
* #==
|
1925
|
+
* [is true when attributes are the same](./spec/shared/model_behaviour.rb#L41)
|
1926
|
+
* [is false when attributes are not the same](./spec/shared/model_behaviour.rb#L46)
|
1927
|
+
* [is false when class type differs](./spec/shared/model_behaviour.rb#L50)
|
1928
|
+
* is immutable
|
1929
|
+
* [prevents changes](./spec/shared/model_behaviour.rb#L76)
|
1930
|
+
* [dups options](./spec/shared/model_behaviour.rb#L80)
|
1931
|
+
* attributes
|
1932
|
+
* #connection_state_ttl
|
1933
|
+
* [retrieves attribute :connection_state_ttl and converts it from ms to s](./spec/unit/models/connection_details_spec.rb#L19)
|
1934
|
+
* ==
|
1935
|
+
* [is true when attributes are the same](./spec/unit/models/connection_details_spec.rb#L28)
|
1936
|
+
* [is false when attributes are not the same](./spec/unit/models/connection_details_spec.rb#L33)
|
1937
|
+
* [is false when class type differs](./spec/unit/models/connection_details_spec.rb#L37)
|
1938
|
+
|
1939
|
+
### Ably::Models::ConnectionStateChange
|
1940
|
+
_(see [spec/unit/models/connection_state_change_spec.rb](./spec/unit/models/connection_state_change_spec.rb))_
|
1941
|
+
* #current
|
1942
|
+
* [is required](./spec/unit/models/connection_state_change_spec.rb#L10)
|
1943
|
+
* [is an attribute](./spec/unit/models/connection_state_change_spec.rb#L14)
|
1944
|
+
* #previous
|
1945
|
+
* [is required](./spec/unit/models/connection_state_change_spec.rb#L20)
|
1946
|
+
* [is an attribute](./spec/unit/models/connection_state_change_spec.rb#L24)
|
1947
|
+
* #retry_in
|
1948
|
+
* [is not required](./spec/unit/models/connection_state_change_spec.rb#L30)
|
1949
|
+
* [is an attribute](./spec/unit/models/connection_state_change_spec.rb#L34)
|
1950
|
+
* #reason
|
1951
|
+
* [is not required](./spec/unit/models/connection_state_change_spec.rb#L40)
|
1952
|
+
* [is an attribute](./spec/unit/models/connection_state_change_spec.rb#L44)
|
1953
|
+
* invalid attributes
|
1954
|
+
* [raises an argument error](./spec/unit/models/connection_state_change_spec.rb#L50)
|
1955
|
+
|
1472
1956
|
### Ably::Models::ErrorInfo
|
1473
1957
|
_(see [spec/unit/models/error_info_spec.rb](./spec/unit/models/error_info_spec.rb))_
|
1474
1958
|
* behaves like a model
|
@@ -1550,46 +2034,47 @@ _(see [spec/unit/models/message_encoders/cipher_spec.rb](./spec/unit/models/mess
|
|
1550
2034
|
* message with another payload
|
1551
2035
|
* [leaves the message data intact](./spec/unit/models/message_encoders/cipher_spec.rb#L72)
|
1552
2036
|
* [leaves the encoding intact](./spec/unit/models/message_encoders/cipher_spec.rb#L76)
|
1553
|
-
*
|
1554
|
-
*
|
1555
|
-
|
1556
|
-
*
|
2037
|
+
* 256 bit key
|
2038
|
+
* with invalid channel_option cipher params
|
2039
|
+
* [raise an exception](./spec/unit/models/message_encoders/cipher_spec.rb#L90)
|
2040
|
+
* without any configured encryption
|
2041
|
+
* [raise an exception](./spec/unit/models/message_encoders/cipher_spec.rb#L100)
|
1557
2042
|
* with invalid cipher data
|
1558
|
-
* [raise an exception](./spec/unit/models/message_encoders/cipher_spec.rb#
|
2043
|
+
* [raise an exception](./spec/unit/models/message_encoders/cipher_spec.rb#L110)
|
1559
2044
|
* with AES-256-CBC
|
1560
2045
|
* message with cipher payload
|
1561
|
-
* [decodes cipher](./spec/unit/models/message_encoders/cipher_spec.rb#
|
1562
|
-
* [strips the encoding](./spec/unit/models/message_encoders/cipher_spec.rb#
|
2046
|
+
* [decodes cipher](./spec/unit/models/message_encoders/cipher_spec.rb#L127)
|
2047
|
+
* [strips the encoding](./spec/unit/models/message_encoders/cipher_spec.rb#L131)
|
1563
2048
|
* #encode
|
1564
2049
|
* with channel set up for AES-128-CBC
|
1565
2050
|
* with encrypted set to true
|
1566
2051
|
* message with string payload
|
1567
|
-
* [encodes cipher](./spec/unit/models/message_encoders/cipher_spec.rb#
|
1568
|
-
* [adds the encoding with utf-8](./spec/unit/models/message_encoders/cipher_spec.rb#
|
2052
|
+
* [encodes cipher](./spec/unit/models/message_encoders/cipher_spec.rb#L151)
|
2053
|
+
* [adds the encoding with utf-8](./spec/unit/models/message_encoders/cipher_spec.rb#L156)
|
1569
2054
|
* message with binary payload
|
1570
|
-
* [encodes cipher](./spec/unit/models/message_encoders/cipher_spec.rb#
|
1571
|
-
* [adds the encoding without utf-8 prefixed](./spec/unit/models/message_encoders/cipher_spec.rb#
|
1572
|
-
* [returns ASCII_8BIT encoded binary data](./spec/unit/models/message_encoders/cipher_spec.rb#
|
2055
|
+
* [encodes cipher](./spec/unit/models/message_encoders/cipher_spec.rb#L164)
|
2056
|
+
* [adds the encoding without utf-8 prefixed](./spec/unit/models/message_encoders/cipher_spec.rb#L169)
|
2057
|
+
* [returns ASCII_8BIT encoded binary data](./spec/unit/models/message_encoders/cipher_spec.rb#L173)
|
1573
2058
|
* message with json payload
|
1574
|
-
* [encodes cipher](./spec/unit/models/message_encoders/cipher_spec.rb#
|
1575
|
-
* [adds the encoding with utf-8](./spec/unit/models/message_encoders/cipher_spec.rb#
|
2059
|
+
* [encodes cipher](./spec/unit/models/message_encoders/cipher_spec.rb#L181)
|
2060
|
+
* [adds the encoding with utf-8](./spec/unit/models/message_encoders/cipher_spec.rb#L186)
|
1576
2061
|
* message with existing cipher encoding before
|
1577
|
-
* [leaves message intact as it is already encrypted](./spec/unit/models/message_encoders/cipher_spec.rb#
|
1578
|
-
* [leaves encoding intact](./spec/unit/models/message_encoders/cipher_spec.rb#
|
2062
|
+
* [leaves message intact as it is already encrypted](./spec/unit/models/message_encoders/cipher_spec.rb#L194)
|
2063
|
+
* [leaves encoding intact](./spec/unit/models/message_encoders/cipher_spec.rb#L198)
|
1579
2064
|
* with encryption set to to false
|
1580
|
-
* [leaves message intact as encryption is not enable](./spec/unit/models/message_encoders/cipher_spec.rb#
|
1581
|
-
* [leaves encoding intact](./spec/unit/models/message_encoders/cipher_spec.rb#
|
2065
|
+
* [leaves message intact as encryption is not enable](./spec/unit/models/message_encoders/cipher_spec.rb#L207)
|
2066
|
+
* [leaves encoding intact](./spec/unit/models/message_encoders/cipher_spec.rb#L211)
|
1582
2067
|
* channel_option cipher params
|
1583
2068
|
* have invalid key length
|
1584
|
-
* [raise an exception](./spec/unit/models/message_encoders/cipher_spec.rb#
|
2069
|
+
* [raise an exception](./spec/unit/models/message_encoders/cipher_spec.rb#L223)
|
1585
2070
|
* have invalid algorithm
|
1586
|
-
* [raise an exception](./spec/unit/models/message_encoders/cipher_spec.rb#
|
2071
|
+
* [raise an exception](./spec/unit/models/message_encoders/cipher_spec.rb#L230)
|
1587
2072
|
* have missing key
|
1588
|
-
* [raise an exception](./spec/unit/models/message_encoders/cipher_spec.rb#
|
2073
|
+
* [raise an exception](./spec/unit/models/message_encoders/cipher_spec.rb#L237)
|
1589
2074
|
* with AES-256-CBC
|
1590
2075
|
* message with cipher payload
|
1591
|
-
* [decodes cipher](./spec/unit/models/message_encoders/cipher_spec.rb#
|
1592
|
-
* [strips the encoding](./spec/unit/models/message_encoders/cipher_spec.rb#
|
2076
|
+
* [decodes cipher](./spec/unit/models/message_encoders/cipher_spec.rb#L255)
|
2077
|
+
* [strips the encoding](./spec/unit/models/message_encoders/cipher_spec.rb#L260)
|
1593
2078
|
|
1594
2079
|
### Ably::Models::MessageEncoders::Json
|
1595
2080
|
_(see [spec/unit/models/message_encoders/json_spec.rb](./spec/unit/models/message_encoders/json_spec.rb))_
|
@@ -1597,31 +2082,37 @@ _(see [spec/unit/models/message_encoders/json_spec.rb](./spec/unit/models/messag
|
|
1597
2082
|
* message with json payload
|
1598
2083
|
* [decodes json](./spec/unit/models/message_encoders/json_spec.rb#L24)
|
1599
2084
|
* [strips the encoding](./spec/unit/models/message_encoders/json_spec.rb#L28)
|
1600
|
-
* message with json payload
|
2085
|
+
* message with json payload in camelCase
|
1601
2086
|
* [decodes json](./spec/unit/models/message_encoders/json_spec.rb#L36)
|
1602
2087
|
* [strips the encoding](./spec/unit/models/message_encoders/json_spec.rb#L40)
|
2088
|
+
* message with json payload before other payloads
|
2089
|
+
* [decodes json](./spec/unit/models/message_encoders/json_spec.rb#L48)
|
2090
|
+
* [strips the encoding](./spec/unit/models/message_encoders/json_spec.rb#L52)
|
1603
2091
|
* message with another payload
|
1604
|
-
* [leaves the message data intact](./spec/unit/models/message_encoders/json_spec.rb#
|
1605
|
-
* [leaves the encoding intact](./spec/unit/models/message_encoders/json_spec.rb#
|
2092
|
+
* [leaves the message data intact](./spec/unit/models/message_encoders/json_spec.rb#L60)
|
2093
|
+
* [leaves the encoding intact](./spec/unit/models/message_encoders/json_spec.rb#L64)
|
1606
2094
|
* #encode
|
1607
2095
|
* message with hash payload
|
1608
|
-
* [encodes hash payload data as json](./spec/unit/models/message_encoders/json_spec.rb#L66)
|
1609
|
-
* [adds the encoding](./spec/unit/models/message_encoders/json_spec.rb#L70)
|
1610
|
-
* already encoded message with hash payload
|
1611
2096
|
* [encodes hash payload data as json](./spec/unit/models/message_encoders/json_spec.rb#L78)
|
1612
2097
|
* [adds the encoding](./spec/unit/models/message_encoders/json_spec.rb#L82)
|
1613
|
-
* message with
|
1614
|
-
* [encodes
|
2098
|
+
* message with hash payload and underscore case keys
|
2099
|
+
* [encodes hash payload data as json and leaves underscore case in tact](./spec/unit/models/message_encoders/json_spec.rb#L90)
|
1615
2100
|
* [adds the encoding](./spec/unit/models/message_encoders/json_spec.rb#L94)
|
2101
|
+
* already encoded message with hash payload
|
2102
|
+
* [encodes hash payload data as json](./spec/unit/models/message_encoders/json_spec.rb#L102)
|
2103
|
+
* [adds the encoding](./spec/unit/models/message_encoders/json_spec.rb#L106)
|
2104
|
+
* message with Array payload
|
2105
|
+
* [encodes Array payload data as json](./spec/unit/models/message_encoders/json_spec.rb#L114)
|
2106
|
+
* [adds the encoding](./spec/unit/models/message_encoders/json_spec.rb#L118)
|
1616
2107
|
* message with UTF-8 payload
|
1617
|
-
* [leaves the message data intact](./spec/unit/models/message_encoders/json_spec.rb#L102)
|
1618
|
-
* [leaves the encoding intact](./spec/unit/models/message_encoders/json_spec.rb#L106)
|
1619
|
-
* message with nil payload
|
1620
|
-
* [leaves the message data intact](./spec/unit/models/message_encoders/json_spec.rb#L114)
|
1621
|
-
* [leaves the encoding intact](./spec/unit/models/message_encoders/json_spec.rb#L118)
|
1622
|
-
* message with no data payload
|
1623
2108
|
* [leaves the message data intact](./spec/unit/models/message_encoders/json_spec.rb#L126)
|
1624
2109
|
* [leaves the encoding intact](./spec/unit/models/message_encoders/json_spec.rb#L130)
|
2110
|
+
* message with nil payload
|
2111
|
+
* [leaves the message data intact](./spec/unit/models/message_encoders/json_spec.rb#L138)
|
2112
|
+
* [leaves the encoding intact](./spec/unit/models/message_encoders/json_spec.rb#L142)
|
2113
|
+
* message with no data payload
|
2114
|
+
* [leaves the message data intact](./spec/unit/models/message_encoders/json_spec.rb#L150)
|
2115
|
+
* [leaves the encoding intact](./spec/unit/models/message_encoders/json_spec.rb#L154)
|
1625
2116
|
|
1626
2117
|
### Ably::Models::MessageEncoders::Utf8
|
1627
2118
|
_(see [spec/unit/models/message_encoders/utf8_spec.rb](./spec/unit/models/message_encoders/utf8_spec.rb))_
|
@@ -1907,6 +2398,17 @@ _(see [spec/unit/models/protocol_message_spec.rb](./spec/unit/models/protocol_me
|
|
1907
2398
|
* [contains Message objects](./spec/unit/models/protocol_message_spec.rb#L271)
|
1908
2399
|
* #presence
|
1909
2400
|
* [contains PresenceMessage objects](./spec/unit/models/protocol_message_spec.rb#L281)
|
2401
|
+
* #connection_details
|
2402
|
+
* with a JSON value
|
2403
|
+
* [contains a ConnectionDetails object](./spec/unit/models/protocol_message_spec.rb#L294)
|
2404
|
+
* [contains the attributes from the JSON connectionDetails](./spec/unit/models/protocol_message_spec.rb#L298)
|
2405
|
+
* without a JSON value
|
2406
|
+
* [contains an empty ConnectionDetails object](./spec/unit/models/protocol_message_spec.rb#L307)
|
2407
|
+
* #connection_key
|
2408
|
+
* existing only in #connection_details.connection_key
|
2409
|
+
* [is returned](./spec/unit/models/protocol_message_spec.rb#L319)
|
2410
|
+
* existing in both #connection_key and #connection_details.connection_key
|
2411
|
+
* [returns #connection_details.connection_key as #connection_key will be deprecated > 0.8](./spec/unit/models/protocol_message_spec.rb#L327)
|
1910
2412
|
|
1911
2413
|
### Ably::Models::Stats
|
1912
2414
|
_(see [spec/unit/models/stats_spec.rb](./spec/unit/models/stats_spec.rb))_
|
@@ -2058,27 +2560,30 @@ _(see [spec/unit/models/token_details_spec.rb](./spec/unit/models/token_details_
|
|
2058
2560
|
* attributes
|
2059
2561
|
* #capability
|
2060
2562
|
* [retrieves attribute :capability as parsed JSON](./spec/unit/models/token_details_spec.rb#L21)
|
2061
|
-
*
|
2062
|
-
*
|
2063
|
-
|
2064
|
-
*
|
2065
|
-
|
2066
|
-
*
|
2067
|
-
|
2068
|
-
*
|
2069
|
-
|
2070
|
-
*
|
2071
|
-
|
2072
|
-
*
|
2563
|
+
*
|
2564
|
+
* #issued with :issued option as milliseconds in constructor
|
2565
|
+
* [retrieves attribute :issued as Time](./spec/unit/models/token_details_spec.rb#L32)
|
2566
|
+
* #issued with :issued option as a Time in constructor
|
2567
|
+
* [retrieves attribute :issued as Time](./spec/unit/models/token_details_spec.rb#L41)
|
2568
|
+
* #issued when converted to JSON
|
2569
|
+
* [is in milliseconds](./spec/unit/models/token_details_spec.rb#L50)
|
2570
|
+
* #expires with :expires option as milliseconds in constructor
|
2571
|
+
* [retrieves attribute :expires as Time](./spec/unit/models/token_details_spec.rb#L32)
|
2572
|
+
* #expires with :expires option as a Time in constructor
|
2573
|
+
* [retrieves attribute :expires as Time](./spec/unit/models/token_details_spec.rb#L41)
|
2574
|
+
* #expires when converted to JSON
|
2575
|
+
* [is in milliseconds](./spec/unit/models/token_details_spec.rb#L50)
|
2073
2576
|
* #expired?
|
2074
2577
|
* once grace period buffer has passed
|
2075
|
-
* [is true](./spec/unit/models/token_details_spec.rb#
|
2578
|
+
* [is true](./spec/unit/models/token_details_spec.rb#L63)
|
2076
2579
|
* within grace period buffer
|
2077
|
-
* [is false](./spec/unit/models/token_details_spec.rb#
|
2580
|
+
* [is false](./spec/unit/models/token_details_spec.rb#L71)
|
2581
|
+
* when expires is not available (i.e. string tokens)
|
2582
|
+
* [is always false](./spec/unit/models/token_details_spec.rb#L79)
|
2078
2583
|
* ==
|
2079
|
-
* [is true when attributes are the same](./spec/unit/models/token_details_spec.rb#
|
2080
|
-
* [is false when attributes are not the same](./spec/unit/models/token_details_spec.rb#
|
2081
|
-
* [is false when class type differs](./spec/unit/models/token_details_spec.rb#
|
2584
|
+
* [is true when attributes are the same](./spec/unit/models/token_details_spec.rb#L89)
|
2585
|
+
* [is false when attributes are not the same](./spec/unit/models/token_details_spec.rb#L94)
|
2586
|
+
* [is false when class type differs](./spec/unit/models/token_details_spec.rb#L98)
|
2082
2587
|
|
2083
2588
|
### Ably::Models::TokenRequest
|
2084
2589
|
_(see [spec/unit/models/token_request_spec.rb](./spec/unit/models/token_request_spec.rb))_
|
@@ -2122,35 +2627,35 @@ _(see [spec/unit/models/token_request_spec.rb](./spec/unit/models/token_request_
|
|
2122
2627
|
### Ably::Modules::EventEmitter
|
2123
2628
|
_(see [spec/unit/modules/event_emitter_spec.rb](./spec/unit/modules/event_emitter_spec.rb))_
|
2124
2629
|
* #emit event fan out
|
2125
|
-
* [should emit an event for any number of subscribers](./spec/unit/modules/event_emitter_spec.rb#
|
2126
|
-
* [sends only messages to matching event names](./spec/unit/modules/event_emitter_spec.rb#
|
2630
|
+
* [should emit an event for any number of subscribers](./spec/unit/modules/event_emitter_spec.rb#L21)
|
2631
|
+
* [sends only messages to matching event names](./spec/unit/modules/event_emitter_spec.rb#L30)
|
2127
2632
|
* #on subscribe to multiple events
|
2128
|
-
* [with the same block](./spec/unit/modules/event_emitter_spec.rb#
|
2633
|
+
* [with the same block](./spec/unit/modules/event_emitter_spec.rb#L62)
|
2129
2634
|
* event callback changes within the callback block
|
2130
2635
|
* when new event callbacks are added
|
2131
|
-
* [is unaffected and processes the prior event callbacks once](./spec/unit/modules/event_emitter_spec.rb#
|
2132
|
-
* [adds them for the next emitted event](./spec/unit/modules/event_emitter_spec.rb#
|
2636
|
+
* [is unaffected and processes the prior event callbacks once](./spec/unit/modules/event_emitter_spec.rb#L86)
|
2637
|
+
* [adds them for the next emitted event](./spec/unit/modules/event_emitter_spec.rb#L92)
|
2133
2638
|
* when callbacks are removed
|
2134
|
-
* [is unaffected and processes the prior event callbacks once](./spec/unit/modules/event_emitter_spec.rb#
|
2135
|
-
* [removes them for the next emitted event](./spec/unit/modules/event_emitter_spec.rb#
|
2639
|
+
* [is unaffected and processes the prior event callbacks once](./spec/unit/modules/event_emitter_spec.rb#L113)
|
2640
|
+
* [removes them for the next emitted event](./spec/unit/modules/event_emitter_spec.rb#L118)
|
2136
2641
|
* #on
|
2137
|
-
* [calls the block every time an event is emitted only](./spec/unit/modules/event_emitter_spec.rb#
|
2138
|
-
* [catches exceptions in the provided block, logs the error and continues](./spec/unit/modules/event_emitter_spec.rb#
|
2642
|
+
* [calls the block every time an event is emitted only](./spec/unit/modules/event_emitter_spec.rb#L131)
|
2643
|
+
* [catches exceptions in the provided block, logs the error and continues](./spec/unit/modules/event_emitter_spec.rb#L138)
|
2139
2644
|
* #once
|
2140
|
-
* [calls the block the first time an event is emitted only](./spec/unit/modules/event_emitter_spec.rb#
|
2141
|
-
* [does not remove other blocks after it is called](./spec/unit/modules/event_emitter_spec.rb#
|
2142
|
-
* [catches exceptions in the provided block, logs the error and continues](./spec/unit/modules/event_emitter_spec.rb#
|
2645
|
+
* [calls the block the first time an event is emitted only](./spec/unit/modules/event_emitter_spec.rb#L160)
|
2646
|
+
* [does not remove other blocks after it is called](./spec/unit/modules/event_emitter_spec.rb#L167)
|
2647
|
+
* [catches exceptions in the provided block, logs the error and continues](./spec/unit/modules/event_emitter_spec.rb#L175)
|
2143
2648
|
* #unsafe_once
|
2144
|
-
* [calls the block the first time an event is emitted only](./spec/unit/modules/event_emitter_spec.rb#
|
2145
|
-
* [does not catch exceptions in provided blocks](./spec/unit/modules/event_emitter_spec.rb#
|
2649
|
+
* [calls the block the first time an event is emitted only](./spec/unit/modules/event_emitter_spec.rb#L183)
|
2650
|
+
* [does not catch exceptions in provided blocks](./spec/unit/modules/event_emitter_spec.rb#L190)
|
2146
2651
|
* #off
|
2147
2652
|
* with event names as arguments
|
2148
|
-
* [deletes matching callbacks](./spec/unit/modules/event_emitter_spec.rb#
|
2149
|
-
* [deletes all callbacks if not block given](./spec/unit/modules/event_emitter_spec.rb#
|
2150
|
-
* [continues if the block does not exist](./spec/unit/modules/event_emitter_spec.rb#
|
2653
|
+
* [deletes matching callbacks](./spec/unit/modules/event_emitter_spec.rb#L208)
|
2654
|
+
* [deletes all callbacks if not block given](./spec/unit/modules/event_emitter_spec.rb#L213)
|
2655
|
+
* [continues if the block does not exist](./spec/unit/modules/event_emitter_spec.rb#L218)
|
2151
2656
|
* without any event names
|
2152
|
-
* [deletes all matching callbacks](./spec/unit/modules/event_emitter_spec.rb#
|
2153
|
-
* [deletes all callbacks if not block given](./spec/unit/modules/event_emitter_spec.rb#
|
2657
|
+
* [deletes all matching callbacks](./spec/unit/modules/event_emitter_spec.rb#L225)
|
2658
|
+
* [deletes all callbacks if not block given](./spec/unit/modules/event_emitter_spec.rb#L230)
|
2154
2659
|
|
2155
2660
|
### Ably::Modules::StateEmitter
|
2156
2661
|
_(see [spec/unit/modules/state_emitter_spec.rb](./spec/unit/modules/state_emitter_spec.rb))_
|
@@ -2184,31 +2689,31 @@ _(see [spec/unit/realtime/channel_spec.rb](./spec/unit/realtime/channel_spec.rb)
|
|
2184
2689
|
* [raises an argument error](./spec/unit/realtime/channel_spec.rb#L63)
|
2185
2690
|
* #publish name argument
|
2186
2691
|
* as UTF_8 string
|
2187
|
-
* [is permitted](./spec/unit/realtime/channel_spec.rb#
|
2692
|
+
* [is permitted](./spec/unit/realtime/channel_spec.rb#L81)
|
2188
2693
|
* as SHIFT_JIS string
|
2189
|
-
* [is permitted](./spec/unit/realtime/channel_spec.rb#
|
2694
|
+
* [is permitted](./spec/unit/realtime/channel_spec.rb#L89)
|
2190
2695
|
* as ASCII_8BIT string
|
2191
|
-
* [is permitted](./spec/unit/realtime/channel_spec.rb#
|
2696
|
+
* [is permitted](./spec/unit/realtime/channel_spec.rb#L97)
|
2192
2697
|
* as Integer
|
2193
|
-
* [raises an argument error](./spec/unit/realtime/channel_spec.rb#
|
2698
|
+
* [raises an argument error](./spec/unit/realtime/channel_spec.rb#L105)
|
2194
2699
|
* as Nil
|
2195
|
-
* [is permitted](./spec/unit/realtime/channel_spec.rb#
|
2700
|
+
* [is permitted](./spec/unit/realtime/channel_spec.rb#L113)
|
2196
2701
|
* callbacks
|
2197
|
-
* [are supported for valid STATE events](./spec/unit/realtime/channel_spec.rb#
|
2198
|
-
* [fail with unacceptable STATE event names](./spec/unit/realtime/channel_spec.rb#
|
2702
|
+
* [are supported for valid STATE events](./spec/unit/realtime/channel_spec.rb#L120)
|
2703
|
+
* [fail with unacceptable STATE event names](./spec/unit/realtime/channel_spec.rb#L126)
|
2199
2704
|
* subscriptions
|
2200
2705
|
* #subscribe
|
2201
|
-
* [without a block raises an invalid ArgumentError](./spec/unit/realtime/channel_spec.rb#
|
2202
|
-
* [with no event name specified subscribes the provided block to all events](./spec/unit/realtime/channel_spec.rb#
|
2203
|
-
* [with a single event name subscribes that block to matching events](./spec/unit/realtime/channel_spec.rb#
|
2204
|
-
* [with a multiple event name arguments subscribes that block to all of those event names](./spec/unit/realtime/channel_spec.rb#
|
2205
|
-
* [with a multiple duplicate event name arguments subscribes that block to all of those unique event names once](./spec/unit/realtime/channel_spec.rb#
|
2706
|
+
* [without a block raises an invalid ArgumentError](./spec/unit/realtime/channel_spec.rb#L168)
|
2707
|
+
* [with no event name specified subscribes the provided block to all events](./spec/unit/realtime/channel_spec.rb#L172)
|
2708
|
+
* [with a single event name subscribes that block to matching events](./spec/unit/realtime/channel_spec.rb#L178)
|
2709
|
+
* [with a multiple event name arguments subscribes that block to all of those event names](./spec/unit/realtime/channel_spec.rb#L185)
|
2710
|
+
* [with a multiple duplicate event name arguments subscribes that block to all of those unique event names once](./spec/unit/realtime/channel_spec.rb#L197)
|
2206
2711
|
* #unsubscribe
|
2207
|
-
* [with no event name specified unsubscribes that block from all events](./spec/unit/realtime/channel_spec.rb#
|
2208
|
-
* [with a single event name argument unsubscribes the provided block with the matching event name](./spec/unit/realtime/channel_spec.rb#
|
2209
|
-
* [with multiple event name arguments unsubscribes each of those matching event names with the provided block](./spec/unit/realtime/channel_spec.rb#
|
2210
|
-
* [with a non-matching event name argument has no effect](./spec/unit/realtime/channel_spec.rb#
|
2211
|
-
* [with no block argument unsubscribes all blocks for the event name argument](./spec/unit/realtime/channel_spec.rb#
|
2712
|
+
* [with no event name specified unsubscribes that block from all events](./spec/unit/realtime/channel_spec.rb#L214)
|
2713
|
+
* [with a single event name argument unsubscribes the provided block with the matching event name](./spec/unit/realtime/channel_spec.rb#L220)
|
2714
|
+
* [with multiple event name arguments unsubscribes each of those matching event names with the provided block](./spec/unit/realtime/channel_spec.rb#L226)
|
2715
|
+
* [with a non-matching event name argument has no effect](./spec/unit/realtime/channel_spec.rb#L232)
|
2716
|
+
* [with no block argument unsubscribes all blocks for the event name argument](./spec/unit/realtime/channel_spec.rb#L238)
|
2212
2717
|
|
2213
2718
|
### Ably::Realtime::Channels
|
2214
2719
|
_(see [spec/unit/realtime/channels_spec.rb](./spec/unit/realtime/channels_spec.rb))_
|
@@ -2255,47 +2760,47 @@ _(see [spec/unit/realtime/client_spec.rb](./spec/unit/realtime/client_spec.rb))_
|
|
2255
2760
|
* [connects to the Ably service](./spec/shared/client_initializer_behaviour.rb#L87)
|
2256
2761
|
* [uses basic auth](./spec/shared/client_initializer_behaviour.rb#L91)
|
2257
2762
|
* with a string key instead of options hash
|
2258
|
-
* [sets the key](./spec/shared/client_initializer_behaviour.rb#
|
2259
|
-
* [sets the key_name](./spec/shared/client_initializer_behaviour.rb#
|
2260
|
-
* [sets the key_secret](./spec/shared/client_initializer_behaviour.rb#
|
2261
|
-
* [uses basic auth](./spec/shared/client_initializer_behaviour.rb#
|
2763
|
+
* [sets the key](./spec/shared/client_initializer_behaviour.rb#L111)
|
2764
|
+
* [sets the key_name](./spec/shared/client_initializer_behaviour.rb#L115)
|
2765
|
+
* [sets the key_secret](./spec/shared/client_initializer_behaviour.rb#L119)
|
2766
|
+
* [uses basic auth](./spec/shared/client_initializer_behaviour.rb#L123)
|
2262
2767
|
* with a string token key instead of options hash
|
2263
|
-
* [sets the token](./spec/shared/client_initializer_behaviour.rb#L127)
|
2264
|
-
* with token
|
2265
2768
|
* [sets the token](./spec/shared/client_initializer_behaviour.rb#L135)
|
2266
|
-
* with
|
2769
|
+
* with token
|
2267
2770
|
* [sets the token](./spec/shared/client_initializer_behaviour.rb#L143)
|
2771
|
+
* with token_details
|
2772
|
+
* [sets the token](./spec/shared/client_initializer_behaviour.rb#L151)
|
2268
2773
|
* with token_params
|
2269
|
-
* [configures the default token_params](./spec/shared/client_initializer_behaviour.rb#
|
2774
|
+
* [configures the default token_params](./spec/shared/client_initializer_behaviour.rb#L159)
|
2270
2775
|
* endpoint
|
2271
|
-
* [defaults to production](./spec/shared/client_initializer_behaviour.rb#
|
2776
|
+
* [defaults to production](./spec/shared/client_initializer_behaviour.rb#L170)
|
2272
2777
|
* with environment option
|
2273
|
-
* [uses an alternate endpoint](./spec/shared/client_initializer_behaviour.rb#
|
2778
|
+
* [uses an alternate endpoint](./spec/shared/client_initializer_behaviour.rb#L177)
|
2274
2779
|
* with rest_host option
|
2275
|
-
* PENDING: *[uses an alternate endpoint for REST clients](./spec/shared/client_initializer_behaviour.rb#
|
2780
|
+
* PENDING: *[uses an alternate endpoint for REST clients](./spec/shared/client_initializer_behaviour.rb#L185)*
|
2276
2781
|
* with realtime_host option
|
2277
|
-
* [uses an alternate endpoint for Realtime clients](./spec/shared/client_initializer_behaviour.rb#
|
2782
|
+
* [uses an alternate endpoint for Realtime clients](./spec/shared/client_initializer_behaviour.rb#L194)
|
2278
2783
|
* with port option and non-TLS connections
|
2279
|
-
* [uses the custom port for non-TLS requests](./spec/shared/client_initializer_behaviour.rb#
|
2784
|
+
* [uses the custom port for non-TLS requests](./spec/shared/client_initializer_behaviour.rb#L203)
|
2280
2785
|
* with tls_port option and a TLS connection
|
2281
|
-
* [uses the custom port for TLS requests](./spec/shared/client_initializer_behaviour.rb#
|
2786
|
+
* [uses the custom port for TLS requests](./spec/shared/client_initializer_behaviour.rb#L211)
|
2282
2787
|
* tls
|
2283
|
-
* [defaults to TLS](./spec/shared/client_initializer_behaviour.rb#
|
2788
|
+
* [defaults to TLS](./spec/shared/client_initializer_behaviour.rb#L234)
|
2284
2789
|
* set to false
|
2285
|
-
* [uses plain text](./spec/shared/client_initializer_behaviour.rb#
|
2286
|
-
* [uses HTTP](./spec/shared/client_initializer_behaviour.rb#
|
2790
|
+
* [uses plain text](./spec/shared/client_initializer_behaviour.rb#L225)
|
2791
|
+
* [uses HTTP](./spec/shared/client_initializer_behaviour.rb#L229)
|
2287
2792
|
* logger
|
2288
2793
|
* default
|
2289
|
-
* [uses Ruby Logger](./spec/shared/client_initializer_behaviour.rb#
|
2290
|
-
* [specifies Logger::WARN log level](./spec/shared/client_initializer_behaviour.rb#
|
2794
|
+
* [uses Ruby Logger](./spec/shared/client_initializer_behaviour.rb#L245)
|
2795
|
+
* [specifies Logger::WARN log level](./spec/shared/client_initializer_behaviour.rb#L249)
|
2291
2796
|
* with log_level :none
|
2292
|
-
* [silences all logging with a NilLogger](./spec/shared/client_initializer_behaviour.rb#
|
2797
|
+
* [silences all logging with a NilLogger](./spec/shared/client_initializer_behaviour.rb#L257)
|
2293
2798
|
* with custom logger and log_level
|
2294
|
-
* [uses the custom logger](./spec/shared/client_initializer_behaviour.rb#
|
2295
|
-
* [sets the custom log level](./spec/shared/client_initializer_behaviour.rb#
|
2799
|
+
* [uses the custom logger](./spec/shared/client_initializer_behaviour.rb#L275)
|
2800
|
+
* [sets the custom log level](./spec/shared/client_initializer_behaviour.rb#L279)
|
2296
2801
|
* delegators
|
2297
|
-
* [delegates :client_id to .auth](./spec/shared/client_initializer_behaviour.rb#
|
2298
|
-
* [delegates :auth_options to .auth](./spec/shared/client_initializer_behaviour.rb#
|
2802
|
+
* [delegates :client_id to .auth](./spec/shared/client_initializer_behaviour.rb#L293)
|
2803
|
+
* [delegates :auth_options to .auth](./spec/shared/client_initializer_behaviour.rb#L298)
|
2299
2804
|
* delegation to the REST Client
|
2300
2805
|
* [passes on the options to the initializer](./spec/unit/realtime/client_spec.rb#L15)
|
2301
2806
|
* for attribute
|
@@ -2442,47 +2947,47 @@ _(see [spec/unit/rest/client_spec.rb](./spec/unit/rest/client_spec.rb))_
|
|
2442
2947
|
* [connects to the Ably service](./spec/shared/client_initializer_behaviour.rb#L87)
|
2443
2948
|
* [uses basic auth](./spec/shared/client_initializer_behaviour.rb#L91)
|
2444
2949
|
* with a string key instead of options hash
|
2445
|
-
* [sets the key](./spec/shared/client_initializer_behaviour.rb#
|
2446
|
-
* [sets the key_name](./spec/shared/client_initializer_behaviour.rb#
|
2447
|
-
* [sets the key_secret](./spec/shared/client_initializer_behaviour.rb#
|
2448
|
-
* [uses basic auth](./spec/shared/client_initializer_behaviour.rb#
|
2950
|
+
* [sets the key](./spec/shared/client_initializer_behaviour.rb#L111)
|
2951
|
+
* [sets the key_name](./spec/shared/client_initializer_behaviour.rb#L115)
|
2952
|
+
* [sets the key_secret](./spec/shared/client_initializer_behaviour.rb#L119)
|
2953
|
+
* [uses basic auth](./spec/shared/client_initializer_behaviour.rb#L123)
|
2449
2954
|
* with a string token key instead of options hash
|
2450
|
-
* [sets the token](./spec/shared/client_initializer_behaviour.rb#L127)
|
2451
|
-
* with token
|
2452
2955
|
* [sets the token](./spec/shared/client_initializer_behaviour.rb#L135)
|
2453
|
-
* with
|
2956
|
+
* with token
|
2454
2957
|
* [sets the token](./spec/shared/client_initializer_behaviour.rb#L143)
|
2958
|
+
* with token_details
|
2959
|
+
* [sets the token](./spec/shared/client_initializer_behaviour.rb#L151)
|
2455
2960
|
* with token_params
|
2456
|
-
* [configures the default token_params](./spec/shared/client_initializer_behaviour.rb#
|
2961
|
+
* [configures the default token_params](./spec/shared/client_initializer_behaviour.rb#L159)
|
2457
2962
|
* endpoint
|
2458
|
-
* [defaults to production](./spec/shared/client_initializer_behaviour.rb#
|
2963
|
+
* [defaults to production](./spec/shared/client_initializer_behaviour.rb#L170)
|
2459
2964
|
* with environment option
|
2460
|
-
* [uses an alternate endpoint](./spec/shared/client_initializer_behaviour.rb#
|
2965
|
+
* [uses an alternate endpoint](./spec/shared/client_initializer_behaviour.rb#L177)
|
2461
2966
|
* with rest_host option
|
2462
|
-
* [uses an alternate endpoint for REST clients](./spec/shared/client_initializer_behaviour.rb#
|
2967
|
+
* [uses an alternate endpoint for REST clients](./spec/shared/client_initializer_behaviour.rb#L185)
|
2463
2968
|
* with realtime_host option
|
2464
|
-
* PENDING: *[uses an alternate endpoint for Realtime clients](./spec/shared/client_initializer_behaviour.rb#
|
2969
|
+
* PENDING: *[uses an alternate endpoint for Realtime clients](./spec/shared/client_initializer_behaviour.rb#L194)*
|
2465
2970
|
* with port option and non-TLS connections
|
2466
|
-
* [uses the custom port for non-TLS requests](./spec/shared/client_initializer_behaviour.rb#
|
2971
|
+
* [uses the custom port for non-TLS requests](./spec/shared/client_initializer_behaviour.rb#L203)
|
2467
2972
|
* with tls_port option and a TLS connection
|
2468
|
-
* [uses the custom port for TLS requests](./spec/shared/client_initializer_behaviour.rb#
|
2973
|
+
* [uses the custom port for TLS requests](./spec/shared/client_initializer_behaviour.rb#L211)
|
2469
2974
|
* tls
|
2470
|
-
* [defaults to TLS](./spec/shared/client_initializer_behaviour.rb#
|
2975
|
+
* [defaults to TLS](./spec/shared/client_initializer_behaviour.rb#L234)
|
2471
2976
|
* set to false
|
2472
|
-
* [uses plain text](./spec/shared/client_initializer_behaviour.rb#
|
2473
|
-
* [uses HTTP](./spec/shared/client_initializer_behaviour.rb#
|
2977
|
+
* [uses plain text](./spec/shared/client_initializer_behaviour.rb#L225)
|
2978
|
+
* [uses HTTP](./spec/shared/client_initializer_behaviour.rb#L229)
|
2474
2979
|
* logger
|
2475
2980
|
* default
|
2476
|
-
* [uses Ruby Logger](./spec/shared/client_initializer_behaviour.rb#
|
2477
|
-
* [specifies Logger::WARN log level](./spec/shared/client_initializer_behaviour.rb#
|
2981
|
+
* [uses Ruby Logger](./spec/shared/client_initializer_behaviour.rb#L245)
|
2982
|
+
* [specifies Logger::WARN log level](./spec/shared/client_initializer_behaviour.rb#L249)
|
2478
2983
|
* with log_level :none
|
2479
|
-
* [silences all logging with a NilLogger](./spec/shared/client_initializer_behaviour.rb#
|
2984
|
+
* [silences all logging with a NilLogger](./spec/shared/client_initializer_behaviour.rb#L257)
|
2480
2985
|
* with custom logger and log_level
|
2481
|
-
* [uses the custom logger](./spec/shared/client_initializer_behaviour.rb#
|
2482
|
-
* [sets the custom log level](./spec/shared/client_initializer_behaviour.rb#
|
2986
|
+
* [uses the custom logger](./spec/shared/client_initializer_behaviour.rb#L275)
|
2987
|
+
* [sets the custom log level](./spec/shared/client_initializer_behaviour.rb#L279)
|
2483
2988
|
* delegators
|
2484
|
-
* [delegates :client_id to .auth](./spec/shared/client_initializer_behaviour.rb#
|
2485
|
-
* [delegates :auth_options to .auth](./spec/shared/client_initializer_behaviour.rb#
|
2989
|
+
* [delegates :client_id to .auth](./spec/shared/client_initializer_behaviour.rb#L293)
|
2990
|
+
* [delegates :auth_options to .auth](./spec/shared/client_initializer_behaviour.rb#L298)
|
2486
2991
|
* initializer options
|
2487
2992
|
* TLS
|
2488
2993
|
* disabled
|
@@ -2504,23 +3009,34 @@ _(see [spec/unit/rest/rest_spec.rb](./spec/unit/rest/rest_spec.rb))_
|
|
2504
3009
|
### Ably::Util::Crypto
|
2505
3010
|
_(see [spec/unit/util/crypto_spec.rb](./spec/unit/util/crypto_spec.rb))_
|
2506
3011
|
* defaults
|
2507
|
-
* [match other client libraries](./spec/unit/util/crypto_spec.rb#
|
3012
|
+
* [match other client libraries](./spec/unit/util/crypto_spec.rb#L19)
|
3013
|
+
* get_default_params
|
3014
|
+
* with just a :key param
|
3015
|
+
* [uses the defaults](./spec/unit/util/crypto_spec.rb#L29)
|
3016
|
+
* [contains the provided key](./spec/unit/util/crypto_spec.rb#L35)
|
3017
|
+
* [returns a CipherParams object](./spec/unit/util/crypto_spec.rb#L39)
|
3018
|
+
* without a :key param
|
3019
|
+
* [raises an exception](./spec/unit/util/crypto_spec.rb#L47)
|
3020
|
+
* with a base64-encoded :key param
|
3021
|
+
* [converts the key to binary](./spec/unit/util/crypto_spec.rb#L55)
|
3022
|
+
* with provided params
|
3023
|
+
* [overrides the defaults](./spec/unit/util/crypto_spec.rb#L67)
|
2508
3024
|
* encrypts & decrypt
|
2509
|
-
* [#encrypt encrypts a string](./spec/unit/util/crypto_spec.rb#
|
2510
|
-
* [#decrypt decrypts a string](./spec/unit/util/crypto_spec.rb#
|
3025
|
+
* [#encrypt encrypts a string](./spec/unit/util/crypto_spec.rb#L79)
|
3026
|
+
* [#decrypt decrypts a string](./spec/unit/util/crypto_spec.rb#L84)
|
2511
3027
|
* encrypting an empty string
|
2512
|
-
* [raises an ArgumentError](./spec/unit/util/crypto_spec.rb#
|
3028
|
+
* [raises an ArgumentError](./spec/unit/util/crypto_spec.rb#L93)
|
2513
3029
|
* using shared client lib fixture data
|
2514
3030
|
* with AES-128-CBC
|
2515
3031
|
* behaves like an Ably encrypter and decrypter
|
2516
3032
|
* text payload
|
2517
|
-
* [encrypts exactly the same binary data as other client libraries](./spec/unit/util/crypto_spec.rb#
|
2518
|
-
* [decrypts exactly the same binary data as other client libraries](./spec/unit/util/crypto_spec.rb#
|
3033
|
+
* [encrypts exactly the same binary data as other client libraries](./spec/unit/util/crypto_spec.rb#L116)
|
3034
|
+
* [decrypts exactly the same binary data as other client libraries](./spec/unit/util/crypto_spec.rb#L120)
|
2519
3035
|
* with AES-256-CBC
|
2520
3036
|
* behaves like an Ably encrypter and decrypter
|
2521
3037
|
* text payload
|
2522
|
-
* [encrypts exactly the same binary data as other client libraries](./spec/unit/util/crypto_spec.rb#
|
2523
|
-
* [decrypts exactly the same binary data as other client libraries](./spec/unit/util/crypto_spec.rb#
|
3038
|
+
* [encrypts exactly the same binary data as other client libraries](./spec/unit/util/crypto_spec.rb#L116)
|
3039
|
+
* [decrypts exactly the same binary data as other client libraries](./spec/unit/util/crypto_spec.rb#L120)
|
2524
3040
|
|
2525
3041
|
### Ably::Util::PubSub
|
2526
3042
|
_(see [spec/unit/util/pub_sub_spec.rb](./spec/unit/util/pub_sub_spec.rb))_
|
@@ -2536,6 +3052,6 @@ _(see [spec/unit/util/pub_sub_spec.rb](./spec/unit/util/pub_sub_spec.rb))_
|
|
2536
3052
|
|
2537
3053
|
## Test summary
|
2538
3054
|
|
2539
|
-
* Passing tests:
|
2540
|
-
* Pending tests:
|
3055
|
+
* Passing tests: 1492
|
3056
|
+
* Pending tests: 6
|
2541
3057
|
* Failing tests: 0
|