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.
Files changed (79) hide show
  1. checksums.yaml +4 -4
  2. data/SPEC.md +1049 -1001
  3. data/lib/submodules/ably-ruby/CHANGELOG.md +75 -3
  4. data/lib/submodules/ably-ruby/LICENSE +2 -2
  5. data/lib/submodules/ably-ruby/README.md +81 -20
  6. data/lib/submodules/ably-ruby/SPEC.md +1209 -693
  7. data/lib/submodules/ably-ruby/ably.gemspec +4 -4
  8. data/lib/submodules/ably-ruby/lib/ably/auth.rb +13 -4
  9. data/lib/submodules/ably-ruby/lib/ably/exceptions.rb +10 -1
  10. data/lib/submodules/ably-ruby/lib/ably/logger.rb +3 -1
  11. data/lib/submodules/ably-ruby/lib/ably/models/cipher_params.rb +114 -0
  12. data/lib/submodules/ably-ruby/lib/ably/models/connection_details.rb +10 -7
  13. data/lib/submodules/ably-ruby/lib/ably/models/error_info.rb +3 -3
  14. data/lib/submodules/ably-ruby/lib/ably/models/idiomatic_ruby_wrapper.rb +28 -21
  15. data/lib/submodules/ably-ruby/lib/ably/models/message.rb +19 -17
  16. data/lib/submodules/ably-ruby/lib/ably/models/message_encoders/cipher.rb +10 -9
  17. data/lib/submodules/ably-ruby/lib/ably/models/paginated_result.rb +27 -1
  18. data/lib/submodules/ably-ruby/lib/ably/models/presence_message.rb +20 -18
  19. data/lib/submodules/ably-ruby/lib/ably/models/protocol_message.rb +26 -19
  20. data/lib/submodules/ably-ruby/lib/ably/models/{stat.rb → stats.rb} +21 -19
  21. data/lib/submodules/ably-ruby/lib/ably/models/token_details.rb +14 -12
  22. data/lib/submodules/ably-ruby/lib/ably/models/token_request.rb +16 -14
  23. data/lib/submodules/ably-ruby/lib/ably/modules/async_wrapper.rb +2 -2
  24. data/lib/submodules/ably-ruby/lib/ably/modules/channels_collection.rb +11 -1
  25. data/lib/submodules/ably-ruby/lib/ably/modules/encodeable.rb +10 -10
  26. data/lib/submodules/ably-ruby/lib/ably/modules/enum.rb +18 -2
  27. data/lib/submodules/ably-ruby/lib/ably/modules/event_emitter.rb +3 -3
  28. data/lib/submodules/ably-ruby/lib/ably/modules/model_common.rb +13 -5
  29. data/lib/submodules/ably-ruby/lib/ably/modules/safe_deferrable.rb +1 -1
  30. data/lib/submodules/ably-ruby/lib/ably/modules/safe_yield.rb +2 -2
  31. data/lib/submodules/ably-ruby/lib/ably/modules/state_emitter.rb +8 -8
  32. data/lib/submodules/ably-ruby/lib/ably/modules/statesman_monkey_patch.rb +2 -2
  33. data/lib/submodules/ably-ruby/lib/ably/modules/uses_state_machine.rb +4 -2
  34. data/lib/submodules/ably-ruby/lib/ably/realtime.rb +1 -0
  35. data/lib/submodules/ably-ruby/lib/ably/realtime/auth.rb +6 -2
  36. data/lib/submodules/ably-ruby/lib/ably/realtime/channel.rb +7 -6
  37. data/lib/submodules/ably-ruby/lib/ably/realtime/channel/channel_manager.rb +7 -1
  38. data/lib/submodules/ably-ruby/lib/ably/realtime/client.rb +7 -12
  39. data/lib/submodules/ably-ruby/lib/ably/realtime/client/incoming_message_dispatcher.rb +9 -2
  40. data/lib/submodules/ably-ruby/lib/ably/realtime/client/outgoing_message_dispatcher.rb +7 -1
  41. data/lib/submodules/ably-ruby/lib/ably/realtime/connection.rb +19 -8
  42. data/lib/submodules/ably-ruby/lib/ably/realtime/connection/connection_manager.rb +16 -9
  43. data/lib/submodules/ably-ruby/lib/ably/realtime/connection/websocket_transport.rb +12 -3
  44. data/lib/submodules/ably-ruby/lib/ably/realtime/presence.rb +35 -64
  45. data/lib/submodules/ably-ruby/lib/ably/realtime/presence/members_map.rb +23 -9
  46. data/lib/submodules/ably-ruby/lib/ably/rest/channel.rb +9 -10
  47. data/lib/submodules/ably-ruby/lib/ably/rest/client.rb +1 -1
  48. data/lib/submodules/ably-ruby/lib/ably/rest/middleware/exceptions.rb +16 -4
  49. data/lib/submodules/ably-ruby/lib/ably/rest/presence.rb +7 -5
  50. data/lib/submodules/ably-ruby/lib/ably/util/crypto.rb +50 -40
  51. data/lib/submodules/ably-ruby/lib/ably/version.rb +1 -1
  52. data/lib/submodules/ably-ruby/spec/acceptance/realtime/channel_history_spec.rb +4 -4
  53. data/lib/submodules/ably-ruby/spec/acceptance/realtime/connection_failures_spec.rb +2 -4
  54. data/lib/submodules/ably-ruby/spec/acceptance/realtime/connection_spec.rb +46 -8
  55. data/lib/submodules/ably-ruby/spec/acceptance/realtime/message_spec.rb +20 -20
  56. data/lib/submodules/ably-ruby/spec/acceptance/realtime/presence_history_spec.rb +7 -7
  57. data/lib/submodules/ably-ruby/spec/acceptance/realtime/presence_spec.rb +114 -111
  58. data/lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb +9 -9
  59. data/lib/submodules/ably-ruby/spec/acceptance/rest/base_spec.rb +5 -5
  60. data/lib/submodules/ably-ruby/spec/acceptance/rest/channel_spec.rb +1 -1
  61. data/lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb +1 -1
  62. data/lib/submodules/ably-ruby/spec/acceptance/rest/encoders_spec.rb +4 -4
  63. data/lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb +15 -15
  64. data/lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb +4 -4
  65. data/lib/submodules/ably-ruby/spec/shared/model_behaviour.rb +7 -7
  66. data/lib/submodules/ably-ruby/spec/shared/safe_deferrable_behaviour.rb +4 -4
  67. data/lib/submodules/ably-ruby/spec/unit/models/cipher_params_spec.rb +140 -0
  68. data/lib/submodules/ably-ruby/spec/unit/models/idiomatic_ruby_wrapper_spec.rb +15 -8
  69. data/lib/submodules/ably-ruby/spec/unit/models/message_encoders/cipher_spec.rb +28 -22
  70. data/lib/submodules/ably-ruby/spec/unit/models/message_encoders/json_spec.rb +24 -0
  71. data/lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb +3 -3
  72. data/lib/submodules/ably-ruby/spec/unit/models/token_details_spec.rb +20 -18
  73. data/lib/submodules/ably-ruby/spec/unit/modules/event_emitter_spec.rb +2 -2
  74. data/lib/submodules/ably-ruby/spec/unit/modules/state_emitter_spec.rb +6 -6
  75. data/lib/submodules/ably-ruby/spec/unit/realtime/channel_spec.rb +4 -4
  76. data/lib/submodules/ably-ruby/spec/unit/realtime/connection_spec.rb +1 -1
  77. data/lib/submodules/ably-ruby/spec/unit/realtime/presence_spec.rb +5 -5
  78. data/lib/submodules/ably-ruby/spec/unit/util/crypto_spec.rb +50 -17
  79. metadata +5 -3
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f21ace80cc1c0842b96711a845a533a1b2652c3f
4
- data.tar.gz: 0cb8c36ae2caf4c5f742f97ecf2bf7b273b484c9
3
+ metadata.gz: b903160b7b1b68664bdce7d8be48cb9758df7ed2
4
+ data.tar.gz: c176c6156f450ecdb199da2ed865d0e0573421e8
5
5
  SHA512:
6
- metadata.gz: 3761a7d1ac0ac0c5e2c87396a8ade1406de6e0aeb8a228188797a1507809d7c8dbfbca412ff7a8fece91e058c63089ebd90162d8e8b00e36215ee4aef17e6ded
7
- data.tar.gz: 0361539b950279534571b607b83d5f38d3b4a2575fdda8248ebb1cc418822afd2fdb48d954a2aacbcbc281c320afddf463173778028eccaa1f208a8cb4feae2b
6
+ metadata.gz: 0c88be9f37e66826972dd0fecc88865a183e25bec776cb8d0d025ca039ad9ddd55d15f02c8a760be6815ed2cb79c830eb1375ef9722e3b2bc7c7184f628ce178
7
+ data.tar.gz: 1adca79ac039224c15d3b3bbe24fc308feee608a7635eb2eeed8c92880c76e353f4ed5b3c954d7a3ef4c4a4bbe4c494696b4467b2655e2157c0df27776655a88
data/SPEC.md CHANGED
@@ -1,1954 +1,2002 @@
1
- # Ably REST Client Library 0.8.6 Specification
1
+ # Ably REST Client Library 0.8.9 Specification
2
2
 
3
3
  ### Ably::Auth
4
- _(see [lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb))_
4
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb))_
5
5
  * using JSON protocol
6
- * [has immutable options](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L60)
6
+ * [has immutable options](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L60)
7
7
  * #request_token
8
- * [creates a TokenRequest automatically and sends it to Ably to obtain a token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L75)
9
- * [returns a valid TokenDetails object in the expected format with valid issued and expires attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L84)
8
+ * [creates a TokenRequest automatically and sends it to Ably to obtain a token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L75)
9
+ * [returns a valid TokenDetails object in the expected format with valid issued and expires attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L84)
10
10
  * with token_param :client_id
11
- * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L117)
11
+ * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L117)
12
12
  * with token_param :capability
13
- * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L117)
13
+ * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L117)
14
14
  * with token_param :nonce
15
- * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L117)
15
+ * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L117)
16
16
  * with token_param :timestamp
17
- * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L117)
17
+ * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L117)
18
18
  * with token_param :ttl
19
- * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L117)
19
+ * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L117)
20
20
  * with :key option
21
- * [key_name is used in request and signing uses key_secret](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L147)
21
+ * [key_name is used in request and signing uses key_secret](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L147)
22
22
  * with :key_name & :key_secret options
23
- * [key_name is used in request and signing uses key_secret](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L177)
23
+ * [key_name is used in request and signing uses key_secret](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L177)
24
24
  * with :query_time option
25
- * [queries the server for the time](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L185)
25
+ * [queries the server for the time](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L185)
26
26
  * without :query_time option
27
- * [does not query the server for the time](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L194)
27
+ * [does not query the server for the time](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L194)
28
28
  * with :auth_url option merging
29
29
  * with existing configured auth options
30
30
  * using unspecified :auth_method
31
- * [requests a token using a GET request with provided headers, and merges client_id into auth_params](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L234)
31
+ * [requests a token using a GET request with provided headers, and merges client_id into auth_params](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L234)
32
32
  * with provided token_params
33
- * [merges provided token_params with existing auth_params and client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L242)
33
+ * [merges provided token_params with existing auth_params and client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L242)
34
34
  * with provided auth option auth_params and auth_headers
35
- * [replaces any preconfigured auth_params](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L250)
35
+ * [replaces any preconfigured auth_params](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L250)
36
36
  * using :get :auth_method and query params in the URL
37
- * [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](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L261)
37
+ * [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](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L261)
38
38
  * using :post :auth_method
39
- * [requests a token using a POST request with provided headers, and merges client_id into auth_params as form-encoded post data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L271)
39
+ * [requests a token using a POST request with provided headers, and merges client_id into auth_params as form-encoded post data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L271)
40
40
  * with :auth_url option
41
41
  * when response from :auth_url is a valid token request
42
- * [requests a token from :auth_url using an HTTP GET request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L321)
43
- * [returns a valid token generated from the token request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L326)
42
+ * [requests a token from :auth_url using an HTTP GET request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L321)
43
+ * [returns a valid token generated from the token request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L326)
44
44
  * with :query_params
45
- * [requests a token from :auth_url with the :query_params](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L333)
45
+ * [requests a token from :auth_url with the :query_params](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L333)
46
46
  * with :headers
47
- * [requests a token from :auth_url with the HTTP headers set](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L341)
47
+ * [requests a token from :auth_url with the HTTP headers set](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L341)
48
48
  * with POST
49
- * [requests a token from :auth_url using an HTTP POST instead of the default GET](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L349)
49
+ * [requests a token from :auth_url using an HTTP POST instead of the default GET](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L349)
50
50
  * when response from :auth_url is a token details object
51
- * [returns TokenDetails created from the token JSON](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L374)
51
+ * [returns TokenDetails created from the token JSON](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L374)
52
52
  * when response from :auth_url is text/plain content type and a token string
53
- * [returns TokenDetails created from the token JSON](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L392)
53
+ * [returns TokenDetails created from the token JSON](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L392)
54
54
  * when response is invalid
55
55
  * 500
56
- * [raises ServerError](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L406)
56
+ * [raises ServerError](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L406)
57
57
  * XML
58
- * [raises InvalidResponseBody](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L417)
58
+ * [raises InvalidResponseBody](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L417)
59
59
  * with a Proc for the :auth_callback option
60
60
  * that returns a TokenRequest
61
- * [calls the Proc with token_params when authenticating to obtain the request token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L440)
62
- * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L444)
61
+ * [calls the Proc with token_params when authenticating to obtain the request token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L440)
62
+ * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L444)
63
63
  * when authorised
