ably 1.2.6 → 1.2.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/SPEC.md CHANGED
@@ -1,4 +1,4 @@
1
- # Ably Realtime & REST Client Library 1.2.6 Specification
1
+ # Ably Realtime & REST Client Library 1.2.8 Specification
2
2
 
3
3
  ### Ably::Realtime::Auth
4
4
  _(see [spec/acceptance/realtime/auth_spec.rb](./spec/acceptance/realtime/auth_spec.rb))_
@@ -55,7 +55,7 @@ _(see [spec/acceptance/realtime/auth_spec.rb](./spec/acceptance/realtime/auth_sp
55
55
  * and an incompatible client_id in a TokenDetails object passed to the auth callback
56
56
  * [rejects a TokenDetails object with an incompatible client_id and fails with an exception](./spec/acceptance/realtime/auth_spec.rb#L287)
57
57
  * when already authenticated with a valid token
58
- * [ensures message delivery continuity whilst upgrading (#RTC8a1)](./spec/acceptance/realtime/auth_spec.rb#L703)
58
+ * [ensures message delivery continuity whilst upgrading (#RTC8a1)](./spec/acceptance/realtime/auth_spec.rb#L700)
59
59
  * when INITIALIZED
60
60
  * [obtains a token and connects to Ably (#RTC8c, #RTC8b1)](./spec/acceptance/realtime/auth_spec.rb#L328)
61
61
  * when CONNECTING
@@ -78,97 +78,97 @@ _(see [spec/acceptance/realtime/auth_spec.rb](./spec/acceptance/realtime/auth_sp
78
78
  * when auth fails
79
79
  * [transitions the connection state to the FAILED state (#RSA15c, #RTC8a2, #RTC8a3)](./spec/acceptance/realtime/auth_spec.rb#L612)
80
80
  * when the authCallback fails
81
- * [calls the error callback of authorize and leaves the connection intact (#RSA4c3)](./spec/acceptance/realtime/auth_spec.rb#L640)
81
+ * [calls the error callback of authorize and leaves the connection intact (#RSA4c3)](./spec/acceptance/realtime/auth_spec.rb#L638)
82
82
  * when upgrading capabilities
83
- * [is allowed (#RTC8a1)](./spec/acceptance/realtime/auth_spec.rb#L659)
83
+ * [is allowed (#RTC8a1)](./spec/acceptance/realtime/auth_spec.rb#L657)
84
84
  * when downgrading capabilities (#RTC8a1)
85
- * [is allowed and channels are detached](./spec/acceptance/realtime/auth_spec.rb#L686)
85
+ * [is allowed and channels are detached](./spec/acceptance/realtime/auth_spec.rb#L683)
86
86
  * #authorize_async
87
- * [returns a token synchronously](./spec/acceptance/realtime/auth_spec.rb#L737)
87
+ * [returns a token synchronously](./spec/acceptance/realtime/auth_spec.rb#L734)
88
88
  * server initiated AUTH ProtocolMessage
89
89
  * when received
90
- * [should immediately start a new authentication process (#RTN22)](./spec/acceptance/realtime/auth_spec.rb#L758)
90
+ * [should immediately start a new authentication process (#RTN22)](./spec/acceptance/realtime/auth_spec.rb#L755)
91
91
  * when not received
92
- * [should expect the connection to be disconnected by the server but should resume automatically (#RTN22a)](./spec/acceptance/realtime/auth_spec.rb#L781)
92
+ * [should expect the connection to be disconnected by the server but should resume automatically (#RTN22a)](./spec/acceptance/realtime/auth_spec.rb#L778)
93
93
  * #auth_params
94
- * [returns the auth params asynchronously](./spec/acceptance/realtime/auth_spec.rb#L807)
94
+ * [returns the auth params asynchronously](./spec/acceptance/realtime/auth_spec.rb#L804)
95
95
  * #auth_params_sync
96
- * [returns the auth params synchronously](./spec/acceptance/realtime/auth_spec.rb#L816)
96
+ * [returns the auth params synchronously](./spec/acceptance/realtime/auth_spec.rb#L813)
97
97
  * #auth_header
98
- * [returns an auth header asynchronously](./spec/acceptance/realtime/auth_spec.rb#L823)
98
+ * [returns an auth header asynchronously](./spec/acceptance/realtime/auth_spec.rb#L820)
99
99
  * #auth_header_sync
100
- * [returns an auth header synchronously](./spec/acceptance/realtime/auth_spec.rb#L832)
100
+ * [returns an auth header synchronously](./spec/acceptance/realtime/auth_spec.rb#L829)
101
101
  * #client_id_validated?
102
102
  * when using basic auth
103
103
  * before connected
104
- * [is false as basic auth users do not have an identity](./spec/acceptance/realtime/auth_spec.rb#L845)
104
+ * [is false as basic auth users do not have an identity](./spec/acceptance/realtime/auth_spec.rb#L842)
105
105
  * once connected
106
- * [is true](./spec/acceptance/realtime/auth_spec.rb#L852)
107
- * [contains a validated wildcard client_id](./spec/acceptance/realtime/auth_spec.rb#L859)
106
+ * [is true](./spec/acceptance/realtime/auth_spec.rb#L849)
107
+ * [contains a validated wildcard client_id](./spec/acceptance/realtime/auth_spec.rb#L856)
108
108
  * when using a token string
109
109
  * with a valid client_id
110
110
  * before connected
111
- * [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#L873)
112
- * [#client_id is nil](./spec/acceptance/realtime/auth_spec.rb#L878)
111
+ * [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#L870)
112
+ * [#client_id is nil](./spec/acceptance/realtime/auth_spec.rb#L875)
113
113
  * once connected
114
- * [is true](./spec/acceptance/realtime/auth_spec.rb#L885)
115
- * [#client_id is populated](./spec/acceptance/realtime/auth_spec.rb#L892)
114
+ * [is true](./spec/acceptance/realtime/auth_spec.rb#L882)
115
+ * [#client_id is populated](./spec/acceptance/realtime/auth_spec.rb#L889)
116
116
  * with no client_id (anonymous)
117
117
  * before connected
118
- * [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#L905)
118
+ * [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#L902)
119
119
  * once connected
120
- * [is true](./spec/acceptance/realtime/auth_spec.rb#L912)
120
+ * [is true](./spec/acceptance/realtime/auth_spec.rb#L909)
121
121
  * with a wildcard client_id (anonymous)
122
122
  * before connected
123
- * [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#L925)
123
+ * [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#L922)
124
124
  * once connected
125
- * [is true](./spec/acceptance/realtime/auth_spec.rb#L932)
125
+ * [is true](./spec/acceptance/realtime/auth_spec.rb#L929)
126
126
  * when using a token
127
127
  * with a client_id
128
- * [is true](./spec/acceptance/realtime/auth_spec.rb#L946)
128
+ * [is true](./spec/acceptance/realtime/auth_spec.rb#L943)
129
129
  * once connected
130
- * [is true](./spec/acceptance/realtime/auth_spec.rb#L952)
130
+ * [is true](./spec/acceptance/realtime/auth_spec.rb#L949)
131
131
  * with no client_id (anonymous)
132
- * [is true](./spec/acceptance/realtime/auth_spec.rb#L964)
132
+ * [is true](./spec/acceptance/realtime/auth_spec.rb#L961)
133
133
  * once connected
134
- * [is true](./spec/acceptance/realtime/auth_spec.rb#L970)
134
+ * [is true](./spec/acceptance/realtime/auth_spec.rb#L967)
135
135
  * with a wildcard client_id (anonymous)
136
- * [is true](./spec/acceptance/realtime/auth_spec.rb#L982)
136
+ * [is true](./spec/acceptance/realtime/auth_spec.rb#L979)
137
137
  * once connected
138
- * [is true](./spec/acceptance/realtime/auth_spec.rb#L988)
138
+ * [is true](./spec/acceptance/realtime/auth_spec.rb#L985)
139
139
  * when using a token request with a client_id
140
- * [is not true as identification is not confirmed until authenticated](./spec/acceptance/realtime/auth_spec.rb#L1001)
140
+ * [is not true as identification is not confirmed until authenticated](./spec/acceptance/realtime/auth_spec.rb#L998)
141
141
  * once connected
142
- * [is true as identification is completed following CONNECTED ProtocolMessage](./spec/acceptance/realtime/auth_spec.rb#L1007)
142
+ * [is true as identification is completed following CONNECTED ProtocolMessage](./spec/acceptance/realtime/auth_spec.rb#L1004)
143
143
  * deprecated #authorise
144
- * [logs a deprecation warning (#RSA10l)](./spec/acceptance/realtime/auth_spec.rb#L1021)
145
- * [returns a valid token (#RSA10l)](./spec/acceptance/realtime/auth_spec.rb#L1027)
144
+ * [logs a deprecation warning (#RSA10l)](./spec/acceptance/realtime/auth_spec.rb#L1018)
145
+ * [returns a valid token (#RSA10l)](./spec/acceptance/realtime/auth_spec.rb#L1024)
146
146
  * when using JWT
147
147
  * when using auth_url
148
148
  * when credentials are valid
149
- * [client successfully fetches a channel and publishes a message](./spec/acceptance/realtime/auth_spec.rb#L1046)
149
+ * [client successfully fetches a channel and publishes a message](./spec/acceptance/realtime/auth_spec.rb#L1043)
150
150
  * when credentials are wrong
151
- * [disconnected includes and invalid signature message](./spec/acceptance/realtime/auth_spec.rb#L1059)
151
+ * [disconnected includes and invalid signature message](./spec/acceptance/realtime/auth_spec.rb#L1056)
152
152
  * when token is expired
153
- * [receives a 40142 error from the server](./spec/acceptance/realtime/auth_spec.rb#L1072)
153
+ * [receives a 40142 error from the server](./spec/acceptance/realtime/auth_spec.rb#L1068)
154
154
  * when using auth_callback
155
155
  * when credentials are valid
156
- * [authentication succeeds and client can post a message](./spec/acceptance/realtime/auth_spec.rb#L1097)
156
+ * [authentication succeeds and client can post a message](./spec/acceptance/realtime/auth_spec.rb#L1093)
157
157
  * when credentials are invalid
158
- * [authentication fails and reason for disconnection is invalid signature](./spec/acceptance/realtime/auth_spec.rb#L1112)
158
+ * [authentication fails and reason for disconnection is invalid signature](./spec/acceptance/realtime/auth_spec.rb#L1108)
159
159
  * when the client is initialized with ClientOptions and the token is a JWT token
160
160
  * when credentials are valid
161
- * [posts successfully to a channel](./spec/acceptance/realtime/auth_spec.rb#L1129)
161
+ * [posts successfully to a channel](./spec/acceptance/realtime/auth_spec.rb#L1124)
162
162
  * when credentials are invalid
163
- * [fails with an invalid signature error](./spec/acceptance/realtime/auth_spec.rb#L1144)
163
+ * [fails with an invalid signature error](./spec/acceptance/realtime/auth_spec.rb#L1139)
164
164
  * when JWT token expires
165
- * [client disconnects, a new token is requested via auth_callback and the client gets reconnected](./spec/acceptance/realtime/auth_spec.rb#L1171)
165
+ * [client disconnects, a new token is requested via auth_callback and the client gets reconnected](./spec/acceptance/realtime/auth_spec.rb#L1165)
166
166
  * and an AUTH procol message is received
167
- * [client reauths correctly without going through a disconnection](./spec/acceptance/realtime/auth_spec.rb#L1199)
167
+ * [client reauths correctly without going through a disconnection](./spec/acceptance/realtime/auth_spec.rb#L1193)
168
168
  * when the JWT token request includes a client_id
169
- * [the client_id is the same that was specified in the auth_callback that generated the JWT token](./spec/acceptance/realtime/auth_spec.rb#L1227)
169
+ * [the client_id is the same that was specified in the auth_callback that generated the JWT token](./spec/acceptance/realtime/auth_spec.rb#L1221)
170
170
  * when the JWT token request includes a subscribe-only capability
171
- * [client fails to publish to a channel with subscribe-only capability and publishes successfully on a channel with permissions](./spec/acceptance/realtime/auth_spec.rb#L1245)
171
+ * [client fails to publish to a channel with subscribe-only capability and publishes successfully on a channel with permissions](./spec/acceptance/realtime/auth_spec.rb#L1239)
172
172
 
173
173
  ### Ably::Realtime::Channel#history
174
174
  _(see [spec/acceptance/realtime/channel_history_spec.rb](./spec/acceptance/realtime/channel_history_spec.rb))_
@@ -286,255 +286,255 @@ _(see [spec/acceptance/realtime/channel_spec.rb](./spec/acceptance/realtime/chan
286
286
  * [does the detach operation once the connection state is connected (#RTL5h)](./spec/acceptance/realtime/channel_spec.rb#L830)
287
287
  * automatic channel recovery
288
288
  * when an ATTACH request times out
289
- * [moves to the SUSPENDED state (#RTL4f)](./spec/acceptance/realtime/channel_spec.rb#L859)
289
+ * [moves to the SUSPENDED state (#RTL4f)](./spec/acceptance/realtime/channel_spec.rb#L857)
290
290
  * if a subsequent ATTACHED is received on an ATTACHED channel
291
- * [ignores the additional ATTACHED if resumed is true (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#L873)
292
- * [emits an UPDATE only when resumed is true (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#L887)
293
- * [emits an UPDATE when resumed is true and includes the reason error from the ProtocolMessage (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#L903)
291
+ * [ignores the additional ATTACHED if resumed is true (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#L871)
292
+ * [emits an UPDATE only when resumed is true (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#L885)
293
+ * [emits an UPDATE when resumed is true and includes the reason error from the ProtocolMessage (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#L901)
294
294
  * #publish
295
295
  * when channel is attached (#RTL6c1)
296
- * [publishes messages](./spec/acceptance/realtime/channel_spec.rb#L928)
296
+ * [publishes messages](./spec/acceptance/realtime/channel_spec.rb#L926)
297
297
  * #(RTL17)
298
298
  * when channel is initialized
299
- * [sends messages only on attach](./spec/acceptance/realtime/channel_spec.rb#L941)
299
+ * [sends messages only on attach](./spec/acceptance/realtime/channel_spec.rb#L939)
300
300
  * when channel is attaching
301
- * [sends messages only on attach](./spec/acceptance/realtime/channel_spec.rb#L956)
301
+ * [sends messages only on attach](./spec/acceptance/realtime/channel_spec.rb#L954)
302
302
  * when channel is detaching
303
- * [stops sending message](./spec/acceptance/realtime/channel_spec.rb#L979)
303
+ * [stops sending message](./spec/acceptance/realtime/channel_spec.rb#L977)
304
304
  * when channel is detached
305
- * [stops sending message](./spec/acceptance/realtime/channel_spec.rb#L1007)
305
+ * [stops sending message](./spec/acceptance/realtime/channel_spec.rb#L1005)
306
306
  * when channel is failed
307
- * [errors when trying to send a message](./spec/acceptance/realtime/channel_spec.rb#L1033)
307
+ * [errors when trying to send a message](./spec/acceptance/realtime/channel_spec.rb#L1031)
308
308
  * when channel is not attached in state Initializing (#RTL6c1)
309
- * [publishes messages immediately and does not implicitly attach (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#L1051)
309
+ * [publishes messages immediately and does not implicitly attach (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#L1049)
310
310
  * when channel is Attaching (#RTL6c1)
311
- * [publishes messages immediately (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#L1068)
311
+ * [publishes messages immediately (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#L1066)
312
312
  * when channel is Detaching (#RTL6c1)
313
- * [publishes messages immediately (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#L1093)
313
+ * [publishes messages immediately (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#L1091)
314
314
  * when channel is Detached (#RTL6c1)
315
- * [publishes messages immediately (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#L1123)
315
+ * [publishes messages immediately (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#L1121)
316
316
  * with :queue_messages client option set to false (#RTL6c4)
317
317
  * and connection state connected (#RTL6c4)
318
- * [publishes the message](./spec/acceptance/realtime/channel_spec.rb#L1156)
318
+ * [publishes the message](./spec/acceptance/realtime/channel_spec.rb#L1154)
319
319
  * and connection state initialized (#RTL6c4)
320
- * [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1165)
320
+ * [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1163)
321
321
  * and connection state connecting (#RTL6c4)
322
- * [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1175)
322
+ * [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1173)
323
323
  * and connection state disconnected (#RTL6c4)
324
- * [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1190)
324
+ * [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1188)
325
325
  * and connection state suspended (#RTL6c4)
326
- * [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1190)
326
+ * [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1188)
327
327
  * and connection state closing (#RTL6c4)
328
- * [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1190)
328
+ * [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1188)
329
329
  * and connection state closed (#RTL6c4)
330
- * [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1190)
330
+ * [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1188)
331
331
  * and the channel state is failed (#RTL6c4)
332
- * [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1211)
332
+ * [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1209)
333
333
  * with name and data arguments
334
- * [publishes the message and return true indicating success](./spec/acceptance/realtime/channel_spec.rb#L1229)
334
+ * [publishes the message and return true indicating success](./spec/acceptance/realtime/channel_spec.rb#L1227)
335
335
  * and additional attributes
336
- * [publishes the message with the attributes and return true indicating success](./spec/acceptance/realtime/channel_spec.rb#L1242)
336
+ * [publishes the message with the attributes and return true indicating success](./spec/acceptance/realtime/channel_spec.rb#L1240)
337
337
  * and additional invalid attributes
338
- * [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1255)
338
+ * [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1253)
339
339
  * with an array of Hash objects with :name and :data attributes
340
- * [publishes an array of messages in one ProtocolMessage](./spec/acceptance/realtime/channel_spec.rb#L1269)
340
+ * [publishes an array of messages in one ProtocolMessage](./spec/acceptance/realtime/channel_spec.rb#L1267)
341
341
  * with an array of Message objects
342
- * [publishes an array of messages in one ProtocolMessage](./spec/acceptance/realtime/channel_spec.rb#L1297)
342
+ * [publishes an array of messages in one ProtocolMessage](./spec/acceptance/realtime/channel_spec.rb#L1295)
343
343
  * nil attributes
344
344
  * when name is nil
345
- * [publishes the message without a name attribute in the payload](./spec/acceptance/realtime/channel_spec.rb#L1321)
345
+ * [publishes the message without a name attribute in the payload](./spec/acceptance/realtime/channel_spec.rb#L1319)
346
346
  * when data is nil
347
- * [publishes the message without a data attribute in the payload](./spec/acceptance/realtime/channel_spec.rb#L1345)
347
+ * [publishes the message without a data attribute in the payload](./spec/acceptance/realtime/channel_spec.rb#L1343)
348
348
  * with neither name or data attributes
349
- * [publishes the message without any attributes in the payload](./spec/acceptance/realtime/channel_spec.rb#L1369)
349
+ * [publishes the message without any attributes in the payload](./spec/acceptance/realtime/channel_spec.rb#L1367)
350
350
  * with two invalid message out of 12
351
351
  * before client_id is known (validated)
352
- * [calls the errback once](./spec/acceptance/realtime/channel_spec.rb#L1393)
352
+ * [calls the errback once](./spec/acceptance/realtime/channel_spec.rb#L1391)
353
353
  * when client_id is known (validated)
354
- * [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L1413)
354
+ * [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L1411)
355
355
  * only invalid messages
356
356
  * before client_id is known (validated)
357
- * [calls the errback once](./spec/acceptance/realtime/channel_spec.rb#L1432)
357
+ * [calls the errback once](./spec/acceptance/realtime/channel_spec.rb#L1430)
358
358
  * when client_id is known (validated)
359
- * [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L1451)
359
+ * [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L1449)
360
360
  * with many many messages and many connections simultaneously
361
- * [publishes all messages, all success callbacks are called, and a history request confirms all messages were published](./spec/acceptance/realtime/channel_spec.rb#L1465)
361
+ * [publishes all messages, all success callbacks are called, and a history request confirms all messages were published](./spec/acceptance/realtime/channel_spec.rb#L1463)
362
362
  * with more than allowed messages in a single publish
363
- * [rejects the publish](./spec/acceptance/realtime/channel_spec.rb#L1488)
363
+ * [rejects the publish](./spec/acceptance/realtime/channel_spec.rb#L1486)
364
364
  * identified clients
365
365
  * when authenticated with a wildcard client_id
366
366
  * with a valid client_id in the message
367
- * [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1508)
367
+ * [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1506)
368
368
  * with a wildcard client_id in the message
369
- * [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1522)
369
+ * [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1520)
370
370
  * with a non-String client_id in the message
371
- * [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1529)
371
+ * [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1527)
372
372
  * with an empty client_id in the message
373
- * [succeeds and publishes without a client_id](./spec/acceptance/realtime/channel_spec.rb#L1536)
373
+ * [succeeds and publishes without a client_id](./spec/acceptance/realtime/channel_spec.rb#L1534)
374
374
  * when authenticated with a Token string with an implicit client_id
375
375
  * before the client is CONNECTED and the client's identity has been obtained
376
376
  * with a valid client_id in the message
377
- * [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1558)
377
+ * [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1556)
378
378
  * with an invalid client_id in the message
379
- * [succeeds in the client library ( while connecting ) but then fails when delivered to Ably](./spec/acceptance/realtime/channel_spec.rb#L1573)
379
+ * [succeeds in the client library ( while connecting ) but then fails when delivered to Ably](./spec/acceptance/realtime/channel_spec.rb#L1571)
380
380
  * with an empty client_id in the message
381
- * [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L1587)
381
+ * [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L1585)
382
382
  * after the client is CONNECTED and the client's identity is known
383
383
  * with a valid client_id in the message
384
- * [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1603)
384
+ * [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1601)
385
385
  * with an invalid client_id in the message
386
- * [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1617)
386
+ * [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1615)
387
387
  * with an empty client_id in the message
388
- * [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L1626)
388
+ * [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L1624)
389
389
  * when authenticated with a valid client_id
390
390
  * with a valid client_id
391
- * [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1648)
391
+ * [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1646)
392
392
  * with a wildcard client_id in the message
393
- * [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1662)
393
+ * [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1660)
394
394
  * with an invalid client_id in the message
395
- * [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1669)
395
+ * [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1667)
396
396
  * with an empty client_id in the message
397
- * [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L1676)
397
+ * [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L1674)
398
398
  * when anonymous and no client_id
399
399
  * with a client_id in the message
400
- * [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1697)
400
+ * [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1695)
401
401
  * with a wildcard client_id in the message
402
- * [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1704)
402
+ * [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1702)
403
403
  * with an empty client_id in the message
404
- * [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L1711)
404
+ * [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L1709)
405
405
  * message size exceeded (#TO3l8)
406
406
  * and max_message_size is default (65536 bytes)
407
- * [should allow to send a message (32 bytes)](./spec/acceptance/realtime/channel_spec.rb#L1734)
408
- * [should not allow to send a message (700000 bytes)](./spec/acceptance/realtime/channel_spec.rb#L1744)
407
+ * [should allow to send a message (32 bytes)](./spec/acceptance/realtime/channel_spec.rb#L1732)
408
+ * [should not allow to send a message (700000 bytes)](./spec/acceptance/realtime/channel_spec.rb#L1742)
409
409
  * and max_message_size is customized (11 bytes)
410
410
  * and the message size is 30 bytes
411
- * [should not allow to send a message](./spec/acceptance/realtime/channel_spec.rb#L1765)
411
+ * [should not allow to send a message](./spec/acceptance/realtime/channel_spec.rb#L1763)
412
412
  * and max_message_size is nil
413
413
  * and the message size is 30 bytes
414
- * [should allow to send a message](./spec/acceptance/realtime/channel_spec.rb#L1787)
414
+ * [should allow to send a message](./spec/acceptance/realtime/channel_spec.rb#L1785)
415
415
  * and the message size is 65537 bytes
416
- * [should not allow to send a message](./spec/acceptance/realtime/channel_spec.rb#L1806)
416
+ * [should not allow to send a message](./spec/acceptance/realtime/channel_spec.rb#L1804)
417
417
  * #subscribe
418
418
  * with an event argument
419
- * [subscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L1826)
419
+ * [subscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L1824)
420
420
  * before attach
421
- * [receives messages as soon as attached](./spec/acceptance/realtime/channel_spec.rb#L1836)
421
+ * [receives messages as soon as attached](./spec/acceptance/realtime/channel_spec.rb#L1834)
422
422
  * with no event argument
423
- * [subscribes for all events](./spec/acceptance/realtime/channel_spec.rb#L1850)
423
+ * [subscribes for all events](./spec/acceptance/realtime/channel_spec.rb#L1848)
424
424
  * with a callback that raises an exception
425
- * [logs the error and continues](./spec/acceptance/realtime/channel_spec.rb#L1862)
425
+ * [logs the error and continues](./spec/acceptance/realtime/channel_spec.rb#L1860)
426
426
  * many times with different event names
427
- * [filters events accordingly to each callback](./spec/acceptance/realtime/channel_spec.rb#L1883)
427
+ * [filters events accordingly to each callback](./spec/acceptance/realtime/channel_spec.rb#L1881)
428
428
  * #unsubscribe
429
429
  * with an event argument
430
- * [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L1908)
430
+ * [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L1906)
431
431
  * with no event argument
432
- * [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L1923)
432
+ * [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L1921)
433
433
  * when connection state changes to
434
434
  * :failed
435
435
  * an :attaching channel
436
- * [transitions state to :failed (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L1948)
436
+ * [transitions state to :failed (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L1946)
437
437
  * an :attached channel
438
- * [transitions state to :failed (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L1965)
439
- * [updates the channel error_reason (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L1979)
438
+ * [transitions state to :failed (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L1963)
439
+ * [updates the channel error_reason (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L1977)
440
440
  * a :detached channel
441
- * [remains in the :detached state (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L1995)
441
+ * [remains in the :detached state (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L1993)
442
442
  * a :failed channel
443
- * [remains in the :failed state and ignores the failure error (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L2018)
443
+ * [remains in the :failed state and ignores the failure error (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L2016)
444
444
  * a channel ATTACH request
445
- * [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#L2040)
445
+ * [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#L2038)
446
446
  * :closed
447
447
  * an :attached channel
448
- * [transitions state to :detached (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#L2056)
448
+ * [transitions state to :detached (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#L2054)
449
449
  * an :attaching channel (#RTL3b)
450
- * [transitions state to :detached](./spec/acceptance/realtime/channel_spec.rb#L2069)
450
+ * [transitions state to :detached](./spec/acceptance/realtime/channel_spec.rb#L2067)
451
451
  * a :detached channel
452
- * [remains in the :detached state (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#L2086)
452
+ * [remains in the :detached state (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#L2084)
453
453
  * a :failed channel
454
- * [remains in the :failed state and retains the error_reason (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#L2109)
454
+ * [remains in the :failed state and retains the error_reason (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#L2107)
455
455
  * a channel ATTACH request when connection CLOSED
456
- * [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#L2131)
456
+ * [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#L2129)
457
457
  * a channel ATTACH request when connection CLOSING
458
- * [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#L2145)
458
+ * [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#L2143)
459
459
  * :suspended
460
460
  * an :attaching channel
461
- * [transitions state to :suspended (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#L2161)
461
+ * [transitions state to :suspended (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#L2159)
462
462
  * an :attached channel
463
- * [transitions state to :suspended (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#L2175)
463
+ * [transitions state to :suspended (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#L2173)
464
464
  * reattaching (#RTN15c3)
465
- * [transitions state automatically to :attaching once the connection is re-established ](./spec/acceptance/realtime/channel_spec.rb#L2188)
466
- * [sends ATTACH_RESUME flag when reattaching (RTL4j)](./spec/acceptance/realtime/channel_spec.rb#L2203)
465
+ * [transitions state automatically to :attaching once the connection is re-established ](./spec/acceptance/realtime/channel_spec.rb#L2186)
466
+ * [sends ATTACH_RESUME flag when reattaching (RTL4j)](./spec/acceptance/realtime/channel_spec.rb#L2201)
467
467
  * a :detached channel
468
- * [remains in the :detached state (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#L2225)
468
+ * [remains in the :detached state (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#L2223)
469
469
  * a :failed channel
470
- * [remains in the :failed state and retains the error_reason (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#L2248)
470
+ * [remains in the :failed state and retains the error_reason (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#L2246)
471
471
  * a channel ATTACH request when connection SUSPENDED (#RTL4b)
472
- * [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L2272)
472
+ * [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L2270)
473
473
  * :connected
474
474
  * a :suspended channel
475
- * [is automatically reattached (#RTL3d)](./spec/acceptance/realtime/channel_spec.rb#L2288)
475
+ * [is automatically reattached (#RTL3d)](./spec/acceptance/realtime/channel_spec.rb#L2286)
476
476
  * when re-attach attempt fails
477
- * [returns to a suspended state (#RTL3d)](./spec/acceptance/realtime/channel_spec.rb#L2307)
477
+ * [returns to a suspended state (#RTL3d)](./spec/acceptance/realtime/channel_spec.rb#L2305)
478
478
  * :disconnected
479
479
  * with an initialized channel
480
- * [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L2336)
480
+ * [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L2334)
481
481
  * with an attaching channel
482
- * [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L2349)
482
+ * [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L2347)
483
483
  * with an attached channel
484
- * [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L2364)
484
+ * [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L2362)
485
485
  * with a detached channel
486
- * [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L2380)
486
+ * [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L2378)
487
487
  * with a failed channel
488
- * [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L2404)
488
+ * [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L2402)
489
489
  * #presence
490
- * [returns a Ably::Realtime::Presence object](./spec/acceptance/realtime/channel_spec.rb#L2419)
490
+ * [returns a Ably::Realtime::Presence object](./spec/acceptance/realtime/channel_spec.rb#L2417)
491
491
  * #set_options (#RTL16a)
492
492
  * when channel is attaching
493
493
  * behaves like an update that sends ATTACH message
494
- * [sends an ATTACH message on options change](./spec/acceptance/realtime/channel_spec.rb#L2436)
494
+ * [sends an ATTACH message on options change](./spec/acceptance/realtime/channel_spec.rb#L2434)
495
495
  * when channel is attached
496
496
  * behaves like an update that sends ATTACH message
497
- * [sends an ATTACH message on options change](./spec/acceptance/realtime/channel_spec.rb#L2436)
497
+ * [sends an ATTACH message on options change](./spec/acceptance/realtime/channel_spec.rb#L2434)
498
498
  * when channel is initialized
499
- * [doesn't send ATTACH message](./spec/acceptance/realtime/channel_spec.rb#L2469)
499
+ * [doesn't send ATTACH message](./spec/acceptance/realtime/channel_spec.rb#L2467)
500
500
  * channel state change
501
- * [emits a ChannelStateChange object](./spec/acceptance/realtime/channel_spec.rb#L2485)
501
+ * [emits a ChannelStateChange object](./spec/acceptance/realtime/channel_spec.rb#L2483)
502
502
  * ChannelStateChange object
503
- * [has current state](./spec/acceptance/realtime/channel_spec.rb#L2494)
504
- * [has a previous state](./spec/acceptance/realtime/channel_spec.rb#L2503)
505
- * [has the event that generated the state change (#TA5)](./spec/acceptance/realtime/channel_spec.rb#L2512)
506
- * [has an empty reason when there is no error](./spec/acceptance/realtime/channel_spec.rb#L2530)
503
+ * [has current state](./spec/acceptance/realtime/channel_spec.rb#L2492)
504
+ * [has a previous state](./spec/acceptance/realtime/channel_spec.rb#L2501)
505
+ * [has the event that generated the state change (#TA5)](./spec/acceptance/realtime/channel_spec.rb#L2510)
506
+ * [has an empty reason when there is no error](./spec/acceptance/realtime/channel_spec.rb#L2528)
507
507
  * on failure
508
- * [has a reason Error object when there is an error on the channel](./spec/acceptance/realtime/channel_spec.rb#L2545)
508
+ * [has a reason Error object when there is an error on the channel](./spec/acceptance/realtime/channel_spec.rb#L2543)
509
509
  * #resume (#RTL2f)
510
- * [is false when a channel first attaches](./spec/acceptance/realtime/channel_spec.rb#L2560)
511
- * [is true when a connection is recovered and the channel is attached](./spec/acceptance/realtime/channel_spec.rb#L2568)
512
- * [is false when a connection fails to recover and the channel is attached](./spec/acceptance/realtime/channel_spec.rb#L2587)
510
+ * [is false when a channel first attaches](./spec/acceptance/realtime/channel_spec.rb#L2558)
511
+ * [is true when a connection is recovered and the channel is attached](./spec/acceptance/realtime/channel_spec.rb#L2566)
512
+ * [is false when a connection fails to recover and the channel is attached](./spec/acceptance/realtime/channel_spec.rb#L2585)
513
513
  * when a connection resume fails
514
- * [is false when channel_serial goes nil (RTP5a1) and the channel is automatically re-attached](./spec/acceptance/realtime/channel_spec.rb#L2609)
515
- * [is true when channel_serial is intact and the channel is automatically re-attached](./spec/acceptance/realtime/channel_spec.rb#L2627)
514
+ * [is false when channel_serial goes nil (RTP5a1) and the channel is automatically re-attached](./spec/acceptance/realtime/channel_spec.rb#L2607)
515
+ * [is true when channel_serial is intact and the channel is automatically re-attached](./spec/acceptance/realtime/channel_spec.rb#L2625)
516
516
  * moves to
517
517
  * suspended
518
- * [all queued messages fail with NACK (#RTL11)](./spec/acceptance/realtime/channel_spec.rb#L2654)
519
- * [all published messages awaiting an ACK do nothing (#RTL11a)](./spec/acceptance/realtime/channel_spec.rb#L2677)
518
+ * [all queued messages fail with NACK (#RTL11)](./spec/acceptance/realtime/channel_spec.rb#L2652)
519
+ * [all published messages awaiting an ACK do nothing (#RTL11a)](./spec/acceptance/realtime/channel_spec.rb#L2675)
520
520
  * failed
521
- * [all queued messages fail with NACK (#RTL11)](./spec/acceptance/realtime/channel_spec.rb#L2654)
522
- * [all published messages awaiting an ACK do nothing (#RTL11a)](./spec/acceptance/realtime/channel_spec.rb#L2677)
521
+ * [all queued messages fail with NACK (#RTL11)](./spec/acceptance/realtime/channel_spec.rb#L2652)
522
+ * [all published messages awaiting an ACK do nothing (#RTL11a)](./spec/acceptance/realtime/channel_spec.rb#L2675)
523
523
  * when it receives a server-initiated DETACHED (#RTL13)
524
524
  * and channel is initialized (#RTL13)
525
- * [does nothing](./spec/acceptance/realtime/channel_spec.rb#L2712)
525
+ * [does nothing](./spec/acceptance/realtime/channel_spec.rb#L2710)
526
526
  * and channel is failed
527
- * [does nothing (#RTL13)](./spec/acceptance/realtime/channel_spec.rb#L2733)
527
+ * [does nothing (#RTL13)](./spec/acceptance/realtime/channel_spec.rb#L2731)
528
528
  * and channel is attached
529
- * [reattaches immediately (#RTL13a) with ATTACH_RESUME flag(RTL4j)](./spec/acceptance/realtime/channel_spec.rb#L2749)
529
+ * [reattaches immediately (#RTL13a) with ATTACH_RESUME flag(RTL4j)](./spec/acceptance/realtime/channel_spec.rb#L2747)
530
530
  * and channel is suspended
531
- * [reattaches immediately (#RTL13a) with ATTACH_RESUME flag(RTL4j)](./spec/acceptance/realtime/channel_spec.rb#L2778)
531
+ * [reattaches immediately (#RTL13a) with ATTACH_RESUME flag(RTL4j)](./spec/acceptance/realtime/channel_spec.rb#L2776)
532
532
  * when connection is no longer connected
533
- * [will not attempt to reattach (#RTL13c)](./spec/acceptance/realtime/channel_spec.rb#L2810)
533
+ * [will not attempt to reattach (#RTL13c)](./spec/acceptance/realtime/channel_spec.rb#L2808)
534
534
  * and channel is attaching
535
- * [will move to the SUSPENDED state and then attempt to ATTACH with the ATTACHING state (#RTL13b)](./spec/acceptance/realtime/channel_spec.rb#L2836)
535
+ * [will move to the SUSPENDED state and then attempt to ATTACH with the ATTACHING state (#RTL13b)](./spec/acceptance/realtime/channel_spec.rb#L2834)
536
536
  * when it receives an ERROR ProtocolMessage
537
- * [should transition to the failed state and the error_reason should be set (#RTL14)](./spec/acceptance/realtime/channel_spec.rb#L2885)
537
+ * [should transition to the failed state and the error_reason should be set (#RTL14)](./spec/acceptance/realtime/channel_spec.rb#L2883)
538
538
 
539
539
  ### Ably::Realtime::Channels
540
540
  _(see [spec/acceptance/realtime/channels_spec.rb](./spec/acceptance/realtime/channels_spec.rb))_
@@ -591,54 +591,54 @@ _(see [spec/acceptance/realtime/client_spec.rb](./spec/acceptance/realtime/clien
591
591
  * [sets Client#client_id to the new token's client_id immediately when connecting](./spec/acceptance/realtime/client_spec.rb#L127)
592
592
  * with a wildcard client_id token
593
593
  * and an explicit client_id in ClientOptions
594
- * PENDING: *[allows uses the explicit client_id in the connection](./spec/acceptance/realtime/client_spec.rb#L146)*
594
+ * [allows uses the explicit client_id in the connection](./spec/acceptance/realtime/client_spec.rb#L145)
595
595
  * and client_id omitted in ClientOptions
596
- * [uses the token provided clientId in the connection](./spec/acceptance/realtime/client_spec.rb#L162)
596
+ * [uses the token provided clientId in the connection](./spec/acceptance/realtime/client_spec.rb#L161)
597
597
  * with an invalid wildcard "*" :client_id
598
- * [raises an exception](./spec/acceptance/realtime/client_spec.rb#L178)
598
+ * [raises an exception](./spec/acceptance/realtime/client_spec.rb#L177)
599
599
  * realtime connection settings
600
600
  * defaults
601
- * [disconnected_retry_timeout is 15s](./spec/acceptance/realtime/client_spec.rb#L187)
602
- * [suspended_retry_timeout is 30s](./spec/acceptance/realtime/client_spec.rb#L192)
601
+ * [disconnected_retry_timeout is 15s](./spec/acceptance/realtime/client_spec.rb#L186)
602
+ * [suspended_retry_timeout is 30s](./spec/acceptance/realtime/client_spec.rb#L191)
603
603
  * overriden in ClientOptions
604
- * [disconnected_retry_timeout is updated](./spec/acceptance/realtime/client_spec.rb#L201)
605
- * [suspended_retry_timeout is updated](./spec/acceptance/realtime/client_spec.rb#L206)
604
+ * [disconnected_retry_timeout is updated](./spec/acceptance/realtime/client_spec.rb#L200)
605
+ * [suspended_retry_timeout is updated](./spec/acceptance/realtime/client_spec.rb#L205)
606
606
  * #connection
607
- * [provides access to the Connection object](./spec/acceptance/realtime/client_spec.rb#L215)
607
+ * [provides access to the Connection object](./spec/acceptance/realtime/client_spec.rb#L214)
608
608
  * #channels
609
- * [provides access to the Channels collection object](./spec/acceptance/realtime/client_spec.rb#L222)
609
+ * [provides access to the Channels collection object](./spec/acceptance/realtime/client_spec.rb#L221)
610
610
  * #auth
611
- * [provides access to the Realtime::Auth object](./spec/acceptance/realtime/client_spec.rb#L229)
611
+ * [provides access to the Realtime::Auth object](./spec/acceptance/realtime/client_spec.rb#L228)
612
612
  * #request (#RSC19*)
613
613
  * get
614
- * [returns an HttpPaginatedResponse object](./spec/acceptance/realtime/client_spec.rb#L241)
614
+ * [returns an HttpPaginatedResponse object](./spec/acceptance/realtime/client_spec.rb#L240)
615
615
  * 404 request to invalid URL
616
- * [returns an object with 404 status code and error message](./spec/acceptance/realtime/client_spec.rb#L250)
616
+ * [returns an object with 404 status code and error message](./spec/acceptance/realtime/client_spec.rb#L249)
617
617
  * paged results
618
- * [provides paging](./spec/acceptance/realtime/client_spec.rb#L264)
618
+ * [provides paging](./spec/acceptance/realtime/client_spec.rb#L263)
619
619
  * post
620
- * [supports post](./spec/acceptance/realtime/client_spec.rb#L295)
620
+ * [supports post](./spec/acceptance/realtime/client_spec.rb#L294)
621
621
  * delete
622
- * [supports delete](./spec/acceptance/realtime/client_spec.rb#L309)
622
+ * [supports delete](./spec/acceptance/realtime/client_spec.rb#L308)
623
623
  * patch
624
- * [supports patch](./spec/acceptance/realtime/client_spec.rb#L326)
624
+ * [supports patch](./spec/acceptance/realtime/client_spec.rb#L325)
625
625
  * put
626
- * [supports put](./spec/acceptance/realtime/client_spec.rb#L350)
626
+ * [supports put](./spec/acceptance/realtime/client_spec.rb#L349)
627
627
  * #publish (#TBC)
628
- * [publishing a message implicity connects and publishes the message successfully on the provided channel](./spec/acceptance/realtime/client_spec.rb#L368)
629
- * [publishing does not result in a channel being created](./spec/acceptance/realtime/client_spec.rb#L380)
630
- * [publishing supports an array of Message objects](./spec/acceptance/realtime/client_spec.rb#L408)
631
- * [publishing supports an array of Hash objects](./spec/acceptance/realtime/client_spec.rb#L420)
632
- * [publishing on a closed connection fails](./spec/acceptance/realtime/client_spec.rb#L432)
628
+ * [publishing a message implicity connects and publishes the message successfully on the provided channel](./spec/acceptance/realtime/client_spec.rb#L367)
629
+ * [publishing does not result in a channel being created](./spec/acceptance/realtime/client_spec.rb#L379)
630
+ * [publishing supports an array of Message objects](./spec/acceptance/realtime/client_spec.rb#L407)
631
+ * [publishing supports an array of Hash objects](./spec/acceptance/realtime/client_spec.rb#L419)
632
+ * [publishing on a closed connection fails](./spec/acceptance/realtime/client_spec.rb#L431)
633
633
  * with extras
634
- * [publishing supports extras](./spec/acceptance/realtime/client_spec.rb#L396)
634
+ * [publishing supports extras](./spec/acceptance/realtime/client_spec.rb#L395)
635
635
  * queue_messages ClientOption
636
636
  * when true
637
- * [will queue messages whilst connecting and publish once connected](./spec/acceptance/realtime/client_spec.rb#L448)
637
+ * [will queue messages whilst connecting and publish once connected](./spec/acceptance/realtime/client_spec.rb#L447)
638
638
  * when false
639
- * [will reject messages on an initializing connection](./spec/acceptance/realtime/client_spec.rb#L465)
639
+ * [will reject messages on an initializing connection](./spec/acceptance/realtime/client_spec.rb#L464)
640
640
  * with more than allowed messages in a single publish
641
- * [rejects the publish](./spec/acceptance/realtime/client_spec.rb#L482)
641
+ * [rejects the publish](./spec/acceptance/realtime/client_spec.rb#L481)
642
642
 
643
643
  ### Ably::Realtime::Connection failures
644
644
  _(see [spec/acceptance/realtime/connection_failures_spec.rb](./spec/acceptance/realtime/connection_failures_spec.rb))_
@@ -646,7 +646,7 @@ _(see [spec/acceptance/realtime/connection_failures_spec.rb](./spec/acceptance/r
646
646
  * authentication failure
647
647
  * when API key is invalid
648
648
  * with invalid app part of the key
649
- * [enters the failed state and returns a not found error](./spec/acceptance/realtime/connection_failures_spec.rb#L29)
649
+ * [enters the failed state and returns an invalid credentials error](./spec/acceptance/realtime/connection_failures_spec.rb#L29)
650
650
  * with invalid key name part of the key
651
651
  * [enters the failed state and returns an authorization error](./spec/acceptance/realtime/connection_failures_spec.rb#L44)
652
652
  * with auth_url
@@ -800,7 +800,7 @@ _(see [spec/acceptance/realtime/connection_spec.rb](./spec/acceptance/realtime/c
800
800
  * that expire
801
801
  * opening a new connection
802
802
  * with almost expired tokens
803
- * FAILED: ~~[renews token every time after it expires](./spec/acceptance/realtime/connection_spec.rb#L107)~~
803
+ * [renews token every time after it expires](./spec/acceptance/realtime/connection_spec.rb#L107)
804
804
  * with immediately expired token and no fallback hosts
805
805
  * [renews the token on connect, and makes one immediate subsequent attempt to obtain a new token (#RSA4b)](./spec/acceptance/realtime/connection_spec.rb#L137)
806
806
  * when disconnected_retry_timeout is 0.5 seconds
@@ -825,191 +825,191 @@ _(see [spec/acceptance/realtime/connection_spec.rb](./spec/acceptance/realtime/c
825
825
  * string
826
826
  * [sets the Client#client_id and Auth#client_id once CONNECTED](./spec/acceptance/realtime/connection_spec.rb#L374)
827
827
  * that is incompatible with the current client client_id
828
- * PENDING: *[fails the connection](./spec/acceptance/realtime/connection_spec.rb#L387)*
828
+ * [fails the connection](./spec/acceptance/realtime/connection_spec.rb#L386)
829
829
  * wildcard
830
- * [configures the Client#client_id and Auth#client_id with a wildcard once CONNECTED](./spec/acceptance/realtime/connection_spec.rb#L401)
830
+ * [configures the Client#client_id and Auth#client_id with a wildcard once CONNECTED](./spec/acceptance/realtime/connection_spec.rb#L400)
831
831
  * initialization state changes
832
832
  * with implicit #connect
833
- * [are emitted in order](./spec/acceptance/realtime/connection_spec.rb#L433)
833
+ * [are emitted in order](./spec/acceptance/realtime/connection_spec.rb#L432)
834
834
  * with explicit #connect
835
- * [are emitted in order](./spec/acceptance/realtime/connection_spec.rb#L439)
835
+ * [are emitted in order](./spec/acceptance/realtime/connection_spec.rb#L438)
836
836
  * #connect with no fallbacks
837
- * [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#L449)
838
- * [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#L454)
839
- * [calls the provided block on success even if state changes to disconnected first](./spec/acceptance/realtime/connection_spec.rb#L461)
837
+ * [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#L448)
838
+ * [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#L453)
839
+ * [calls the provided block on success even if state changes to disconnected first](./spec/acceptance/realtime/connection_spec.rb#L460)
840
840
  * when can't connect to host
841
- * [logs error on failed connection attempt](./spec/acceptance/realtime/connection_spec.rb#L490)
841
+ * [logs error on failed connection attempt](./spec/acceptance/realtime/connection_spec.rb#L489)
842
842
  * when explicitly reconnecting disconnected/suspended connection in retry (#RTN11c)
843
843
  * when suspended
844
- * [reconnects immediately](./spec/acceptance/realtime/connection_spec.rb#L530)
844
+ * [reconnects immediately](./spec/acceptance/realtime/connection_spec.rb#L529)
845
845
  * when disconnected
846
- * [reconnects immediately](./spec/acceptance/realtime/connection_spec.rb#L564)
846
+ * [reconnects immediately](./spec/acceptance/realtime/connection_spec.rb#L563)
847
847
  * when reconnecting a failed connection
848
- * [transitions all channels state to initialized and cleares error_reason](./spec/acceptance/realtime/connection_spec.rb#L594)
848
+ * [transitions all channels state to initialized and cleares error_reason](./spec/acceptance/realtime/connection_spec.rb#L593)
849
849
  * with invalid auth details
850
- * [calls the Deferrable errback only once on connection failure](./spec/acceptance/realtime/connection_spec.rb#L622)
850
+ * [calls the Deferrable errback only once on connection failure](./spec/acceptance/realtime/connection_spec.rb#L621)
851
851
  * when already connected
852
- * [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#L638)
852
+ * [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#L637)
853
853
  * connection#id
854
- * [is null before connecting](./spec/acceptance/realtime/connection_spec.rb#L652)
854
+ * [is null before connecting](./spec/acceptance/realtime/connection_spec.rb#L651)
855
855
  * connection#key
856
- * [is null before connecting](./spec/acceptance/realtime/connection_spec.rb#L659)
856
+ * [is null before connecting](./spec/acceptance/realtime/connection_spec.rb#L658)
857
857
  * once connected
858
858
  * connection#id
859
- * [is a string](./spec/acceptance/realtime/connection_spec.rb#L670)
860
- * [is unique from the connection#key](./spec/acceptance/realtime/connection_spec.rb#L677)
861
- * [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#L684)
859
+ * [is a string](./spec/acceptance/realtime/connection_spec.rb#L669)
860
+ * [is unique from the connection#key](./spec/acceptance/realtime/connection_spec.rb#L676)
861
+ * [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#L683)
862
862
  * connection#key
863
- * [is a string](./spec/acceptance/realtime/connection_spec.rb#L693)
864
- * [is unique from the connection#id](./spec/acceptance/realtime/connection_spec.rb#L700)
865
- * [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#L707)
863
+ * [is a string](./spec/acceptance/realtime/connection_spec.rb#L692)
864
+ * [is unique from the connection#id](./spec/acceptance/realtime/connection_spec.rb#L699)
865
+ * [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#L706)
866
866
  * following a previous connection being opened and closed
867
- * [reconnects and is provided with a new connection ID and connection key from the server](./spec/acceptance/realtime/connection_spec.rb#L717)
867
+ * [reconnects and is provided with a new connection ID and connection key from the server](./spec/acceptance/realtime/connection_spec.rb#L716)
868
868
  * when closing
869
- * [fails the deferrable before the connection is closed](./spec/acceptance/realtime/connection_spec.rb#L734)
869
+ * [fails the deferrable before the connection is closed](./spec/acceptance/realtime/connection_spec.rb#L733)
870
870
  * #msgSerial
871
871
  * when messages are queued for publish before a connection is established
872
- * [the msgSerial is always incrementing (and not reset when the new connection is established) ensuring messages are never de-duped by the realtime service](./spec/acceptance/realtime/connection_spec.rb#L758)
872
+ * [the msgSerial is always incrementing (and not reset when the new connection is established) ensuring messages are never de-duped by the realtime service](./spec/acceptance/realtime/connection_spec.rb#L757)
873
873
  * #close
874
- * [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#L790)
875
- * [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#L797)
874
+ * [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#L789)
875
+ * [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#L796)
876
876
  * when already closed
877
- * [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#L808)
877
+ * [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#L807)
878
878
  * when connection state is
879
879
  * :initialized
880
- * [changes the connection state to :closing and then immediately :closed without sending a ProtocolMessage CLOSE](./spec/acceptance/realtime/connection_spec.rb#L835)
880
+ * [changes the connection state to :closing and then immediately :closed without sending a ProtocolMessage CLOSE](./spec/acceptance/realtime/connection_spec.rb#L834)
881
881
  * :connecting RTN12f
882
882
  * :connected does not arrive when trying to close
883
- * [moves to closed](./spec/acceptance/realtime/connection_spec.rb#L853)
883
+ * [moves to closed](./spec/acceptance/realtime/connection_spec.rb#L852)
884
884
  * :connected arrive when trying to close
885
- * [moves to connected and then to closed](./spec/acceptance/realtime/connection_spec.rb#L880)
885
+ * [moves to connected and then to closed](./spec/acceptance/realtime/connection_spec.rb#L879)
886
886
  * :connected
887
- * [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#L901)
887
+ * [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#L900)
888
888
  * with an unresponsive connection
889
- * [force closes the connection when a :closed ProtocolMessage response is not received](./spec/acceptance/realtime/connection_spec.rb#L928)
889
+ * [force closes the connection when a :closed ProtocolMessage response is not received](./spec/acceptance/realtime/connection_spec.rb#L927)
890
890
  * :suspended RTN12d
891
- * [immediatly closes connection](./spec/acceptance/realtime/connection_spec.rb#L957)
891
+ * [immediatly closes connection](./spec/acceptance/realtime/connection_spec.rb#L956)
892
892
  * :disconnected RTN12d
893
- * [immediatly closes connection](./spec/acceptance/realtime/connection_spec.rb#L992)
893
+ * [immediatly closes connection](./spec/acceptance/realtime/connection_spec.rb#L991)
894
894
  * #ping
895
- * [echoes a heart beat (#RTN13a)](./spec/acceptance/realtime/connection_spec.rb#L1025)
896
- * [sends a unique ID in each protocol message (#RTN13e)](./spec/acceptance/realtime/connection_spec.rb#L1035)
897
- * [waits until the connection becomes CONNECTED when in the CONNETING state](./spec/acceptance/realtime/connection_spec.rb#L1059)
895
+ * [echoes a heart beat (#RTN13a)](./spec/acceptance/realtime/connection_spec.rb#L1024)
896
+ * [sends a unique ID in each protocol message (#RTN13e)](./spec/acceptance/realtime/connection_spec.rb#L1034)
897
+ * [waits until the connection becomes CONNECTED when in the CONNETING state](./spec/acceptance/realtime/connection_spec.rb#L1058)
898
898
  * with incompatible states
899
899
  * when not connected
900
- * [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L1072)
900
+ * [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L1071)
901
901
  * when suspended
902
- * [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L1081)
902
+ * [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L1080)
903
903
  * when failed
904
- * [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L1093)
904
+ * [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L1092)
905
905
  * when closed
906
- * [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L1105)
906
+ * [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L1104)
907
907
  * when it becomes closed
908
- * [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L1119)
908
+ * [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L1118)
909
909
  * with a success block that raises an exception
910
- * [catches the exception and logs the error](./spec/acceptance/realtime/connection_spec.rb#L1132)
910
+ * [catches the exception and logs the error](./spec/acceptance/realtime/connection_spec.rb#L1131)
911
911
  * when ping times out
912
- * [fails the deferrable logs a warning (#RTN13a, #RTN13c)](./spec/acceptance/realtime/connection_spec.rb#L1146)
913
- * [yields to the block with a nil value](./spec/acceptance/realtime/connection_spec.rb#L1165)
912
+ * [fails the deferrable logs a warning (#RTN13a, #RTN13c)](./spec/acceptance/realtime/connection_spec.rb#L1145)
913
+ * [yields to the block with a nil value](./spec/acceptance/realtime/connection_spec.rb#L1164)
914
914
  * Heartbeats (#RTN23)
915
915
  * heartbeat interval
916
916
  * when reduced artificially
917
- * [is the sum of the max_idle_interval and realtime_request_timeout (#RTN23a)](./spec/acceptance/realtime/connection_spec.rb#L1191)
918
- * [disconnects the transport if no heartbeat received since connected (#RTN23a)](./spec/acceptance/realtime/connection_spec.rb#L1201)
919
- * [disconnects the transport if no heartbeat received since last event received (#RTN23a)](./spec/acceptance/realtime/connection_spec.rb#L1212)
917
+ * [is the sum of the max_idle_interval and realtime_request_timeout (#RTN23a)](./spec/acceptance/realtime/connection_spec.rb#L1190)
918
+ * [disconnects the transport if no heartbeat received since connected (#RTN23a)](./spec/acceptance/realtime/connection_spec.rb#L1200)
919
+ * [disconnects the transport if no heartbeat received since last event received (#RTN23a)](./spec/acceptance/realtime/connection_spec.rb#L1211)
920
920
  * transport-level heartbeats are supported in the websocket transport
921
- * [provides the heartbeats argument in the websocket connection params (#RTN23b)](./spec/acceptance/realtime/connection_spec.rb#L1227)
922
- * [receives websocket heartbeat messages (#RTN23b) [slow test as need to wait for heartbeat]](./spec/acceptance/realtime/connection_spec.rb#L1236)
921
+ * [provides the heartbeats argument in the websocket connection params (#RTN23b)](./spec/acceptance/realtime/connection_spec.rb#L1226)
922
+ * [receives websocket heartbeat messages (#RTN23b) [slow test as need to wait for heartbeat]](./spec/acceptance/realtime/connection_spec.rb#L1235)
923
923
  * with websocket heartbeats disabled (undocumented)
924
- * [does not provide the heartbeats argument in the websocket connection params (#RTN23b)](./spec/acceptance/realtime/connection_spec.rb#L1252)
925
- * [receives websocket protocol messages (#RTN23b) [slow test as need to wait for heartbeat]](./spec/acceptance/realtime/connection_spec.rb#L1261)
924
+ * [does not provide the heartbeats argument in the websocket connection params (#RTN23b)](./spec/acceptance/realtime/connection_spec.rb#L1251)
925
+ * [receives websocket protocol messages (#RTN23b) [slow test as need to wait for heartbeat]](./spec/acceptance/realtime/connection_spec.rb#L1260)
926
926
  * #details
927
- * [is nil before connected](./spec/acceptance/realtime/connection_spec.rb#L1279)
928
- * [contains the ConnectionDetails object once connected (#RTN21)](./spec/acceptance/realtime/connection_spec.rb#L1286)
929
- * [contains the new ConnectionDetails object once a subsequent connection is created (#RTN21)](./spec/acceptance/realtime/connection_spec.rb#L1295)
927
+ * [is nil before connected](./spec/acceptance/realtime/connection_spec.rb#L1278)
928
+ * [contains the ConnectionDetails object once connected (#RTN21)](./spec/acceptance/realtime/connection_spec.rb#L1285)
929
+ * [contains the new ConnectionDetails object once a subsequent connection is created (#RTN21)](./spec/acceptance/realtime/connection_spec.rb#L1294)
930
930
  * with a different default connection_state_ttl
931
- * [updates the private Connection#connection_state_ttl when received from Ably in ConnectionDetails](./spec/acceptance/realtime/connection_spec.rb#L1316)
931
+ * [updates the private Connection#connection_state_ttl when received from Ably in ConnectionDetails](./spec/acceptance/realtime/connection_spec.rb#L1315)
932
932
  * recovery
933
933
  * #recovery_key
934
- * [is available when connection is in one of the states: connecting, connected, disconnected](./spec/acceptance/realtime/connection_spec.rb#L1353)
935
- * [is nil when connection is explicitly CLOSED](./spec/acceptance/realtime/connection_spec.rb#L1383)
934
+ * [is available when connection is in one of the states: connecting, connected, disconnected](./spec/acceptance/realtime/connection_spec.rb#L1352)
935
+ * [is nil when connection is explicitly CLOSED](./spec/acceptance/realtime/connection_spec.rb#L1382)
936
936
  * opening a new connection using a recently disconnected connection's #recovery_key
937
937
  * connection#id after recovery
938
- * [remains the same](./spec/acceptance/realtime/connection_spec.rb#L1395)
938
+ * [remains the same](./spec/acceptance/realtime/connection_spec.rb#L1394)
939
939
  * when messages have been sent whilst the old connection is disconnected
940
940
  * the new connection
941
- * [recovers server-side queued messages](./spec/acceptance/realtime/connection_spec.rb#L1417)
941
+ * [recovers server-side queued messages](./spec/acceptance/realtime/connection_spec.rb#L1416)
942
942
  * when messages have been published
943
943
  * the new connection
944
- * [uses the correct msgSerial from the old connection](./spec/acceptance/realtime/connection_spec.rb#L1446)
944
+ * [uses the correct msgSerial from the old connection](./spec/acceptance/realtime/connection_spec.rb#L1445)
945
945
  * when messages are published before the new connection is recovered
946
946
  * the new connection
947
- * [uses the correct msgSerial from the old connection for the queued messages](./spec/acceptance/realtime/connection_spec.rb#L1476)
947
+ * [uses the correct msgSerial from the old connection for the queued messages](./spec/acceptance/realtime/connection_spec.rb#L1475)
948
948
  * with :recover option
949
949
  * with invalid syntax
950
- * [logs recovery decode error as a warning and connects successfully](./spec/acceptance/realtime/connection_spec.rb#L1523)
950
+ * [logs recovery decode error as a warning and connects successfully](./spec/acceptance/realtime/connection_spec.rb#L1522)
951
951
  * with invalid connection key
952
- * [connects but sets the error reason and includes the reason in the state change](./spec/acceptance/realtime/connection_spec.rb#L1538)
952
+ * [connects but sets the error reason and includes the reason in the state change](./spec/acceptance/realtime/connection_spec.rb#L1537)
953
953
  * with many connections simultaneously
954
- * [opens each with a unique connection#id and connection#key](./spec/acceptance/realtime/connection_spec.rb#L1557)
954
+ * [opens each with a unique connection#id and connection#key](./spec/acceptance/realtime/connection_spec.rb#L1556)
955
955
  * when a state transition is unsupported
956
- * [logs the invalid state change as fatal](./spec/acceptance/realtime/connection_spec.rb#L1577)
956
+ * [logs the invalid state change as fatal](./spec/acceptance/realtime/connection_spec.rb#L1576)
957
957
  * protocol failure
958
958
  * receiving an invalid ProtocolMessage
959
- * [emits an error on the connection and logs a fatal error message](./spec/acceptance/realtime/connection_spec.rb#L1593)
959
+ * [emits an error on the connection and logs a fatal error message](./spec/acceptance/realtime/connection_spec.rb#L1592)
960
960
  * undocumented method
961
961
  * #internet_up?
962
- * [returns a Deferrable](./spec/acceptance/realtime/connection_spec.rb#L1611)
962
+ * [returns a Deferrable](./spec/acceptance/realtime/connection_spec.rb#L1610)
963
963
  * internet up URL protocol
964
964
  * when using TLS for the connection
965
- * [uses TLS for the Internet check to https://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#L1622)
965
+ * [uses TLS for the Internet check to https://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#L1621)
966
966
  * when using a non-secured connection
967
- * [uses TLS for the Internet check to http://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#L1632)
967
+ * [uses TLS for the Internet check to http://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#L1631)
968
968
  * when the Internet is up
969
- * [calls the block with true](./spec/acceptance/realtime/connection_spec.rb#L1663)
970
- * [calls the success callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#L1670)
969
+ * [calls the block with true](./spec/acceptance/realtime/connection_spec.rb#L1662)
970
+ * [calls the success callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#L1669)
971
971
  * with a TLS connection
972
- * [checks the Internet up URL over TLS](./spec/acceptance/realtime/connection_spec.rb#L1646)
972
+ * [checks the Internet up URL over TLS](./spec/acceptance/realtime/connection_spec.rb#L1645)
973
973
  * with a non-TLS connection
974
- * [checks the Internet up URL over TLS](./spec/acceptance/realtime/connection_spec.rb#L1656)
974
+ * [checks the Internet up URL over TLS](./spec/acceptance/realtime/connection_spec.rb#L1655)
975
975
  * when the Internet is down
976
- * [calls the block with false](./spec/acceptance/realtime/connection_spec.rb#L1685)
977
- * [calls the failure callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#L1692)
976
+ * [calls the block with false](./spec/acceptance/realtime/connection_spec.rb#L1684)
977
+ * [calls the failure callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#L1691)
978
978
  * state change side effects
979
979
  * when connection enters the :disconnected state
980
- * [queues messages to be sent and all channels remain attached](./spec/acceptance/realtime/connection_spec.rb#L1706)
980
+ * [queues messages to be sent and all channels remain attached](./spec/acceptance/realtime/connection_spec.rb#L1705)
981
981
  * when connection enters the :suspended state
982
- * [moves the channels into the suspended state and prevents publishing of messages on those channels](./spec/acceptance/realtime/connection_spec.rb#L1739)
982
+ * [moves the channels into the suspended state and prevents publishing of messages on those channels](./spec/acceptance/realtime/connection_spec.rb#L1738)
983
983
  * when connection enters the :failed state
984
- * [sets all channels to failed and prevents publishing of messages on those channels](./spec/acceptance/realtime/connection_spec.rb#L1770)
984
+ * [sets all channels to failed and prevents publishing of messages on those channels](./spec/acceptance/realtime/connection_spec.rb#L1769)
985
985
  * connection state change
986
- * [emits event to all and single subscribers](./spec/acceptance/realtime/connection_spec.rb#L1784)
987
- * [emits a ConnectionStateChange object](./spec/acceptance/realtime/connection_spec.rb#L1799)
986
+ * [emits event to all and single subscribers](./spec/acceptance/realtime/connection_spec.rb#L1783)
987
+ * [emits a ConnectionStateChange object](./spec/acceptance/realtime/connection_spec.rb#L1798)
988
988
  * ConnectionStateChange object
989
- * [has current state](./spec/acceptance/realtime/connection_spec.rb#L1807)
990
- * [has a previous state](./spec/acceptance/realtime/connection_spec.rb#L1815)
991
- * [has the event that generated the state change (#TH5)](./spec/acceptance/realtime/connection_spec.rb#L1823)
992
- * [has an empty reason when there is no error](./spec/acceptance/realtime/connection_spec.rb#L1839)
989
+ * [has current state](./spec/acceptance/realtime/connection_spec.rb#L1806)
990
+ * [has a previous state](./spec/acceptance/realtime/connection_spec.rb#L1814)
991
+ * [has the event that generated the state change (#TH5)](./spec/acceptance/realtime/connection_spec.rb#L1822)
992
+ * [has an empty reason when there is no error](./spec/acceptance/realtime/connection_spec.rb#L1838)
993
993
  * on failure
994
- * [has a reason Error object when there is an error on the connection](./spec/acceptance/realtime/connection_spec.rb#L1852)
994
+ * [has a reason Error object when there is an error on the connection](./spec/acceptance/realtime/connection_spec.rb#L1851)
995
995
  * retry_in
996
- * [is nil when a retry is not required](./spec/acceptance/realtime/connection_spec.rb#L1867)
997
- * FAILED: ~~[is 0 when first attempt to connect fails](./spec/acceptance/realtime/connection_spec.rb#L1874)~~
998
- * [is 0 when an immediate reconnect will occur](./spec/acceptance/realtime/connection_spec.rb#L1884)
999
- * [contains the next retry period when an immediate reconnect will not occur](./spec/acceptance/realtime/connection_spec.rb#L1894)
996
+ * [is nil when a retry is not required](./spec/acceptance/realtime/connection_spec.rb#L1866)
997
+ * [is 0 when first attempt to connect fails](./spec/acceptance/realtime/connection_spec.rb#L1873)
998
+ * [is 0 when an immediate reconnect will occur](./spec/acceptance/realtime/connection_spec.rb#L1883)
999
+ * [contains the next retry period when an immediate reconnect will not occur](./spec/acceptance/realtime/connection_spec.rb#L1893)
1000
1000
  * whilst CONNECTED
1001
1001
  * when a CONNECTED message is received (#RTN24)
1002
- * [emits an UPDATE event](./spec/acceptance/realtime/connection_spec.rb#L1928)
1003
- * [updates the ConnectionDetail and Connection attributes (#RTC8a1)](./spec/acceptance/realtime/connection_spec.rb#L1943)
1002
+ * [emits an UPDATE event](./spec/acceptance/realtime/connection_spec.rb#L1927)
1003
+ * [updates the ConnectionDetail and Connection attributes (#RTC8a1)](./spec/acceptance/realtime/connection_spec.rb#L1942)
1004
1004
  * when a CONNECTED message with an error is received
1005
- * [emits an UPDATE event](./spec/acceptance/realtime/connection_spec.rb#L1976)
1005
+ * [emits an UPDATE event](./spec/acceptance/realtime/connection_spec.rb#L1975)
1006
1006
  * version params
1007
- * [sends the protocol version param v (#G4, #RTN2f)](./spec/acceptance/realtime/connection_spec.rb#L1997)
1008
- * [sends the lib version param agent (#RCS7d)](./spec/acceptance/realtime/connection_spec.rb#L2006)
1007
+ * [sends the protocol version param v (#G4, #RTN2f)](./spec/acceptance/realtime/connection_spec.rb#L1996)
1008
+ * [sends the lib version param agent (#RCS7d)](./spec/acceptance/realtime/connection_spec.rb#L2005)
1009
1009
  * transport_params (#RTC1f)
1010
- * [pases transport_params to query](./spec/acceptance/realtime/connection_spec.rb#L2019)
1010
+ * [pases transport_params to query](./spec/acceptance/realtime/connection_spec.rb#L2018)
1011
1011
  * when changing default param
1012
- * [overrides default param (#RTC1f1)](./spec/acceptance/realtime/connection_spec.rb#L2032)
1012
+ * [overrides default param (#RTC1f1)](./spec/acceptance/realtime/connection_spec.rb#L2031)
1013
1013
 
1014
1014
  ### Ably::Realtime::Channel Message
1015
1015
  _(see [spec/acceptance/realtime/message_spec.rb](./spec/acceptance/realtime/message_spec.rb))_
@@ -2323,16 +2323,16 @@ _(see [spec/acceptance/rest/base_spec.rb](./spec/acceptance/rest/base_spec.rb))_
2323
2323
  * using JSON protocol
2324
2324
  * failed requests
2325
2325
  * due to invalid Auth
2326
- * [should raise an InvalidRequest exception with a valid error message and code](./spec/acceptance/rest/base_spec.rb#L75)
2326
+ * [should raise an UnauthorizedRequest exception with a valid error message and code](./spec/acceptance/rest/base_spec.rb#L75)
2327
2327
  * server error with JSON error response body
2328
- * [should raise a ServerError exception](./spec/acceptance/rest/base_spec.rb#L96)
2328
+ * [should raise a ServerError exception](./spec/acceptance/rest/base_spec.rb#L95)
2329
2329
  * 500 server error without a valid JSON response body
2330
- * [should raise a ServerError exception](./spec/acceptance/rest/base_spec.rb#L109)
2330
+ * [should raise a ServerError exception](./spec/acceptance/rest/base_spec.rb#L108)
2331
2331
  * token authentication failures
2332
2332
  * when auth#token_renewable?
2333
- * [should automatically reissue a token](./spec/acceptance/rest/base_spec.rb#L147)
2333
+ * [should automatically reissue a token](./spec/acceptance/rest/base_spec.rb#L146)
2334
2334
  * when NOT auth#token_renewable?
2335
- * [should raise an TokenExpired exception](./spec/acceptance/rest/base_spec.rb#L162)
2335
+ * [should raise an TokenExpired exception](./spec/acceptance/rest/base_spec.rb#L161)
2336
2336
 
2337
2337
  ### Ably::Rest::Channel
2338
2338
  _(see [spec/acceptance/rest/channel_spec.rb](./spec/acceptance/rest/channel_spec.rb))_
@@ -5075,6 +5075,6 @@ _(see [spec/unit/util/pub_sub_spec.rb](./spec/unit/util/pub_sub_spec.rb))_
5075
5075
 
5076
5076
  ## Test summary
5077
5077
 
5078
- * Passing tests: 2491
5079
- * Pending tests: 7
5080
- * Failing tests: 2
5078
+ * Passing tests: 2495
5079
+ * Pending tests: 5
5080
+ * Failing tests: 0