ably-rest 0.8.6 → 0.8.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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