64
- * [sets Auth#client_id to the new token's client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L451)
65
- * [sets Client#client_id to the new token's client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L455)
64
+ * [sets Auth#client_id to the new token's client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L451)
65
+ * [sets Client#client_id to the new token's client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L455)
66
66
  * that returns a TokenDetails JSON object
67
- * [calls the Proc when authenticating to obtain the request token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L489)
68
- * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L494)
67
+ * [calls the Proc when authenticating to obtain the request token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L489)
68
+ * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L494)
69
69
  * when authorised
70
- * [sets Auth#client_id to the new token's client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L506)
71
- * [sets Client#client_id to the new token's client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L510)
70
+ * [sets Auth#client_id to the new token's client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L506)
71
+ * [sets Client#client_id to the new token's client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L510)
72
72
  * that returns a TokenDetails object
73
- * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L525)
73
+ * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L525)
74
74
  * that returns a Token string
75
- * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L541)
75
+ * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L541)
76
76
  * with auth_option :client_id
77
- * [returns a token with the client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L571)
77
+ * [returns a token with the client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L571)
78
78
  * with token_param :client_id
79
- * [returns a token with the client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L580)
79
+ * [returns a token with the client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L580)
80
80
  * before #authorise has been called
81
- * [has no current_token_details](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L587)
81
+ * [has no current_token_details](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L587)
82
82
  * #authorise
83
- * [updates the persisted token params that are then used for subsequent authorise requests](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L637)
84
- * [updates the persisted token params that are then used for subsequent authorise requests](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L643)
83
+ * [updates the persisted token params that are then used for subsequent authorise requests](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L637)
84
+ * [updates the persisted token params that are then used for subsequent authorise requests](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L643)
85
85
  * when called for the first time since the client has been instantiated
86
- * [passes all auth_options and token_params to #request_token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L601)
87
- * [returns a valid token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L606)
88
- * [issues a new token if option :force => true](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L610)
86
+ * [passes all auth_options and token_params to #request_token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L601)
87
+ * [returns a valid token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L606)
88
+ * [issues a new token if option :force => true](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L610)
89
89
  * with previous authorisation
90
- * [does not request a token if current_token_details has not expired](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L621)
91
- * [requests a new token if token is expired](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L626)
92
- * [issues a new token if option :force => true](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L632)
90
+ * [does not request a token if current_token_details has not expired](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L621)
91
+ * [requests a new token if token is expired](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L626)
92
+ * [issues a new token if option :force => true](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L632)
93
93
  * with a Proc for the :auth_callback option
94
- * [calls the Proc](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L659)
95
- * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L663)
94
+ * [calls the Proc](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L659)
95
+ * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L663)
96
96
  * for every subsequent #request_token
97
97
  * without a :auth_callback Proc
98
- * [calls the originally provided block](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L669)
98
+ * [calls the originally provided block](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L669)
99
99
  * with a provided block
100
- * [does not call the originally provided Proc and calls the new #request_token :auth_callback Proc](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L676)
100
+ * [does not call the originally provided Proc and calls the new #request_token :auth_callback Proc](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L676)
101
101
  * with an explicit token string that expires
102
102
  * and a Proc for the :auth_callback option to provide a means to renew the token
103
- * [calls the Proc once the token has expired and the new token is used](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L703)
103
+ * [calls the Proc once the token has expired and the new token is used](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L703)
104
104
  * with an explicit ClientOptions client_id
105
105
  * and an incompatible client_id in a TokenDetails object passed to the auth callback
106
- * [rejects a TokenDetails object with an incompatible client_id and raises an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L721)
106
+ * [rejects a TokenDetails object with an incompatible client_id and raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L721)
107
107
  * and an incompatible client_id in a TokenRequest object passed to the auth callback and raises an exception
108
- * [rejects a TokenRequests object with an incompatible client_id and raises an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L729)
108
+ * [rejects a TokenRequests object with an incompatible client_id and raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L729)
109
109
  * and a token string without any retrievable client_id
110
- * [rejects a TokenRequests object with an incompatible client_id and raises an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L737)
110
+ * [rejects a TokenRequests object with an incompatible client_id and raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L737)
111
111
  * #create_token_request
112
- * [returns a TokenRequest object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L752)
113
- * [returns a TokenRequest that can be passed to a client that can use it for authentication without an API key](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L756)
114
- * [uses the key name from the client](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L763)
115
- * [uses the default TTL](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L767)
116
- * [uses the default capability](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L780)
112
+ * [returns a TokenRequest object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L752)
113
+ * [returns a TokenRequest that can be passed to a client that can use it for authentication without an API key](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L756)
114
+ * [uses the key name from the client](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L763)
115
+ * [uses the default TTL](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L767)
116
+ * [uses the default capability](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L780)
117
117
  * with a :ttl option below the Token expiry buffer that ensures tokens are renewed 15s before they expire as they are considered expired
118
- * [uses the Token expiry buffer default + 10s to allow for a token request in flight](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L774)
118
+ * [uses the Token expiry buffer default + 10s to allow for a token request in flight](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L774)
119
119
  * the nonce
120
- * [is unique for every request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L785)
121
- * [is at least 16 characters](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L790)
120
+ * [is unique for every request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L785)
121
+ * [is at least 16 characters](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L790)
122
122
  * with token param :ttl
123
- * [overrides default](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L801)
123
+ * [overrides default](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L801)
124
124
  * with token param :nonce
125
- * [overrides default](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L801)
125
+ * [overrides default](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L801)
126
126
  * with token param :client_id
127
- * [overrides default](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L801)
127
+ * [overrides default](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L801)
128
128
  * when specifying capability
129
- * [overrides the default](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L812)
130
- * [uses these capabilities when Ably issues an actual token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L816)
129
+ * [overrides the default](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L812)
130
+ * [uses these capabilities when Ably issues an actual token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L816)
131
131
  * with additional invalid attributes
132
- * [are ignored](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L826)
132
+ * [are ignored](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L826)
133
133
  * when required fields are missing
134
- * [should raise an exception if key secret is missing](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L837)
135
- * [should raise an exception if key name is missing](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L841)
134
+ * [should raise an exception if key secret is missing](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L837)
135
+ * [should raise an exception if key name is missing](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L841)
136
136
  * timestamp attribute
137
- * [is a Time object in Ruby and is set to the local time](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L868)
137
+ * [is a Time object in Ruby and is set to the local time](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L868)
138
138
  * with :query_time auth_option
139
- * [queries the server for the timestamp](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L853)
139
+ * [queries the server for the timestamp](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L853)
140
140
  * with :timestamp option
141
- * [uses the provided timestamp in the token request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L863)
141
+ * [uses the provided timestamp in the token request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L863)
142
142
  * signing
143
- * [generates a valid HMAC](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L892)
143
+ * [generates a valid HMAC](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L892)
144
144
  * using token authentication
145
145
  * with :token option
146
- * [authenticates successfully using the provided :token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L915)
147
- * [disallows publishing on unspecified capability channels](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L919)
148
- * [fails if timestamp is invalid](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L927)
149
- * [cannot be renewed automatically](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L935)
146
+ * [authenticates successfully using the provided :token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L915)
147
+ * [disallows publishing on unspecified capability channels](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L919)
148
+ * [fails if timestamp is invalid](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L927)
149
+ * [cannot be renewed automatically](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L935)
150
150
  * when implicit as a result of using :client_id
151
151
  * and requests to the Ably server are mocked
152
- * [will send a token request to the server](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L963)
152
+ * [will send a token request to the server](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L963)
153
153
  * a token is created
154
- * [before a request is made](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L972)
155
- * [when a message is published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L976)
156
- * [with capability and TTL defaults](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L980)
157
- * [#client_id contains the client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L991)
154
+ * [before a request is made](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L972)
155
+ * [when a message is published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L976)
156
+ * [with capability and TTL defaults](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L980)
157
+ * [#client_id contains the client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L991)
158
158
  * when :client_id is provided in a token
159
- * [#client_id contains the client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1006)
159
+ * [#client_id contains the client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1006)
160
160
  * #client_id_validated?
161
161
  * when using basic auth
162
- * [is false as basic auth users do not have an identity](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1018)
162
+ * [is false as basic auth users do not have an identity](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1018)
163
163
  * when using a token auth string for a token with a client_id
164
- * [is false as identification is not possible from an opaque token string](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1026)
164
+ * [is false as identification is not possible from an opaque token string](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1026)
165
165
  * when using a token
166
166
  * with a client_id
167
- * [is true](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1035)
167
+ * [is true](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1035)
168
168
  * with no client_id (anonymous)
169
- * [is true](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1043)
169
+ * [is true](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1043)
170
170
  * with a wildcard client_id (anonymous)
171
- * [is false](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1051)
171
+ * [is false](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1051)
172
172
  * when using a token request with a client_id
173
- * [is not true as identification is not confirmed until authenticated](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1060)
173
+ * [is not true as identification is not confirmed until authenticated](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1060)
174
174
  * after authentication
175
- * [is true as identification is completed during implicit authentication](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1067)
175
+ * [is true as identification is completed during implicit authentication](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1067)
176
176
  * when using a :key and basic auth
177
- * [#using_token_auth? is false](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1075)
178
- * [#key attribute contains the key string](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1079)
179
- * [#using_basic_auth? is true](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1083)
177
+ * [#using_token_auth? is false](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1075)
178
+ * [#key attribute contains the key string](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1079)
179
+ * [#using_basic_auth? is true](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1083)
180
180
  * using MsgPack protocol
181
- * [has immutable options](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L60)
181
+ * [has immutable options](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L60)
182
182
  * #request_token
183
- * [creates a TokenRequest automatically and sends it to Ably to obtain a token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L75)
184
- * [returns a valid TokenDetails object in the expected format with valid issued and expires attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L84)
183
+ * [creates a TokenRequest automatically and sends it to Ably to obtain a token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L75)
184
+ * [returns a valid TokenDetails object in the expected format with valid issued and expires attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L84)
185
185
  * with token_param :client_id
186
- * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L117)
186
+ * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L117)
187
187
  * with token_param :capability
188
- * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L117)
188
+ * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L117)
189
189
  * with token_param :nonce
190
- * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L117)
190
+ * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L117)
191
191
  * with token_param :timestamp
192
- * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L117)
192
+ * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L117)
193
193
  * with token_param :ttl
194
- * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L117)
194
+ * [overrides default and uses camelCase notation for attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L117)
195
195
  * with :key option
196
- * [key_name is used in request and signing uses key_secret](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L147)
196
+ * [key_name is used in request and signing uses key_secret](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L147)
197
197
  * with :key_name & :key_secret options
198
- * [key_name is used in request and signing uses key_secret](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L177)
198
+ * [key_name is used in request and signing uses key_secret](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L177)
199
199
  * with :query_time option
200
- * [queries the server for the time](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L185)
200
+ * [queries the server for the time](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L185)
201
201
  * without :query_time option
202
- * [does not query the server for the time](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L194)
202
+ * [does not query the server for the time](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L194)
203
203
  * with :auth_url option merging
204
204
  * with existing configured auth options
205
205
  * using unspecified :auth_method
206
- * [requests a token using a GET request with provided headers, and merges client_id into auth_params](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L234)
206
+ * [requests a token using a GET request with provided headers, and merges client_id into auth_params](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L234)
207
207
  * with provided token_params
208
- * [merges provided token_params with existing auth_params and client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L242)
208
+ * [merges provided token_params with existing auth_params and client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L242)
209
209
  * with provided auth option auth_params and auth_headers
210
- * [replaces any preconfigured auth_params](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L250)
210
+ * [replaces any preconfigured auth_params](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L250)
211
211
  * using :get :auth_method and query params in the URL
212
- * [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](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L261)
212
+ * [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](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L261)
213
213
  * using :post :auth_method
214
- * [requests a token using a POST request with provided headers, and merges client_id into auth_params as form-encoded post data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L271)
214
+ * [requests a token using a POST request with provided headers, and merges client_id into auth_params as form-encoded post data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L271)
215
215
  * with :auth_url option
216
216
  * when response from :auth_url is a valid token request
217
- * [requests a token from :auth_url using an HTTP GET request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L321)
218
- * [returns a valid token generated from the token request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L326)
217
+ * [requests a token from :auth_url using an HTTP GET request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L321)
218
+ * [returns a valid token generated from the token request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L326)
219
219
  * with :query_params
220
- * [requests a token from :auth_url with the :query_params](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L333)
220
+ * [requests a token from :auth_url with the :query_params](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L333)
221
221
  * with :headers
222
- * [requests a token from :auth_url with the HTTP headers set](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L341)
222
+ * [requests a token from :auth_url with the HTTP headers set](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L341)
223
223
  * with POST
224
- * [requests a token from :auth_url using an HTTP POST instead of the default GET](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L349)
224
+ * [requests a token from :auth_url using an HTTP POST instead of the default GET](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L349)
225
225
  * when response from :auth_url is a token details object
226
- * [returns TokenDetails created from the token JSON](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L374)
226
+ * [returns TokenDetails created from the token JSON](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L374)
227
227
  * when response from :auth_url is text/plain content type and a token string
228
- * [returns TokenDetails created from the token JSON](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L392)
228
+ * [returns TokenDetails created from the token JSON](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L392)
229
229
  * when response is invalid
230
230
  * 500
231
- * [raises ServerError](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L406)
231
+ * [raises ServerError](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L406)
232
232
  * XML
233
- * [raises InvalidResponseBody](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L417)
233
+ * [raises InvalidResponseBody](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L417)
234
234
  * with a Proc for the :auth_callback option
235
235
  * that returns a TokenRequest
236
- * [calls the Proc with token_params when authenticating to obtain the request token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L440)
237
- * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L444)
236
+ * [calls the Proc with token_params when authenticating to obtain the request token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L440)
237
+ * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L444)
238
238
  * when authorised
239
- * [sets Auth#client_id to the new token's client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L451)
240
- * [sets Client#client_id to the new token's client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L455)
239
+ * [sets Auth#client_id to the new token's client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L451)
240
+ * [sets Client#client_id to the new token's client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L455)
241
241
  * that returns a TokenDetails JSON object
242
- * [calls the Proc when authenticating to obtain the request token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L489)
243
- * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L494)
242
+ * [calls the Proc when authenticating to obtain the request token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L489)
243
+ * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L494)
244
244
  * when authorised
245
- * [sets Auth#client_id to the new token's client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L506)
246
- * [sets Client#client_id to the new token's client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L510)
245
+ * [sets Auth#client_id to the new token's client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L506)
246
+ * [sets Client#client_id to the new token's client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L510)
247
247
  * that returns a TokenDetails object
248
- * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L525)
248
+ * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L525)
249
249
  * that returns a Token string
250
- * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L541)
250
+ * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L541)
251
251
  * with auth_option :client_id
252
- * [returns a token with the client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L571)
252
+ * [returns a token with the client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L571)
253
253
  * with token_param :client_id
254
- * [returns a token with the client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L580)
254
+ * [returns a token with the client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L580)
255
255
  * before #authorise has been called
256
- * [has no current_token_details](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L587)
256
+ * [has no current_token_details](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L587)
257
257
  * #authorise
258
- * [updates the persisted token params that are then used for subsequent authorise requests](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L637)
259
- * [updates the persisted token params that are then used for subsequent authorise requests](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L643)
258
+ * [updates the persisted token params that are then used for subsequent authorise requests](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L637)
259
+ * [updates the persisted token params that are then used for subsequent authorise requests](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L643)
260
260
  * when called for the first time since the client has been instantiated
261
- * [passes all auth_options and token_params to #request_token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L601)
262
- * [returns a valid token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L606)
263
- * [issues a new token if option :force => true](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L610)
261
+ * [passes all auth_options and token_params to #request_token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L601)
262
+ * [returns a valid token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L606)
263
+ * [issues a new token if option :force => true](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L610)
264
264
  * with previous authorisation
265
- * [does not request a token if current_token_details has not expired](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L621)
266
- * [requests a new token if token is expired](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L626)
267
- * [issues a new token if option :force => true](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L632)
265
+ * [does not request a token if current_token_details has not expired](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L621)
266
+ * [requests a new token if token is expired](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L626)
267
+ * [issues a new token if option :force => true](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L632)
268
268
  * with a Proc for the :auth_callback option
269
- * [calls the Proc](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L659)
270
- * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L663)
269
+ * [calls the Proc](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L659)
270
+ * [uses the token request returned from the callback when requesting a new token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L663)
271
271
  * for every subsequent #request_token
272
272
  * without a :auth_callback Proc
273
- * [calls the originally provided block](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L669)
273
+ * [calls the originally provided block](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L669)
274
274
  * with a provided block
275
- * [does not call the originally provided Proc and calls the new #request_token :auth_callback Proc](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L676)
275
+ * [does not call the originally provided Proc and calls the new #request_token :auth_callback Proc](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L676)
276
276
  * with an explicit token string that expires
277
277
  * and a Proc for the :auth_callback option to provide a means to renew the token
278
- * [calls the Proc once the token has expired and the new token is used](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L703)
278
+ * [calls the Proc once the token has expired and the new token is used](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L703)
279
279
  * with an explicit ClientOptions client_id
280
280
  * and an incompatible client_id in a TokenDetails object passed to the auth callback
281
- * [rejects a TokenDetails object with an incompatible client_id and raises an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L721)
281
+ * [rejects a TokenDetails object with an incompatible client_id and raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L721)
282
282
  * and an incompatible client_id in a TokenRequest object passed to the auth callback and raises an exception
283
- * [rejects a TokenRequests object with an incompatible client_id and raises an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L729)
283
+ * [rejects a TokenRequests object with an incompatible client_id and raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L729)
284
284
  * and a token string without any retrievable client_id
285
- * [rejects a TokenRequests object with an incompatible client_id and raises an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L737)
285
+ * [rejects a TokenRequests object with an incompatible client_id and raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L737)
286
286
  * #create_token_request
287
- * [returns a TokenRequest object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L752)
288
- * [returns a TokenRequest that can be passed to a client that can use it for authentication without an API key](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L756)
289
- * [uses the key name from the client](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L763)
290
- * [uses the default TTL](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L767)
291
- * [uses the default capability](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L780)
287
+ * [returns a TokenRequest object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L752)
288
+ * [returns a TokenRequest that can be passed to a client that can use it for authentication without an API key](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L756)
289
+ * [uses the key name from the client](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L763)
290
+ * [uses the default TTL](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L767)
291
+ * [uses the default capability](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L780)
292
292
  * with a :ttl option below the Token expiry buffer that ensures tokens are renewed 15s before they expire as they are considered expired
293
- * [uses the Token expiry buffer default + 10s to allow for a token request in flight](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L774)
293
+ * [uses the Token expiry buffer default + 10s to allow for a token request in flight](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L774)
294
294
  * the nonce
295
- * [is unique for every request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L785)
296
- * [is at least 16 characters](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L790)
295
+ * [is unique for every request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L785)
296
+ * [is at least 16 characters](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L790)
297
297
  * with token param :ttl
298
- * [overrides default](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L801)
298
+ * [overrides default](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L801)
299
299
  * with token param :nonce
300
- * [overrides default](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L801)
300
+ * [overrides default](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L801)
301
301
  * with token param :client_id
302
- * [overrides default](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L801)
302
+ * [overrides default](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L801)
303
303
  * when specifying capability
304
- * [overrides the default](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L812)
305
- * [uses these capabilities when Ably issues an actual token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L816)
304
+ * [overrides the default](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L812)
305
+ * [uses these capabilities when Ably issues an actual token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L816)
306
306
  * with additional invalid attributes
307
- * [are ignored](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L826)
307
+ * [are ignored](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L826)
308
308
  * when required fields are missing
309
- * [should raise an exception if key secret is missing](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L837)
310
- * [should raise an exception if key name is missing](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L841)
309
+ * [should raise an exception if key secret is missing](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L837)
310
+ * [should raise an exception if key name is missing](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L841)
311
311
  * timestamp attribute
312
- * [is a Time object in Ruby and is set to the local time](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L868)
312
+ * [is a Time object in Ruby and is set to the local time](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L868)
313
313
  * with :query_time auth_option
314
- * [queries the server for the timestamp](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L853)
314
+ * [queries the server for the timestamp](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L853)
315
315
  * with :timestamp option
316
- * [uses the provided timestamp in the token request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L863)
316
+ * [uses the provided timestamp in the token request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L863)
317
317
  * signing
318
- * [generates a valid HMAC](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L892)
318
+ * [generates a valid HMAC](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L892)
319
319
  * using token authentication
320
320
  * with :token option
321
- * [authenticates successfully using the provided :token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L915)
322
- * [disallows publishing on unspecified capability channels](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L919)
323
- * [fails if timestamp is invalid](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L927)
324
- * [cannot be renewed automatically](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L935)
321
+ * [authenticates successfully using the provided :token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L915)
322
+ * [disallows publishing on unspecified capability channels](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L919)
323
+ * [fails if timestamp is invalid](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L927)
324
+ * [cannot be renewed automatically](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L935)
325
325
  * when implicit as a result of using :client_id
326
326
  * and requests to the Ably server are mocked
327
- * [will send a token request to the server](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L963)
327
+ * [will send a token request to the server](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L963)
328
328
  * a token is created
329
- * [before a request is made](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L972)
330
- * [when a message is published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L976)
331
- * [with capability and TTL defaults](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L980)
332
- * [#client_id contains the client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L991)
329
+ * [before a request is made](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L972)
330
+ * [when a message is published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L976)
331
+ * [with capability and TTL defaults](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L980)
332
+ * [#client_id contains the client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L991)
333
333
  * when :client_id is provided in a token
334
- * [#client_id contains the client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1006)
334
+ * [#client_id contains the client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1006)
335
335
  * #client_id_validated?
336
336
  * when using basic auth
337
- * [is false as basic auth users do not have an identity](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1018)
337
+ * [is false as basic auth users do not have an identity](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1018)
338
338
  * when using a token auth string for a token with a client_id
339
- * [is false as identification is not possible from an opaque token string](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1026)
339
+ * [is false as identification is not possible from an opaque token string](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1026)
340
340
  * when using a token
341
341
  * with a client_id
342
- * [is true](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1035)
342
+ * [is true](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1035)
343
343
  * with no client_id (anonymous)
344
- * [is true](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1043)
344
+ * [is true](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1043)
345
345
  * with a wildcard client_id (anonymous)
346
- * [is false](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1051)
346
+ * [is false](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1051)
347
347
  * when using a token request with a client_id
348
- * [is not true as identification is not confirmed until authenticated](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1060)
348
+ * [is not true as identification is not confirmed until authenticated](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1060)
349
349
  * after authentication
350
- * [is true as identification is completed during implicit authentication](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1067)
350
+ * [is true as identification is completed during implicit authentication](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1067)
351
351
  * when using a :key and basic auth
352
- * [#using_token_auth? is false](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1075)
353
- * [#key attribute contains the key string](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1079)
354
- * [#using_basic_auth? is true](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/auth_spec.rb#L1083)
352
+ * [#using_token_auth? is false](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1075)
353
+ * [#key attribute contains the key string](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1079)
354
+ * [#using_basic_auth? is true](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/auth_spec.rb#L1083)
355
355
 
356
356
  ### Ably::Rest
357
- _(see [lib/submodules/ably-ruby/spec/acceptance/rest/base_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/base_spec.rb))_
357
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/base_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/base_spec.rb))_
358
358
  * transport protocol
359
359
  * when protocol is not defined it defaults to :msgpack
360
- * [uses MsgPack](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/base_spec.rb#L27)
360
+ * [uses MsgPack](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/base_spec.rb#L27)
361
361
  * when option {:protocol=>:json} is used
362
- * [uses JSON](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/base_spec.rb#L43)
362
+ * [uses JSON](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/base_spec.rb#L43)
363
363
  * when option {:use_binary_protocol=>false} is used
364
- * [uses JSON](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/base_spec.rb#L43)
364
+ * [uses JSON](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/base_spec.rb#L43)
365
365
  * when option {:protocol=>:msgpack} is used
366
- * [uses MsgPack](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/base_spec.rb#L60)
366
+ * [uses MsgPack](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/base_spec.rb#L60)
367
367
  * when option {:use_binary_protocol=>true} is used
368
- * [uses MsgPack](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/base_spec.rb#L60)
368
+ * [uses MsgPack](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/base_spec.rb#L60)
369
369
  * using JSON protocol
370
370
  * failed requests
371
371
  * due to invalid Auth
372
- * [should raise an InvalidRequest exception with a valid error message and code](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/base_spec.rb#L75)
372
+ * [should raise an InvalidRequest exception with a valid error message and code](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/base_spec.rb#L75)
373
373
  * server error with JSON error response body
374
- * [should raise a ServerError exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/base_spec.rb#L94)
374
+ * [should raise a ServerError exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/base_spec.rb#L94)
375
375
  * 500 server error without a valid JSON response body
376
- * [should raise a ServerError exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/base_spec.rb#L105)
376
+ * [should raise a ServerError exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/base_spec.rb#L105)
377
377
  * token authentication failures
378
378
  * when auth#token_renewable?
379
- * [should automatically reissue a token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/base_spec.rb#L143)
379
+ * [should automatically reissue a token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/base_spec.rb#L143)
380
380
  * when NOT auth#token_renewable?
381
- * [should raise an TokenExpired exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/base_spec.rb#L158)
381
+ * [should raise an TokenExpired exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/base_spec.rb#L158)
382
382
  * using MsgPack protocol
383
383
  * failed requests
384
384
  * due to invalid Auth
385
- * [should raise an InvalidRequest exception with a valid error message and code](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/base_spec.rb#L75)
385
+ * [should raise an InvalidRequest exception with a valid error message and code](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/base_spec.rb#L75)
386
386
  * server error with JSON error response body
387
- * [should raise a ServerError exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/base_spec.rb#L94)
387
+ * [should raise a ServerError exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/base_spec.rb#L94)
388
388
  * 500 server error without a valid JSON response body
389
- * [should raise a ServerError exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/base_spec.rb#L105)
389
+ * [should raise a ServerError exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/base_spec.rb#L105)
390
390
  * token authentication failures
391
391
  * when auth#token_renewable?
392
- * [should automatically reissue a token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/base_spec.rb#L143)
392
+ * [should automatically reissue a token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/base_spec.rb#L143)
393
393
  * when NOT auth#token_renewable?
394
- * [should raise an TokenExpired exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/base_spec.rb#L158)
394
+ * [should raise an TokenExpired exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/base_spec.rb#L158)
395
395
 
396
396
  ### Ably::Rest::Channel
397
- _(see [lib/submodules/ably-ruby/spec/acceptance/rest/channel_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb))_
397
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/channel_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb))_
398
398
  * using JSON protocol
399
399
  * #publish
400
400
  * with name and data arguments
401
- * [publishes the message and return true indicating success](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L21)
401
+ * [publishes the message and return true indicating success](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L21)
402
402
  * and additional attributes
403
- * [publishes the message with the attributes and return true indicating success](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L30)
403
+ * [publishes the message with the attributes and return true indicating success](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L30)
404
404
  * with a client_id configured in the ClientOptions
405
- * [publishes the message without a client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L41)
406
- * [expects a client_id to be added by the realtime service](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L49)
405
+ * [publishes the message without a client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L41)
406
+ * [expects a client_id to be added by the realtime service](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L49)
407
407
  * with an array of Hash objects with :name and :data attributes
408
- * [publishes an array of messages in one HTTP request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L62)
408
+ * [publishes an array of messages in one HTTP request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L62)
409
409
  * with an array of Message objects
410
- * [publishes an array of messages in one HTTP request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L77)
410
+ * [publishes an array of messages in one HTTP request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L77)
411
411
  * without adequate permissions on the channel
412
- * [raises a permission error when publishing](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L89)
412
+ * [raises a permission error when publishing](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L89)
413
413
  * null attributes
414
414
  * when name is null
415
- * [publishes the message without a name attribute in the payload](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L98)
415
+ * [publishes the message without a name attribute in the payload](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L98)
416
416
  * when data is null
417
- * [publishes the message without a data attribute in the payload](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L109)
417
+ * [publishes the message without a data attribute in the payload](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L109)
418
418
  * with neither name or data attributes
419
- * [publishes the message without any attributes in the payload](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L120)
419
+ * [publishes the message without any attributes in the payload](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L120)
420
420
  * identified clients
421
421
  * when authenticated with a wildcard client_id
422
422
  * with a valid client_id in the message
423
- * [succeeds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L137)
423
+ * [succeeds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L137)
424
424
  * with a wildcard client_id in the message
425
- * [throws an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L146)
425
+ * [throws an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L146)
426
426
  * with an empty client_id in the message
427
- * [succeeds and publishes without a client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L152)
427
+ * [succeeds and publishes without a client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L152)
428
428
  * when authenticated with a Token string with an implicit client_id
429
429
  * without having a confirmed identity
430
430
  * with a valid client_id in the message
431
- * [succeeds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L169)
431
+ * [succeeds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L169)
432
432
  * with an invalid client_id in the message
433
- * [succeeds in the client library but then fails when published to Ably](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L178)
433
+ * [succeeds in the client library but then fails when published to Ably](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L178)
434
434
  * with an empty client_id in the message
435
- * [succeeds and publishes with an implicit client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L184)
435
+ * [succeeds and publishes with an implicit client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L184)
436
436
  * when authenticated with TokenDetails with a valid client_id
437
437
  * with a valid client_id in the message
438
- * [succeeds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L201)
438
+ * [succeeds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L201)
439
439
  * with a wildcard client_id in the message
440
- * [throws an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L210)
440
+ * [throws an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L210)
441
441
  * with an invalid client_id in the message
442
- * [throws an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L216)
442
+ * [throws an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L216)
443
443
  * with an empty client_id in the message
444
- * [succeeds and publishes with an implicit client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L222)
444
+ * [succeeds and publishes with an implicit client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L222)
445
445
  * when anonymous and no client_id
446
446
  * with a client_id in the message
447
- * [throws an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L238)
447
+ * [throws an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L238)
448
448
  * with a wildcard client_id in the message
449
- * [throws an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L244)
449
+ * [throws an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L244)
450
450
  * with an empty client_id in the message
451
- * [succeeds and publishes with an implicit client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L250)
451
+ * [succeeds and publishes with an implicit client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L250)
452
452
  * #history
453
- * [returns a PaginatedResult model](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L278)
454
- * [returns the current message history for the channel](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L282)
455
- * [returns paged history using the PaginatedResult model](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L310)
453
+ * [returns a PaginatedResult model](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L278)
454
+ * [returns the current message history for the channel](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L282)
455
+ * [returns paged history using the PaginatedResult model](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L310)
456
456
  * message timestamps
457
- * [are after the messages were published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L295)
457
+ * [are after the messages were published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L295)
458
458
  * message IDs
459
- * [is unique](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L303)
459
+ * [is unique](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L303)
460
460
  * direction
461
- * [returns paged history backwards by default](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L331)
462
- * [returns history forward if specified in the options](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L337)
461
+ * [returns paged history backwards by default](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L331)
462
+ * [returns history forward if specified in the options](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L337)
463
463
  * limit
464
- * [defaults to 100](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L349)
464
+ * [defaults to 100](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L349)
465
465
  * #history option
466
466
  * :start
467
467
  * with milliseconds since epoch value
468
- * [uses this value in the history request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L392)
468
+ * [uses this value in the history request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L392)
469
469
  * with a Time object value
470
- * [converts the value to milliseconds since epoch in the hisotry request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L402)
470
+ * [converts the value to milliseconds since epoch in the hisotry request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L402)
471
471
  * :end
472
472
  * with milliseconds since epoch value
473
- * [uses this value in the history request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L392)
473
+ * [uses this value in the history request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L392)
474
474
  * with a Time object value
475
- * [converts the value to milliseconds since epoch in the hisotry request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L402)
475
+ * [converts the value to milliseconds since epoch in the hisotry request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L402)
476
476
  * when argument start is after end
477
- * [should raise an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L412)
477
+ * [should raise an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L412)
478
478
  * #presence
479
- * [returns a REST Presence object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L422)
479
+ * [returns a REST Presence object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L422)
480
480
  * using MsgPack protocol
481
481
  * #publish
482
482
  * with name and data arguments
483
- * [publishes the message and return true indicating success](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L21)
483
+ * [publishes the message and return true indicating success](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L21)
484
484
  * and additional attributes
485
- * [publishes the message with the attributes and return true indicating success](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L30)
485
+ * [publishes the message with the attributes and return true indicating success](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L30)
486
486
  * with a client_id configured in the ClientOptions
487
- * [publishes the message without a client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L41)
488
- * [expects a client_id to be added by the realtime service](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L49)
487
+ * [publishes the message without a client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L41)
488
+ * [expects a client_id to be added by the realtime service](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L49)
489
489
  * with an array of Hash objects with :name and :data attributes
490
- * [publishes an array of messages in one HTTP request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L62)
490
+ * [publishes an array of messages in one HTTP request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L62)
491
491
  * with an array of Message objects
492
- * [publishes an array of messages in one HTTP request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L77)
492
+ * [publishes an array of messages in one HTTP request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L77)
493
493
  * without adequate permissions on the channel
494
- * [raises a permission error when publishing](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L89)
494
+ * [raises a permission error when publishing](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L89)
495
495
  * null attributes
496
496
  * when name is null
497
- * [publishes the message without a name attribute in the payload](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L98)
497
+ * [publishes the message without a name attribute in the payload](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L98)
498
498
  * when data is null
499
- * [publishes the message without a data attribute in the payload](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L109)
499
+ * [publishes the message without a data attribute in the payload](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L109)
500
500
  * with neither name or data attributes
501
- * [publishes the message without any attributes in the payload](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L120)
501
+ * [publishes the message without any attributes in the payload](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L120)
502
502
  * identified clients
503
503
  * when authenticated with a wildcard client_id
504
504
  * with a valid client_id in the message
505
- * [succeeds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L137)
505
+ * [succeeds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L137)
506
506
  * with a wildcard client_id in the message
507
- * [throws an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L146)
507
+ * [throws an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L146)
508
508
  * with an empty client_id in the message
509
- * [succeeds and publishes without a client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L152)
509
+ * [succeeds and publishes without a client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L152)
510
510
  * when authenticated with a Token string with an implicit client_id
511
511
  * without having a confirmed identity
512
512
  * with a valid client_id in the message
513
- * [succeeds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L169)
513
+ * [succeeds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L169)
514
514
  * with an invalid client_id in the message
515
- * [succeeds in the client library but then fails when published to Ably](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L178)
515
+ * [succeeds in the client library but then fails when published to Ably](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L178)
516
516
  * with an empty client_id in the message
517
- * [succeeds and publishes with an implicit client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L184)
517
+ * [succeeds and publishes with an implicit client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L184)
518
518
  * when authenticated with TokenDetails with a valid client_id
519
519
  * with a valid client_id in the message
520
- * [succeeds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L201)
520
+ * [succeeds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L201)
521
521
  * with a wildcard client_id in the message
522
- * [throws an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L210)
522
+ * [throws an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L210)
523
523
  * with an invalid client_id in the message
524
- * [throws an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L216)
524
+ * [throws an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L216)
525
525
  * with an empty client_id in the message
526
- * [succeeds and publishes with an implicit client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L222)
526
+ * [succeeds and publishes with an implicit client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L222)
527
527
  * when anonymous and no client_id
528
528
  * with a client_id in the message
529
- * [throws an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L238)
529
+ * [throws an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L238)
530
530
  * with a wildcard client_id in the message
531
- * [throws an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L244)
531
+ * [throws an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L244)
532
532
  * with an empty client_id in the message
533
- * [succeeds and publishes with an implicit client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L250)
533
+ * [succeeds and publishes with an implicit client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L250)
534
534
  * #history
535
- * [returns a PaginatedResult model](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L278)
536
- * [returns the current message history for the channel](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L282)
537
- * [returns paged history using the PaginatedResult model](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L310)
535
+ * [returns a PaginatedResult model](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L278)
536
+ * [returns the current message history for the channel](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L282)
537
+ * [returns paged history using the PaginatedResult model](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L310)
538
538
  * message timestamps
539
- * [are after the messages were published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L295)
539
+ * [are after the messages were published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L295)
540
540
  * message IDs
541
- * [is unique](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L303)
541
+ * [is unique](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L303)
542
542
  * direction
543
- * [returns paged history backwards by default](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L331)
544
- * [returns history forward if specified in the options](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L337)
543
+ * [returns paged history backwards by default](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L331)
544
+ * [returns history forward if specified in the options](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L337)
545
545
  * limit
546
- * [defaults to 100](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L349)
546
+ * [defaults to 100](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L349)
547
547
  * #history option
548
548
  * :start
549
549
  * with milliseconds since epoch value
550
- * [uses this value in the history request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L392)
550
+ * [uses this value in the history request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L392)
551
551
  * with a Time object value
552
- * [converts the value to milliseconds since epoch in the hisotry request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L402)
552
+ * [converts the value to milliseconds since epoch in the hisotry request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L402)
553
553
  * :end
554
554
  * with milliseconds since epoch value
555
- * [uses this value in the history request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L392)
555
+ * [uses this value in the history request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L392)
556
556
  * with a Time object value
557
- * [converts the value to milliseconds since epoch in the hisotry request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L402)
557
+ * [converts the value to milliseconds since epoch in the hisotry request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L402)
558
558
  * when argument start is after end
559
- * [should raise an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L412)
559
+ * [should raise an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L412)
560
560
  * #presence
561
- * [returns a REST Presence object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channel_spec.rb#L422)
561
+ * [returns a REST Presence object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channel_spec.rb#L422)
562
562
 
563
563
  ### Ably::Rest::Channels
564
- _(see [lib/submodules/ably-ruby/spec/acceptance/rest/channels_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channels_spec.rb))_
564
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/channels_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channels_spec.rb))_
565
565
  * using JSON protocol
566
566
  * using shortcut method #channel on the client object
567
567
  * behaves like a channel
568
- * [returns a channel object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channels_spec.rb#L6)
569
- * [returns channel object and passes the provided options](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channels_spec.rb#L11)
568
+ * [returns a channel object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channels_spec.rb#L6)
569
+ * [returns channel object and passes the provided options](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channels_spec.rb#L11)
570
570
  * using #get method on client#channels
571
571
  * behaves like a channel
572
- * [returns a channel object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channels_spec.rb#L6)
573
- * [returns channel object and passes the provided options](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channels_spec.rb#L11)
572
+ * [returns a channel object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channels_spec.rb#L6)
573
+ * [returns channel object and passes the provided options](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channels_spec.rb#L11)
574
574
  * accessing an existing channel object with different options
575
- * [overrides the existing channel options and returns the channel object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channels_spec.rb#L39)
575
+ * [overrides the existing channel options and returns the channel object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channels_spec.rb#L39)
576
576
  * accessing an existing channel object without specifying any channel options
577
- * [returns the existing channel without modifying the channel options](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channels_spec.rb#L50)
577
+ * [returns the existing channel without modifying the channel options](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channels_spec.rb#L50)
578
578
  * using undocumented array accessor [] method on client#channels
579
579
  * behaves like a channel
580
- * [returns a channel object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channels_spec.rb#L6)
581
- * [returns channel object and passes the provided options](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channels_spec.rb#L11)
580
+ * [returns a channel object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channels_spec.rb#L6)
581
+ * [returns channel object and passes the provided options](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channels_spec.rb#L11)
582
582
  * using MsgPack protocol
583
583
  * using shortcut method #channel on the client object
584
584
  * behaves like a channel
585
- * [returns a channel object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channels_spec.rb#L6)
586
- * [returns channel object and passes the provided options](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channels_spec.rb#L11)
585
+ * [returns a channel object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channels_spec.rb#L6)
586
+ * [returns channel object and passes the provided options](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channels_spec.rb#L11)
587
587
  * using #get method on client#channels
588
588
  * behaves like a channel
589
- * [returns a channel object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channels_spec.rb#L6)
590
- * [returns channel object and passes the provided options](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channels_spec.rb#L11)
589
+ * [returns a channel object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channels_spec.rb#L6)
590
+ * [returns channel object and passes the provided options](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channels_spec.rb#L11)
591
591
  * accessing an existing channel object with different options
592
- * [overrides the existing channel options and returns the channel object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channels_spec.rb#L39)
592
+ * [overrides the existing channel options and returns the channel object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channels_spec.rb#L39)
593
593
  * accessing an existing channel object without specifying any channel options
594
- * [returns the existing channel without modifying the channel options](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channels_spec.rb#L50)
594
+ * [returns the existing channel without modifying the channel options](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channels_spec.rb#L50)
595
595
  * using undocumented array accessor [] method on client#channels
596
596
  * behaves like a channel
597
- * [returns a channel object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channels_spec.rb#L6)
598
- * [returns channel object and passes the provided options](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/channels_spec.rb#L11)
597
+ * [returns a channel object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channels_spec.rb#L6)
598
+ * [returns channel object and passes the provided options](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/channels_spec.rb#L11)
599
599
 
600
600
  ### Ably::Rest::Client
601
- _(see [lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb))_
601
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb))_
602
602
  * using JSON protocol
603
603
  * #initialize
604
604
  * with only an API key
605
- * [uses basic authentication](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L24)
605
+ * [uses basic authentication](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L24)
606
606
  * with an explicit string :token
607
- * [uses token authentication](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L32)
607
+ * [uses token authentication](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L32)
608
608
  * with :use_token_auth set to true
609
- * [uses token authentication](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L40)
609
+ * [uses token authentication](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L40)
610
610
  * with a :client_id configured
611
- * [uses token authentication](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L48)
611
+ * [uses token authentication](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L48)
612
612
  * with an invalid wildcard "*" :client_id
613
- * [raises an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L54)
613
+ * [raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L54)
614
614
  * with an :auth_callback Proc
615
- * [calls the auth Proc to get a new token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L62)
616
- * [uses token authentication](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L67)
615
+ * [calls the auth Proc to get a new token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L62)
616
+ * [uses token authentication](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L67)
617
617
  * with an :auth_callback Proc (clientId provided in library options instead of as a token_request param)
618
- * [correctly sets the clientId on the token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L76)
618
+ * [correctly sets the clientId on the token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L76)
619
619
  * with an auth URL
620
- * [uses token authentication](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L86)
620
+ * [uses token authentication](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L86)
621
621
  * before any REST request
622
- * [sends an HTTP request to the provided auth URL to get a new token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L97)
622
+ * [sends an HTTP request to the provided auth URL to get a new token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L97)
623
623
  * auth headers
624
624
  * with basic auth
625
- * [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)](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L117)
625
+ * [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)](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L117)
626
626
  * with token auth
627
627
  * without specifying protocol
628
- * [sends the token string over HTTPS in the Authorization Bearer header with Base64 encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L136)
628
+ * [sends the token string over HTTPS in the Authorization Bearer header with Base64 encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L136)
629
629
  * when setting constructor ClientOption :tls to false
630
- * [sends the token string over HTTP in the Authorization Bearer header with Base64 encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L146)
630
+ * [sends the token string over HTTP in the Authorization Bearer header with Base64 encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L146)
631
631
  * using tokens
632
632
  * when expired
633
- * [creates a new token automatically when the old token expires](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L179)
633
+ * [creates a new token automatically when the old token expires](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L179)
634
634
  * with a different client_id in the subsequent token
635
- * [fails to authenticate and raises an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L192)
635
+ * [fails to authenticate and raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L192)
636
636
  * when token has not expired
637
- * [reuses the existing token for every request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L203)
637
+ * [reuses the existing token for every request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L203)
638
638
  * connection transport
639
639
  * defaults
640
640
  * for default host
641
- * [is configured to timeout connection opening in 4 seconds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L220)
642
- * [is configured to timeout connection requests in 15 seconds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L224)
641
+ * [is configured to timeout connection opening in 4 seconds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L220)
642
+ * [is configured to timeout connection requests in 15 seconds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L224)
643
643
  * for the fallback hosts
644
- * [is configured to timeout connection opening in 4 seconds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L230)
645
- * [is configured to timeout connection requests in 15 seconds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L234)
644
+ * [is configured to timeout connection opening in 4 seconds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L230)
645
+ * [is configured to timeout connection requests in 15 seconds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L234)
646
646
  * with custom http_open_timeout and http_request_timeout options
647
647
  * for default host
648
- * [is configured to use custom open timeout](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L246)
649
- * [is configured to use custom request timeout](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L250)
648
+ * [is configured to use custom open timeout](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L246)
649
+ * [is configured to use custom request timeout](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L250)
650
650
  * for the fallback hosts
651
- * [is configured to timeout connection opening in 4 seconds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L256)
652
- * [is configured to timeout connection requests in 15 seconds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L260)
651
+ * [is configured to timeout connection opening in 4 seconds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L256)
652
+ * [is configured to timeout connection requests in 15 seconds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L260)
653
653
  * fallback hosts
654
654
  * configured
655
- * [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](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L274)
655
+ * [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](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L274)
656
656
  * when environment is NOT production
657
- * [does not retry failed requests with fallback hosts when there is a connection error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L291)
657
+ * [does not retry failed requests with fallback hosts when there is a connection error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L291)
658
658
  * when environment is production
659
659
  * and connection times out
660
- * [tries fallback hosts 3 times](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L329)
660
+ * [tries fallback hosts 3 times](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L329)
661
661
  * and the total request time exeeds 10 seconds
662
- * [makes no further attempts to any fallback hosts](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L344)
662
+ * [makes no further attempts to any fallback hosts](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L344)
663
663
  * and connection fails
664
- * [tries fallback hosts 3 times](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L360)
664
+ * [tries fallback hosts 3 times](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L360)
665
665
  * and basic authentication fails
666
- * [does not attempt the fallback hosts as this is an authentication failure](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L384)
666
+ * [does not attempt the fallback hosts as this is an authentication failure](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L384)
667
667
  * and server returns a 50x error
668
- * [attempts the fallback hosts as this is an authentication failure](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L406)
668
+ * [attempts the fallback hosts as this is an authentication failure](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L406)
669
669
  * with a custom host
670
670
  * that does not exist
671
- * [fails immediately and raises a Faraday Error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L422)
671
+ * [fails immediately and raises a Faraday Error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L422)
672
672
  * fallback hosts
673
- * [are never used](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L443)
673
+ * [are never used](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L443)
674
674
  * that times out
675
- * [fails immediately and raises a Faraday Error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L458)
675
+ * [fails immediately and raises a Faraday Error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L458)
676
676
  * fallback hosts
677
- * [are never used](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L471)
677
+ * [are never used](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L471)
678
678
  * HTTP configuration options
679
- * [is frozen](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L528)
679
+ * [is frozen](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L528)
680
680
  * defaults
681
- * [#http_open_timeout is 4s](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L483)
682
- * [#http_request_timeout is 15s](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L487)
683
- * [#http_max_retry_count is 3](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L491)
684
- * [#http_max_retry_duration is 10s](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L495)
681
+ * [#http_open_timeout is 4s](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L483)
682
+ * [#http_request_timeout is 15s](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L487)
683
+ * [#http_max_retry_count is 3](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L491)
684
+ * [#http_max_retry_duration is 10s](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L495)
685
685
  * configured
686
- * [#http_open_timeout uses provided value](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L511)
687
- * [#http_request_timeout uses provided value](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L515)
688
- * [#http_max_retry_count uses provided value](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L519)
689
- * [#http_max_retry_duration uses provided value](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L523)
686
+ * [#http_open_timeout uses provided value](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L511)
687
+ * [#http_request_timeout uses provided value](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L515)
688
+ * [#http_max_retry_count uses provided value](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L519)
689
+ * [#http_max_retry_duration uses provided value](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L523)
690
690
  * #auth
691
- * [is provides access to the Auth object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L539)
692
- * [configures the Auth object with all ClientOptions passed to client in the initializer](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L543)
691
+ * [is provides access to the Auth object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L539)
692
+ * [configures the Auth object with all ClientOptions passed to client in the initializer](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L543)
693
693
  * using MsgPack protocol
694
694
  * #initialize
695
695
  * with only an API key
696
- * [uses basic authentication](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L24)
696
+ * [uses basic authentication](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L24)
697
697
  * with an explicit string :token
698
- * [uses token authentication](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L32)
698
+ * [uses token authentication](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L32)
699
699
  * with :use_token_auth set to true
700
- * [uses token authentication](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L40)
700
+ * [uses token authentication](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L40)
701
701
  * with a :client_id configured
702
- * [uses token authentication](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L48)
702
+ * [uses token authentication](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L48)
703
703
  * with an invalid wildcard "*" :client_id
704
- * [raises an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L54)
704
+ * [raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L54)
705
705
  * with an :auth_callback Proc
706
- * [calls the auth Proc to get a new token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L62)
707
- * [uses token authentication](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L67)
706
+ * [calls the auth Proc to get a new token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L62)
707
+ * [uses token authentication](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L67)
708
708
  * with an :auth_callback Proc (clientId provided in library options instead of as a token_request param)
709
- * [correctly sets the clientId on the token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L76)
709
+ * [correctly sets the clientId on the token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L76)
710
710
  * with an auth URL
711
- * [uses token authentication](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L86)
711
+ * [uses token authentication](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L86)
712
712
  * before any REST request
713
- * [sends an HTTP request to the provided auth URL to get a new token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L97)
713
+ * [sends an HTTP request to the provided auth URL to get a new token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L97)
714
714
  * auth headers
715
715
  * with basic auth
716
- * [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)](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L117)
716
+ * [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)](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L117)
717
717
  * with token auth
718
718
  * without specifying protocol
719
- * [sends the token string over HTTPS in the Authorization Bearer header with Base64 encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L136)
719
+ * [sends the token string over HTTPS in the Authorization Bearer header with Base64 encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L136)
720
720
  * when setting constructor ClientOption :tls to false
721
- * [sends the token string over HTTP in the Authorization Bearer header with Base64 encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L146)
721
+ * [sends the token string over HTTP in the Authorization Bearer header with Base64 encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L146)
722
722
  * using tokens
723
723
  * when expired
724
- * [creates a new token automatically when the old token expires](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L179)
724
+ * [creates a new token automatically when the old token expires](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L179)
725
725
  * with a different client_id in the subsequent token
726
- * [fails to authenticate and raises an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L192)
726
+ * [fails to authenticate and raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L192)
727
727
  * when token has not expired
728
- * [reuses the existing token for every request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L203)
728
+ * [reuses the existing token for every request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L203)
729
729
  * connection transport
730
730
  * defaults
731
731
  * for default host
732
- * [is configured to timeout connection opening in 4 seconds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L220)
733
- * [is configured to timeout connection requests in 15 seconds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L224)
732
+ * [is configured to timeout connection opening in 4 seconds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L220)
733
+ * [is configured to timeout connection requests in 15 seconds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L224)
734
734
  * for the fallback hosts
735
- * [is configured to timeout connection opening in 4 seconds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L230)
736
- * [is configured to timeout connection requests in 15 seconds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L234)
735
+ * [is configured to timeout connection opening in 4 seconds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L230)
736
+ * [is configured to timeout connection requests in 15 seconds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L234)
737
737
  * with custom http_open_timeout and http_request_timeout options
738
738
  * for default host
739
- * [is configured to use custom open timeout](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L246)
740
- * [is configured to use custom request timeout](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L250)
739
+ * [is configured to use custom open timeout](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L246)
740
+ * [is configured to use custom request timeout](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L250)
741
741
  * for the fallback hosts
742
- * [is configured to timeout connection opening in 4 seconds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L256)
743
- * [is configured to timeout connection requests in 15 seconds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L260)
742
+ * [is configured to timeout connection opening in 4 seconds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L256)
743
+ * [is configured to timeout connection requests in 15 seconds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L260)
744
744
  * fallback hosts
745
745
  * configured
746
- * [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](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L274)
746
+ * [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](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L274)
747
747
  * when environment is NOT production
748
- * [does not retry failed requests with fallback hosts when there is a connection error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L291)
748
+ * [does not retry failed requests with fallback hosts when there is a connection error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L291)
749
749
  * when environment is production
750
750
  * and connection times out
751
- * [tries fallback hosts 3 times](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L329)
751
+ * [tries fallback hosts 3 times](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L329)
752
752
  * and the total request time exeeds 10 seconds
753
- * [makes no further attempts to any fallback hosts](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L344)
753
+ * [makes no further attempts to any fallback hosts](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L344)
754
754
  * and connection fails
755
- * [tries fallback hosts 3 times](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L360)
755
+ * [tries fallback hosts 3 times](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L360)
756
756
  * and basic authentication fails
757
- * [does not attempt the fallback hosts as this is an authentication failure](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L384)
757
+ * [does not attempt the fallback hosts as this is an authentication failure](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L384)
758
758
  * and server returns a 50x error
759
- * [attempts the fallback hosts as this is an authentication failure](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L406)
759
+ * [attempts the fallback hosts as this is an authentication failure](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L406)
760
760
  * with a custom host
761
761
  * that does not exist
762
- * [fails immediately and raises a Faraday Error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L422)
762
+ * [fails immediately and raises a Faraday Error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L422)
763
763
  * fallback hosts
764
- * [are never used](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L443)
764
+ * [are never used](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L443)
765
765
  * that times out
766
- * [fails immediately and raises a Faraday Error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L458)
766
+ * [fails immediately and raises a Faraday Error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L458)
767
767
  * fallback hosts
768
- * [are never used](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L471)
768
+ * [are never used](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L471)
769
769
  * HTTP configuration options
770
- * [is frozen](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L528)
770
+ * [is frozen](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L528)
771
771
  * defaults
772
- * [#http_open_timeout is 4s](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L483)
773
- * [#http_request_timeout is 15s](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L487)
774
- * [#http_max_retry_count is 3](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L491)
775
- * [#http_max_retry_duration is 10s](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L495)
772
+ * [#http_open_timeout is 4s](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L483)
773
+ * [#http_request_timeout is 15s](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L487)
774
+ * [#http_max_retry_count is 3](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L491)
775
+ * [#http_max_retry_duration is 10s](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L495)
776
776
  * configured
777
- * [#http_open_timeout uses provided value](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L511)
778
- * [#http_request_timeout uses provided value](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L515)
779
- * [#http_max_retry_count uses provided value](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L519)
780
- * [#http_max_retry_duration uses provided value](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L523)
777
+ * [#http_open_timeout uses provided value](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L511)
778
+ * [#http_request_timeout uses provided value](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L515)
779
+ * [#http_max_retry_count uses provided value](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L519)
780
+ * [#http_max_retry_duration uses provided value](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L523)
781
781
  * #auth
782
- * [is provides access to the Auth object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L539)
783
- * [configures the Auth object with all ClientOptions passed to client in the initializer](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/client_spec.rb#L543)
782
+ * [is provides access to the Auth object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L539)
783
+ * [configures the Auth object with all ClientOptions passed to client in the initializer](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/client_spec.rb#L543)
784
784
 
785
785
  ### Ably::Models::MessageEncoders
786
- _(see [lib/submodules/ably-ruby/spec/acceptance/rest/encoders_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/encoders_spec.rb))_
786
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/encoders_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/encoders_spec.rb))_
787
787
  * with binary transport protocol
788
788
  * without encryption
789
789
  * with UTF-8 data
790
- * [does not apply any encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/encoders_spec.rb#L41)
790
+ * [does not apply any encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/encoders_spec.rb#L41)
791
791
  * with binary data
792
- * [does not apply any encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/encoders_spec.rb#L52)
792
+ * [does not apply any encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/encoders_spec.rb#L52)
793
793
  * with JSON data
794
- * [stringifies the JSON and sets the encoding attribute to "json"](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/encoders_spec.rb#L63)
794
+ * [stringifies the JSON and sets the encoding attribute to "json"](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/encoders_spec.rb#L63)
795
795
  * with encryption
796
796
  * with UTF-8 data
797
- * [applies utf-8 and cipher encoding and sets the encoding attribute to "utf-8/cipher+aes-128-cbc"](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/encoders_spec.rb#L78)
797
+ * [applies utf-8 and cipher encoding and sets the encoding attribute to "utf-8/cipher+aes-128-cbc"](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/encoders_spec.rb#L78)
798
798
  * with binary data
799
- * [applies cipher encoding and sets the encoding attribute to "cipher+aes-128-cbc"](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/encoders_spec.rb#L89)
799
+ * [applies cipher encoding and sets the encoding attribute to "cipher+aes-128-cbc"](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/encoders_spec.rb#L89)
800
800
  * with JSON data
801
- * [applies json, utf-8 and cipher encoding and sets the encoding attribute to "json/utf-8/cipher+aes-128-cbc"](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/encoders_spec.rb#L100)
801
+ * [applies json, utf-8 and cipher encoding and sets the encoding attribute to "json/utf-8/cipher+aes-128-cbc"](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/encoders_spec.rb#L100)
802
802
  * with text transport protocol
803
803
  * without encryption
804
804
  * with UTF-8 data
805
- * [does not apply any encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/encoders_spec.rb#L117)
805
+ * [does not apply any encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/encoders_spec.rb#L117)
806
806
  * with binary data
807
- * [applies a base64 encoding and sets the encoding attribute to "base64"](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/encoders_spec.rb#L128)
807
+ * [applies a base64 encoding and sets the encoding attribute to "base64"](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/encoders_spec.rb#L128)
808
808
  * with JSON data
809
- * [stringifies the JSON and sets the encoding attribute to "json"](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/encoders_spec.rb#L139)
809
+ * [stringifies the JSON and sets the encoding attribute to "json"](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/encoders_spec.rb#L139)
810
810
  * with encryption
811
811
  * with UTF-8 data
812
- * [applies utf-8, cipher and base64 encodings and sets the encoding attribute to "utf-8/cipher+aes-128-cbc/base64"](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/encoders_spec.rb#L154)
812
+ * [applies utf-8, cipher and base64 encodings and sets the encoding attribute to "utf-8/cipher+aes-128-cbc/base64"](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/encoders_spec.rb#L154)
813
813
  * with binary data
814
- * [applies cipher and base64 encoding and sets the encoding attribute to "cipher+aes-128-cbc/base64"](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/encoders_spec.rb#L165)
814
+ * [applies cipher and base64 encoding and sets the encoding attribute to "cipher+aes-128-cbc/base64"](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/encoders_spec.rb#L165)
815
815
  * with JSON data
816
- * [applies json, utf-8, cipher and base64 encoding and sets the encoding attribute to "json/utf-8/cipher+aes-128-cbc/base64"](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/encoders_spec.rb#L176)
816
+ * [applies json, utf-8, cipher and base64 encoding and sets the encoding attribute to "json/utf-8/cipher+aes-128-cbc/base64"](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/encoders_spec.rb#L176)
817
817
 
818
818
  ### Ably::Rest::Channel messages
819
- _(see [lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb))_
819
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb))_
820
820
  * using JSON protocol
821
821
  * publishing with an ASCII_8BIT message name
822
- * [is converted into UTF_8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L18)
822
+ * [is converted into UTF_8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L18)
823
823
  * with supported data payload content type
824
824
  * JSON Object (Hash)
825
- * [is encoded and decoded to the same hash](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L30)
825
+ * [is encoded and decoded to the same hash](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L30)
826
826
  * JSON Array
827
- * [is encoded and decoded to the same Array](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L39)
827
+ * [is encoded and decoded to the same Array](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L39)
828
828
  * String
829
- * [is encoded and decoded to the same Array](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L48)
829
+ * [is encoded and decoded to the same Array](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L48)
830
830
  * Binary
831
- * [is encoded and decoded to the same Array](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L57)
831
+ * [is encoded and decoded to the same Array](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L57)
832
832
  * with unsupported data payload content type
833
833
  * Integer
834
- * [is raises an UnsupportedDataType 40011 exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L68)
834
+ * [is raises an UnsupportedDataType 40011 exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L68)
835
835
  * Float
836
- * [is raises an UnsupportedDataType 40011 exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L76)
836
+ * [is raises an UnsupportedDataType 40011 exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L76)
837
837
  * Boolean
838
- * [is raises an UnsupportedDataType 40011 exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L84)
838
+ * [is raises an UnsupportedDataType 40011 exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L84)
839
839
  * False
840
- * [is raises an UnsupportedDataType 40011 exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L92)
840
+ * [is raises an UnsupportedDataType 40011 exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L92)
841
841
  * encryption and encoding
842
842
  * with #publish and #history
843
843
  * with AES-128-CBC using crypto-data-128.json fixtures
844
844
  * item 0 with encrypted encoding utf-8/cipher+aes-128-cbc/base64
845
845
  * behaves like an Ably encrypter and decrypter
846
- * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L137)
847
- * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L152)
846
+ * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L137)
847
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L152)
848
848
  * item 1 with encrypted encoding cipher+aes-128-cbc/base64
849
849
  * behaves like an Ably encrypter and decrypter
850
- * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L137)
851
- * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L152)
850
+ * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L137)
851
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L152)
852
852
  * item 2 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
853
853
  * behaves like an Ably encrypter and decrypter
854
- * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L137)
855
- * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L152)
854
+ * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L137)
855
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L152)
856
856
  * item 3 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
857
857
  * behaves like an Ably encrypter and decrypter
858
- * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L137)
859
- * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L152)
858
+ * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L137)
859
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L152)
860
860
  * with AES-256-CBC using crypto-data-256.json fixtures
861
861
  * item 0 with encrypted encoding utf-8/cipher+aes-256-cbc/base64
862
862
  * behaves like an Ably encrypter and decrypter
863
- * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L137)
864
- * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L152)
863
+ * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L137)
864
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L152)
865
865
  * item 1 with encrypted encoding cipher+aes-256-cbc/base64
866
866
  * behaves like an Ably encrypter and decrypter
867
- * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L137)
868
- * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L152)
867
+ * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L137)
868
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L152)
869
869
  * item 2 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
870
870
  * behaves like an Ably encrypter and decrypter
871
- * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L137)
872
- * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L152)
871
+ * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L137)
872
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L152)
873
873
  * item 3 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
874
874
  * behaves like an Ably encrypter and decrypter
875
- * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L137)
876
- * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L152)
875
+ * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L137)
876
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L152)
877
877
  * when publishing lots of messages
878
- * [encrypts on #publish and decrypts on #history](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L185)
878
+ * [encrypts on #publish and decrypts on #history](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L185)
879
879
  * when retrieving #history with a different protocol
880
- * [delivers a String ASCII-8BIT payload to the receiver](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L212)
881
- * [delivers a String UTF-8 payload to the receiver](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L212)
882
- * [delivers a Hash payload to the receiver](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L212)
880
+ * [delivers a String ASCII-8BIT payload to the receiver](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L212)
881
+ * [delivers a String UTF-8 payload to the receiver](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L212)
882
+ * [delivers a Hash payload to the receiver](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L212)
883
883
  * when publishing on an unencrypted channel and retrieving with #history on an encrypted channel
884
- * [does not attempt to decrypt the message](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L228)
884
+ * [does not attempt to decrypt the message](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L228)
885
885
  * when publishing on an encrypted channel and retrieving with #history on an unencrypted channel
886
- * [retrieves the message that remains encrypted with an encrypted encoding attribute](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L249)
887
- * [logs a Cipher exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L255)
886
+ * [retrieves the message that remains encrypted with an encrypted encoding attribute](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L249)
887
+ * [logs a Cipher exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L255)
888
888
  * publishing on an encrypted channel and retrieving #history with a different algorithm on another client
889
- * [retrieves the message that remains encrypted with an encrypted encoding attribute](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L276)
890
- * [logs a Cipher exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L282)
889
+ * [retrieves the message that remains encrypted with an encrypted encoding attribute](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L276)
890
+ * [logs a Cipher exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L282)
891
891
  * publishing on an encrypted channel and subscribing with a different key on another client
892
- * [retrieves the message that remains encrypted with an encrypted encoding attribute](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L303)
893
- * [logs a Cipher exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L309)
892
+ * [retrieves the message that remains encrypted with an encrypted encoding attribute](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L303)
893
+ * [logs a Cipher exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L309)
894
894
  * using MsgPack protocol
895
895
  * publishing with an ASCII_8BIT message name
896
- * [is converted into UTF_8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L18)
896
+ * [is converted into UTF_8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L18)
897
897
  * with supported data payload content type
898
898
  * JSON Object (Hash)
899
- * [is encoded and decoded to the same hash](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L30)
899
+ * [is encoded and decoded to the same hash](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L30)
900
900
  * JSON Array
901
- * [is encoded and decoded to the same Array](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L39)
901
+ * [is encoded and decoded to the same Array](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L39)
902
902
  * String
903
- * [is encoded and decoded to the same Array](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L48)
903
+ * [is encoded and decoded to the same Array](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L48)
904
904
  * Binary
905
- * [is encoded and decoded to the same Array](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L57)
905
+ * [is encoded and decoded to the same Array](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L57)
906
906
  * with unsupported data payload content type
907
907
  * Integer
908
- * [is raises an UnsupportedDataType 40011 exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L68)
908
+ * [is raises an UnsupportedDataType 40011 exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L68)
909
909
  * Float
910
- * [is raises an UnsupportedDataType 40011 exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L76)
910
+ * [is raises an UnsupportedDataType 40011 exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L76)
911
911
  * Boolean
912
- * [is raises an UnsupportedDataType 40011 exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L84)
912
+ * [is raises an UnsupportedDataType 40011 exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L84)
913
913
  * False
914
- * [is raises an UnsupportedDataType 40011 exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L92)
914
+ * [is raises an UnsupportedDataType 40011 exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L92)
915
915
  * encryption and encoding
916
916
  * with #publish and #history
917
917
  * with AES-128-CBC using crypto-data-128.json fixtures
918
918
  * item 0 with encrypted encoding utf-8/cipher+aes-128-cbc/base64
919
919
  * behaves like an Ably encrypter and decrypter
920
- * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L137)
921
- * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L152)
920
+ * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L137)
921
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L152)
922
922
  * item 1 with encrypted encoding cipher+aes-128-cbc/base64
923
923
  * behaves like an Ably encrypter and decrypter
924
- * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L137)
925
- * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L152)
924
+ * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L137)
925
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L152)
926
926
  * item 2 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
927
927
  * behaves like an Ably encrypter and decrypter
928
- * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L137)
929
- * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L152)
928
+ * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L137)
929
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L152)
930
930
  * item 3 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
931
931
  * behaves like an Ably encrypter and decrypter
932
- * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L137)
933
- * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L152)
932
+ * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L137)
933
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L152)
934
934
  * with AES-256-CBC using crypto-data-256.json fixtures
935
935
  * item 0 with encrypted encoding utf-8/cipher+aes-256-cbc/base64
936
936
  * behaves like an Ably encrypter and decrypter
937
- * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L137)
938
- * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L152)
937
+ * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L137)
938
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L152)
939
939
  * item 1 with encrypted encoding cipher+aes-256-cbc/base64
940
940
  * behaves like an Ably encrypter and decrypter
941
- * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L137)
942
- * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L152)
941
+ * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L137)
942
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L152)
943
943
  * item 2 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
944
944
  * behaves like an Ably encrypter and decrypter
945
- * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L137)
946
- * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L152)
945
+ * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L137)
946
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L152)
947
947
  * item 3 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
948
948
  * behaves like an Ably encrypter and decrypter
949
- * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L137)
950
- * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L152)
949
+ * [encrypts message automatically when published](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L137)
950
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L152)
951
951
  * when publishing lots of messages
952
- * [encrypts on #publish and decrypts on #history](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L185)
952
+ * [encrypts on #publish and decrypts on #history](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L185)
953
953
  * when retrieving #history with a different protocol
954
- * [delivers a String ASCII-8BIT payload to the receiver](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L212)
955
- * [delivers a String UTF-8 payload to the receiver](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L212)
956
- * [delivers a Hash payload to the receiver](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L212)
954
+ * [delivers a String ASCII-8BIT payload to the receiver](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L212)
955
+ * [delivers a String UTF-8 payload to the receiver](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L212)
956
+ * [delivers a Hash payload to the receiver](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L212)
957
957
  * when publishing on an unencrypted channel and retrieving with #history on an encrypted channel
958
- * [does not attempt to decrypt the message](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L228)
958
+ * [does not attempt to decrypt the message](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L228)
959
959
  * when publishing on an encrypted channel and retrieving with #history on an unencrypted channel
960
- * [retrieves the message that remains encrypted with an encrypted encoding attribute](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L249)
961
- * [logs a Cipher exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L255)
960
+ * [retrieves the message that remains encrypted with an encrypted encoding attribute](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L249)
961
+ * [logs a Cipher exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L255)
962
962
  * publishing on an encrypted channel and retrieving #history with a different algorithm on another client
963
- * [retrieves the message that remains encrypted with an encrypted encoding attribute](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L276)
964
- * [logs a Cipher exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L282)
963
+ * [retrieves the message that remains encrypted with an encrypted encoding attribute](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L276)
964
+ * [logs a Cipher exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L282)
965
965
  * publishing on an encrypted channel and subscribing with a different key on another client
966
- * [retrieves the message that remains encrypted with an encrypted encoding attribute](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L303)
967
- * [logs a Cipher exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/message_spec.rb#L309)
966
+ * [retrieves the message that remains encrypted with an encrypted encoding attribute](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L303)
967
+ * [logs a Cipher exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/message_spec.rb#L309)
968
968
 
969
969
  ### Ably::Rest::Presence
970
- _(see [lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb))_
970
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb))_
971
971
  * using JSON protocol
972
972
  * tested against presence fixture data set up in test app
973
973
  * #get
974
- * [returns current members on the channel with their action set to :present](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L41)
974
+ * [returns current members on the channel with their action set to :present](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L41)
975
975
  * with :limit option
976
- * [returns a paged response limiting number of members per page](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L57)
976
+ * [returns a paged response limiting number of members per page](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L57)
977
977
  * default :limit
978
- * [defaults to a limit of 100](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L89)
978
+ * [defaults to a limit of 100](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L89)
979
979
  * with :client_id option
980
- * [returns a list members filtered by the provided client ID](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L98)
980
+ * [returns a list members filtered by the provided client ID](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L98)
981
981
  * with :connection_id option
982
- * [returns a list members filtered by the provided connection ID](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L109)
983
- * [returns a list members filtered by the provided connection ID](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L113)
982
+ * [returns a list members filtered by the provided connection ID](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L109)
983
+ * [returns a list members filtered by the provided connection ID](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L113)
984
984
  * #history
985
- * [returns recent presence activity](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L122)
985
+ * [returns recent presence activity](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L122)
986
986
  * default behaviour
987
- * [uses backwards direction](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L137)
987
+ * [uses backwards direction](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L137)
988
988
  * with options
989
989
  * direction: :forwards
990
- * [returns recent presence activity forwards with most recent history last](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L149)
990
+ * [returns recent presence activity forwards with most recent history last](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L149)
991
991
  * direction: :backwards
992
- * [returns recent presence activity backwards with most recent history first](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L164)
992
+ * [returns recent presence activity backwards with most recent history first](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L164)
993
993
  * #history
994
994
  * with options
995
995
  * limit options
996
996
  * default
997
- * [is set to 100](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L212)
997
+ * [is set to 100](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L212)
998
998
  * set to 1000
999
- * [is passes the limit query param value 1000](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L225)
999
+ * [is passes the limit query param value 1000](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L225)
1000
1000
  * with time range options
1001
1001
  * :start
1002
1002
  * with milliseconds since epoch value
1003
- * [uses this value in the history request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L255)
1003
+ * [uses this value in the history request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L255)
1004
1004
  * with Time object value
1005
- * [converts the value to milliseconds since epoch in the hisotry request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L265)
1005
+ * [converts the value to milliseconds since epoch in the hisotry request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L265)
1006
1006
  * :end
1007
1007
  * with milliseconds since epoch value
1008
- * [uses this value in the history request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L255)
1008
+ * [uses this value in the history request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L255)
1009
1009
  * with Time object value
1010
- * [converts the value to milliseconds since epoch in the hisotry request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L265)
1010
+ * [converts the value to milliseconds since epoch in the hisotry request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L265)
1011
1011
  * when argument start is after end
1012
- * [should raise an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L276)
1012
+ * [should raise an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L276)
1013
1013
  * decoding
1014
1014
  * with encoded fixture data
1015
1015
  * #history
1016
- * [decodes encoded and encryped presence fixture data automatically](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L295)
1016
+ * [decodes encoded and encryped presence fixture data automatically](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L295)
1017
1017
  * #get
1018
- * [decodes encoded and encryped presence fixture data automatically](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L302)
1018
+ * [decodes encoded and encryped presence fixture data automatically](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L302)
1019
1019
  * decoding permutations using mocked #history
1020
1020
  * valid decodeable content
1021
1021
  * #get
1022
- * [automaticaly decodes presence messages](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L358)
1022
+ * [automaticaly decodes presence messages](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L358)
1023
1023
  * #history
1024
- * [automaticaly decodes presence messages](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L375)
1024
+ * [automaticaly decodes presence messages](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L375)
1025
1025
  * invalid data
1026
1026
  * #get
1027
- * [returns the messages still encoded](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L406)
1028
- * [logs a cipher error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L410)
1027
+ * [returns the messages still encoded](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L406)
1028
+ * [logs a cipher error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L410)
1029
1029
  * #history
1030
- * [returns the messages still encoded](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L430)
1031
- * [logs a cipher error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L434)
1030
+ * [returns the messages still encoded](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L430)
1031
+ * [logs a cipher error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L434)
1032
1032
  * using MsgPack protocol
1033
1033
  * tested against presence fixture data set up in test app
1034
1034
  * #get
1035
- * [returns current members on the channel with their action set to :present](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L41)
1035
+ * [returns current members on the channel with their action set to :present](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L41)
1036
1036
  * with :limit option
1037
- * [returns a paged response limiting number of members per page](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L57)
1037
+ * [returns a paged response limiting number of members per page](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L57)
1038
1038
  * default :limit
1039
- * [defaults to a limit of 100](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L89)
1039
+ * [defaults to a limit of 100](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L89)
1040
1040
  * with :client_id option
1041
- * [returns a list members filtered by the provided client ID](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L98)
1041
+ * [returns a list members filtered by the provided client ID](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L98)
1042
1042
  * with :connection_id option
1043
- * [returns a list members filtered by the provided connection ID](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L109)
1044
- * [returns a list members filtered by the provided connection ID](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L113)
1043
+ * [returns a list members filtered by the provided connection ID](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L109)
1044
+ * [returns a list members filtered by the provided connection ID](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L113)
1045
1045
  * #history
1046
- * [returns recent presence activity](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L122)
1046
+ * [returns recent presence activity](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L122)
1047
1047
  * default behaviour
1048
- * [uses backwards direction](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L137)
1048
+ * [uses backwards direction](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L137)
1049
1049
  * with options
1050
1050
  * direction: :forwards
1051
- * [returns recent presence activity forwards with most recent history last](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L149)
1051
+ * [returns recent presence activity forwards with most recent history last](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L149)
1052
1052
  * direction: :backwards
1053
- * [returns recent presence activity backwards with most recent history first](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L164)
1053
+ * [returns recent presence activity backwards with most recent history first](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L164)
1054
1054
  * #history
1055
1055
  * with options
1056
1056
  * limit options
1057
1057
  * default
1058
- * [is set to 100](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L212)
1058
+ * [is set to 100](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L212)
1059
1059
  * set to 1000
1060
- * [is passes the limit query param value 1000](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L225)
1060
+ * [is passes the limit query param value 1000](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L225)
1061
1061
  * with time range options
1062
1062
  * :start
1063
1063
  * with milliseconds since epoch value
1064
- * [uses this value in the history request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L255)
1064
+ * [uses this value in the history request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L255)
1065
1065
  * with Time object value
1066
- * [converts the value to milliseconds since epoch in the hisotry request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L265)
1066
+ * [converts the value to milliseconds since epoch in the hisotry request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L265)
1067
1067
  * :end
1068
1068
  * with milliseconds since epoch value
1069
- * [uses this value in the history request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L255)
1069
+ * [uses this value in the history request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L255)
1070
1070
  * with Time object value
1071
- * [converts the value to milliseconds since epoch in the hisotry request](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L265)
1071
+ * [converts the value to milliseconds since epoch in the hisotry request](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L265)
1072
1072
  * when argument start is after end
1073
- * [should raise an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L276)
1073
+ * [should raise an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L276)
1074
1074
  * decoding
1075
1075
  * with encoded fixture data
1076
1076
  * #history
1077
- * [decodes encoded and encryped presence fixture data automatically](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L295)
1077
+ * [decodes encoded and encryped presence fixture data automatically](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L295)
1078
1078
  * #get
1079
- * [decodes encoded and encryped presence fixture data automatically](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L302)
1079
+ * [decodes encoded and encryped presence fixture data automatically](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L302)
1080
1080
  * decoding permutations using mocked #history
1081
1081
  * valid decodeable content
1082
1082
  * #get
1083
- * [automaticaly decodes presence messages](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L358)
1083
+ * [automaticaly decodes presence messages](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L358)
1084
1084
  * #history
1085
- * [automaticaly decodes presence messages](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L375)
1085
+ * [automaticaly decodes presence messages](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L375)
1086
1086
  * invalid data
1087
1087
  * #get
1088
- * [returns the messages still encoded](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L406)
1089
- * [logs a cipher error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L410)
1088
+ * [returns the messages still encoded](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L406)
1089
+ * [logs a cipher error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L410)
1090
1090
  * #history
1091
- * [returns the messages still encoded](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L430)
1092
- * [logs a cipher error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/presence_spec.rb#L434)
1091
+ * [returns the messages still encoded](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L430)
1092
+ * [logs a cipher error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/presence_spec.rb#L434)
1093
1093
 
1094
1094
  ### Ably::Rest::Client#stats
1095
- _(see [lib/submodules/ably-ruby/spec/acceptance/rest/stats_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb))_
1095
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/stats_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb))_
1096
1096
  * using JSON protocol
1097
1097
  * fetching application stats
1098
- * [returns a PaginatedResult object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L54)
1098
+ * [returns a PaginatedResult object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L54)
1099
1099
  * by minute
1100
1100
  * with no options
1101
- * [uses the minute interval by default](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L66)
1101
+ * [uses the minute interval by default](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L66)
1102
1102
  * with :from set to last interval and :limit set to 1
1103
- * [retrieves only one stat](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L75)
1104
- * [returns zero value for any missing metrics](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L79)
1105
- * [returns all aggregated message data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L84)
1106
- * [returns inbound realtime all data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L89)
1107
- * [returns inbound realtime message data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L94)
1108
- * [returns outbound realtime all data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L99)
1109
- * [returns persisted presence all data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L104)
1110
- * [returns connections all data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L109)
1111
- * [returns channels all data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L114)
1112
- * [returns api_requests data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L119)
1113
- * [returns token_requests data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L124)
1114
- * [returns stat objects with #interval_granularity equal to :minute](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L129)
1115
- * [returns stat objects with #interval_id matching :start](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L133)
1116
- * [returns stat objects with #interval_time matching :start Time](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L137)
1103
+ * [retrieves only one stat](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L75)
1104
+ * [returns zero value for any missing metrics](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L79)
1105
+ * [returns all aggregated message data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L84)
1106
+ * [returns inbound realtime all data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L89)
1107
+ * [returns inbound realtime message data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L94)
1108
+ * [returns outbound realtime all data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L99)
1109
+ * [returns persisted presence all data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L104)
1110
+ * [returns connections all data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L109)
1111
+ * [returns channels all data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L114)
1112
+ * [returns api_requests data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L119)
1113
+ * [returns token_requests data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L124)
1114
+ * [returns stat objects with #interval_granularity equal to :minute](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L129)
1115
+ * [returns stat objects with #interval_id matching :start](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L133)
1116
+ * [returns stat objects with #interval_time matching :start Time](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L137)
1117
1117
  * with :start set to first interval, :limit set to 1 and direction :forwards
1118
- * [returns the first interval stats as stats are provided forwards from :start](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L147)
1119
- * [returns 3 pages of stats](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L151)
1118
+ * [returns the first interval stats as stats are provided forwards from :start](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L147)
1119
+ * [returns 3 pages of stats](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L151)
1120
1120
  * with :end set to last interval, :limit set to 1 and direction :backwards
1121
- * [returns the 3rd interval stats first as stats are provided backwards from :end](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L163)
1122
- * [returns 3 pages of stats](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L167)
1121
+ * [returns the 3rd interval stats first as stats are provided backwards from :end](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L163)
1122
+ * [returns 3 pages of stats](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L167)
1123
1123
  * with :end set to last interval and :limit set to 3 to ensure only last years stats are included
1124
1124
  * the REST API
1125
- * [defaults to direction :backwards](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L179)
1125
+ * [defaults to direction :backwards](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L179)
1126
1126
  * with :end set to previous year interval
1127
1127
  * the REST API
1128
- * [defaults to 100 items for pagination](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L191)
1128
+ * [defaults to 100 items for pagination](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L191)
1129
1129
  * by hour
1130
- * [should aggregate the stats for that period](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L215)
1130
+ * [should aggregate the stats for that period](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L215)
1131
1131
  * by day
1132
- * [should aggregate the stats for that period](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L215)
1132
+ * [should aggregate the stats for that period](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L215)
1133
1133
  * by month
1134
- * [should aggregate the stats for that period](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L215)
1134
+ * [should aggregate the stats for that period](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L215)
1135
1135
  * when argument start is after end
1136
- * [should raise an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L227)
1136
+ * [should raise an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L227)
1137
1137
  * using MsgPack protocol
1138
1138
  * fetching application stats
1139
- * [returns a PaginatedResult object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L54)
1139
+ * [returns a PaginatedResult object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L54)
1140
1140
  * by minute
1141
1141
  * with no options
1142
- * [uses the minute interval by default](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L66)
1142
+ * [uses the minute interval by default](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L66)
1143
1143
  * with :from set to last interval and :limit set to 1
1144
- * [retrieves only one stat](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L75)
1145
- * [returns zero value for any missing metrics](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L79)
1146
- * [returns all aggregated message data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L84)
1147
- * [returns inbound realtime all data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L89)
1148
- * [returns inbound realtime message data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L94)
1149
- * [returns outbound realtime all data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L99)
1150
- * [returns persisted presence all data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L104)
1151
- * [returns connections all data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L109)
1152
- * [returns channels all data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L114)
1153
- * [returns api_requests data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L119)
1154
- * [returns token_requests data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L124)
1155
- * [returns stat objects with #interval_granularity equal to :minute](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L129)
1156
- * [returns stat objects with #interval_id matching :start](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L133)
1157
- * [returns stat objects with #interval_time matching :start Time](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L137)
1144
+ * [retrieves only one stat](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L75)
1145
+ * [returns zero value for any missing metrics](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L79)
1146
+ * [returns all aggregated message data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L84)
1147
+ * [returns inbound realtime all data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L89)
1148
+ * [returns inbound realtime message data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L94)
1149
+ * [returns outbound realtime all data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L99)
1150
+ * [returns persisted presence all data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L104)
1151
+ * [returns connections all data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L109)
1152
+ * [returns channels all data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L114)
1153
+ * [returns api_requests data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L119)
1154
+ * [returns token_requests data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L124)
1155
+ * [returns stat objects with #interval_granularity equal to :minute](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L129)
1156
+ * [returns stat objects with #interval_id matching :start](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L133)
1157
+ * [returns stat objects with #interval_time matching :start Time](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L137)
1158
1158
  * with :start set to first interval, :limit set to 1 and direction :forwards
1159
- * [returns the first interval stats as stats are provided forwards from :start](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L147)
1160
- * [returns 3 pages of stats](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L151)
1159
+ * [returns the first interval stats as stats are provided forwards from :start](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L147)
1160
+ * [returns 3 pages of stats](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L151)
1161
1161
  * with :end set to last interval, :limit set to 1 and direction :backwards
1162
- * [returns the 3rd interval stats first as stats are provided backwards from :end](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L163)
1163
- * [returns 3 pages of stats](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L167)
1162
+ * [returns the 3rd interval stats first as stats are provided backwards from :end](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L163)
1163
+ * [returns 3 pages of stats](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L167)
1164
1164
  * with :end set to last interval and :limit set to 3 to ensure only last years stats are included
1165
1165
  * the REST API
1166
- * [defaults to direction :backwards](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L179)
1166
+ * [defaults to direction :backwards](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L179)
1167
1167
  * with :end set to previous year interval
1168
1168
  * the REST API
1169
- * [defaults to 100 items for pagination](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L191)
1169
+ * [defaults to 100 items for pagination](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L191)
1170
1170
  * by hour
1171
- * [should aggregate the stats for that period](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L215)
1171
+ * [should aggregate the stats for that period](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L215)
1172
1172
  * by day
1173
- * [should aggregate the stats for that period](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L215)
1173
+ * [should aggregate the stats for that period](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L215)
1174
1174
  * by month
1175
- * [should aggregate the stats for that period](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L215)
1175
+ * [should aggregate the stats for that period](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L215)
1176
1176
  * when argument start is after end
1177
- * [should raise an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/stats_spec.rb#L227)
1177
+ * [should raise an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/stats_spec.rb#L227)
1178
1178
 
1179
1179
  ### Ably::Rest::Client#time
1180
- _(see [lib/submodules/ably-ruby/spec/acceptance/rest/time_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/time_spec.rb))_
1180
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/time_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/time_spec.rb))_
1181
1181
  * using JSON protocol
1182
1182
  * fetching the service time
1183
- * [should return the service time as a Time object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/time_spec.rb#L10)
1183
+ * [should return the service time as a Time object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/time_spec.rb#L10)
1184
1184
  * with reconfigured HTTP timeout
1185
- * [should raise a timeout exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/time_spec.rb#L19)
1185
+ * [should raise a timeout exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/time_spec.rb#L19)
1186
1186
  * using MsgPack protocol
1187
1187
  * fetching the service time
1188
- * [should return the service time as a Time object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/time_spec.rb#L10)
1188
+ * [should return the service time as a Time object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/time_spec.rb#L10)
1189
1189
  * with reconfigured HTTP timeout
1190
- * [should raise a timeout exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/acceptance/rest/time_spec.rb#L19)
1190
+ * [should raise a timeout exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/acceptance/rest/time_spec.rb#L19)
1191
1191
 
1192
1192
  ### Ably::Auth
1193
- _(see [lib/submodules/ably-ruby/spec/unit/auth_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/auth_spec.rb))_
1193
+ _(see [lib/submodules/ably-ruby/spec/unit/auth_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/auth_spec.rb))_
1194
1194
  * client_id option
1195
1195
  * with nil value
1196
- * [is permitted](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/auth_spec.rb#L20)
1196
+ * [is permitted](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/auth_spec.rb#L20)
1197
1197
  * as UTF_8 string
1198
- * [is permitted](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/auth_spec.rb#L28)
1199
- * [remains as UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/auth_spec.rb#L32)
1198
+ * [is permitted](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/auth_spec.rb#L28)
1199
+ * [remains as UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/auth_spec.rb#L32)
1200
1200
  * as SHIFT_JIS string
1201
- * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/auth_spec.rb#L40)
1202
- * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/auth_spec.rb#L44)
1201
+ * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/auth_spec.rb#L40)
1202
+ * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/auth_spec.rb#L44)
1203
1203
  * as ASCII_8BIT string
1204
- * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/auth_spec.rb#L52)
1205
- * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/auth_spec.rb#L56)
1204
+ * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/auth_spec.rb#L52)
1205
+ * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/auth_spec.rb#L56)
1206
1206
  * as Integer
1207
- * [raises an argument error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/auth_spec.rb#L64)
1207
+ * [raises an argument error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/auth_spec.rb#L64)
1208
1208
  * defaults
1209
- * [should default TTL to 1 hour](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/auth_spec.rb#L74)
1210
- * [should default capability to all](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/auth_spec.rb#L78)
1211
- * [should have defaults for :ttl and :capability](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/auth_spec.rb#L82)
1209
+ * [should default TTL to 1 hour](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/auth_spec.rb#L74)
1210
+ * [should default capability to all](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/auth_spec.rb#L78)
1211
+ * [should have defaults for :ttl and :capability](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/auth_spec.rb#L82)
1212
1212
 
1213
1213
  ### Ably::Logger
1214
- _(see [lib/submodules/ably-ruby/spec/unit/logger_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/logger_spec.rb))_
1215
- * [uses the language provided Logger by default](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/logger_spec.rb#L15)
1214
+ _(see [lib/submodules/ably-ruby/spec/unit/logger_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/logger_spec.rb))_
1215
+ * [uses the language provided Logger by default](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/logger_spec.rb#L15)
1216
1216
  * with a custom Logger
1217
1217
  * with an invalid interface
1218
- * [raises an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/logger_spec.rb#L116)
1218
+ * [raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/logger_spec.rb#L116)
1219
1219
  * with a valid interface
1220
- * [is used](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/logger_spec.rb#L135)
1220
+ * [is used](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/logger_spec.rb#L135)
1221
1221
 
1222
1222
  ### Ably::Models::ChannelStateChange
1223
- _(see [lib/submodules/ably-ruby/spec/unit/models/channel_state_change_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/channel_state_change_spec.rb))_
1223
+ _(see [lib/submodules/ably-ruby/spec/unit/models/channel_state_change_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/channel_state_change_spec.rb))_
1224
1224
  * #current
1225
- * [is required](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/channel_state_change_spec.rb#L10)
1226
- * [is an attribute](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/channel_state_change_spec.rb#L14)
1225
+ * [is required](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/channel_state_change_spec.rb#L10)
1226
+ * [is an attribute](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/channel_state_change_spec.rb#L14)
1227
1227
  * #previous
1228
- * [is required](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/channel_state_change_spec.rb#L20)
1229
- * [is an attribute](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/channel_state_change_spec.rb#L24)
1228
+ * [is required](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/channel_state_change_spec.rb#L20)
1229
+ * [is an attribute](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/channel_state_change_spec.rb#L24)
1230
1230
  * #reason
1231
- * [is not required](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/channel_state_change_spec.rb#L30)
1232
- * [is an attribute](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/channel_state_change_spec.rb#L34)
1231
+ * [is not required](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/channel_state_change_spec.rb#L30)
1232
+ * [is an attribute](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/channel_state_change_spec.rb#L34)
1233
1233
  * invalid attributes
1234
- * [raises an argument error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/channel_state_change_spec.rb#L40)
1234
+ * [raises an argument error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/channel_state_change_spec.rb#L40)
1235
+
1236
+ ### Ably::Models::CipherParams
1237
+ _(see [lib/submodules/ably-ruby/spec/unit/models/cipher_params_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/cipher_params_spec.rb))_
1238
+ * :key missing from constructor
1239
+ * [raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/cipher_params_spec.rb#L8)
1240
+ * #key
1241
+ * with :key in constructor
1242
+ * as nil
1243
+ * [raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/cipher_params_spec.rb#L20)
1244
+ * as a base64 encoded string
1245
+ * [is a binary representation of the base64 encoded string](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/cipher_params_spec.rb#L29)
1246
+ * as a URL safe base64 encoded string
1247
+ * [is a binary representation of the URL safe base64 encoded string](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/cipher_params_spec.rb#L40)
1248
+ * as a binary encoded string
1249
+ * [contains the binary string](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/cipher_params_spec.rb#L48)
1250
+ * with an incompatible :key_length constructor param
1251
+ * [raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/cipher_params_spec.rb#L58)
1252
+ * with an unsupported :key_length for aes-cbc encryption
1253
+ * [raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/cipher_params_spec.rb#L67)
1254
+ * with an invalid type
1255
+ * [raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/cipher_params_spec.rb#L76)
1256
+ * with specified params in the constructor
1257
+ * #cipher_type
1258
+ * [contains the complete algorithm string as an upper case string](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/cipher_params_spec.rb#L88)
1259
+ * #mode
1260
+ * [contains the mode](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/cipher_params_spec.rb#L94)
1261
+ * #algorithm
1262
+ * [contains the algorithm](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/cipher_params_spec.rb#L100)
1263
+ * #key_length
1264
+ * [contains the key_length](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/cipher_params_spec.rb#L106)
1265
+ * with combined param in the constructor
1266
+ * #cipher_type
1267
+ * [contains the complete algorithm string as an upper case string](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/cipher_params_spec.rb#L117)
1268
+ * #mode
1269
+ * [contains the mode](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/cipher_params_spec.rb#L123)
1270
+ * #algorithm
1271
+ * [contains the algorithm](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/cipher_params_spec.rb#L129)
1272
+ * #key_length
1273
+ * [contains the key_length](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/cipher_params_spec.rb#L135)
1235
1274
 
1236
1275
  ### Ably::Models::ConnectionDetails
1237
- _(see [lib/submodules/ably-ruby/spec/unit/models/connection_details_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/connection_details_spec.rb))_
1276
+ _(see [lib/submodules/ably-ruby/spec/unit/models/connection_details_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/connection_details_spec.rb))_
1238
1277
  * behaves like a model
1239
1278
  * attributes
1240
1279
  * #client_id
1241
- * [retrieves attribute :client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1280
+ * [retrieves attribute :client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1242
1281
  * #connection_key
1243
- * [retrieves attribute :connection_key](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1282
+ * [retrieves attribute :connection_key](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1244
1283
  * #max_message_size
1245
- * [retrieves attribute :max_message_size](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1284
+ * [retrieves attribute :max_message_size](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1246
1285
  * #max_frame_size
1247
- * [retrieves attribute :max_frame_size](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1286
+ * [retrieves attribute :max_frame_size](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1248
1287
  * #max_inbound_rate
1249
- * [retrieves attribute :max_inbound_rate](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1288
+ * [retrieves attribute :max_inbound_rate](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1250
1289
  * #==
1251
- * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L41)
1252
- * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L46)
1253
- * [is false when class type differs](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L50)
1290
+ * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L41)
1291
+ * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L46)
1292
+ * [is false when class type differs](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L50)
1254
1293
  * is immutable
1255
- * [prevents changes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L76)
1256
- * [dups options](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L80)
1294
+ * [prevents changes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L76)
1295
+ * [dups options](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L80)
1257
1296
  * attributes
1258
1297
  * #connection_state_ttl
1259
- * [retrieves attribute :connection_state_ttl and converts it from ms to s](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/connection_details_spec.rb#L19)
1298
+ * [retrieves attribute :connection_state_ttl and converts it from ms to s](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/connection_details_spec.rb#L19)
1260
1299
  * ==
1261
- * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/connection_details_spec.rb#L28)
1262
- * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/connection_details_spec.rb#L33)
1263
- * [is false when class type differs](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/connection_details_spec.rb#L37)
1300
+ * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/connection_details_spec.rb#L28)
1301
+ * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/connection_details_spec.rb#L33)
1302
+ * [is false when class type differs](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/connection_details_spec.rb#L37)
1264
1303
 
1265
1304
  ### Ably::Models::ConnectionStateChange
1266
- _(see [lib/submodules/ably-ruby/spec/unit/models/connection_state_change_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/connection_state_change_spec.rb))_
1305
+ _(see [lib/submodules/ably-ruby/spec/unit/models/connection_state_change_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/connection_state_change_spec.rb))_
1267
1306
  * #current
1268
- * [is required](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/connection_state_change_spec.rb#L10)
1269
- * [is an attribute](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/connection_state_change_spec.rb#L14)
1307
+ * [is required](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/connection_state_change_spec.rb#L10)
1308
+ * [is an attribute](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/connection_state_change_spec.rb#L14)
1270
1309
  * #previous
1271
- * [is required](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/connection_state_change_spec.rb#L20)
1272
- * [is an attribute](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/connection_state_change_spec.rb#L24)
1310
+ * [is required](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/connection_state_change_spec.rb#L20)
1311
+ * [is an attribute](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/connection_state_change_spec.rb#L24)
1273
1312
  * #retry_in
1274
- * [is not required](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/connection_state_change_spec.rb#L30)
1275
- * [is an attribute](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/connection_state_change_spec.rb#L34)
1313
+ * [is not required](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/connection_state_change_spec.rb#L30)
1314
+ * [is an attribute](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/connection_state_change_spec.rb#L34)
1276
1315
  * #reason
1277
- * [is not required](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/connection_state_change_spec.rb#L40)
1278
- * [is an attribute](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/connection_state_change_spec.rb#L44)
1316
+ * [is not required](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/connection_state_change_spec.rb#L40)
1317
+ * [is an attribute](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/connection_state_change_spec.rb#L44)
1279
1318
  * invalid attributes
1280
- * [raises an argument error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/connection_state_change_spec.rb#L50)
1319
+ * [raises an argument error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/connection_state_change_spec.rb#L50)
1281
1320
 
1282
1321
  ### Ably::Models::ErrorInfo
1283
- _(see [lib/submodules/ably-ruby/spec/unit/models/error_info_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/error_info_spec.rb))_
1322
+ _(see [lib/submodules/ably-ruby/spec/unit/models/error_info_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/error_info_spec.rb))_
1284
1323
  * behaves like a model
1285
1324
  * attributes
1286
1325
  * #code
1287
- * [retrieves attribute :code](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1326
+ * [retrieves attribute :code](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1288
1327
  * #status_code
1289
- * [retrieves attribute :status_code](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1328
+ * [retrieves attribute :status_code](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1290
1329
  * #message
1291
- * [retrieves attribute :message](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1330
+ * [retrieves attribute :message](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1292
1331
  * #==
1293
- * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L41)
1294
- * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L46)
1295
- * [is false when class type differs](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L50)
1332
+ * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L41)
1333
+ * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L46)
1334
+ * [is false when class type differs](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L50)
1296
1335
  * is immutable
1297
- * [prevents changes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L76)
1298
- * [dups options](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L80)
1336
+ * [prevents changes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L76)
1337
+ * [dups options](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L80)
1299
1338
  * #status
1300
- * [is an alias for #status_code](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/error_info_spec.rb#L13)
1339
+ * [is an alias for #status_code](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/error_info_spec.rb#L13)
1301
1340
 
1302
1341
  ### Ably::Models::Message
1303
- _(see [lib/submodules/ably-ruby/spec/unit/models/message_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb))_
1342
+ _(see [lib/submodules/ably-ruby/spec/unit/models/message_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb))_
1304
1343
  * behaves like a model
1305
1344
  * attributes
1306
1345
  * #id
1307
- * [retrieves attribute :id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1346
+ * [retrieves attribute :id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1308
1347
  * #name
1309
- * [retrieves attribute :name](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1348
+ * [retrieves attribute :name](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1310
1349
  * #client_id
1311
- * [retrieves attribute :client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1350
+ * [retrieves attribute :client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1312
1351
  * #data
1313
- * [retrieves attribute :data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1352
+ * [retrieves attribute :data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1314
1353
  * #encoding
1315
- * [retrieves attribute :encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1354
+ * [retrieves attribute :encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1316
1355
  * #==
1317
- * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L41)
1318
- * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L46)
1319
- * [is false when class type differs](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L50)
1356
+ * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L41)
1357
+ * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L46)
1358
+ * [is false when class type differs](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L50)
1320
1359
  * is immutable
1321
- * [prevents changes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L76)
1322
- * [dups options](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L80)
1360
+ * [prevents changes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L76)
1361
+ * [dups options](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L80)
1323
1362
  * #timestamp
1324
- * [retrieves attribute :timestamp as Time object from ProtocolMessage](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L22)
1363
+ * [retrieves attribute :timestamp as Time object from ProtocolMessage](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L22)
1325
1364
  * #connection_id attribute
1326
1365
  * when this model has a connectionId attribute
1327
1366
  * but no protocol message
1328
- * [uses the model value](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L37)
1367
+ * [uses the model value](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L37)
1329
1368
  * with a protocol message with a different connectionId
1330
- * [uses the model value](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L45)
1369
+ * [uses the model value](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L45)
1331
1370
  * when this model has no connectionId attribute
1332
1371
  * and no protocol message
1333
- * [uses the model value](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L55)
1372
+ * [uses the model value](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L55)
1334
1373
  * with a protocol message with a connectionId
1335
- * [uses the model value](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L63)
1374
+ * [uses the model value](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L63)
1336
1375
  * initialized with
1337
1376
  * :name
1338
1377
  * as UTF_8 string
1339
- * [is permitted](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L90)
1340
- * [remains as UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L94)
1378
+ * [is permitted](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L90)
1379
+ * [remains as UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L94)
1341
1380
  * as SHIFT_JIS string
1342
- * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L102)
1343
- * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L106)
1381
+ * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L102)
1382
+ * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L106)
1344
1383
  * as ASCII_8BIT string
1345
- * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L114)
1346
- * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L118)
1384
+ * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L114)
1385
+ * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L118)
1347
1386
  * as Integer
1348
- * [raises an argument error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L126)
1387
+ * [raises an argument error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L126)
1349
1388
  * as Nil
1350
- * [is permitted](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L134)
1389
+ * [is permitted](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L134)
1351
1390
  * :client_id
1352
1391
  * as UTF_8 string
1353
- * [is permitted](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L90)
1354
- * [remains as UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L94)
1392
+ * [is permitted](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L90)
1393
+ * [remains as UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L94)
1355
1394
  * as SHIFT_JIS string
1356
- * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L102)
1357
- * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L106)
1395
+ * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L102)
1396
+ * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L106)
1358
1397
  * as ASCII_8BIT string
1359
- * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L114)
1360
- * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L118)
1398
+ * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L114)
1399
+ * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L118)
1361
1400
  * as Integer
1362
- * [raises an argument error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L126)
1401
+ * [raises an argument error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L126)
1363
1402
  * as Nil
1364
- * [is permitted](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L134)
1403
+ * [is permitted](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L134)
1365
1404
  * :encoding
1366
1405
  * as UTF_8 string
1367
- * [is permitted](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L90)
1368
- * [remains as UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L94)
1406
+ * [is permitted](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L90)
1407
+ * [remains as UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L94)
1369
1408
  * as SHIFT_JIS string
1370
- * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L102)
1371
- * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L106)
1409
+ * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L102)
1410
+ * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L106)
1372
1411
  * as ASCII_8BIT string
1373
- * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L114)
1374
- * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L118)
1412
+ * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L114)
1413
+ * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L118)
1375
1414
  * as Integer
1376
- * [raises an argument error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L126)
1415
+ * [raises an argument error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L126)
1377
1416
  * as Nil
1378
- * [is permitted](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/message_spec.rb#L134)
1417
+ * [is permitted](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/message_spec.rb#L134)
1379
1418
 
1380
1419
  ### Ably::Models::PaginatedResult
1381
- _(see [lib/submodules/ably-ruby/spec/unit/models/paginated_result_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb))_
1420
+ _(see [lib/submodules/ably-ruby/spec/unit/models/paginated_result_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb))_
1382
1421
  * #items
1383
- * [returns correct length from body](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L31)
1384
- * [is Enumerable](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L35)
1385
- * [is iterable](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L39)
1386
- * [provides [] accessor method](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L57)
1387
- * [#first gets the first item in page](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L63)
1388
- * [#last gets the last item in page](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L67)
1422
+ * [returns correct length from body](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L31)
1423
+ * [is Enumerable](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L35)
1424
+ * [is iterable](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L39)
1425
+ * [provides [] accessor method](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L57)
1426
+ * [#first gets the first item in page](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L63)
1427
+ * [#last gets the last item in page](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L67)
1389
1428
  * #each
1390
- * [returns an enumerator](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L44)
1391
- * [yields each item](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L48)
1429
+ * [returns an enumerator](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L44)
1430
+ * [yields each item](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L48)
1392
1431
  * with non paged http response
1393
- * [is the last page](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L172)
1394
- * [does not have next page](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L176)
1395
- * [does not support pagination](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L180)
1396
- * [returns nil when accessing next page](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L184)
1397
- * [returns nil when accessing first page](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L188)
1432
+ * [is the last page](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L172)
1433
+ * [does not have next page](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L176)
1434
+ * [does not support pagination](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L180)
1435
+ * [returns nil when accessing next page](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L184)
1436
+ * [returns nil when accessing first page](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L188)
1398
1437
  * with paged http response
1399
- * [has next page](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L206)
1400
- * [is not the last page](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L210)
1401
- * [supports pagination](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L214)
1438
+ * [has next page](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L206)
1439
+ * [is not the last page](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L210)
1440
+ * [supports pagination](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L214)
1402
1441
  * accessing next page
1403
- * [returns another PaginatedResult](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L242)
1404
- * [retrieves the next page of results](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L246)
1405
- * [does not have a next page](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L251)
1406
- * [is the last page](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L255)
1407
- * [returns nil when trying to access the last page when it is the last page](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L259)
1442
+ * [returns another PaginatedResult](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L242)
1443
+ * [retrieves the next page of results](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L246)
1444
+ * [does not have a next page](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L251)
1445
+ * [is the last page](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L255)
1446
+ * [returns nil when trying to access the last page when it is the last page](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L259)
1408
1447
  * and then first page
1409
- * [returns a PaginatedResult](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L270)
1410
- * [retrieves the first page of results](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/paginated_result_spec.rb#L274)
1448
+ * [returns a PaginatedResult](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L270)
1449
+ * [retrieves the first page of results](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/paginated_result_spec.rb#L274)
1411
1450
 
1412
1451
  ### Ably::Models::PresenceMessage
1413
- _(see [lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb))_
1452
+ _(see [lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb))_
1414
1453
  * behaves like a model
1415
1454
  * attributes
1416
1455
  * #id
1417
- * [retrieves attribute :id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1456
+ * [retrieves attribute :id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1418
1457
  * #client_id
1419
- * [retrieves attribute :client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1458
+ * [retrieves attribute :client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1420
1459
  * #data
1421
- * [retrieves attribute :data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1460
+ * [retrieves attribute :data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1422
1461
  * #encoding
1423
- * [retrieves attribute :encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1462
+ * [retrieves attribute :encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1424
1463
  * #==
1425
- * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L41)
1426
- * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L46)
1427
- * [is false when class type differs](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L50)
1464
+ * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L41)
1465
+ * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L46)
1466
+ * [is false when class type differs](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L50)
1428
1467
  * is immutable
1429
- * [prevents changes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L76)
1430
- * [dups options](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L80)
1468
+ * [prevents changes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L76)
1469
+ * [dups options](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L80)
1431
1470
  * #connection_id attribute
1432
1471
  * when this model has a connectionId attribute
1433
1472
  * but no protocol message
1434
- * [uses the model value](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L25)
1473
+ * [uses the model value](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L25)
1435
1474
  * with a protocol message with a different connectionId
1436
- * [uses the model value](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L33)
1475
+ * [uses the model value](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L33)
1437
1476
  * when this model has no connectionId attribute
1438
1477
  * and no protocol message
1439
- * [uses the model value](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L43)
1478
+ * [uses the model value](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L43)
1440
1479
  * with a protocol message with a connectionId
1441
- * [uses the model value](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L51)
1480
+ * [uses the model value](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L51)
1442
1481
  * #member_key attribute
1443
- * [is string in format connection_id:client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L61)
1482
+ * [is string in format connection_id:client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L61)
1444
1483
  * with the same client id across multiple connections
1445
- * [is unique](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L69)
1484
+ * [is unique](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L69)
1446
1485
  * with a single connection and different client_ids
1447
- * [is unique](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L78)
1486
+ * [is unique](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L78)
1448
1487
  * #timestamp
1449
- * [retrieves attribute :timestamp as a Time object from ProtocolMessage](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L86)
1488
+ * [retrieves attribute :timestamp as a Time object from ProtocolMessage](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L86)
1450
1489
  * initialized with
1451
1490
  * :client_id
1452
1491
  * as UTF_8 string
1453
- * [is permitted](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L138)
1454
- * [remains as UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L142)
1492
+ * [is permitted](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L138)
1493
+ * [remains as UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L142)
1455
1494
  * as SHIFT_JIS string
1456
- * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L150)
1457
- * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L154)
1495
+ * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L150)
1496
+ * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L154)
1458
1497
  * as ASCII_8BIT string
1459
- * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L162)
1460
- * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L166)
1498
+ * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L162)
1499
+ * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L166)
1461
1500
  * as Integer
1462
- * [raises an argument error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L174)
1501
+ * [raises an argument error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L174)
1463
1502
  * as Nil
1464
- * [is permitted](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L182)
1503
+ * [is permitted](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L182)
1465
1504
  * :connection_id
1466
1505
  * as UTF_8 string
1467
- * [is permitted](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L138)
1468
- * [remains as UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L142)
1506
+ * [is permitted](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L138)
1507
+ * [remains as UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L142)
1469
1508
  * as SHIFT_JIS string
1470
- * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L150)
1471
- * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L154)
1509
+ * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L150)
1510
+ * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L154)
1472
1511
  * as ASCII_8BIT string
1473
- * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L162)
1474
- * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L166)
1512
+ * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L162)
1513
+ * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L166)
1475
1514
  * as Integer
1476
- * [raises an argument error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L174)
1515
+ * [raises an argument error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L174)
1477
1516
  * as Nil
1478
- * [is permitted](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L182)
1517
+ * [is permitted](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L182)
1479
1518
  * :encoding
1480
1519
  * as UTF_8 string
1481
- * [is permitted](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L138)
1482
- * [remains as UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L142)
1520
+ * [is permitted](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L138)
1521
+ * [remains as UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L142)
1483
1522
  * as SHIFT_JIS string
1484
- * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L150)
1485
- * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L154)
1523
+ * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L150)
1524
+ * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L154)
1486
1525
  * as ASCII_8BIT string
1487
- * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L162)
1488
- * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L166)
1526
+ * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L162)
1527
+ * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L166)
1489
1528
  * as Integer
1490
- * [raises an argument error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L174)
1529
+ * [raises an argument error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L174)
1491
1530
  * as Nil
1492
- * [is permitted](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/presence_message_spec.rb#L182)
1531
+ * [is permitted](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/presence_message_spec.rb#L182)
1493
1532
 
1494
1533
  ### Ably::Models::ProtocolMessage
1495
- _(see [lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb))_
1534
+ _(see [lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb))_
1496
1535
  * behaves like a model
1497
1536
  * attributes
1498
1537
  * #id
1499
- * [retrieves attribute :id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1538
+ * [retrieves attribute :id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1500
1539
  * #channel
1501
- * [retrieves attribute :channel](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1540
+ * [retrieves attribute :channel](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1502
1541
  * #channel_serial
1503
- * [retrieves attribute :channel_serial](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1542
+ * [retrieves attribute :channel_serial](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1504
1543
  * #connection_id
1505
- * [retrieves attribute :connection_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1544
+ * [retrieves attribute :connection_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1506
1545
  * #connection_key
1507
- * [retrieves attribute :connection_key](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1546
+ * [retrieves attribute :connection_key](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1508
1547
  * #==
1509
- * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L41)
1510
- * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L46)
1511
- * [is false when class type differs](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L50)
1548
+ * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L41)
1549
+ * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L46)
1550
+ * [is false when class type differs](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L50)
1512
1551
  * is immutable
1513
- * [prevents changes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L76)
1514
- * [dups options](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L80)
1552
+ * [prevents changes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L76)
1553
+ * [dups options](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L80)
1515
1554
  * attributes
1516
1555
  * #timestamp
1517
- * [retrieves attribute :timestamp as Time object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L74)
1556
+ * [retrieves attribute :timestamp as Time object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L74)
1518
1557
  * #count
1519
1558
  * when missing
1520
- * [is 1](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L83)
1559
+ * [is 1](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L83)
1521
1560
  * when non numeric
1522
- * [is 1](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L90)
1561
+ * [is 1](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L90)
1523
1562
  * when greater than 1
1524
- * [is the value of count](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L97)
1563
+ * [is the value of count](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L97)
1525
1564
  * #message_serial
1526
- * [converts :msg_serial to an Integer](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L105)
1565
+ * [converts :msg_serial to an Integer](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L105)
1527
1566
  * #has_message_serial?
1528
1567
  * without msg_serial
1529
- * [returns false](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L115)
1568
+ * [returns false](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L115)
1530
1569
  * with msg_serial
1531
- * [returns true](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L123)
1570
+ * [returns true](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L123)
1532
1571
  * #connection_serial
1533
- * [converts :connection_serial to an Integer](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L131)
1572
+ * [converts :connection_serial to an Integer](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L131)
1534
1573
  * #flags
1535
1574
  * when nil
1536
- * [is zero](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L141)
1575
+ * [is zero](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L141)
1537
1576
  * when numeric
1538
- * [is an Integer](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L149)
1577
+ * [is an Integer](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L149)
1539
1578
  * when has_presence
1540
- * [#has_presence_flag? is true](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L157)
1579
+ * [#has_presence_flag? is true](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L157)
1541
1580
  * when has another future flag
1542
- * [#has_presence_flag? is false](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L165)
1581
+ * [#has_presence_flag? is false](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L165)
1543
1582
  * #has_connection_serial?
1544
1583
  * without connection_serial
1545
- * [returns false](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L175)
1584
+ * [returns false](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L175)
1546
1585
  * with connection_serial
1547
- * [returns true](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L183)
1586
+ * [returns true](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L183)
1548
1587
  * #serial
1549
1588
  * with underlying msg_serial
1550
- * [converts :msg_serial to an Integer](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L192)
1589
+ * [converts :msg_serial to an Integer](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L192)
1551
1590
  * with underlying connection_serial
1552
- * [converts :connection_serial to an Integer](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L200)
1591
+ * [converts :connection_serial to an Integer](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L200)
1553
1592
  * with underlying connection_serial and msg_serial
1554
- * [prefers connection_serial and converts :connection_serial to an Integer](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L208)
1593
+ * [prefers connection_serial and converts :connection_serial to an Integer](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L208)
1555
1594
  * #has_serial?
1556
1595
  * without msg_serial or connection_serial
1557
- * [returns false](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L219)
1596
+ * [returns false](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L219)
1558
1597
  * with msg_serial
1559
- * [returns true](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L227)
1598
+ * [returns true](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L227)
1560
1599
  * with connection_serial
1561
- * [returns true](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L235)
1600
+ * [returns true](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L235)
1562
1601
  * #error
1563
1602
  * with no error attribute
1564
- * [returns nil](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L245)
1603
+ * [returns nil](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L245)
1565
1604
  * with nil error
1566
- * [returns nil](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L253)
1605
+ * [returns nil](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L253)
1567
1606
  * with error
1568
- * [returns a valid ErrorInfo object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L261)
1607
+ * [returns a valid ErrorInfo object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L261)
1569
1608
  * #messages
1570
- * [contains Message objects](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L271)
1609
+ * [contains Message objects](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L271)
1571
1610
  * #presence
1572
- * [contains PresenceMessage objects](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L281)
1611
+ * [contains PresenceMessage objects](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L281)
1573
1612
  * #connection_details
1574
1613
  * with a JSON value
1575
- * [contains a ConnectionDetails object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L294)
1576
- * [contains the attributes from the JSON connectionDetails](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L298)
1614
+ * [contains a ConnectionDetails object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L294)
1615
+ * [contains the attributes from the JSON connectionDetails](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L298)
1577
1616
  * without a JSON value
1578
- * [contains an empty ConnectionDetails object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L307)
1617
+ * [contains an empty ConnectionDetails object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L307)
1579
1618
  * #connection_key
1580
1619
  * existing only in #connection_details.connection_key
1581
- * [is returned](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L319)
1620
+ * [is returned](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L319)
1582
1621
  * existing in both #connection_key and #connection_details.connection_key
1583
- * [returns #connection_details.connection_key as #connection_key will be deprecated > 0.8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/protocol_message_spec.rb#L327)
1622
+ * [returns #connection_details.connection_key as #connection_key will be deprecated > 0.8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/protocol_message_spec.rb#L327)
1584
1623
 
1585
1624
  ### Ably::Models::Stats
1586
- _(see [lib/submodules/ably-ruby/spec/unit/models/stats_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb))_
1625
+ _(see [lib/submodules/ably-ruby/spec/unit/models/stats_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb))_
1587
1626
  * #all stats
1588
- * [returns a MessageTypes object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L17)
1589
- * [returns value for message counts](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L21)
1590
- * [returns value for all data transferred](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L25)
1591
- * [returns zero for empty values](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L29)
1592
- * [raises an exception for unknown attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L33)
1627
+ * [returns a MessageTypes object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L17)
1628
+ * [returns value for message counts](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L21)
1629
+ * [returns value for all data transferred](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L25)
1630
+ * [returns zero for empty values](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L29)
1631
+ * [raises an exception for unknown attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L33)
1593
1632
  * #all
1594
- * [is a MessageCount object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L39)
1633
+ * [is a MessageCount object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L39)
1595
1634
  * #presence
1596
- * [is a MessageCount object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L39)
1635
+ * [is a MessageCount object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L39)
1597
1636
  * #messages
1598
- * [is a MessageCount object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L39)
1637
+ * [is a MessageCount object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L39)
1599
1638
  * #persisted stats
1600
- * [returns a MessageTypes object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L17)
1601
- * [returns value for message counts](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L21)
1602
- * [returns value for all data transferred](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L25)
1603
- * [returns zero for empty values](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L29)
1604
- * [raises an exception for unknown attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L33)
1639
+ * [returns a MessageTypes object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L17)
1640
+ * [returns value for message counts](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L21)
1641
+ * [returns value for all data transferred](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L25)
1642
+ * [returns zero for empty values](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L29)
1643
+ * [raises an exception for unknown attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L33)
1605
1644
  * #all
1606
- * [is a MessageCount object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L39)
1645
+ * [is a MessageCount object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L39)
1607
1646
  * #presence
1608
- * [is a MessageCount object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L39)
1647
+ * [is a MessageCount object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L39)
1609
1648
  * #messages
1610
- * [is a MessageCount object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L39)
1649
+ * [is a MessageCount object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L39)
1611
1650
  * #inbound stats
1612
- * [returns a MessageTraffic object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L59)
1613
- * [returns value for realtime message counts](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L63)
1614
- * [returns value for all presence data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L67)
1615
- * [raises an exception for unknown attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L71)
1651
+ * [returns a MessageTraffic object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L59)
1652
+ * [returns value for realtime message counts](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L63)
1653
+ * [returns value for all presence data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L67)
1654
+ * [raises an exception for unknown attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L71)
1616
1655
  * #realtime
1617
- * [is a MessageTypes object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L77)
1656
+ * [is a MessageTypes object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L77)
1618
1657
  * #rest
1619
- * [is a MessageTypes object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L77)
1658
+ * [is a MessageTypes object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L77)
1620
1659
  * #webhook
1621
- * [is a MessageTypes object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L77)
1660
+ * [is a MessageTypes object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L77)
1622
1661
  * #all
1623
- * [is a MessageTypes object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L77)
1662
+ * [is a MessageTypes object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L77)
1624
1663
  * #outbound stats
1625
- * [returns a MessageTraffic object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L59)
1626
- * [returns value for realtime message counts](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L63)
1627
- * [returns value for all presence data](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L67)
1628
- * [raises an exception for unknown attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L71)
1664
+ * [returns a MessageTraffic object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L59)
1665
+ * [returns value for realtime message counts](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L63)
1666
+ * [returns value for all presence data](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L67)
1667
+ * [raises an exception for unknown attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L71)
1629
1668
  * #realtime
1630
- * [is a MessageTypes object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L77)
1669
+ * [is a MessageTypes object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L77)
1631
1670
  * #rest
1632
- * [is a MessageTypes object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L77)
1671
+ * [is a MessageTypes object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L77)
1633
1672
  * #webhook
1634
- * [is a MessageTypes object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L77)
1673
+ * [is a MessageTypes object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L77)
1635
1674
  * #all
1636
- * [is a MessageTypes object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L77)
1675
+ * [is a MessageTypes object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L77)
1637
1676
  * #connections stats
1638
- * [returns a ConnectionTypes object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L91)
1639
- * [returns value for tls opened counts](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L95)
1640
- * [returns value for all peak connections](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L99)
1641
- * [returns zero for empty values](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L103)
1642
- * [raises an exception for unknown attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L107)
1677
+ * [returns a ConnectionTypes object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L91)
1678
+ * [returns value for tls opened counts](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L95)
1679
+ * [returns value for all peak connections](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L99)
1680
+ * [returns zero for empty values](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L103)
1681
+ * [raises an exception for unknown attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L107)
1643
1682
  * #tls
1644
- * [is a ResourceCount object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L113)
1683
+ * [is a ResourceCount object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L113)
1645
1684
  * #plain
1646
- * [is a ResourceCount object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L113)
1685
+ * [is a ResourceCount object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L113)
1647
1686
  * #all
1648
- * [is a ResourceCount object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L113)
1687
+ * [is a ResourceCount object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L113)
1649
1688
  * #channels stats
1650
- * [returns a ResourceCount object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L126)
1651
- * [returns value for opened counts](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L130)
1652
- * [returns value for peak channels](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L134)
1653
- * [returns zero for empty values](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L138)
1654
- * [raises an exception for unknown attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L142)
1689
+ * [returns a ResourceCount object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L126)
1690
+ * [returns value for opened counts](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L130)
1691
+ * [returns value for peak channels](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L134)
1692
+ * [returns zero for empty values](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L138)
1693
+ * [raises an exception for unknown attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L142)
1655
1694
  * #opened
1656
- * [is a Integer object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L148)
1695
+ * [is a Integer object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L148)
1657
1696
  * #peak
1658
- * [is a Integer object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L148)
1697
+ * [is a Integer object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L148)
1659
1698
  * #mean
1660
- * [is a Integer object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L148)
1699
+ * [is a Integer object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L148)
1661
1700
  * #min
1662
- * [is a Integer object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L148)
1701
+ * [is a Integer object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L148)
1663
1702
  * #refused
1664
- * [is a Integer object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L148)
1703
+ * [is a Integer object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L148)
1665
1704
  * #api_requests stats
1666
- * [returns a RequestCount object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L164)
1667
- * [returns value for succeeded](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L168)
1668
- * [returns value for failed](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L172)
1669
- * [raises an exception for unknown attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L176)
1705
+ * [returns a RequestCount object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L164)
1706
+ * [returns value for succeeded](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L168)
1707
+ * [returns value for failed](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L172)
1708
+ * [raises an exception for unknown attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L176)
1670
1709
  * #succeeded
1671
- * [is a Integer object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L182)
1710
+ * [is a Integer object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L182)
1672
1711
  * #failed
1673
- * [is a Integer object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L182)
1712
+ * [is a Integer object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L182)
1674
1713
  * #refused
1675
- * [is a Integer object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L182)
1714
+ * [is a Integer object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L182)
1676
1715
  * #token_requests stats
1677
- * [returns a RequestCount object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L164)
1678
- * [returns value for succeeded](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L168)
1679
- * [returns value for failed](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L172)
1680
- * [raises an exception for unknown attributes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L176)
1716
+ * [returns a RequestCount object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L164)
1717
+ * [returns value for succeeded](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L168)
1718
+ * [returns value for failed](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L172)
1719
+ * [raises an exception for unknown attributes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L176)
1681
1720
  * #succeeded
1682
- * [is a Integer object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L182)
1721
+ * [is a Integer object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L182)
1683
1722
  * #failed
1684
- * [is a Integer object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L182)
1723
+ * [is a Integer object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L182)
1685
1724
  * #refused
1686
- * [is a Integer object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L182)
1725
+ * [is a Integer object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L182)
1687
1726
  * #interval_granularity
1688
- * [returns the granularity of the interval_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L193)
1727
+ * [returns the granularity of the interval_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L193)
1689
1728
  * #interval_time
1690
- * [returns a Time object representing the start of the interval](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L201)
1729
+ * [returns a Time object representing the start of the interval](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L201)
1691
1730
  * class methods
1692
1731
  * #to_interval_id
1693
1732
  * when time zone of time argument is UTC
1694
- * [converts time 2014-02-03:05:06 with granularity :month into 2014-02](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L209)
1695
- * [converts time 2014-02-03:05:06 with granularity :day into 2014-02-03](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L213)
1696
- * [converts time 2014-02-03:05:06 with granularity :hour into 2014-02-03:05](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L217)
1697
- * [converts time 2014-02-03:05:06 with granularity :minute into 2014-02-03:05:06](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L221)
1698
- * [fails with invalid granularity](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L225)
1699
- * [fails with invalid time](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L229)
1733
+ * [converts time 2014-02-03:05:06 with granularity :month into 2014-02](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L209)
1734
+ * [converts time 2014-02-03:05:06 with granularity :day into 2014-02-03](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L213)
1735
+ * [converts time 2014-02-03:05:06 with granularity :hour into 2014-02-03:05](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L217)
1736
+ * [converts time 2014-02-03:05:06 with granularity :minute into 2014-02-03:05:06](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L221)
1737
+ * [fails with invalid granularity](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L225)
1738
+ * [fails with invalid time](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L229)
1700
1739
  * when time zone of time argument is +02:00
1701
- * [converts time 2014-02-03:06 with granularity :hour into 2014-02-03:04 at UTC +00:00](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L235)
1740
+ * [converts time 2014-02-03:06 with granularity :hour into 2014-02-03:04 at UTC +00:00](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L235)
1702
1741
  * #from_interval_id
1703
- * [converts a month interval_id 2014-02 into a Time object in UTC 0](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L242)
1704
- * [converts a day interval_id 2014-02-03 into a Time object in UTC 0](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L247)
1705
- * [converts an hour interval_id 2014-02-03:05 into a Time object in UTC 0](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L252)
1706
- * [converts a minute interval_id 2014-02-03:05:06 into a Time object in UTC 0](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L257)
1707
- * [fails with an invalid interval_id 14-20](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L262)
1742
+ * [converts a month interval_id 2014-02 into a Time object in UTC 0](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L242)
1743
+ * [converts a day interval_id 2014-02-03 into a Time object in UTC 0](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L247)
1744
+ * [converts an hour interval_id 2014-02-03:05 into a Time object in UTC 0](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L252)
1745
+ * [converts a minute interval_id 2014-02-03:05:06 into a Time object in UTC 0](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L257)
1746
+ * [fails with an invalid interval_id 14-20](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L262)
1708
1747
  * #granularity_from_interval_id
1709
- * [returns a :month interval_id for 2014-02](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L268)
1710
- * [returns a :day interval_id for 2014-02-03](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L272)
1711
- * [returns a :hour interval_id for 2014-02-03:05](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L276)
1712
- * [returns a :minute interval_id for 2014-02-03:05:06](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L280)
1713
- * [fails with an invalid interval_id 14-20](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/stats_spec.rb#L284)
1748
+ * [returns a :month interval_id for 2014-02](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L268)
1749
+ * [returns a :day interval_id for 2014-02-03](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L272)
1750
+ * [returns a :hour interval_id for 2014-02-03:05](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L276)
1751
+ * [returns a :minute interval_id for 2014-02-03:05:06](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L280)
1752
+ * [fails with an invalid interval_id 14-20](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/stats_spec.rb#L284)
1714
1753
 
1715
1754
  ### Ably::Models::TokenDetails
1716
- _(see [lib/submodules/ably-ruby/spec/unit/models/token_details_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_details_spec.rb))_
1755
+ _(see [lib/submodules/ably-ruby/spec/unit/models/token_details_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_details_spec.rb))_
1717
1756
  * behaves like a model
1718
1757
  * attributes
1719
1758
  * #token
1720
- * [retrieves attribute :token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1759
+ * [retrieves attribute :token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1721
1760
  * #key_name
1722
- * [retrieves attribute :key_name](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1761
+ * [retrieves attribute :key_name](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1723
1762
  * #client_id
1724
- * [retrieves attribute :client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1763
+ * [retrieves attribute :client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1725
1764
  * #==
1726
- * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L41)
1727
- * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L46)
1728
- * [is false when class type differs](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L50)
1765
+ * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L41)
1766
+ * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L46)
1767
+ * [is false when class type differs](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L50)
1729
1768
  * is immutable
1730
- * [prevents changes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L76)
1731
- * [dups options](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L80)
1769
+ * [prevents changes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L76)
1770
+ * [dups options](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L80)
1732
1771
  * attributes
1733
1772
  * #capability
1734
- * [retrieves attribute :capability as parsed JSON](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_details_spec.rb#L21)
1735
- * #issued with :issued option as milliseconds in constructor
1736
- * [retrieves attribute :issued as Time](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_details_spec.rb#L31)
1737
- * #issued with :issued option as a Time in constructor
1738
- * [retrieves attribute :issued as Time](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_details_spec.rb#L40)
1739
- * #issued when converted to JSON
1740
- * [is in milliseconds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_details_spec.rb#L49)
1741
- * #expires with :expires option as milliseconds in constructor
1742
- * [retrieves attribute :expires as Time](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_details_spec.rb#L31)
1743
- * #expires with :expires option as a Time in constructor
1744
- * [retrieves attribute :expires as Time](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_details_spec.rb#L40)
1745
- * #expires when converted to JSON
1746
- * [is in milliseconds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_details_spec.rb#L49)
1773
+ * [retrieves attribute :capability as parsed JSON](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_details_spec.rb#L21)
1774
+ *
1775
+ * #issued with :issued option as milliseconds in constructor
1776
+ * [retrieves attribute :issued as Time](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_details_spec.rb#L32)
1777
+ * #issued with :issued option as a Time in constructor
1778
+ * [retrieves attribute :issued as Time](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_details_spec.rb#L41)
1779
+ * #issued when converted to JSON
1780
+ * [is in milliseconds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_details_spec.rb#L50)
1781
+ * #expires with :expires option as milliseconds in constructor
1782
+ * [retrieves attribute :expires as Time](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_details_spec.rb#L32)
1783
+ * #expires with :expires option as a Time in constructor
1784
+ * [retrieves attribute :expires as Time](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_details_spec.rb#L41)
1785
+ * #expires when converted to JSON
1786
+ * [is in milliseconds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_details_spec.rb#L50)
1747
1787
  * #expired?
1748
1788
  * once grace period buffer has passed
1749
- * [is true](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_details_spec.rb#L61)
1789
+ * [is true](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_details_spec.rb#L63)
1750
1790
  * within grace period buffer
1751
- * [is false](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_details_spec.rb#L69)
1791
+ * [is false](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_details_spec.rb#L71)
1752
1792
  * when expires is not available (i.e. string tokens)
1753
- * [is always false](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_details_spec.rb#L77)
1793
+ * [is always false](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_details_spec.rb#L79)
1754
1794
  * ==
1755
- * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_details_spec.rb#L87)
1756
- * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_details_spec.rb#L92)
1757
- * [is false when class type differs](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_details_spec.rb#L96)
1795
+ * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_details_spec.rb#L89)
1796
+ * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_details_spec.rb#L94)
1797
+ * [is false when class type differs](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_details_spec.rb#L98)
1758
1798
 
1759
1799
  ### Ably::Models::TokenRequest
1760
- _(see [lib/submodules/ably-ruby/spec/unit/models/token_request_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_request_spec.rb))_
1800
+ _(see [lib/submodules/ably-ruby/spec/unit/models/token_request_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_request_spec.rb))_
1761
1801
  * behaves like a model
1762
1802
  * attributes
1763
1803
  * #key_name
1764
- * [retrieves attribute :key_name](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1804
+ * [retrieves attribute :key_name](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1765
1805
  * #client_id
1766
- * [retrieves attribute :client_id](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1806
+ * [retrieves attribute :client_id](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1767
1807
  * #nonce
1768
- * [retrieves attribute :nonce](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1808
+ * [retrieves attribute :nonce](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1769
1809
  * #mac
1770
- * [retrieves attribute :mac](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L15)
1810
+ * [retrieves attribute :mac](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L15)
1771
1811
  * #==
1772
- * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L41)
1773
- * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L46)
1774
- * [is false when class type differs](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L50)
1812
+ * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L41)
1813
+ * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L46)
1814
+ * [is false when class type differs](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L50)
1775
1815
  * is immutable
1776
- * [prevents changes](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L76)
1777
- * [dups options](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/model_behaviour.rb#L80)
1816
+ * [prevents changes](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L76)
1817
+ * [dups options](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/model_behaviour.rb#L80)
1778
1818
  * attributes
1779
1819
  * #capability
1780
- * [retrieves attribute :capability as parsed JSON](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_request_spec.rb#L18)
1820
+ * [retrieves attribute :capability as parsed JSON](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_request_spec.rb#L18)
1781
1821
  * #timestamp
1782
1822
  * with :timestamp option as milliseconds in constructor
1783
- * [retrieves attribute :timestamp as Time](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_request_spec.rb#L29)
1823
+ * [retrieves attribute :timestamp as Time](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_request_spec.rb#L29)
1784
1824
  * with :timestamp option as Time in constructor
1785
- * [retrieves attribute :timestamp as Time](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_request_spec.rb#L38)
1825
+ * [retrieves attribute :timestamp as Time](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_request_spec.rb#L38)
1786
1826
  * when converted to JSON
1787
- * [is in milliseconds since epoch](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_request_spec.rb#L47)
1827
+ * [is in milliseconds since epoch](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_request_spec.rb#L47)
1788
1828
  * #ttl
1789
1829
  * with :ttl option as milliseconds in constructor
1790
- * [retrieves attribute :ttl as seconds](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_request_spec.rb#L59)
1830
+ * [retrieves attribute :ttl as seconds](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_request_spec.rb#L59)
1791
1831
  * when converted to JSON
1792
- * [is in milliseconds since epoch](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_request_spec.rb#L68)
1832
+ * [is in milliseconds since epoch](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_request_spec.rb#L68)
1793
1833
  * ==
1794
- * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_request_spec.rb#L78)
1795
- * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_request_spec.rb#L83)
1796
- * [is false when class type differs](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/models/token_request_spec.rb#L87)
1834
+ * [is true when attributes are the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_request_spec.rb#L78)
1835
+ * [is false when attributes are not the same](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_request_spec.rb#L83)
1836
+ * [is false when class type differs](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/models/token_request_spec.rb#L87)
1797
1837
 
1798
1838
  ### Ably::Rest::Channel
1799
- _(see [lib/submodules/ably-ruby/spec/unit/rest/channel_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channel_spec.rb))_
1839
+ _(see [lib/submodules/ably-ruby/spec/unit/rest/channel_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channel_spec.rb))_
1800
1840
  * #initializer
1801
1841
  * as UTF_8 string
1802
- * [is permitted](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channel_spec.rb#L16)
1803
- * [remains as UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channel_spec.rb#L20)
1842
+ * [is permitted](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channel_spec.rb#L16)
1843
+ * [remains as UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channel_spec.rb#L20)
1804
1844
  * as SHIFT_JIS string
1805
- * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channel_spec.rb#L28)
1806
- * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channel_spec.rb#L32)
1845
+ * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channel_spec.rb#L28)
1846
+ * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channel_spec.rb#L32)
1807
1847
  * as ASCII_8BIT string
1808
- * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channel_spec.rb#L40)
1809
- * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channel_spec.rb#L44)
1848
+ * [gets converted to UTF-8](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channel_spec.rb#L40)
1849
+ * [is compatible with original encoding](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channel_spec.rb#L44)
1810
1850
  * as Integer
1811
- * [raises an argument error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channel_spec.rb#L52)
1851
+ * [raises an argument error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channel_spec.rb#L52)
1812
1852
  * as Nil
1813
- * [raises an argument error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channel_spec.rb#L60)
1853
+ * [raises an argument error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channel_spec.rb#L60)
1814
1854
  * #publish name argument
1815
1855
  * as UTF_8 string
1816
- * [is permitted](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channel_spec.rb#L72)
1856
+ * [is permitted](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channel_spec.rb#L72)
1817
1857
  * as SHIFT_JIS string
1818
- * [is permitted](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channel_spec.rb#L80)
1858
+ * [is permitted](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channel_spec.rb#L80)
1819
1859
  * as ASCII_8BIT string
1820
- * [is permitted](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channel_spec.rb#L88)
1860
+ * [is permitted](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channel_spec.rb#L88)
1821
1861
  * as Integer
1822
- * [raises an argument error](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channel_spec.rb#L96)
1862
+ * [raises an argument error](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channel_spec.rb#L96)
1823
1863
 
1824
1864
  ### Ably::Rest::Channels
1825
- _(see [lib/submodules/ably-ruby/spec/unit/rest/channels_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channels_spec.rb))_
1865
+ _(see [lib/submodules/ably-ruby/spec/unit/rest/channels_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channels_spec.rb))_
1826
1866
  * creating channels
1827
- * [#get creates a channel](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channels_spec.rb#L12)
1828
- * [#get will reuse the channel object](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channels_spec.rb#L17)
1829
- * [[] creates a channel](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channels_spec.rb#L23)
1867
+ * [#get creates a channel](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channels_spec.rb#L12)
1868
+ * [#get will reuse the channel object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channels_spec.rb#L17)
1869
+ * [[] creates a channel](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channels_spec.rb#L23)
1830
1870
  * #fetch
1831
- * [retrieves a channel if it exists](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channels_spec.rb#L30)
1832
- * [calls the block if channel is missing](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channels_spec.rb#L35)
1871
+ * [retrieves a channel if it exists](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channels_spec.rb#L30)
1872
+ * [calls the block if channel is missing](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channels_spec.rb#L35)
1833
1873
  * destroying channels
1834
- * [#release releases the channel resoures](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channels_spec.rb#L43)
1874
+ * [#release releases the channel resoures](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channels_spec.rb#L43)
1835
1875
  * is Enumerable
1836
- * [allows enumeration](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channels_spec.rb#L59)
1837
- * [provides #length](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channels_spec.rb#L75)
1876
+ * [allows enumeration](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channels_spec.rb#L59)
1877
+ * [provides #length](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channels_spec.rb#L75)
1838
1878
  * #each
1839
- * [returns an enumerator](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channels_spec.rb#L64)
1840
- * [yields each channel](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/channels_spec.rb#L68)
1879
+ * [returns an enumerator](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channels_spec.rb#L64)
1880
+ * [yields each channel](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/channels_spec.rb#L68)
1841
1881
 
1842
1882
  ### Ably::Rest::Client
1843
- _(see [lib/submodules/ably-ruby/spec/unit/rest/client_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/client_spec.rb))_
1883
+ _(see [lib/submodules/ably-ruby/spec/unit/rest/client_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/client_spec.rb))_
1844
1884
  * behaves like a client initializer
1845
1885
  * with invalid arguments
1846
1886
  * empty hash
1847
- * [raises an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L28)
1887
+ * [raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L28)
1848
1888
  * nil
1849
- * [raises an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L36)
1889
+ * [raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L36)
1850
1890
  * key: "invalid"
1851
- * [raises an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L44)
1891
+ * [raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L44)
1852
1892
  * key: "invalid:asdad"
1853
- * [raises an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L52)
1893
+ * [raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L52)
1854
1894
  * key and key_name
1855
- * [raises an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L60)
1895
+ * [raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L60)
1856
1896
  * key and key_secret
1857
- * [raises an exception](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L68)
1897
+ * [raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L68)
1858
1898
  * client_id as only option
1859
- * [requires a valid key](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L76)
1899
+ * [requires a valid key](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L76)
1860
1900
  * with valid arguments
1861
1901
  * key only
1862
- * [connects to the Ably service](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L87)
1863
- * [uses basic auth](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L91)
1902
+ * [connects to the Ably service](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L87)
1903
+ * [uses basic auth](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L91)
1864
1904
  * with a string key instead of options hash
1865
- * [sets the key](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L111)
1866
- * [sets the key_name](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L115)
1867
- * [sets the key_secret](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L119)
1868
- * [uses basic auth](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L123)
1905
+ * [sets the key](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L111)
1906
+ * [sets the key_name](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L115)
1907
+ * [sets the key_secret](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L119)
1908
+ * [uses basic auth](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L123)
1869
1909
  * with a string token key instead of options hash
1870
- * [sets the token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L135)
1910
+ * [sets the token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L135)
1871
1911
  * with token
1872
- * [sets the token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L143)
1912
+ * [sets the token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L143)
1873
1913
  * with token_details
1874
- * [sets the token](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L151)
1914
+ * [sets the token](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L151)
1875
1915
  * with token_params
1876
- * [configures the default token_params](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L159)
1916
+ * [configures the default token_params](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L159)
1877
1917
  * endpoint
1878
- * [defaults to production](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L170)
1918
+ * [defaults to production](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L170)
1879
1919
  * with environment option
1880
- * [uses an alternate endpoint](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L177)
1920
+ * [uses an alternate endpoint](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L177)
1881
1921
  * with rest_host option
1882
- * [uses an alternate endpoint for REST clients](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L185)
1922
+ * [uses an alternate endpoint for REST clients](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L185)
1883
1923
  * with realtime_host option
1884
- * PENDING: *[uses an alternate endpoint for Realtime clients](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L194)*
1924
+ * PENDING: *[uses an alternate endpoint for Realtime clients](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L194)*
1885
1925
  * with port option and non-TLS connections
1886
- * [uses the custom port for non-TLS requests](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L203)
1926
+ * [uses the custom port for non-TLS requests](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L203)
1887
1927
  * with tls_port option and a TLS connection
1888
- * [uses the custom port for TLS requests](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L211)
1928
+ * [uses the custom port for TLS requests](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L211)
1889
1929
  * tls
1890
- * [defaults to TLS](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L234)
1930
+ * [defaults to TLS](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L234)
1891
1931
  * set to false
1892
- * [uses plain text](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L225)
1893
- * [uses HTTP](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L229)
1932
+ * [uses plain text](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L225)
1933
+ * [uses HTTP](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L229)
1894
1934
  * logger
1895
1935
  * default
1896
- * [uses Ruby Logger](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L245)
1897
- * [specifies Logger::WARN log level](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L249)
1936
+ * [uses Ruby Logger](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L245)
1937
+ * [specifies Logger::WARN log level](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L249)
1898
1938
  * with log_level :none
1899
- * [silences all logging with a NilLogger](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L257)
1939
+ * [silences all logging with a NilLogger](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L257)
1900
1940
  * with custom logger and log_level
1901
- * [uses the custom logger](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L275)
1902
- * [sets the custom log level](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L279)
1941
+ * [uses the custom logger](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L275)
1942
+ * [sets the custom log level](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L279)
1903
1943
  * delegators
1904
- * [delegates :client_id to .auth](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L293)
1905
- * [delegates :auth_options to .auth](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/shared/client_initializer_behaviour.rb#L298)
1944
+ * [delegates :client_id to .auth](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L293)
1945
+ * [delegates :auth_options to .auth](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/shared/client_initializer_behaviour.rb#L298)
1906
1946
  * initializer options
1907
1947
  * TLS
1908
1948
  * disabled
1909
- * [fails for any operation with basic auth and attempting to send an API key over a non-secure connection](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/client_spec.rb#L17)
1949
+ * [fails for any operation with basic auth and attempting to send an API key over a non-secure connection](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/client_spec.rb#L17)
1910
1950
  * :use_token_auth
1911
1951
  * set to false
1912
1952
  * with a key and :tls => false
1913
- * [fails for any operation with basic auth and attempting to send an API key over a non-secure connection](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/client_spec.rb#L28)
1953
+ * [fails for any operation with basic auth and attempting to send an API key over a non-secure connection](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/client_spec.rb#L28)
1914
1954
  * without a key
1915
- * [fails as a key is required if not using token auth](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/client_spec.rb#L36)
1955
+ * [fails as a key is required if not using token auth](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/client_spec.rb#L36)
1916
1956
  * set to true
1917
1957
  * without a key or token
1918
- * [fails as a key is required to issue tokens](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/client_spec.rb#L46)
1958
+ * [fails as a key is required to issue tokens](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/client_spec.rb#L46)
1919
1959
 
1920
1960
  ### Ably::Rest
1921
- _(see [lib/submodules/ably-ruby/spec/unit/rest/rest_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/rest_spec.rb))_
1922
- * [constructor returns an Ably::Rest::Client](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/rest/rest_spec.rb#L7)
1961
+ _(see [lib/submodules/ably-ruby/spec/unit/rest/rest_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/rest_spec.rb))_
1962
+ * [constructor returns an Ably::Rest::Client](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/rest/rest_spec.rb#L7)
1923
1963
 
1924
1964
  ### Ably::Util::Crypto
1925
- _(see [lib/submodules/ably-ruby/spec/unit/util/crypto_spec.rb](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/util/crypto_spec.rb))_
1965
+ _(see [lib/submodules/ably-ruby/spec/unit/util/crypto_spec.rb](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/util/crypto_spec.rb))_
1926
1966
  * defaults
1927
- * [match other client libraries](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/util/crypto_spec.rb#L18)
1967
+ * [match other client libraries](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/util/crypto_spec.rb#L19)
1928
1968
  * get_default_params
1929
- * [uses the defaults and generates a key if not provided](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/util/crypto_spec.rb#L25)
1930
- * [uses the defaults and sets the key size when key is provided](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/util/crypto_spec.rb#L32)
1969
+ * with just a :key param
1970
+ * [uses the defaults](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/util/crypto_spec.rb#L29)
1971
+ * [contains the provided key](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/util/crypto_spec.rb#L35)
1972
+ * [returns a CipherParams object](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/util/crypto_spec.rb#L39)
1973
+ * without a :key param
1974
+ * [raises an exception](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/util/crypto_spec.rb#L47)
1975
+ * with a base64-encoded :key param
1976
+ * [converts the key to binary](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/util/crypto_spec.rb#L55)
1977
+ * with provided params
1978
+ * [overrides the defaults](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/util/crypto_spec.rb#L67)
1931
1979
  * encrypts & decrypt
1932
- * [#encrypt encrypts a string](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/util/crypto_spec.rb#L46)
1933
- * [#decrypt decrypts a string](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/util/crypto_spec.rb#L51)
1980
+ * [#encrypt encrypts a string](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/util/crypto_spec.rb#L79)
1981
+ * [#decrypt decrypts a string](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/util/crypto_spec.rb#L84)
1934
1982
  * encrypting an empty string
1935
- * [raises an ArgumentError](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/util/crypto_spec.rb#L60)
1983
+ * [raises an ArgumentError](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/util/crypto_spec.rb#L93)
1936
1984
  * using shared client lib fixture data
1937
1985
  * with AES-128-CBC
1938
1986
  * behaves like an Ably encrypter and decrypter
1939
1987
  * text payload
1940
- * [encrypts exactly the same binary data as other client libraries](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/util/crypto_spec.rb#L83)
1941
- * [decrypts exactly the same binary data as other client libraries](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/util/crypto_spec.rb#L87)
1988
+ * [encrypts exactly the same binary data as other client libraries](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/util/crypto_spec.rb#L116)
1989
+ * [decrypts exactly the same binary data as other client libraries](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/util/crypto_spec.rb#L120)
1942
1990
  * with AES-256-CBC
1943
1991
  * behaves like an Ably encrypter and decrypter
1944
1992
  * text payload
1945
- * [encrypts exactly the same binary data as other client libraries](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/util/crypto_spec.rb#L83)
1946
- * [decrypts exactly the same binary data as other client libraries](https://github.com/ably/ably-ruby/tree/944fa258ca2cd24a0f5e6d1c04189b8ea12399c8/spec/unit/util/crypto_spec.rb#L87)
1993
+ * [encrypts exactly the same binary data as other client libraries](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/util/crypto_spec.rb#L116)
1994
+ * [decrypts exactly the same binary data as other client libraries](https://github.com/ably/ably-ruby/tree/e959182040a9cbf23d7efca9f61c4e6758cd8f94/spec/unit/util/crypto_spec.rb#L120)
1947
1995
 
1948
1996
  -------
1949
1997
 
1950
1998
  ## Test summary
1951
1999
 
1952
- * Passing tests: 964
2000
+ * Passing tests: 984
1953
2001
  * Pending tests: 1
1954
2002
  * Failing tests: 0