ably 0.8.2 → 0.8.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/CHANGELOG.md +185 -0
- data/LICENSE +15 -0
- data/README.md +8 -4
- data/SPEC.md +999 -531
- data/ably.gemspec +1 -1
- data/lib/ably.rb +1 -1
- data/lib/ably/auth.rb +114 -87
- data/lib/ably/exceptions.rb +40 -14
- data/lib/ably/models/message.rb +3 -5
- data/lib/ably/models/paginated_result.rb +3 -12
- data/lib/ably/models/presence_message.rb +8 -2
- data/lib/ably/models/protocol_message.rb +15 -3
- data/lib/ably/models/stat.rb +1 -1
- data/lib/ably/models/token_details.rb +1 -1
- data/lib/ably/modules/channels_collection.rb +7 -1
- data/lib/ably/modules/conversions.rb +1 -1
- data/lib/ably/modules/encodeable.rb +6 -3
- data/lib/ably/modules/message_pack.rb +2 -2
- data/lib/ably/modules/model_common.rb +1 -1
- data/lib/ably/modules/state_machine.rb +2 -2
- data/lib/ably/realtime.rb +1 -0
- data/lib/ably/realtime/auth.rb +191 -0
- data/lib/ably/realtime/channel.rb +97 -25
- data/lib/ably/realtime/channel/channel_manager.rb +11 -3
- data/lib/ably/realtime/client.rb +22 -6
- data/lib/ably/realtime/connection.rb +74 -41
- data/lib/ably/realtime/connection/connection_manager.rb +48 -33
- data/lib/ably/realtime/presence.rb +17 -3
- data/lib/ably/rest/channel.rb +43 -16
- data/lib/ably/rest/client.rb +57 -26
- data/lib/ably/rest/middleware/exceptions.rb +3 -1
- data/lib/ably/rest/middleware/fail_if_unsupported_mime_type.rb +4 -2
- data/lib/ably/rest/presence.rb +1 -0
- data/lib/ably/version.rb +1 -1
- data/spec/acceptance/realtime/auth_spec.rb +242 -0
- data/spec/acceptance/realtime/channel_spec.rb +277 -5
- data/spec/acceptance/realtime/channels_spec.rb +64 -0
- data/spec/acceptance/realtime/client_spec.rb +26 -5
- data/spec/acceptance/realtime/connection_failures_spec.rb +23 -6
- data/spec/acceptance/realtime/connection_spec.rb +167 -16
- data/spec/acceptance/realtime/message_spec.rb +9 -8
- data/spec/acceptance/realtime/presence_history_spec.rb +1 -0
- data/spec/acceptance/realtime/presence_spec.rb +121 -10
- data/spec/acceptance/realtime/stats_spec.rb +13 -1
- data/spec/acceptance/rest/auth_spec.rb +161 -79
- data/spec/acceptance/rest/base_spec.rb +3 -3
- data/spec/acceptance/rest/channel_spec.rb +142 -15
- data/spec/acceptance/rest/channels_spec.rb +23 -0
- data/spec/acceptance/rest/client_spec.rb +180 -18
- data/spec/acceptance/rest/message_spec.rb +8 -8
- data/spec/acceptance/rest/presence_spec.rb +136 -25
- data/spec/acceptance/rest/stats_spec.rb +60 -4
- data/spec/shared/client_initializer_behaviour.rb +54 -3
- data/spec/unit/auth_spec.rb +7 -6
- data/spec/unit/models/message_spec.rb +1 -9
- data/spec/unit/models/paginated_result_spec.rb +1 -18
- data/spec/unit/models/presence_message_spec.rb +1 -1
- data/spec/unit/models/protocol_message_spec.rb +21 -1
- data/spec/unit/realtime/channel_spec.rb +10 -3
- data/spec/unit/realtime/channels_spec.rb +27 -8
- data/spec/unit/rest/channel_spec.rb +0 -8
- data/spec/unit/rest/client_spec.rb +7 -7
- metadata +13 -7
- data/LICENSE.txt +0 -22
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4a4a37e1a1ac2bddad5dadd6b97b77dbc93acc76
|
4
|
+
data.tar.gz: 69ebb5298665efbf1ad4d9255b76cd8c581b27e5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a0566f39324a88f7d00efea0292fd04af77b423581df8e920127a425b22328464035fc36f678fdebe40c2b4fb68b8f653e86c7b1a29ad14a0086f138acc582cb
|
7
|
+
data.tar.gz: ef77958e46559356a6db5929ec630c69ab1d398916e20d82c10a2836ef73d834fcc5020a8809a3f56f2efa44132bd58b77cdf385e804f51187ced597962be016
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
ADDED
@@ -0,0 +1,185 @@
|
|
1
|
+
# Change Log
|
2
|
+
|
3
|
+
## [v0.8.3](https://github.com/ably/ably-ruby/tree/v0.8.3)
|
4
|
+
|
5
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v0.8.2...v0.8.3)
|
6
|
+
|
7
|
+
**Implemented enhancements:**
|
8
|
+
|
9
|
+
- Implement :queue\_messages option [\#36](https://github.com/ably/ably-ruby/issues/36)
|
10
|
+
|
11
|
+
- Check that a non 200-299 status code for REST requests uses fallback hosts [\#35](https://github.com/ably/ably-ruby/issues/35)
|
12
|
+
|
13
|
+
- Move stats fixtures into ably-common [\#34](https://github.com/ably/ably-ruby/issues/34)
|
14
|
+
|
15
|
+
- Add tests for messages with no data or name fields [\#21](https://github.com/ably/ably-ruby/issues/21)
|
16
|
+
|
17
|
+
- Namespace MsgPack as MsgPack5 because compliance is not merged in [\#12](https://github.com/ably/ably-ruby/issues/12)
|
18
|
+
|
19
|
+
- Add test coverage for receiving messages more than once i.e. historical messages resent somehow on reconnect [\#11](https://github.com/ably/ably-ruby/issues/11)
|
20
|
+
|
21
|
+
- Add async methods for Authentication in the realtime library [\#8](https://github.com/ably/ably-ruby/issues/8)
|
22
|
+
|
23
|
+
**Fixed bugs:**
|
24
|
+
|
25
|
+
- Check that a non 200-299 status code for REST requests uses fallback hosts [\#35](https://github.com/ably/ably-ruby/issues/35)
|
26
|
+
|
27
|
+
**Closed issues:**
|
28
|
+
|
29
|
+
- Scope default token params in arguments [\#55](https://github.com/ably/ably-ruby/issues/55)
|
30
|
+
|
31
|
+
- Channel options can be reset when accessing a channel with \#get [\#46](https://github.com/ably/ably-ruby/issues/46)
|
32
|
+
|
33
|
+
**Merged pull requests:**
|
34
|
+
|
35
|
+
- Separate token params for auth [\#57](https://github.com/ably/ably-ruby/pull/57) ([mattheworiordan](https://github.com/mattheworiordan))
|
36
|
+
|
37
|
+
- Ensure files are required in a consistent order [\#51](https://github.com/ably/ably-ruby/pull/51) ([SimonWoolf](https://github.com/SimonWoolf))
|
38
|
+
|
39
|
+
## [v0.8.2](https://github.com/ably/ably-ruby/tree/v0.8.2) (2015-05-20)
|
40
|
+
|
41
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v0.8.1...v0.8.2)
|
42
|
+
|
43
|
+
**Implemented enhancements:**
|
44
|
+
|
45
|
+
- Ensure Array object can be used in place of Hash for payload [\#44](https://github.com/ably/ably-ruby/issues/44)
|
46
|
+
|
47
|
+
- Change connect\_automatically option to auto\_connect for consistency [\#42](https://github.com/ably/ably-ruby/issues/42)
|
48
|
+
|
49
|
+
- Rename PaginatedResource to PaginatedResult for consistency [\#40](https://github.com/ably/ably-ruby/issues/40)
|
50
|
+
|
51
|
+
- EventEmitter should use `emit` not `trigger` to be consistent with other libs [\#31](https://github.com/ably/ably-ruby/issues/31)
|
52
|
+
|
53
|
+
- Add exceptions when data attribute for messages/presence is not String, Binary or JSON data [\#4](https://github.com/ably/ably-ruby/issues/4)
|
54
|
+
|
55
|
+
- Auth Callback and Auth URL should support tokens as well as token requests [\#2](https://github.com/ably/ably-ruby/issues/2)
|
56
|
+
|
57
|
+
**Closed issues:**
|
58
|
+
|
59
|
+
- Realtime Presence\#get does not wait by default [\#47](https://github.com/ably/ably-ruby/issues/47)
|
60
|
+
|
61
|
+
- No implicit attach when accessing channel.presence [\#45](https://github.com/ably/ably-ruby/issues/45)
|
62
|
+
|
63
|
+
**Merged pull requests:**
|
64
|
+
|
65
|
+
- Reject invalid payload type [\#48](https://github.com/ably/ably-ruby/pull/48) ([mattheworiordan](https://github.com/mattheworiordan))
|
66
|
+
|
67
|
+
## [v0.8.1](https://github.com/ably/ably-ruby/tree/v0.8.1) (2015-04-23)
|
68
|
+
|
69
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v0.8.0...v0.8.1)
|
70
|
+
|
71
|
+
## [v0.8.0](https://github.com/ably/ably-ruby/tree/v0.8.0) (2015-04-23)
|
72
|
+
|
73
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v0.7.6...v0.8.0)
|
74
|
+
|
75
|
+
**Merged pull requests:**
|
76
|
+
|
77
|
+
- Token naming refactor [\#29](https://github.com/ably/ably-ruby/pull/29) ([mattheworiordan](https://github.com/mattheworiordan))
|
78
|
+
|
79
|
+
## [v0.7.6](https://github.com/ably/ably-ruby/tree/v0.7.6) (2015-04-17)
|
80
|
+
|
81
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v0.7.5...v0.7.6)
|
82
|
+
|
83
|
+
**Implemented enhancements:**
|
84
|
+
|
85
|
+
- Rename Stat to Stats for consistency [\#32](https://github.com/ably/ably-ruby/issues/32)
|
86
|
+
|
87
|
+
- Stats objects [\#24](https://github.com/ably/ably-ruby/issues/24)
|
88
|
+
|
89
|
+
- Need a test to handle errors in callbacks [\#13](https://github.com/ably/ably-ruby/issues/13)
|
90
|
+
|
91
|
+
- Allow token ID or API key in the client constructor [\#5](https://github.com/ably/ably-ruby/issues/5)
|
92
|
+
|
93
|
+
**Fixed bugs:**
|
94
|
+
|
95
|
+
- Need a test to handle errors in callbacks [\#13](https://github.com/ably/ably-ruby/issues/13)
|
96
|
+
|
97
|
+
**Closed issues:**
|
98
|
+
|
99
|
+
- New ttl format [\#15](https://github.com/ably/ably-ruby/issues/15)
|
100
|
+
|
101
|
+
**Merged pull requests:**
|
102
|
+
|
103
|
+
- Test encoded presence fixture data for \#get & \#history [\#28](https://github.com/ably/ably-ruby/pull/28) ([mattheworiordan](https://github.com/mattheworiordan))
|
104
|
+
|
105
|
+
- Add coveralls.io coverage reporting [\#27](https://github.com/ably/ably-ruby/pull/27) ([mattheworiordan](https://github.com/mattheworiordan))
|
106
|
+
|
107
|
+
- New paginated resource [\#26](https://github.com/ably/ably-ruby/pull/26) ([mattheworiordan](https://github.com/mattheworiordan))
|
108
|
+
|
109
|
+
- Typed stats similar to Java library + zero default for empty stats [\#25](https://github.com/ably/ably-ruby/pull/25) ([mattheworiordan](https://github.com/mattheworiordan))
|
110
|
+
|
111
|
+
## [v0.7.5](https://github.com/ably/ably-ruby/tree/v0.7.5) (2015-03-21)
|
112
|
+
|
113
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v0.7.4...v0.7.5)
|
114
|
+
|
115
|
+
## [v0.7.4](https://github.com/ably/ably-ruby/tree/v0.7.4) (2015-03-21)
|
116
|
+
|
117
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v0.7.2...v0.7.4)
|
118
|
+
|
119
|
+
**Merged pull requests:**
|
120
|
+
|
121
|
+
- Presence Member Map [\#14](https://github.com/ably/ably-ruby/pull/14) ([mattheworiordan](https://github.com/mattheworiordan))
|
122
|
+
|
123
|
+
## [v0.7.2](https://github.com/ably/ably-ruby/tree/v0.7.2) (2015-02-10)
|
124
|
+
|
125
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v0.7.1...v0.7.2)
|
126
|
+
|
127
|
+
**Implemented enhancements:**
|
128
|
+
|
129
|
+
- Use PresenceMap for presence instead of queues [\#10](https://github.com/ably/ably-ruby/issues/10)
|
130
|
+
|
131
|
+
**Merged pull requests:**
|
132
|
+
|
133
|
+
- Update README to include various missing snippets for core features [\#9](https://github.com/ably/ably-ruby/pull/9) ([kouno](https://github.com/kouno))
|
134
|
+
|
135
|
+
- Fix connection retry frequency [\#7](https://github.com/ably/ably-ruby/pull/7) ([kouno](https://github.com/kouno))
|
136
|
+
|
137
|
+
## [v0.7.1](https://github.com/ably/ably-ruby/tree/v0.7.1) (2015-01-18)
|
138
|
+
|
139
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v0.7.0...v0.7.1)
|
140
|
+
|
141
|
+
## [v0.7.0](https://github.com/ably/ably-ruby/tree/v0.7.0) (2015-01-12)
|
142
|
+
|
143
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v0.6.2...v0.7.0)
|
144
|
+
|
145
|
+
**Closed issues:**
|
146
|
+
|
147
|
+
- JSON encoder should only append utf-8 before a cipher encoder is applied [\#1](https://github.com/ably/ably-ruby/issues/1)
|
148
|
+
|
149
|
+
## [v0.6.2](https://github.com/ably/ably-ruby/tree/v0.6.2) (2014-12-10)
|
150
|
+
|
151
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v0.2.0...v0.6.2)
|
152
|
+
|
153
|
+
## [v0.2.0](https://github.com/ably/ably-ruby/tree/v0.2.0) (2014-12-09)
|
154
|
+
|
155
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v0.1.6...v0.2.0)
|
156
|
+
|
157
|
+
## [v0.1.6](https://github.com/ably/ably-ruby/tree/v0.1.6) (2014-10-31)
|
158
|
+
|
159
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v0.1.5...v0.1.6)
|
160
|
+
|
161
|
+
## [v0.1.5](https://github.com/ably/ably-ruby/tree/v0.1.5) (2014-10-23)
|
162
|
+
|
163
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v0.1.4...v0.1.5)
|
164
|
+
|
165
|
+
## [v0.1.4](https://github.com/ably/ably-ruby/tree/v0.1.4) (2014-09-27)
|
166
|
+
|
167
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v0.1.3...v0.1.4)
|
168
|
+
|
169
|
+
## [v0.1.3](https://github.com/ably/ably-ruby/tree/v0.1.3) (2014-09-26)
|
170
|
+
|
171
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v0.1.2...v0.1.3)
|
172
|
+
|
173
|
+
## [v0.1.2](https://github.com/ably/ably-ruby/tree/v0.1.2) (2014-09-25)
|
174
|
+
|
175
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v0.1.1...v0.1.2)
|
176
|
+
|
177
|
+
## [v0.1.1](https://github.com/ably/ably-ruby/tree/v0.1.1) (2014-09-23)
|
178
|
+
|
179
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v0.1.0...v0.1.1)
|
180
|
+
|
181
|
+
## [v0.1.0](https://github.com/ably/ably-ruby/tree/v0.1.0) (2014-09-23)
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
\* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)*
|
data/LICENSE
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
Copyright (c) 2015 Ably
|
2
|
+
|
3
|
+
Copyright 2015 Ably Real-time Ltd
|
4
|
+
|
5
|
+
Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
you may not use this file except in compliance with the License.
|
7
|
+
You may obtain a copy of the License at
|
8
|
+
|
9
|
+
http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
|
11
|
+
Unless required by applicable law or agreed to in writing, software
|
12
|
+
distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
See the License for the specific language governing permissions and
|
15
|
+
limitations under the License.
|
data/README.md
CHANGED
@@ -187,7 +187,7 @@ token_details = client.auth.request_token
|
|
187
187
|
token_details.token # => "xVLyHw.CLchevH3hF....MDh9ZC_Q"
|
188
188
|
client = Ably::Rest.new(token: token_details.token)
|
189
189
|
|
190
|
-
token = client.auth.create_token_request
|
190
|
+
token = client.auth.create_token_request(token_params: { ttl: 3600 })
|
191
191
|
# => {"id"=>...,
|
192
192
|
# "clientId"=>nil,
|
193
193
|
# "ttl"=>3600,
|
@@ -215,9 +215,13 @@ client.time #=> 2013-12-12 14:23:34 +0000
|
|
215
215
|
|
216
216
|
If you only need to use the REST features of this library and do not want EventMachine as a dependency, then you should use the [Ably Ruby REST gem](https://rubygems.org/gems/ably-rest).
|
217
217
|
|
218
|
-
## Support and
|
218
|
+
## Support, feedback and troubleshooting
|
219
219
|
|
220
|
-
Please visit
|
220
|
+
Please visit http://support.ably.io/ for access to our knowledgebase and to ask for any assistance.
|
221
|
+
|
222
|
+
You can also view the [community reported Github issues](https://github.com/ably/ably-ruby/issues).
|
223
|
+
|
224
|
+
To see what has changed in recent versions of Bundler, see the [CHANGELOG](CHANGELOG.md).
|
221
225
|
|
222
226
|
## Contributing
|
223
227
|
|
@@ -230,4 +234,4 @@ Please visit https://support.ably.io/ for access to our knowledgebase and to ask
|
|
230
234
|
|
231
235
|
## License
|
232
236
|
|
233
|
-
Copyright (c) 2015 Ably, Licensed under
|
237
|
+
Copyright (c) 2015 Ably Real-time Ltd, Licensed under the Apache License, Version 2.0. Refer to [LICENSE](LICENSE) for the license terms.
|
data/SPEC.md
CHANGED
@@ -1,4 +1,59 @@
|
|
1
|
-
# Ably Realtime & REST Client Library 0.8.
|
1
|
+
# Ably Realtime & REST Client Library 0.8.2 Specification
|
2
|
+
|
3
|
+
### Ably::Realtime::Auth
|
4
|
+
_(see [spec/acceptance/realtime/auth_spec.rb](./spec/acceptance/realtime/auth_spec.rb))_
|
5
|
+
* using JSON and MsgPack protocol
|
6
|
+
* with basic auth
|
7
|
+
* #authentication_security_requirements_met?
|
8
|
+
* [returns true](./spec/acceptance/realtime/auth_spec.rb#L20)
|
9
|
+
* #key
|
10
|
+
* [contains the API key](./spec/acceptance/realtime/auth_spec.rb#L27)
|
11
|
+
* #key_name
|
12
|
+
* [contains the API key name](./spec/acceptance/realtime/auth_spec.rb#L34)
|
13
|
+
* #key_secret
|
14
|
+
* [contains the API key secret](./spec/acceptance/realtime/auth_spec.rb#L41)
|
15
|
+
* #using_basic_auth?
|
16
|
+
* [is true when using Basic Auth](./spec/acceptance/realtime/auth_spec.rb#L48)
|
17
|
+
* #using_token_auth?
|
18
|
+
* [is false when using Basic Auth](./spec/acceptance/realtime/auth_spec.rb#L55)
|
19
|
+
* with token auth
|
20
|
+
* #client_id
|
21
|
+
* [contains the ClientOptions client ID](./spec/acceptance/realtime/auth_spec.rb#L67)
|
22
|
+
* #token
|
23
|
+
* [contains the current token after auth](./spec/acceptance/realtime/auth_spec.rb#L76)
|
24
|
+
* #current_token_details
|
25
|
+
* [contains the current token after auth](./spec/acceptance/realtime/auth_spec.rb#L83)
|
26
|
+
* #token_renewable?
|
27
|
+
* [is true when an API key exists](./spec/acceptance/realtime/auth_spec.rb#L93)
|
28
|
+
* #options (auth_options)
|
29
|
+
* [contains the configured auth options](./spec/acceptance/realtime/auth_spec.rb#L103)
|
30
|
+
* #token_params
|
31
|
+
* [contains the configured auth options](./spec/acceptance/realtime/auth_spec.rb#L114)
|
32
|
+
* #using_basic_auth?
|
33
|
+
* [is false when using Token Auth](./spec/acceptance/realtime/auth_spec.rb#L123)
|
34
|
+
* #using_token_auth?
|
35
|
+
* [is true when using Token Auth](./spec/acceptance/realtime/auth_spec.rb#L132)
|
36
|
+
*
|
37
|
+
* #create_token_request
|
38
|
+
* [returns a token request asynchronously](./spec/acceptance/realtime/auth_spec.rb#L146)
|
39
|
+
* #create_token_request_async
|
40
|
+
* [returns a token request synchronously](./spec/acceptance/realtime/auth_spec.rb#L156)
|
41
|
+
* #request_token
|
42
|
+
* [returns a token asynchronously](./spec/acceptance/realtime/auth_spec.rb#L166)
|
43
|
+
* #request_token_async
|
44
|
+
* [returns a token synchronously](./spec/acceptance/realtime/auth_spec.rb#L177)
|
45
|
+
* #authorise
|
46
|
+
* [returns a token asynchronously](./spec/acceptance/realtime/auth_spec.rb#L188)
|
47
|
+
* #authorise_async
|
48
|
+
* [returns a token synchronously](./spec/acceptance/realtime/auth_spec.rb#L199)
|
49
|
+
* #auth_params
|
50
|
+
* [returns the auth params asynchronously](./spec/acceptance/realtime/auth_spec.rb#L211)
|
51
|
+
* #auth_params
|
52
|
+
* [returns the auth params synchronously](./spec/acceptance/realtime/auth_spec.rb#L220)
|
53
|
+
* #auth_header
|
54
|
+
* [returns an auth header asynchronously](./spec/acceptance/realtime/auth_spec.rb#L227)
|
55
|
+
* #auth_header
|
56
|
+
* [returns an auth header synchronously](./spec/acceptance/realtime/auth_spec.rb#L236)
|
2
57
|
|
3
58
|
### Ably::Realtime::Channel#history
|
4
59
|
_(see [spec/acceptance/realtime/channel_history_spec.rb](./spec/acceptance/realtime/channel_history_spec.rb))_
|
@@ -27,82 +82,135 @@ _(see [spec/acceptance/realtime/channel_history_spec.rb](./spec/acceptance/realt
|
|
27
82
|
_(see [spec/acceptance/realtime/channel_spec.rb](./spec/acceptance/realtime/channel_spec.rb))_
|
28
83
|
* using JSON and MsgPack protocol
|
29
84
|
* initialization
|
30
|
-
* with :
|
85
|
+
* with :auto_connect option set to false on connection
|
31
86
|
* [remains initialized when accessing a channel](./spec/acceptance/realtime/channel_spec.rb#L21)
|
32
87
|
* [opens a connection implicitly on #attach](./spec/acceptance/realtime/channel_spec.rb#L29)
|
33
|
-
* [opens a connection implicitly when accessing #presence](./spec/acceptance/realtime/channel_spec.rb#L36)
|
34
88
|
* #attach
|
35
|
-
* [emits attaching then attached events](./spec/acceptance/realtime/channel_spec.rb#
|
36
|
-
* [ignores subsequent #attach calls but calls the success callback if provided](./spec/acceptance/realtime/channel_spec.rb#
|
37
|
-
* [attaches to a channel](./spec/acceptance/realtime/channel_spec.rb#
|
38
|
-
* [attaches to a channel and calls the provided block](./spec/acceptance/realtime/channel_spec.rb#
|
39
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/channel_spec.rb#
|
40
|
-
* [calls the SafeDeferrable callback on success](./spec/acceptance/realtime/channel_spec.rb#
|
89
|
+
* [emits attaching then attached events](./spec/acceptance/realtime/channel_spec.rb#L39)
|
90
|
+
* [ignores subsequent #attach calls but calls the success callback if provided](./spec/acceptance/realtime/channel_spec.rb#L49)
|
91
|
+
* [attaches to a channel](./spec/acceptance/realtime/channel_spec.rb#L62)
|
92
|
+
* [attaches to a channel and calls the provided block](./spec/acceptance/realtime/channel_spec.rb#L70)
|
93
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/channel_spec.rb#L77)
|
94
|
+
* [calls the SafeDeferrable callback on success](./spec/acceptance/realtime/channel_spec.rb#L82)
|
41
95
|
* when state is :failed
|
42
|
-
* [reattaches](./spec/acceptance/realtime/channel_spec.rb#
|
96
|
+
* [reattaches](./spec/acceptance/realtime/channel_spec.rb#L93)
|
43
97
|
* when state is :detaching
|
44
|
-
* [moves straight to attaching and skips detached](./spec/acceptance/realtime/channel_spec.rb#
|
98
|
+
* [moves straight to attaching and skips detached](./spec/acceptance/realtime/channel_spec.rb#L106)
|
45
99
|
* with many connections and many channels on each simultaneously
|
46
|
-
* [attaches all channels](./spec/acceptance/realtime/channel_spec.rb#
|
100
|
+
* [attaches all channels](./spec/acceptance/realtime/channel_spec.rb#L132)
|
47
101
|
* failure as a result of insufficient key permissions
|
48
|
-
* [
|
49
|
-
* [calls the errback of the returned Deferrable](./spec/acceptance/realtime/channel_spec.rb#
|
50
|
-
* [
|
51
|
-
* [updates the error_reason](./spec/acceptance/realtime/channel_spec.rb#
|
102
|
+
* [emits failed event](./spec/acceptance/realtime/channel_spec.rb#L155)
|
103
|
+
* [calls the errback of the returned Deferrable](./spec/acceptance/realtime/channel_spec.rb#L164)
|
104
|
+
* [emits an error event](./spec/acceptance/realtime/channel_spec.rb#L172)
|
105
|
+
* [updates the error_reason](./spec/acceptance/realtime/channel_spec.rb#L181)
|
52
106
|
* and subsequent authorisation with suitable permissions
|
53
|
-
* [attaches to the channel successfully and resets the channel error_reason](./spec/acceptance/realtime/channel_spec.rb#
|
107
|
+
* [attaches to the channel successfully and resets the channel error_reason](./spec/acceptance/realtime/channel_spec.rb#L190)
|
54
108
|
* #detach
|
55
|
-
* [detaches from a channel](./spec/acceptance/realtime/channel_spec.rb#
|
56
|
-
* [detaches from a channel and calls the provided block](./spec/acceptance/realtime/channel_spec.rb#
|
57
|
-
* [emits :detaching then :detached events](./spec/acceptance/realtime/channel_spec.rb#
|
58
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/channel_spec.rb#
|
59
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/channel_spec.rb#
|
109
|
+
* [detaches from a channel](./spec/acceptance/realtime/channel_spec.rb#L212)
|
110
|
+
* [detaches from a channel and calls the provided block](./spec/acceptance/realtime/channel_spec.rb#L222)
|
111
|
+
* [emits :detaching then :detached events](./spec/acceptance/realtime/channel_spec.rb#L231)
|
112
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/channel_spec.rb#L243)
|
113
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/channel_spec.rb#L250)
|
60
114
|
* when state is :failed
|
61
|
-
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#
|
115
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L263)
|
62
116
|
* when state is :attaching
|
63
|
-
* [moves straight to :detaching state and skips :attached](./spec/acceptance/realtime/channel_spec.rb#
|
117
|
+
* [moves straight to :detaching state and skips :attached](./spec/acceptance/realtime/channel_spec.rb#L274)
|
64
118
|
* when state is :detaching
|
65
|
-
* [ignores subsequent #detach calls but calls the callback if provided](./spec/acceptance/realtime/channel_spec.rb#
|
119
|
+
* [ignores subsequent #detach calls but calls the callback if provided](./spec/acceptance/realtime/channel_spec.rb#L292)
|
120
|
+
* when state is :initialized
|
121
|
+
* [does nothing as there is no channel to detach](./spec/acceptance/realtime/channel_spec.rb#L309)
|
122
|
+
* [returns a valid deferrable](./spec/acceptance/realtime/channel_spec.rb#L317)
|
66
123
|
* channel recovery in :attaching state
|
67
124
|
* the transport is disconnected before the ATTACHED protocol message is received
|
68
|
-
* PENDING: *[attach times out and fails if not ATTACHED protocol message received](./spec/acceptance/realtime/channel_spec.rb#
|
69
|
-
* PENDING: *[channel is ATTACHED if ATTACHED protocol message is later received](./spec/acceptance/realtime/channel_spec.rb#
|
70
|
-
* PENDING: *[sends an ATTACH protocol message in response to a channel message being received on the attaching channel](./spec/acceptance/realtime/channel_spec.rb#
|
125
|
+
* PENDING: *[attach times out and fails if not ATTACHED protocol message received](./spec/acceptance/realtime/channel_spec.rb#L329)*
|
126
|
+
* PENDING: *[channel is ATTACHED if ATTACHED protocol message is later received](./spec/acceptance/realtime/channel_spec.rb#L330)*
|
127
|
+
* PENDING: *[sends an ATTACH protocol message in response to a channel message being received on the attaching channel](./spec/acceptance/realtime/channel_spec.rb#L331)*
|
71
128
|
* #publish
|
72
129
|
* when attached
|
73
|
-
* [publishes messages](./spec/acceptance/realtime/channel_spec.rb#
|
130
|
+
* [publishes messages](./spec/acceptance/realtime/channel_spec.rb#L340)
|
74
131
|
* when not yet attached
|
75
|
-
* [publishes queued messages once attached](./spec/acceptance/realtime/channel_spec.rb#
|
76
|
-
* [publishes queued messages within a single protocol message](./spec/acceptance/realtime/channel_spec.rb#
|
132
|
+
* [publishes queued messages once attached](./spec/acceptance/realtime/channel_spec.rb#L352)
|
133
|
+
* [publishes queued messages within a single protocol message](./spec/acceptance/realtime/channel_spec.rb#L360)
|
134
|
+
* with :queue_messages client option set to false
|
135
|
+
* and connection state initialized
|
136
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L383)
|
137
|
+
* and connection state connecting
|
138
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L391)
|
139
|
+
* and connection state disconnected
|
140
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L403)
|
141
|
+
* and connection state connected
|
142
|
+
* [publishes the message](./spec/acceptance/realtime/channel_spec.rb#L416)
|
143
|
+
* with name and data arguments
|
144
|
+
* [publishes the message and return true indicating success](./spec/acceptance/realtime/channel_spec.rb#L427)
|
145
|
+
* with an array of Hash objects with :name and :data attributes
|
146
|
+
* [publishes an array of messages in one ProtocolMessage](./spec/acceptance/realtime/channel_spec.rb#L445)
|
147
|
+
* with an array of Message objects
|
148
|
+
* [publishes an array of messages in one ProtocolMessage](./spec/acceptance/realtime/channel_spec.rb#L473)
|
149
|
+
* with two invalid message out of 12
|
150
|
+
* PENDING: *[calls the errback once](./spec/acceptance/realtime/channel_spec.rb#L501)*
|
151
|
+
* only invalid messages
|
152
|
+
* PENDING: *[calls the errback once](./spec/acceptance/realtime/channel_spec.rb#L527)*
|
153
|
+
* with many many messages and many connections simultaneously
|
154
|
+
* [publishes all messages, all success callbacks are called, and a history request confirms all messages were published](./spec/acceptance/realtime/channel_spec.rb#L551)
|
77
155
|
* #subscribe
|
78
156
|
* with an event argument
|
79
|
-
* [subscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#
|
157
|
+
* [subscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L574)
|
158
|
+
* before attach
|
159
|
+
* [receives messages as soon as attached](./spec/acceptance/realtime/channel_spec.rb#L584)
|
80
160
|
* with no event argument
|
81
|
-
* [subscribes for all events](./spec/acceptance/realtime/channel_spec.rb#
|
161
|
+
* [subscribes for all events](./spec/acceptance/realtime/channel_spec.rb#L598)
|
82
162
|
* many times with different event names
|
83
|
-
* [filters events accordingly to each callback](./spec/acceptance/realtime/channel_spec.rb#
|
163
|
+
* [filters events accordingly to each callback](./spec/acceptance/realtime/channel_spec.rb#L608)
|
84
164
|
* #unsubscribe
|
85
165
|
* with an event argument
|
86
|
-
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#
|
166
|
+
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L631)
|
87
167
|
* with no event argument
|
88
|
-
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#
|
168
|
+
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L644)
|
89
169
|
* when connection state changes to
|
90
170
|
* :failed
|
91
171
|
* an :attached channel
|
92
|
-
* [transitions state to :failed](./spec/acceptance/realtime/channel_spec.rb#
|
93
|
-
* [
|
94
|
-
* [updates the channel error_reason](./spec/acceptance/realtime/channel_spec.rb#
|
172
|
+
* [transitions state to :failed](./spec/acceptance/realtime/channel_spec.rb#L667)
|
173
|
+
* [emits an error event on the channel](./spec/acceptance/realtime/channel_spec.rb#L678)
|
174
|
+
* [updates the channel error_reason](./spec/acceptance/realtime/channel_spec.rb#L689)
|
95
175
|
* a :detached channel
|
96
|
-
* [remains in the :detached state](./spec/acceptance/realtime/channel_spec.rb#
|
176
|
+
* [remains in the :detached state](./spec/acceptance/realtime/channel_spec.rb#L702)
|
97
177
|
* a :failed channel
|
98
|
-
* [remains in the :failed state and ignores the failure error](./spec/acceptance/realtime/channel_spec.rb#
|
178
|
+
* [remains in the :failed state and ignores the failure error](./spec/acceptance/realtime/channel_spec.rb#L722)
|
179
|
+
* a channel ATTACH request
|
180
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L743)
|
99
181
|
* :closed
|
100
182
|
* an :attached channel
|
101
|
-
* [transitions state to :detached](./spec/acceptance/realtime/channel_spec.rb#
|
183
|
+
* [transitions state to :detached](./spec/acceptance/realtime/channel_spec.rb#L757)
|
102
184
|
* a :detached channel
|
103
|
-
* [remains in the :detached state](./spec/acceptance/realtime/channel_spec.rb#
|
185
|
+
* [remains in the :detached state](./spec/acceptance/realtime/channel_spec.rb#L768)
|
104
186
|
* a :failed channel
|
105
|
-
* [remains in the :failed state and retains the error_reason](./spec/acceptance/realtime/channel_spec.rb#
|
187
|
+
* [remains in the :failed state and retains the error_reason](./spec/acceptance/realtime/channel_spec.rb#L789)
|
188
|
+
* a channel ATTACH request when connection CLOSED
|
189
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L810)
|
190
|
+
* a channel ATTACH request when connection CLOSING
|
191
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L822)
|
192
|
+
* #presence
|
193
|
+
* [returns a Ably::Realtime::Presence object](./spec/acceptance/realtime/channel_spec.rb#L836)
|
194
|
+
|
195
|
+
### Ably::Realtime::Channels
|
196
|
+
_(see [spec/acceptance/realtime/channels_spec.rb](./spec/acceptance/realtime/channels_spec.rb))_
|
197
|
+
* using JSON and MsgPack protocol
|
198
|
+
* using shortcut method #channel on the client object
|
199
|
+
* behaves like a channel
|
200
|
+
* [returns a channel object](./spec/acceptance/realtime/channels_spec.rb#L6)
|
201
|
+
* [returns channel object and passes the provided options](./spec/acceptance/realtime/channels_spec.rb#L11)
|
202
|
+
* using #get method on client#channels
|
203
|
+
* behaves like a channel
|
204
|
+
* [returns a channel object](./spec/acceptance/realtime/channels_spec.rb#L6)
|
205
|
+
* [returns channel object and passes the provided options](./spec/acceptance/realtime/channels_spec.rb#L11)
|
206
|
+
* accessing an existing channel object with different options
|
207
|
+
* [overrides the existing channel options and returns the channel object](./spec/acceptance/realtime/channels_spec.rb#L39)
|
208
|
+
* accessing an existing channel object without specifying any channel options
|
209
|
+
* [returns the existing channel without modifying the channel options](./spec/acceptance/realtime/channels_spec.rb#L50)
|
210
|
+
* using undocumented array accessor [] method on client#channels
|
211
|
+
* behaves like a channel
|
212
|
+
* [returns a channel object](./spec/acceptance/realtime/channels_spec.rb#L6)
|
213
|
+
* [returns channel object and passes the provided options](./spec/acceptance/realtime/channels_spec.rb#L11)
|
106
214
|
|
107
215
|
### Ably::Realtime::Client
|
108
216
|
_(see [spec/acceptance/realtime/client_spec.rb](./spec/acceptance/realtime/client_spec.rb))_
|
@@ -111,7 +219,7 @@ _(see [spec/acceptance/realtime/client_spec.rb](./spec/acceptance/realtime/clien
|
|
111
219
|
* basic auth
|
112
220
|
* [is enabled by default with a provided :key option](./spec/acceptance/realtime/client_spec.rb#L18)
|
113
221
|
* :tls option
|
114
|
-
* set to false to
|
222
|
+
* set to false to force a plain-text connection
|
115
223
|
* [fails to connect because a private key cannot be sent over a non-secure connection](./spec/acceptance/realtime/client_spec.rb#L31)
|
116
224
|
* token auth
|
117
225
|
* with TLS enabled
|
@@ -131,6 +239,12 @@ _(see [spec/acceptance/realtime/client_spec.rb](./spec/acceptance/realtime/clien
|
|
131
239
|
* with a Proc for the :auth_callback option
|
132
240
|
* [calls the Proc](./spec/acceptance/realtime/client_spec.rb#L102)
|
133
241
|
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/realtime/client_spec.rb#L109)
|
242
|
+
* #connection
|
243
|
+
* [provides access to the Connection object](./spec/acceptance/realtime/client_spec.rb#L120)
|
244
|
+
* #channels
|
245
|
+
* [provides access to the Channels collection object](./spec/acceptance/realtime/client_spec.rb#L127)
|
246
|
+
* #auth
|
247
|
+
* [provides access to the Realtime::Auth object](./spec/acceptance/realtime/client_spec.rb#L134)
|
134
248
|
|
135
249
|
### Ably::Realtime::Connection failures
|
136
250
|
_(see [spec/acceptance/realtime/connection_failures_spec.rb](./spec/acceptance/realtime/connection_failures_spec.rb))_
|
@@ -153,7 +267,7 @@ _(see [spec/acceptance/realtime/connection_failures_spec.rb](./spec/acceptance/r
|
|
153
267
|
* [transitions connection state to :closed](./spec/acceptance/realtime/connection_failures_spec.rb#L151)
|
154
268
|
* when connection state is :failed
|
155
269
|
* #close
|
156
|
-
* [will not transition state to :close and raises a
|
270
|
+
* [will not transition state to :close and raises a InvalidStateChange exception](./spec/acceptance/realtime/connection_failures_spec.rb#L170)
|
157
271
|
* #error_reason
|
158
272
|
* [contains the error when state is disconnected](./spec/acceptance/realtime/connection_failures_spec.rb#L184)
|
159
273
|
* [contains the error when state is suspended](./spec/acceptance/realtime/connection_failures_spec.rb#L184)
|
@@ -162,8 +276,8 @@ _(see [spec/acceptance/realtime/connection_failures_spec.rb](./spec/acceptance/r
|
|
162
276
|
* [is reset to nil when :closed](./spec/acceptance/realtime/connection_failures_spec.rb#L204)
|
163
277
|
* #connect
|
164
278
|
* connection opening times out
|
165
|
-
* [attempts to reconnect](./spec/acceptance/realtime/connection_failures_spec.rb#
|
166
|
-
* [calls the errback of the returned Deferrable object when first connection attempt fails](./spec/acceptance/realtime/connection_failures_spec.rb#
|
279
|
+
* [attempts to reconnect](./spec/acceptance/realtime/connection_failures_spec.rb#L233)
|
280
|
+
* [calls the errback of the returned Deferrable object when first connection attempt fails](./spec/acceptance/realtime/connection_failures_spec.rb#L246)
|
167
281
|
* when retry intervals are stubbed to attempt reconnection quickly
|
168
282
|
* [never calls the provided success block](./spec/acceptance/realtime/connection_failures_spec.rb#L263)
|
169
283
|
* connection resume
|
@@ -182,414 +296,625 @@ _(see [spec/acceptance/realtime/connection_failures_spec.rb](./spec/acceptance/r
|
|
182
296
|
* because the connection_key is not or no longer valid
|
183
297
|
* [updates the connection_id and connection_key](./spec/acceptance/realtime/connection_failures_spec.rb#L470)
|
184
298
|
* [detaches all channels](./spec/acceptance/realtime/connection_failures_spec.rb#L485)
|
185
|
-
* [emits an error on the channel and sets the error reason](./spec/acceptance/realtime/connection_failures_spec.rb#
|
299
|
+
* [emits an error on the channel and sets the error reason](./spec/acceptance/realtime/connection_failures_spec.rb#L504)
|
186
300
|
* fallback host feature
|
187
301
|
* with custom realtime websocket host option
|
188
|
-
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#
|
189
|
-
* with
|
302
|
+
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#L543)
|
303
|
+
* with custom realtime websocket port option
|
190
304
|
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#L559)
|
305
|
+
* with non-production environment
|
306
|
+
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#L576)
|
191
307
|
* with production environment
|
192
308
|
* when the Internet is down
|
193
|
-
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#
|
309
|
+
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#L604)
|
194
310
|
* when the Internet is up
|
195
|
-
* [uses a fallback host on every subsequent disconnected attempt until suspended](./spec/acceptance/realtime/connection_failures_spec.rb#
|
196
|
-
* [uses the primary host when suspended, and a fallback host on every subsequent suspended attempt](./spec/acceptance/realtime/connection_failures_spec.rb#
|
311
|
+
* [uses a fallback host on every subsequent disconnected attempt until suspended](./spec/acceptance/realtime/connection_failures_spec.rb#L621)
|
312
|
+
* [uses the primary host when suspended, and a fallback host on every subsequent suspended attempt](./spec/acceptance/realtime/connection_failures_spec.rb#L640)
|
197
313
|
|
198
314
|
### Ably::Realtime::Connection
|
199
315
|
_(see [spec/acceptance/realtime/connection_spec.rb](./spec/acceptance/realtime/connection_spec.rb))_
|
200
316
|
* using JSON and MsgPack protocol
|
201
317
|
* intialization
|
202
318
|
* [connects automatically](./spec/acceptance/realtime/connection_spec.rb#L23)
|
203
|
-
* with :
|
319
|
+
* with :auto_connect option set to false
|
204
320
|
* [does not connect automatically](./spec/acceptance/realtime/connection_spec.rb#L35)
|
205
321
|
* [connects when method #connect is called](./spec/acceptance/realtime/connection_spec.rb#L43)
|
206
322
|
* with token auth
|
207
323
|
* for renewable tokens
|
208
324
|
* that are valid for the duration of the test
|
209
325
|
* with valid pre authorised token expiring in the future
|
210
|
-
* [uses the existing token created by Auth](./spec/acceptance/realtime/connection_spec.rb#
|
326
|
+
* [uses the existing token created by Auth](./spec/acceptance/realtime/connection_spec.rb#L64)
|
211
327
|
* with implicit authorisation
|
212
|
-
* [uses the token created by the implicit authorisation](./spec/acceptance/realtime/connection_spec.rb#
|
328
|
+
* [uses the token created by the implicit authorisation](./spec/acceptance/realtime/connection_spec.rb#L76)
|
213
329
|
* that expire
|
214
330
|
* opening a new connection
|
215
331
|
* with recently expired token
|
216
|
-
* [renews the token on connect](./spec/acceptance/realtime/connection_spec.rb#
|
332
|
+
* [renews the token on connect without changing connection state](./spec/acceptance/realtime/connection_spec.rb#L108)
|
217
333
|
* with immediately expiring token
|
218
|
-
* [renews the token on connect, and only makes one subsequent attempt to obtain a new token](./spec/acceptance/realtime/connection_spec.rb#
|
219
|
-
* [uses the primary host for subsequent connection and auth requests](./spec/acceptance/realtime/connection_spec.rb#
|
334
|
+
* [renews the token on connect, and only makes one subsequent attempt to obtain a new token](./spec/acceptance/realtime/connection_spec.rb#L127)
|
335
|
+
* [uses the primary host for subsequent connection and auth requests](./spec/acceptance/realtime/connection_spec.rb#L137)
|
220
336
|
* when connected with a valid non-expired token
|
221
337
|
* that then expires following the connection being opened
|
222
|
-
* PENDING: *[retains connection state](./spec/acceptance/realtime/connection_spec.rb#
|
223
|
-
* PENDING: *[changes state to failed if a new token cannot be issued](./spec/acceptance/realtime/connection_spec.rb#
|
338
|
+
* PENDING: *[retains connection state](./spec/acceptance/realtime/connection_spec.rb#L193)*
|
339
|
+
* PENDING: *[changes state to failed if a new token cannot be issued](./spec/acceptance/realtime/connection_spec.rb#L194)*
|
224
340
|
* the server
|
225
|
-
* [disconnects the client, and the client automatically renews the token and then reconnects](./spec/acceptance/realtime/connection_spec.rb#
|
341
|
+
* [disconnects the client, and the client automatically renews the token and then reconnects](./spec/acceptance/realtime/connection_spec.rb#L164)
|
226
342
|
* for non-renewable tokens
|
227
343
|
* that are expired
|
228
344
|
* opening a new connection
|
229
|
-
* [transitions state to failed](./spec/acceptance/realtime/connection_spec.rb#
|
345
|
+
* [transitions state to failed](./spec/acceptance/realtime/connection_spec.rb#L214)
|
230
346
|
* when connected
|
231
|
-
* PENDING: *[transitions state to failed](./spec/acceptance/realtime/connection_spec.rb#
|
347
|
+
* PENDING: *[transitions state to failed](./spec/acceptance/realtime/connection_spec.rb#L227)*
|
232
348
|
* initialization state changes
|
233
349
|
* with implicit #connect
|
234
|
-
* [are
|
350
|
+
* [are emitted in order](./spec/acceptance/realtime/connection_spec.rb#L254)
|
235
351
|
* with explicit #connect
|
236
|
-
* [are
|
352
|
+
* [are emitted in order](./spec/acceptance/realtime/connection_spec.rb#L260)
|
237
353
|
* #connect
|
238
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#
|
239
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#
|
354
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#L268)
|
355
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#L273)
|
240
356
|
* when already connected
|
241
|
-
* [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#
|
357
|
+
* [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#L282)
|
358
|
+
* connection#id
|
359
|
+
* [is null before connecting](./spec/acceptance/realtime/connection_spec.rb#L296)
|
360
|
+
* connection#key
|
361
|
+
* [is null before connecting](./spec/acceptance/realtime/connection_spec.rb#L303)
|
242
362
|
* once connected
|
243
363
|
* connection#id
|
244
|
-
* [is a string](./spec/acceptance/realtime/connection_spec.rb#
|
245
|
-
* [is unique from the connection#key](./spec/acceptance/realtime/connection_spec.rb#
|
246
|
-
* [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#
|
364
|
+
* [is a string](./spec/acceptance/realtime/connection_spec.rb#L313)
|
365
|
+
* [is unique from the connection#key](./spec/acceptance/realtime/connection_spec.rb#L320)
|
366
|
+
* [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#L327)
|
247
367
|
* connection#key
|
248
|
-
* [is a string](./spec/acceptance/realtime/connection_spec.rb#
|
249
|
-
* [is unique from the connection#id](./spec/acceptance/realtime/connection_spec.rb#
|
250
|
-
* [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#
|
368
|
+
* [is a string](./spec/acceptance/realtime/connection_spec.rb#L336)
|
369
|
+
* [is unique from the connection#id](./spec/acceptance/realtime/connection_spec.rb#L343)
|
370
|
+
* [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#L350)
|
251
371
|
* following a previous connection being opened and closed
|
252
|
-
* [reconnects and is provided with a new connection ID and connection key from the server](./spec/acceptance/realtime/connection_spec.rb#
|
372
|
+
* [reconnects and is provided with a new connection ID and connection key from the server](./spec/acceptance/realtime/connection_spec.rb#L360)
|
373
|
+
* when closing
|
374
|
+
* [raises an exception before the connection is closed](./spec/acceptance/realtime/connection_spec.rb#L377)
|
253
375
|
* #serial connection serial
|
254
|
-
* [is set to -1 when a new connection is opened](./spec/acceptance/realtime/connection_spec.rb#
|
255
|
-
* [is set to 0 when a message sent ACK is received](./spec/acceptance/realtime/connection_spec.rb#
|
256
|
-
* [is set to 1 when the second message sent ACK is received](./spec/acceptance/realtime/connection_spec.rb#
|
376
|
+
* [is set to -1 when a new connection is opened](./spec/acceptance/realtime/connection_spec.rb#L392)
|
377
|
+
* [is set to 0 when a message sent ACK is received](./spec/acceptance/realtime/connection_spec.rb#L413)
|
378
|
+
* [is set to 1 when the second message sent ACK is received](./spec/acceptance/realtime/connection_spec.rb#L420)
|
257
379
|
* when a message is sent but the ACK has not yet been received
|
258
|
-
* [the sent message msgSerial is 0 but the connection serial remains at -1](./spec/acceptance/realtime/connection_spec.rb#
|
380
|
+
* [the sent message msgSerial is 0 but the connection serial remains at -1](./spec/acceptance/realtime/connection_spec.rb#L400)
|
259
381
|
* #close
|
260
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#
|
261
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#
|
382
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#L431)
|
383
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#L438)
|
262
384
|
* when already closed
|
263
|
-
* [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#
|
385
|
+
* [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#L449)
|
264
386
|
* when connection state is
|
265
387
|
* :initialized
|
266
|
-
* [changes the connection state to :closing and then immediately :closed without sending a ProtocolMessage CLOSE](./spec/acceptance/realtime/connection_spec.rb#
|
388
|
+
* [changes the connection state to :closing and then immediately :closed without sending a ProtocolMessage CLOSE](./spec/acceptance/realtime/connection_spec.rb#L477)
|
267
389
|
* :connected
|
268
|
-
* [changes the connection state to :closing and waits for the server to confirm connection is :closed with a ProtocolMessage](./spec/acceptance/realtime/connection_spec.rb#
|
390
|
+
* [changes the connection state to :closing and waits for the server to confirm connection is :closed with a ProtocolMessage](./spec/acceptance/realtime/connection_spec.rb#L495)
|
269
391
|
* with an unresponsive connection
|
270
|
-
* [force closes the connection when a :closed ProtocolMessage response is not received](./spec/acceptance/realtime/connection_spec.rb#
|
392
|
+
* [force closes the connection when a :closed ProtocolMessage response is not received](./spec/acceptance/realtime/connection_spec.rb#L525)
|
271
393
|
* #ping
|
272
|
-
* [echoes a heart beat](./spec/acceptance/realtime/connection_spec.rb#
|
394
|
+
* [echoes a heart beat](./spec/acceptance/realtime/connection_spec.rb#L548)
|
273
395
|
* when not connected
|
274
|
-
* [raises an exception](./spec/acceptance/realtime/connection_spec.rb#
|
396
|
+
* [raises an exception](./spec/acceptance/realtime/connection_spec.rb#L558)
|
275
397
|
* with a success block that raises an exception
|
276
|
-
* [catches the exception and logs the error](./spec/acceptance/realtime/connection_spec.rb#
|
398
|
+
* [catches the exception and logs the error](./spec/acceptance/realtime/connection_spec.rb#L565)
|
277
399
|
* recovery
|
278
400
|
* #recovery_key
|
279
|
-
* [is composed of connection key and serial that is kept up to date with each message ACK received](./spec/acceptance/realtime/connection_spec.rb#
|
280
|
-
* [is available when connection is in one of the states: connecting, connected, disconnected, suspended, failed](./spec/acceptance/realtime/connection_spec.rb#
|
281
|
-
* [is nil when connection is explicitly CLOSED](./spec/acceptance/realtime/connection_spec.rb#
|
401
|
+
* [is composed of connection key and serial that is kept up to date with each message ACK received](./spec/acceptance/realtime/connection_spec.rb#L602)
|
402
|
+
* [is available when connection is in one of the states: connecting, connected, disconnected, suspended, failed](./spec/acceptance/realtime/connection_spec.rb#L625)
|
403
|
+
* [is nil when connection is explicitly CLOSED](./spec/acceptance/realtime/connection_spec.rb#L649)
|
282
404
|
* opening a new connection using a recently disconnected connection's #recovery_key
|
283
405
|
* connection#id and connection#key after recovery
|
284
|
-
* [remains the same](./spec/acceptance/realtime/connection_spec.rb#
|
406
|
+
* [remains the same](./spec/acceptance/realtime/connection_spec.rb#L663)
|
285
407
|
* when messages have been sent whilst the old connection is disconnected
|
286
408
|
* the new connection
|
287
|
-
* [recovers server-side queued messages](./spec/acceptance/realtime/connection_spec.rb#
|
409
|
+
* [recovers server-side queued messages](./spec/acceptance/realtime/connection_spec.rb#L704)
|
288
410
|
* with :recover option
|
289
411
|
* with invalid syntax
|
290
|
-
* [raises an exception](./spec/acceptance/realtime/connection_spec.rb#
|
412
|
+
* [raises an exception](./spec/acceptance/realtime/connection_spec.rb#L729)
|
291
413
|
* with invalid formatted value sent to server
|
292
|
-
* [
|
414
|
+
* [emits a fatal error on the connection object, sets the #error_reason and disconnects](./spec/acceptance/realtime/connection_spec.rb#L738)
|
293
415
|
* with expired (missing) value sent to server
|
294
|
-
* [
|
416
|
+
* [emits an error on the connection object, sets the #error_reason, yet will connect anyway](./spec/acceptance/realtime/connection_spec.rb#L753)
|
295
417
|
* with many connections simultaneously
|
296
|
-
* [opens each with a unique connection#id and connection#key](./spec/acceptance/realtime/connection_spec.rb#
|
418
|
+
* [opens each with a unique connection#id and connection#key](./spec/acceptance/realtime/connection_spec.rb#L772)
|
297
419
|
* when a state transition is unsupported
|
298
|
-
* [emits a
|
420
|
+
* [emits a InvalidStateChange](./spec/acceptance/realtime/connection_spec.rb#L792)
|
299
421
|
* protocol failure
|
300
422
|
* receiving an invalid ProtocolMessage
|
301
|
-
* [emits an error on the connection and logs a fatal error message](./spec/acceptance/realtime/connection_spec.rb#
|
423
|
+
* [emits an error on the connection and logs a fatal error message](./spec/acceptance/realtime/connection_spec.rb#L808)
|
302
424
|
* undocumented method
|
303
425
|
* #internet_up?
|
304
|
-
* [returns a Deferrable](./spec/acceptance/realtime/connection_spec.rb#
|
426
|
+
* [returns a Deferrable](./spec/acceptance/realtime/connection_spec.rb#L824)
|
305
427
|
* internet up URL protocol
|
306
428
|
* when using TLS for the connection
|
307
|
-
* [uses TLS for the Internet check to https://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#
|
429
|
+
* [uses TLS for the Internet check to https://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#L835)
|
308
430
|
* when using a non-secured connection
|
309
|
-
* [uses TLS for the Internet check to http://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#
|
431
|
+
* [uses TLS for the Internet check to http://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#L845)
|
310
432
|
* when the Internet is up
|
311
|
-
* [calls the block with true](./spec/acceptance/realtime/connection_spec.rb#
|
312
|
-
* [calls the success callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#
|
433
|
+
* [calls the block with true](./spec/acceptance/realtime/connection_spec.rb#L876)
|
434
|
+
* [calls the success callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#L883)
|
435
|
+
* with a TLS connection
|
436
|
+
* [checks the Internet up URL over TLS](./spec/acceptance/realtime/connection_spec.rb#L859)
|
437
|
+
* with a non-TLS connection
|
438
|
+
* [checks the Internet up URL over TLS](./spec/acceptance/realtime/connection_spec.rb#L869)
|
313
439
|
* when the Internet is down
|
314
|
-
* [calls the block with false](./spec/acceptance/realtime/connection_spec.rb#
|
315
|
-
* [calls the failure callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#
|
440
|
+
* [calls the block with false](./spec/acceptance/realtime/connection_spec.rb#L898)
|
441
|
+
* [calls the failure callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#L905)
|
442
|
+
* state change side effects
|
443
|
+
* when connection enters the :disconnected state
|
444
|
+
* [queues messages to be sent and all channels remain attached](./spec/acceptance/realtime/connection_spec.rb#L919)
|
445
|
+
* when connection enters the :suspended state
|
446
|
+
* [detaches the channels and prevents publishing of messages on those channels](./spec/acceptance/realtime/connection_spec.rb#L952)
|
447
|
+
* when connection enters the :failed state
|
448
|
+
* [sets all channels to failed and prevents publishing of messages on those channels](./spec/acceptance/realtime/connection_spec.rb#L973)
|
316
449
|
|
317
450
|
### Ably::Realtime::Channel Message
|
318
451
|
_(see [spec/acceptance/realtime/message_spec.rb](./spec/acceptance/realtime/message_spec.rb))_
|
319
452
|
* using JSON and MsgPack protocol
|
320
453
|
* [sends a String data payload](./spec/acceptance/realtime/message_spec.rb#L25)
|
454
|
+
* with supported data payload content type
|
455
|
+
* JSON Object (Hash)
|
456
|
+
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/message_spec.rb#L48)
|
457
|
+
* JSON Array
|
458
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/message_spec.rb#L56)
|
459
|
+
* String
|
460
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/message_spec.rb#L64)
|
461
|
+
* Binary
|
462
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/message_spec.rb#L72)
|
463
|
+
* with unsupported data payload content type
|
464
|
+
* Integer
|
465
|
+
* [is raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/message_spec.rb#L82)
|
466
|
+
* Float
|
467
|
+
* [is raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/message_spec.rb#L91)
|
468
|
+
* Boolean
|
469
|
+
* [is raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/message_spec.rb#L100)
|
470
|
+
* False
|
471
|
+
* [is raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/message_spec.rb#L109)
|
321
472
|
* with ASCII_8BIT message name
|
322
|
-
* [is converted into UTF_8](./spec/acceptance/realtime/message_spec.rb#
|
473
|
+
* [is converted into UTF_8](./spec/acceptance/realtime/message_spec.rb#L118)
|
323
474
|
* when the message publisher has a client_id
|
324
|
-
* [contains a #client_id attribute](./spec/acceptance/realtime/message_spec.rb#
|
475
|
+
* PENDING: *[contains a #client_id attribute](./spec/acceptance/realtime/message_spec.rb#L134)*
|
325
476
|
* #connection_id attribute
|
326
477
|
* over realtime
|
327
|
-
* [matches the sender connection#id](./spec/acceptance/realtime/message_spec.rb#
|
478
|
+
* [matches the sender connection#id](./spec/acceptance/realtime/message_spec.rb#L148)
|
328
479
|
* when retrieved over REST
|
329
|
-
* [matches the sender connection#id](./spec/acceptance/realtime/message_spec.rb#
|
480
|
+
* [matches the sender connection#id](./spec/acceptance/realtime/message_spec.rb#L160)
|
330
481
|
* local echo when published
|
331
|
-
* [is enabled by default](./spec/acceptance/realtime/message_spec.rb#
|
482
|
+
* [is enabled by default](./spec/acceptance/realtime/message_spec.rb#L172)
|
332
483
|
* with :echo_messages option set to false
|
333
|
-
* [will not echo messages to the client but will still broadcast messages to other connected clients](./spec/acceptance/realtime/message_spec.rb#
|
484
|
+
* [will not echo messages to the client but will still broadcast messages to other connected clients](./spec/acceptance/realtime/message_spec.rb#L188)
|
334
485
|
* publishing lots of messages across two connections
|
335
|
-
* [sends and receives the messages on both opened connections and calls the success callbacks for each message published](./spec/acceptance/realtime/message_spec.rb#
|
486
|
+
* [sends and receives the messages on both opened connections and calls the success callbacks for each message published](./spec/acceptance/realtime/message_spec.rb#L220)
|
336
487
|
* without suitable publishing permissions
|
337
|
-
* [calls the error callback](./spec/acceptance/realtime/message_spec.rb#
|
488
|
+
* [calls the error callback](./spec/acceptance/realtime/message_spec.rb#L265)
|
338
489
|
* server incorrectly resends a message that was already received by the client library
|
339
|
-
* [discards the message and logs it as an error to the channel](./spec/acceptance/realtime/message_spec.rb#
|
490
|
+
* [discards the message and logs it as an error to the channel](./spec/acceptance/realtime/message_spec.rb#L285)
|
340
491
|
* encoding and decoding encrypted messages
|
341
492
|
* with AES-128-CBC using crypto-data-128.json fixtures
|
342
493
|
* item 0 with encrypted encoding utf-8/cipher+aes-128-cbc/base64
|
343
494
|
* behaves like an Ably encrypter and decrypter
|
344
495
|
* with #publish and #subscribe
|
345
|
-
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#
|
346
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#
|
496
|
+
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#L349)
|
497
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#L367)
|
347
498
|
* item 1 with encrypted encoding cipher+aes-128-cbc/base64
|
348
499
|
* behaves like an Ably encrypter and decrypter
|
349
500
|
* with #publish and #subscribe
|
350
|
-
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#
|
351
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#
|
501
|
+
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#L349)
|
502
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#L367)
|
352
503
|
* item 2 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
|
353
504
|
* behaves like an Ably encrypter and decrypter
|
354
505
|
* with #publish and #subscribe
|
355
|
-
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#
|
356
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#
|
506
|
+
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#L349)
|
507
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#L367)
|
357
508
|
* item 3 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
|
358
509
|
* behaves like an Ably encrypter and decrypter
|
359
510
|
* with #publish and #subscribe
|
360
|
-
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#
|
361
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#
|
511
|
+
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#L349)
|
512
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#L367)
|
362
513
|
* with AES-256-CBC using crypto-data-256.json fixtures
|
363
514
|
* item 0 with encrypted encoding utf-8/cipher+aes-256-cbc/base64
|
364
515
|
* behaves like an Ably encrypter and decrypter
|
365
516
|
* with #publish and #subscribe
|
366
|
-
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#
|
367
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#
|
517
|
+
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#L349)
|
518
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#L367)
|
368
519
|
* item 1 with encrypted encoding cipher+aes-256-cbc/base64
|
369
520
|
* behaves like an Ably encrypter and decrypter
|
370
521
|
* with #publish and #subscribe
|
371
|
-
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#
|
372
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#
|
522
|
+
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#L349)
|
523
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#L367)
|
373
524
|
* item 2 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
|
374
525
|
* behaves like an Ably encrypter and decrypter
|
375
526
|
* with #publish and #subscribe
|
376
|
-
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#
|
377
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#
|
527
|
+
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#L349)
|
528
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#L367)
|
378
529
|
* item 3 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
|
379
530
|
* behaves like an Ably encrypter and decrypter
|
380
531
|
* with #publish and #subscribe
|
381
|
-
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#
|
382
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#
|
532
|
+
* [encrypts message automatically before they are pushed to the server](./spec/acceptance/realtime/message_spec.rb#L349)
|
533
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library](./spec/acceptance/realtime/message_spec.rb#L367)
|
383
534
|
* with multiple sends from one client to another
|
384
|
-
* [encrypts and decrypts all messages](./spec/acceptance/realtime/message_spec.rb#
|
535
|
+
* [encrypts and decrypts all messages](./spec/acceptance/realtime/message_spec.rb#L406)
|
385
536
|
* subscribing with a different transport protocol
|
386
|
-
* [delivers a String ASCII-8BIT payload to the receiver](./spec/acceptance/realtime/message_spec.rb#
|
387
|
-
* [delivers a String UTF-8 payload to the receiver](./spec/acceptance/realtime/message_spec.rb#
|
388
|
-
* [delivers a Hash payload to the receiver](./spec/acceptance/realtime/message_spec.rb#
|
537
|
+
* [delivers a String ASCII-8BIT payload to the receiver](./spec/acceptance/realtime/message_spec.rb#L449)
|
538
|
+
* [delivers a String UTF-8 payload to the receiver](./spec/acceptance/realtime/message_spec.rb#L449)
|
539
|
+
* [delivers a Hash payload to the receiver](./spec/acceptance/realtime/message_spec.rb#L449)
|
389
540
|
* publishing on an unencrypted channel and subscribing on an encrypted channel with another client
|
390
|
-
* [does not attempt to decrypt the message](./spec/acceptance/realtime/message_spec.rb#
|
541
|
+
* [does not attempt to decrypt the message](./spec/acceptance/realtime/message_spec.rb#L468)
|
391
542
|
* publishing on an encrypted channel and subscribing on an unencrypted channel with another client
|
392
|
-
* [delivers the message but still encrypted with a value in the #encoding attribute](./spec/acceptance/realtime/message_spec.rb#
|
393
|
-
* [
|
543
|
+
* [delivers the message but still encrypted with a value in the #encoding attribute](./spec/acceptance/realtime/message_spec.rb#L486)
|
544
|
+
* [emits a Cipher error on the channel](./spec/acceptance/realtime/message_spec.rb#L495)
|
394
545
|
* publishing on an encrypted channel and subscribing with a different algorithm on another client
|
395
|
-
* [delivers the message but still encrypted with the cipher detials in the #encoding attribute](./spec/acceptance/realtime/message_spec.rb#
|
396
|
-
* [
|
546
|
+
* [delivers the message but still encrypted with the cipher detials in the #encoding attribute](./spec/acceptance/realtime/message_spec.rb#L517)
|
547
|
+
* [emits a Cipher error on the channel](./spec/acceptance/realtime/message_spec.rb#L526)
|
397
548
|
* publishing on an encrypted channel and subscribing with a different key on another client
|
398
|
-
* [delivers the message but still encrypted with the cipher details in the #encoding attribute](./spec/acceptance/realtime/message_spec.rb#
|
399
|
-
* [
|
549
|
+
* [delivers the message but still encrypted with the cipher details in the #encoding attribute](./spec/acceptance/realtime/message_spec.rb#L548)
|
550
|
+
* [emits a Cipher error on the channel](./spec/acceptance/realtime/message_spec.rb#L559)
|
400
551
|
|
401
552
|
### Ably::Realtime::Presence history
|
402
553
|
_(see [spec/acceptance/realtime/presence_history_spec.rb](./spec/acceptance/realtime/presence_history_spec.rb))_
|
403
554
|
* using JSON and MsgPack protocol
|
404
555
|
* [provides up to the moment presence history](./spec/acceptance/realtime/presence_history_spec.rb#L21)
|
405
|
-
* [ensures REST presence history message IDs match ProtocolMessage wrapped message and connection IDs via Realtime](./spec/acceptance/realtime/presence_history_spec.rb#
|
556
|
+
* [ensures REST presence history message IDs match ProtocolMessage wrapped message and connection IDs via Realtime](./spec/acceptance/realtime/presence_history_spec.rb#L42)
|
406
557
|
* with option until_attach: true
|
407
|
-
* [retrieves all presence messages before channel was attached](./spec/acceptance/realtime/presence_history_spec.rb#
|
408
|
-
* [raises an exception unless state is attached](./spec/acceptance/realtime/presence_history_spec.rb#
|
558
|
+
* [retrieves all presence messages before channel was attached](./spec/acceptance/realtime/presence_history_spec.rb#L61)
|
559
|
+
* [raises an exception unless state is attached](./spec/acceptance/realtime/presence_history_spec.rb#L93)
|
409
560
|
* and two pages of messages
|
410
|
-
* [retrieves two pages of messages before channel was attached](./spec/acceptance/realtime/presence_history_spec.rb#
|
561
|
+
* [retrieves two pages of messages before channel was attached](./spec/acceptance/realtime/presence_history_spec.rb#L74)
|
411
562
|
|
412
563
|
### Ably::Realtime::Presence
|
413
564
|
_(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/presence_spec.rb))_
|
414
565
|
* using JSON and MsgPack protocol
|
415
566
|
* when attached (but not present) on a presence channel with an anonymous client (no client ID)
|
416
|
-
* [maintains state as other clients enter and leave the channel](./spec/acceptance/realtime/presence_spec.rb#
|
567
|
+
* [maintains state as other clients enter and leave the channel](./spec/acceptance/realtime/presence_spec.rb#L282)
|
417
568
|
* #sync_complete?
|
418
569
|
* when attaching to a channel without any members present
|
419
|
-
* [is true and the presence channel is considered synced immediately](./spec/acceptance/realtime/presence_spec.rb#
|
570
|
+
* [is true and the presence channel is considered synced immediately](./spec/acceptance/realtime/presence_spec.rb#L358)
|
420
571
|
* when attaching to a channel with members present
|
421
|
-
* [is false and the presence channel will subsequently be synced](./spec/acceptance/realtime/presence_spec.rb#
|
572
|
+
* [is false and the presence channel will subsequently be synced](./spec/acceptance/realtime/presence_spec.rb#L367)
|
422
573
|
* 250 existing (present) members on a channel (3 SYNC pages)
|
423
574
|
* requires at least 3 SYNC ProtocolMessages
|
424
575
|
* when a client attaches to the presence channel
|
425
|
-
* [emits :present for each member](./spec/acceptance/realtime/presence_spec.rb#
|
576
|
+
* [emits :present for each member](./spec/acceptance/realtime/presence_spec.rb#L399)
|
426
577
|
* and a member leaves before the SYNC operation is complete
|
427
|
-
* [emits :leave immediately as the member leaves](./spec/acceptance/realtime/presence_spec.rb#
|
428
|
-
* [ignores presence events with timestamps prior to the current :present event in the MembersMap](./spec/acceptance/realtime/presence_spec.rb#
|
429
|
-
* [does not emit :present after the :leave event has been emitted, and that member is not included in the list of members via #get](./spec/acceptance/realtime/presence_spec.rb#
|
578
|
+
* [emits :leave immediately as the member leaves](./spec/acceptance/realtime/presence_spec.rb#L413)
|
579
|
+
* [ignores presence events with timestamps prior to the current :present event in the MembersMap](./spec/acceptance/realtime/presence_spec.rb#L451)
|
580
|
+
* [does not emit :present after the :leave event has been emitted, and that member is not included in the list of members via #get with :wait_for_sync](./spec/acceptance/realtime/presence_spec.rb#L490)
|
430
581
|
* #get
|
431
|
-
*
|
432
|
-
|
433
|
-
|
434
|
-
|
582
|
+
* with :wait_for_sync option set to true
|
583
|
+
* [waits until sync is complete](./spec/acceptance/realtime/presence_spec.rb#L537)
|
584
|
+
* by default
|
585
|
+
* [it does not wait for sync](./spec/acceptance/realtime/presence_spec.rb#L554)
|
435
586
|
* state
|
436
587
|
* once opened
|
437
|
-
* [once opened, enters the :left state if the channel detaches](./spec/acceptance/realtime/presence_spec.rb#
|
588
|
+
* [once opened, enters the :left state if the channel detaches](./spec/acceptance/realtime/presence_spec.rb#L578)
|
438
589
|
* #enter
|
439
|
-
* [allows client_id to be set on enter for anonymous clients](./spec/acceptance/realtime/presence_spec.rb#
|
440
|
-
* [raises an exception if client_id is not set](./spec/acceptance/realtime/presence_spec.rb#
|
590
|
+
* [allows client_id to be set on enter for anonymous clients](./spec/acceptance/realtime/presence_spec.rb#L601)
|
591
|
+
* [raises an exception if client_id is not set](./spec/acceptance/realtime/presence_spec.rb#L648)
|
441
592
|
* data attribute
|
442
593
|
* when provided as argument option to #enter
|
443
|
-
* [remains intact following #leave](./spec/acceptance/realtime/presence_spec.rb#
|
594
|
+
* [remains intact following #leave](./spec/acceptance/realtime/presence_spec.rb#L612)
|
444
595
|
* message #connection_id
|
445
|
-
* [matches the current client connection_id](./spec/acceptance/realtime/presence_spec.rb#
|
596
|
+
* [matches the current client connection_id](./spec/acceptance/realtime/presence_spec.rb#L636)
|
446
597
|
* without necessary capabilities to join presence
|
447
|
-
* [calls the Deferrable errback on capabilities failure](./spec/acceptance/realtime/presence_spec.rb#
|
598
|
+
* [calls the Deferrable errback on capabilities failure](./spec/acceptance/realtime/presence_spec.rb#L660)
|
448
599
|
* it should behave like a public presence method
|
449
600
|
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#L44)
|
450
601
|
* [raise an exception if the channel is failed](./spec/acceptance/realtime/presence_spec.rb#L44)
|
451
|
-
* [
|
452
|
-
* [
|
453
|
-
* [
|
602
|
+
* [implicitly attaches the channel](./spec/acceptance/realtime/presence_spec.rb#L55)
|
603
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#L212)
|
604
|
+
* [allows a block to be passed in that is executed upon success](./spec/acceptance/realtime/presence_spec.rb#L219)
|
605
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#L227)
|
606
|
+
* [catches exceptions in the provided method block and logs them to the logger](./spec/acceptance/realtime/presence_spec.rb#L237)
|
607
|
+
* when :queue_messages client option is false
|
608
|
+
* and connection state initialized
|
609
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L67)
|
610
|
+
* and connection state connecting
|
611
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L75)
|
612
|
+
* and connection state disconnected
|
613
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L88)
|
614
|
+
* and connection state connected
|
615
|
+
* [publishes the message](./spec/acceptance/realtime/presence_spec.rb#L101)
|
616
|
+
* with supported data payload content type
|
617
|
+
* JSON Object (Hash)
|
618
|
+
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/presence_spec.rb#L128)
|
619
|
+
* JSON Array
|
620
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L138)
|
621
|
+
* String
|
622
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L148)
|
623
|
+
* Binary
|
624
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L158)
|
625
|
+
* with unsupported data payload content type
|
626
|
+
* Integer
|
627
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L178)
|
628
|
+
* Float
|
629
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L187)
|
630
|
+
* Boolean
|
631
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L196)
|
632
|
+
* False
|
633
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L205)
|
454
634
|
* if connection fails before success
|
455
|
-
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
635
|
+
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L258)
|
456
636
|
* #update
|
457
|
-
* [without previous #enter automatically enters](./spec/acceptance/realtime/presence_spec.rb#
|
458
|
-
* [updates the data if :data argument provided](./spec/acceptance/realtime/presence_spec.rb#
|
459
|
-
* [updates the data to nil if :data argument is not provided (assumes nil value)](./spec/acceptance/realtime/presence_spec.rb#
|
637
|
+
* [without previous #enter automatically enters](./spec/acceptance/realtime/presence_spec.rb#L672)
|
638
|
+
* [updates the data if :data argument provided](./spec/acceptance/realtime/presence_spec.rb#L697)
|
639
|
+
* [updates the data to nil if :data argument is not provided (assumes nil value)](./spec/acceptance/realtime/presence_spec.rb#L707)
|
460
640
|
* when ENTERED
|
461
|
-
* [has no effect on the state](./spec/acceptance/realtime/presence_spec.rb#
|
641
|
+
* [has no effect on the state](./spec/acceptance/realtime/presence_spec.rb#L682)
|
462
642
|
* it should behave like a public presence method
|
463
643
|
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#L44)
|
464
644
|
* [raise an exception if the channel is failed](./spec/acceptance/realtime/presence_spec.rb#L44)
|
465
|
-
* [
|
466
|
-
* [
|
467
|
-
* [
|
645
|
+
* [implicitly attaches the channel](./spec/acceptance/realtime/presence_spec.rb#L55)
|
646
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#L212)
|
647
|
+
* [allows a block to be passed in that is executed upon success](./spec/acceptance/realtime/presence_spec.rb#L219)
|
648
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#L227)
|
649
|
+
* [catches exceptions in the provided method block and logs them to the logger](./spec/acceptance/realtime/presence_spec.rb#L237)
|
650
|
+
* when :queue_messages client option is false
|
651
|
+
* and connection state initialized
|
652
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L67)
|
653
|
+
* and connection state connecting
|
654
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L75)
|
655
|
+
* and connection state disconnected
|
656
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L88)
|
657
|
+
* and connection state connected
|
658
|
+
* [publishes the message](./spec/acceptance/realtime/presence_spec.rb#L101)
|
659
|
+
* with supported data payload content type
|
660
|
+
* JSON Object (Hash)
|
661
|
+
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/presence_spec.rb#L128)
|
662
|
+
* JSON Array
|
663
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L138)
|
664
|
+
* String
|
665
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L148)
|
666
|
+
* Binary
|
667
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L158)
|
668
|
+
* with unsupported data payload content type
|
669
|
+
* Integer
|
670
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L178)
|
671
|
+
* Float
|
672
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L187)
|
673
|
+
* Boolean
|
674
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L196)
|
675
|
+
* False
|
676
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L205)
|
468
677
|
* if connection fails before success
|
469
|
-
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
678
|
+
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L258)
|
470
679
|
* #leave
|
471
|
-
* [raises an exception if not entered](./spec/acceptance/realtime/presence_spec.rb#
|
680
|
+
* [raises an exception if not entered](./spec/acceptance/realtime/presence_spec.rb#L781)
|
472
681
|
* :data option
|
473
682
|
* when set to a string
|
474
|
-
* [emits the new data for the leave event](./spec/acceptance/realtime/presence_spec.rb#
|
683
|
+
* [emits the new data for the leave event](./spec/acceptance/realtime/presence_spec.rb#L726)
|
475
684
|
* when set to nil
|
476
|
-
* [emits a nil value for the data attribute when leaving](./spec/acceptance/realtime/presence_spec.rb#
|
685
|
+
* [emits a nil value for the data attribute when leaving](./spec/acceptance/realtime/presence_spec.rb#L739)
|
477
686
|
* when not passed as an argument
|
478
|
-
* [emits the previously defined value as a convenience](./spec/acceptance/realtime/presence_spec.rb#
|
687
|
+
* [emits the previously defined value as a convenience](./spec/acceptance/realtime/presence_spec.rb#L752)
|
688
|
+
* and sync is complete
|
689
|
+
* [does not cache members that have left](./spec/acceptance/realtime/presence_spec.rb#L765)
|
479
690
|
* it should behave like a public presence method
|
480
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#
|
481
|
-
* [
|
482
|
-
* [
|
691
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#L212)
|
692
|
+
* [allows a block to be passed in that is executed upon success](./spec/acceptance/realtime/presence_spec.rb#L219)
|
693
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#L227)
|
694
|
+
* [catches exceptions in the provided method block and logs them to the logger](./spec/acceptance/realtime/presence_spec.rb#L237)
|
695
|
+
* with supported data payload content type
|
696
|
+
* JSON Object (Hash)
|
697
|
+
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/presence_spec.rb#L128)
|
698
|
+
* JSON Array
|
699
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L138)
|
700
|
+
* String
|
701
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L148)
|
702
|
+
* Binary
|
703
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L158)
|
704
|
+
* with unsupported data payload content type
|
705
|
+
* Integer
|
706
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L178)
|
707
|
+
* Float
|
708
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L187)
|
709
|
+
* Boolean
|
710
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L196)
|
711
|
+
* False
|
712
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L205)
|
483
713
|
* if connection fails before success
|
484
|
-
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
714
|
+
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L258)
|
485
715
|
* :left event
|
486
|
-
* [emits the data defined in enter](./spec/acceptance/realtime/presence_spec.rb#
|
487
|
-
* [emits the data defined in update](./spec/acceptance/realtime/presence_spec.rb#
|
716
|
+
* [emits the data defined in enter](./spec/acceptance/realtime/presence_spec.rb#L790)
|
717
|
+
* [emits the data defined in update](./spec/acceptance/realtime/presence_spec.rb#L801)
|
488
718
|
* entering/updating/leaving presence state on behalf of another client_id
|
489
719
|
* #enter_client
|
490
720
|
* multiple times on the same channel with different client_ids
|
491
|
-
* [has no affect on the client's presence state and only enters on behalf of the provided client_id](./spec/acceptance/realtime/presence_spec.rb#
|
492
|
-
* [enters a channel and sets the data based on the provided :data option](./spec/acceptance/realtime/presence_spec.rb#
|
721
|
+
* [has no affect on the client's presence state and only enters on behalf of the provided client_id](./spec/acceptance/realtime/presence_spec.rb#L822)
|
722
|
+
* [enters a channel and sets the data based on the provided :data option](./spec/acceptance/realtime/presence_spec.rb#L836)
|
493
723
|
* message #connection_id
|
494
|
-
* [matches the current client connection_id](./spec/acceptance/realtime/presence_spec.rb#
|
724
|
+
* [matches the current client connection_id](./spec/acceptance/realtime/presence_spec.rb#L855)
|
495
725
|
* it should behave like a public presence method
|
496
726
|
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#L44)
|
497
727
|
* [raise an exception if the channel is failed](./spec/acceptance/realtime/presence_spec.rb#L44)
|
498
|
-
* [
|
499
|
-
* [
|
500
|
-
* [
|
728
|
+
* [implicitly attaches the channel](./spec/acceptance/realtime/presence_spec.rb#L55)
|
729
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#L212)
|
730
|
+
* [allows a block to be passed in that is executed upon success](./spec/acceptance/realtime/presence_spec.rb#L219)
|
731
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#L227)
|
732
|
+
* [catches exceptions in the provided method block and logs them to the logger](./spec/acceptance/realtime/presence_spec.rb#L237)
|
733
|
+
* when :queue_messages client option is false
|
734
|
+
* and connection state initialized
|
735
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L67)
|
736
|
+
* and connection state connecting
|
737
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L75)
|
738
|
+
* and connection state disconnected
|
739
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L88)
|
740
|
+
* and connection state connected
|
741
|
+
* [publishes the message](./spec/acceptance/realtime/presence_spec.rb#L101)
|
742
|
+
* with supported data payload content type
|
743
|
+
* JSON Object (Hash)
|
744
|
+
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/presence_spec.rb#L128)
|
745
|
+
* JSON Array
|
746
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L138)
|
747
|
+
* String
|
748
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L148)
|
749
|
+
* Binary
|
750
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L158)
|
751
|
+
* with unsupported data payload content type
|
752
|
+
* Integer
|
753
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L178)
|
754
|
+
* Float
|
755
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L187)
|
756
|
+
* Boolean
|
757
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L196)
|
758
|
+
* False
|
759
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L205)
|
501
760
|
* if connection fails before success
|
502
|
-
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
761
|
+
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L258)
|
503
762
|
* without necessary capabilities to enter on behalf of another client
|
504
|
-
* [calls the Deferrable errback on capabilities failure](./spec/acceptance/realtime/presence_spec.rb#
|
763
|
+
* [calls the Deferrable errback on capabilities failure](./spec/acceptance/realtime/presence_spec.rb#L877)
|
505
764
|
* #update_client
|
506
765
|
* multiple times on the same channel with different client_ids
|
507
|
-
* [updates the data attribute for the member when :data option provided](./spec/acceptance/realtime/presence_spec.rb#
|
508
|
-
* [updates the data attribute to null for the member when :data option is not provided (assumed null)](./spec/acceptance/realtime/presence_spec.rb#
|
509
|
-
* [enters if not already entered](./spec/acceptance/realtime/presence_spec.rb#
|
766
|
+
* [updates the data attribute for the member when :data option provided](./spec/acceptance/realtime/presence_spec.rb#L888)
|
767
|
+
* [updates the data attribute to null for the member when :data option is not provided (assumed null)](./spec/acceptance/realtime/presence_spec.rb#L912)
|
768
|
+
* [enters if not already entered](./spec/acceptance/realtime/presence_spec.rb#L924)
|
510
769
|
* it should behave like a public presence method
|
511
770
|
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#L44)
|
512
771
|
* [raise an exception if the channel is failed](./spec/acceptance/realtime/presence_spec.rb#L44)
|
513
|
-
* [
|
514
|
-
* [
|
515
|
-
* [
|
772
|
+
* [implicitly attaches the channel](./spec/acceptance/realtime/presence_spec.rb#L55)
|
773
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#L212)
|
774
|
+
* [allows a block to be passed in that is executed upon success](./spec/acceptance/realtime/presence_spec.rb#L219)
|
775
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#L227)
|
776
|
+
* [catches exceptions in the provided method block and logs them to the logger](./spec/acceptance/realtime/presence_spec.rb#L237)
|
777
|
+
* when :queue_messages client option is false
|
778
|
+
* and connection state initialized
|
779
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L67)
|
780
|
+
* and connection state connecting
|
781
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L75)
|
782
|
+
* and connection state disconnected
|
783
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L88)
|
784
|
+
* and connection state connected
|
785
|
+
* [publishes the message](./spec/acceptance/realtime/presence_spec.rb#L101)
|
786
|
+
* with supported data payload content type
|
787
|
+
* JSON Object (Hash)
|
788
|
+
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/presence_spec.rb#L128)
|
789
|
+
* JSON Array
|
790
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L138)
|
791
|
+
* String
|
792
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L148)
|
793
|
+
* Binary
|
794
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L158)
|
795
|
+
* with unsupported data payload content type
|
796
|
+
* Integer
|
797
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L178)
|
798
|
+
* Float
|
799
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L187)
|
800
|
+
* Boolean
|
801
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L196)
|
802
|
+
* False
|
803
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L205)
|
516
804
|
* if connection fails before success
|
517
|
-
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
805
|
+
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L258)
|
518
806
|
* #leave_client
|
519
807
|
* leaves a channel
|
520
808
|
* multiple times on the same channel with different client_ids
|
521
|
-
* [emits the :leave event for each client_id](./spec/acceptance/realtime/presence_spec.rb#
|
522
|
-
* [succeeds if that client_id has not previously entered the channel](./spec/acceptance/realtime/presence_spec.rb#
|
809
|
+
* [emits the :leave event for each client_id](./spec/acceptance/realtime/presence_spec.rb#L953)
|
810
|
+
* [succeeds if that client_id has not previously entered the channel](./spec/acceptance/realtime/presence_spec.rb#L977)
|
523
811
|
* with a new value in :data option
|
524
|
-
* [emits the leave event with the new data value](./spec/acceptance/realtime/presence_spec.rb#
|
812
|
+
* [emits the leave event with the new data value](./spec/acceptance/realtime/presence_spec.rb#L1001)
|
525
813
|
* with a nil value in :data option
|
526
|
-
* [emits the leave event with the previous value as a convenience](./spec/acceptance/realtime/presence_spec.rb#
|
814
|
+
* [emits the leave event with the previous value as a convenience](./spec/acceptance/realtime/presence_spec.rb#L1014)
|
527
815
|
* with no :data option
|
528
|
-
* [emits the leave event with the previous value as a convenience](./spec/acceptance/realtime/presence_spec.rb#
|
816
|
+
* [emits the leave event with the previous value as a convenience](./spec/acceptance/realtime/presence_spec.rb#L1027)
|
529
817
|
* it should behave like a public presence method
|
530
818
|
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#L44)
|
531
819
|
* [raise an exception if the channel is failed](./spec/acceptance/realtime/presence_spec.rb#L44)
|
532
|
-
* [
|
533
|
-
* [
|
534
|
-
* [
|
820
|
+
* [implicitly attaches the channel](./spec/acceptance/realtime/presence_spec.rb#L55)
|
821
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#L212)
|
822
|
+
* [allows a block to be passed in that is executed upon success](./spec/acceptance/realtime/presence_spec.rb#L219)
|
823
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#L227)
|
824
|
+
* [catches exceptions in the provided method block and logs them to the logger](./spec/acceptance/realtime/presence_spec.rb#L237)
|
825
|
+
* when :queue_messages client option is false
|
826
|
+
* and connection state initialized
|
827
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L67)
|
828
|
+
* and connection state connecting
|
829
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L75)
|
830
|
+
* and connection state disconnected
|
831
|
+
* [raises an exception](./spec/acceptance/realtime/presence_spec.rb#L88)
|
832
|
+
* and connection state connected
|
833
|
+
* [publishes the message](./spec/acceptance/realtime/presence_spec.rb#L101)
|
834
|
+
* with supported data payload content type
|
835
|
+
* JSON Object (Hash)
|
836
|
+
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/presence_spec.rb#L128)
|
837
|
+
* JSON Array
|
838
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L138)
|
839
|
+
* String
|
840
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L148)
|
841
|
+
* Binary
|
842
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L158)
|
843
|
+
* with unsupported data payload content type
|
844
|
+
* Integer
|
845
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L178)
|
846
|
+
* Float
|
847
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L187)
|
848
|
+
* Boolean
|
849
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L196)
|
850
|
+
* False
|
851
|
+
* [raises an UnsupportedDataType 40011 exception](./spec/acceptance/realtime/presence_spec.rb#L205)
|
535
852
|
* if connection fails before success
|
536
|
-
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
853
|
+
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L258)
|
537
854
|
* #get
|
538
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#
|
539
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#
|
540
|
-
* [catches exceptions in the provided method block](./spec/acceptance/realtime/presence_spec.rb#
|
541
|
-
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#
|
542
|
-
* [raise an exception if the channel is failed](./spec/acceptance/realtime/presence_spec.rb#
|
543
|
-
* [returns the current members on the channel](./spec/acceptance/realtime/presence_spec.rb#
|
544
|
-
* [filters by connection_id option if provided](./spec/acceptance/realtime/presence_spec.rb#
|
545
|
-
* [filters by client_id option if provided](./spec/acceptance/realtime/presence_spec.rb#
|
546
|
-
* [does not wait for SYNC to complete if :wait_for_sync option is false](./spec/acceptance/realtime/presence_spec.rb#
|
855
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#L1045)
|
856
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#L1050)
|
857
|
+
* [catches exceptions in the provided method block](./spec/acceptance/realtime/presence_spec.rb#L1057)
|
858
|
+
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#L1065)
|
859
|
+
* [raise an exception if the channel is failed](./spec/acceptance/realtime/presence_spec.rb#L1065)
|
860
|
+
* [returns the current members on the channel](./spec/acceptance/realtime/presence_spec.rb#L1142)
|
861
|
+
* [filters by connection_id option if provided](./spec/acceptance/realtime/presence_spec.rb#L1157)
|
862
|
+
* [filters by client_id option if provided](./spec/acceptance/realtime/presence_spec.rb#L1179)
|
863
|
+
* [does not wait for SYNC to complete if :wait_for_sync option is false](./spec/acceptance/realtime/presence_spec.rb#L1203)
|
547
864
|
* during a sync
|
548
|
-
*
|
549
|
-
|
865
|
+
* when :wait_for_sync is true
|
866
|
+
* [fails if the connection fails](./spec/acceptance/realtime/presence_spec.rb#L1096)
|
867
|
+
* [fails if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#L1116)
|
550
868
|
* when a member enters and then leaves
|
551
|
-
* [has no members](./spec/acceptance/realtime/presence_spec.rb#
|
869
|
+
* [has no members](./spec/acceptance/realtime/presence_spec.rb#L1213)
|
552
870
|
* with lots of members on different clients
|
553
|
-
* [returns a complete list of members on all clients](./spec/acceptance/realtime/presence_spec.rb#
|
871
|
+
* [returns a complete list of members on all clients](./spec/acceptance/realtime/presence_spec.rb#L1230)
|
554
872
|
* #subscribe
|
873
|
+
* [implicitly attaches](./spec/acceptance/realtime/presence_spec.rb#L1305)
|
555
874
|
* with no arguments
|
556
|
-
* [calls the callback for all presence events](./spec/acceptance/realtime/presence_spec.rb#
|
875
|
+
* [calls the callback for all presence events](./spec/acceptance/realtime/presence_spec.rb#L1266)
|
876
|
+
* with event name
|
877
|
+
* [calls the callback for specified presence event](./spec/acceptance/realtime/presence_spec.rb#L1286)
|
557
878
|
* #unsubscribe
|
558
879
|
* with no arguments
|
559
|
-
* [removes the callback for all presence events](./spec/acceptance/realtime/presence_spec.rb#
|
880
|
+
* [removes the callback for all presence events](./spec/acceptance/realtime/presence_spec.rb#L1318)
|
881
|
+
* with event name
|
882
|
+
* [removes the callback for specified presence event](./spec/acceptance/realtime/presence_spec.rb#L1336)
|
560
883
|
* REST #get
|
561
|
-
* [returns current members](./spec/acceptance/realtime/presence_spec.rb#
|
562
|
-
* [returns no members once left](./spec/acceptance/realtime/presence_spec.rb#
|
884
|
+
* [returns current members](./spec/acceptance/realtime/presence_spec.rb#L1355)
|
885
|
+
* [returns no members once left](./spec/acceptance/realtime/presence_spec.rb#L1368)
|
563
886
|
* client_id with ASCII_8BIT
|
564
887
|
* in connection set up
|
565
|
-
* [is converted into UTF_8](./spec/acceptance/realtime/presence_spec.rb#
|
888
|
+
* [is converted into UTF_8](./spec/acceptance/realtime/presence_spec.rb#L1385)
|
566
889
|
* in channel options
|
567
|
-
* [is converted into UTF_8](./spec/acceptance/realtime/presence_spec.rb#
|
890
|
+
* [is converted into UTF_8](./spec/acceptance/realtime/presence_spec.rb#L1398)
|
568
891
|
* encoding and decoding of presence message data
|
569
|
-
* [encrypts presence message data](./spec/acceptance/realtime/presence_spec.rb#
|
892
|
+
* [encrypts presence message data](./spec/acceptance/realtime/presence_spec.rb#L1422)
|
570
893
|
* #subscribe
|
571
|
-
* [emits decrypted enter events](./spec/acceptance/realtime/presence_spec.rb#
|
572
|
-
* [emits decrypted update events](./spec/acceptance/realtime/presence_spec.rb#
|
573
|
-
* [emits previously set data for leave events](./spec/acceptance/realtime/presence_spec.rb#
|
894
|
+
* [emits decrypted enter events](./spec/acceptance/realtime/presence_spec.rb#L1441)
|
895
|
+
* [emits decrypted update events](./spec/acceptance/realtime/presence_spec.rb#L1453)
|
896
|
+
* [emits previously set data for leave events](./spec/acceptance/realtime/presence_spec.rb#L1467)
|
574
897
|
* #get
|
575
|
-
* [returns a list of members with decrypted data](./spec/acceptance/realtime/presence_spec.rb#
|
898
|
+
* [returns a list of members with decrypted data](./spec/acceptance/realtime/presence_spec.rb#L1483)
|
576
899
|
* REST #get
|
577
|
-
* [returns a list of members with decrypted data](./spec/acceptance/realtime/presence_spec.rb#
|
900
|
+
* [returns a list of members with decrypted data](./spec/acceptance/realtime/presence_spec.rb#L1496)
|
578
901
|
* when cipher settings do not match publisher
|
579
|
-
* [delivers an unencoded presence message left with encoding value](./spec/acceptance/realtime/presence_spec.rb#
|
580
|
-
* [emits an error when cipher does not match and presence data cannot be decoded](./spec/acceptance/realtime/presence_spec.rb#
|
902
|
+
* [delivers an unencoded presence message left with encoding value](./spec/acceptance/realtime/presence_spec.rb#L1511)
|
903
|
+
* [emits an error when cipher does not match and presence data cannot be decoded](./spec/acceptance/realtime/presence_spec.rb#L1524)
|
581
904
|
* leaving
|
582
|
-
* [expect :left event once underlying connection is closed](./spec/acceptance/realtime/presence_spec.rb#
|
583
|
-
* [expect :left event with client data from enter event](./spec/acceptance/realtime/presence_spec.rb#
|
905
|
+
* [expect :left event once underlying connection is closed](./spec/acceptance/realtime/presence_spec.rb#L1541)
|
906
|
+
* [expect :left event with client data from enter event](./spec/acceptance/realtime/presence_spec.rb#L1551)
|
584
907
|
* connection failure mid-way through a large member sync
|
585
|
-
* [resumes the SYNC operation](./spec/acceptance/realtime/presence_spec.rb#
|
908
|
+
* [resumes the SYNC operation](./spec/acceptance/realtime/presence_spec.rb#L1569)
|
586
909
|
|
587
910
|
### Ably::Realtime::Client#stats
|
588
911
|
_(see [spec/acceptance/realtime/stats_spec.rb](./spec/acceptance/realtime/stats_spec.rb))_
|
589
912
|
* using JSON and MsgPack protocol
|
590
913
|
* fetching stats
|
591
|
-
* [
|
592
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/stats_spec.rb#
|
914
|
+
* [returns a PaginatedResult](./spec/acceptance/realtime/stats_spec.rb#L10)
|
915
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/stats_spec.rb#L29)
|
916
|
+
* with options
|
917
|
+
* [passes the option arguments to the REST stat method](./spec/acceptance/realtime/stats_spec.rb#L20)
|
593
918
|
|
594
919
|
### Ably::Realtime::Client#time
|
595
920
|
_(see [spec/acceptance/realtime/time_spec.rb](./spec/acceptance/realtime/time_spec.rb))_
|
@@ -601,120 +926,132 @@ _(see [spec/acceptance/realtime/time_spec.rb](./spec/acceptance/realtime/time_sp
|
|
601
926
|
### Ably::Auth
|
602
927
|
_(see [spec/acceptance/rest/auth_spec.rb](./spec/acceptance/rest/auth_spec.rb))_
|
603
928
|
* using JSON and MsgPack protocol
|
604
|
-
* [has immutable options](./spec/acceptance/rest/auth_spec.rb#
|
929
|
+
* [has immutable options](./spec/acceptance/rest/auth_spec.rb#L60)
|
605
930
|
* #request_token
|
606
|
-
* [
|
607
|
-
* with
|
608
|
-
|
609
|
-
|
610
|
-
|
611
|
-
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
616
|
-
|
931
|
+
* [creates a TokenRequest automatically and sends it to Ably to obtain a token](./spec/acceptance/rest/auth_spec.rb#L75)
|
932
|
+
* [returns a valid TokenDetails object in the expected format with valid issued and expires attributes](./spec/acceptance/rest/auth_spec.rb#L84)
|
933
|
+
* with token_param :client_id
|
934
|
+
* [overrides default and uses camelCase notation for attributes](./spec/acceptance/rest/auth_spec.rb#L117)
|
935
|
+
* with token_param :capability
|
936
|
+
* [overrides default and uses camelCase notation for attributes](./spec/acceptance/rest/auth_spec.rb#L117)
|
937
|
+
* with token_param :nonce
|
938
|
+
* [overrides default and uses camelCase notation for attributes](./spec/acceptance/rest/auth_spec.rb#L117)
|
939
|
+
* with token_param :timestamp
|
940
|
+
* [overrides default and uses camelCase notation for attributes](./spec/acceptance/rest/auth_spec.rb#L117)
|
941
|
+
* with token_param :ttl
|
942
|
+
* [overrides default and uses camelCase notation for attributes](./spec/acceptance/rest/auth_spec.rb#L117)
|
617
943
|
* with :key option
|
618
|
-
* [key_name is used in request and signing uses key_secret](./spec/acceptance/rest/auth_spec.rb#
|
944
|
+
* [key_name is used in request and signing uses key_secret](./spec/acceptance/rest/auth_spec.rb#L147)
|
619
945
|
* with :key_name & :key_secret options
|
620
|
-
* [key_name is used in request and signing uses key_secret](./spec/acceptance/rest/auth_spec.rb#
|
946
|
+
* [key_name is used in request and signing uses key_secret](./spec/acceptance/rest/auth_spec.rb#L177)
|
621
947
|
* with :query_time option
|
622
|
-
* [queries the server for the time](./spec/acceptance/rest/auth_spec.rb#
|
948
|
+
* [queries the server for the time](./spec/acceptance/rest/auth_spec.rb#L185)
|
623
949
|
* without :query_time option
|
624
|
-
* [does not query the server for the time](./spec/acceptance/rest/auth_spec.rb#
|
950
|
+
* [does not query the server for the time](./spec/acceptance/rest/auth_spec.rb#L194)
|
625
951
|
* with :auth_url option
|
626
952
|
* when response from :auth_url is a valid token request
|
627
|
-
* [requests a token from :auth_url using an HTTP GET request](./spec/acceptance/rest/auth_spec.rb#
|
628
|
-
* [returns a valid token generated from the token request](./spec/acceptance/rest/auth_spec.rb#
|
953
|
+
* [requests a token from :auth_url using an HTTP GET request](./spec/acceptance/rest/auth_spec.rb#L242)
|
954
|
+
* [returns a valid token generated from the token request](./spec/acceptance/rest/auth_spec.rb#L247)
|
629
955
|
* with :query_params
|
630
|
-
* [requests a token from :auth_url with the :query_params](./spec/acceptance/rest/auth_spec.rb#
|
956
|
+
* [requests a token from :auth_url with the :query_params](./spec/acceptance/rest/auth_spec.rb#L254)
|
631
957
|
* with :headers
|
632
|
-
* [requests a token from :auth_url with the HTTP headers set](./spec/acceptance/rest/auth_spec.rb#
|
958
|
+
* [requests a token from :auth_url with the HTTP headers set](./spec/acceptance/rest/auth_spec.rb#L262)
|
633
959
|
* with POST
|
634
|
-
* [requests a token from :auth_url using an HTTP POST instead of the default GET](./spec/acceptance/rest/auth_spec.rb#
|
960
|
+
* [requests a token from :auth_url using an HTTP POST instead of the default GET](./spec/acceptance/rest/auth_spec.rb#L270)
|
635
961
|
* when response from :auth_url is a token details object
|
636
|
-
* [returns TokenDetails created from the token JSON](./spec/acceptance/rest/auth_spec.rb#
|
962
|
+
* [returns TokenDetails created from the token JSON](./spec/acceptance/rest/auth_spec.rb#L295)
|
637
963
|
* when response from :auth_url is text/plain content type and a token string
|
638
|
-
* [returns TokenDetails created from the token JSON](./spec/acceptance/rest/auth_spec.rb#
|
964
|
+
* [returns TokenDetails created from the token JSON](./spec/acceptance/rest/auth_spec.rb#L313)
|
639
965
|
* when response is invalid
|
640
966
|
* 500
|
641
|
-
* [raises ServerError](./spec/acceptance/rest/auth_spec.rb#
|
967
|
+
* [raises ServerError](./spec/acceptance/rest/auth_spec.rb#L327)
|
642
968
|
* XML
|
643
|
-
* [raises InvalidResponseBody](./spec/acceptance/rest/auth_spec.rb#
|
969
|
+
* [raises InvalidResponseBody](./spec/acceptance/rest/auth_spec.rb#L338)
|
644
970
|
* with a Proc for the :auth_callback option
|
645
971
|
* that returns a TokenRequest
|
646
|
-
* [calls the Proc when authenticating to obtain the request token](./spec/acceptance/rest/auth_spec.rb#
|
647
|
-
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#
|
972
|
+
* [calls the Proc with token_params when authenticating to obtain the request token](./spec/acceptance/rest/auth_spec.rb#L361)
|
973
|
+
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#L365)
|
648
974
|
* that returns a TokenDetails JSON object
|
649
|
-
* [calls the Proc when authenticating to obtain the request token](./spec/acceptance/rest/auth_spec.rb#
|
650
|
-
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#
|
975
|
+
* [calls the Proc when authenticating to obtain the request token](./spec/acceptance/rest/auth_spec.rb#L394)
|
976
|
+
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#L399)
|
651
977
|
* that returns a TokenDetails object
|
652
|
-
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#
|
978
|
+
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#L420)
|
653
979
|
* that returns a Token string
|
654
|
-
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#
|
655
|
-
* with client_id
|
656
|
-
* [returns a token with the client_id](./spec/acceptance/rest/auth_spec.rb#
|
980
|
+
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#L436)
|
981
|
+
* with auth_option :client_id
|
982
|
+
* [returns a token with the client_id](./spec/acceptance/rest/auth_spec.rb#L467)
|
983
|
+
* with token_param :client_id
|
984
|
+
* [returns a token with the client_id](./spec/acceptance/rest/auth_spec.rb#L476)
|
657
985
|
* before #authorise has been called
|
658
|
-
* [has no current_token_details](./spec/acceptance/rest/auth_spec.rb#
|
986
|
+
* [has no current_token_details](./spec/acceptance/rest/auth_spec.rb#L483)
|
659
987
|
* #authorise
|
660
|
-
* [updates the persisted auth options that are then used for subsequent authorise requests](./spec/acceptance/rest/auth_spec.rb#
|
988
|
+
* [updates the persisted auth options that are then used for subsequent authorise requests](./spec/acceptance/rest/auth_spec.rb#L533)
|
661
989
|
* when called for the first time since the client has been instantiated
|
662
|
-
* [passes all
|
663
|
-
* [returns a valid token](./spec/acceptance/rest/auth_spec.rb#
|
664
|
-
* [issues a new token if option :force => true](./spec/acceptance/rest/auth_spec.rb#
|
990
|
+
* [passes all auth_options and token_params to #request_token](./spec/acceptance/rest/auth_spec.rb#L497)
|
991
|
+
* [returns a valid token](./spec/acceptance/rest/auth_spec.rb#L502)
|
992
|
+
* [issues a new token if option :force => true](./spec/acceptance/rest/auth_spec.rb#L506)
|
665
993
|
* with previous authorisation
|
666
|
-
* [does not request a token if current_token_details has not expired](./spec/acceptance/rest/auth_spec.rb#
|
667
|
-
* [requests a new token if token is expired](./spec/acceptance/rest/auth_spec.rb#
|
668
|
-
* [issues a new token if option :force => true](./spec/acceptance/rest/auth_spec.rb#
|
994
|
+
* [does not request a token if current_token_details has not expired](./spec/acceptance/rest/auth_spec.rb#L517)
|
995
|
+
* [requests a new token if token is expired](./spec/acceptance/rest/auth_spec.rb#L522)
|
996
|
+
* [issues a new token if option :force => true](./spec/acceptance/rest/auth_spec.rb#L528)
|
669
997
|
* with a Proc for the :auth_callback option
|
670
|
-
* [calls the Proc](./spec/acceptance/rest/auth_spec.rb#
|
671
|
-
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#
|
998
|
+
* [calls the Proc](./spec/acceptance/rest/auth_spec.rb#L549)
|
999
|
+
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#L553)
|
672
1000
|
* for every subsequent #request_token
|
673
1001
|
* without a :auth_callback Proc
|
674
|
-
* [calls the originally provided block](./spec/acceptance/rest/auth_spec.rb#
|
1002
|
+
* [calls the originally provided block](./spec/acceptance/rest/auth_spec.rb#L559)
|
675
1003
|
* with a provided block
|
676
|
-
* [does not call the originally provided Proc and calls the new #request_token :auth_callback Proc](./spec/acceptance/rest/auth_spec.rb#
|
1004
|
+
* [does not call the originally provided Proc and calls the new #request_token :auth_callback Proc](./spec/acceptance/rest/auth_spec.rb#L566)
|
677
1005
|
* #create_token_request
|
678
|
-
* [
|
679
|
-
* [
|
680
|
-
* [uses the
|
1006
|
+
* [returns a TokenRequest object](./spec/acceptance/rest/auth_spec.rb#L583)
|
1007
|
+
* [returns a TokenRequest that can be passed to a client that can use it for authentication without an API key](./spec/acceptance/rest/auth_spec.rb#L587)
|
1008
|
+
* [uses the key name from the client](./spec/acceptance/rest/auth_spec.rb#L594)
|
1009
|
+
* [uses the default TTL](./spec/acceptance/rest/auth_spec.rb#L598)
|
1010
|
+
* [uses the default capability](./spec/acceptance/rest/auth_spec.rb#L611)
|
1011
|
+
* with a :ttl option below the Token expiry buffer that ensures tokens are renewed 15s before they expire as they are considered expired
|
1012
|
+
* [uses the Token expiry buffer default + 10s to allow for a token request in flight](./spec/acceptance/rest/auth_spec.rb#L605)
|
681
1013
|
* the nonce
|
682
|
-
* [is unique for every request](./spec/acceptance/rest/auth_spec.rb#
|
683
|
-
* [is at least 16 characters](./spec/acceptance/rest/auth_spec.rb#
|
684
|
-
* with
|
685
|
-
* [overrides default](./spec/acceptance/rest/auth_spec.rb#
|
686
|
-
* with
|
687
|
-
* [overrides default](./spec/acceptance/rest/auth_spec.rb#
|
688
|
-
* with
|
689
|
-
* [overrides default](./spec/acceptance/rest/auth_spec.rb#
|
1014
|
+
* [is unique for every request](./spec/acceptance/rest/auth_spec.rb#L616)
|
1015
|
+
* [is at least 16 characters](./spec/acceptance/rest/auth_spec.rb#L621)
|
1016
|
+
* with token param :ttl
|
1017
|
+
* [overrides default](./spec/acceptance/rest/auth_spec.rb#L632)
|
1018
|
+
* with token param :nonce
|
1019
|
+
* [overrides default](./spec/acceptance/rest/auth_spec.rb#L632)
|
1020
|
+
* with token param :client_id
|
1021
|
+
* [overrides default](./spec/acceptance/rest/auth_spec.rb#L632)
|
1022
|
+
* when specifying capability
|
1023
|
+
* [overrides the default](./spec/acceptance/rest/auth_spec.rb#L643)
|
1024
|
+
* [uses these capabilities when Ably issues an actual token](./spec/acceptance/rest/auth_spec.rb#L647)
|
690
1025
|
* with additional invalid attributes
|
691
|
-
* [are ignored](./spec/acceptance/rest/auth_spec.rb#
|
1026
|
+
* [are ignored](./spec/acceptance/rest/auth_spec.rb#L657)
|
692
1027
|
* when required fields are missing
|
693
|
-
* [should raise an exception if key secret is missing](./spec/acceptance/rest/auth_spec.rb#
|
694
|
-
* [should raise an exception if key name is missing](./spec/acceptance/rest/auth_spec.rb#
|
695
|
-
*
|
696
|
-
* [
|
697
|
-
|
698
|
-
|
1028
|
+
* [should raise an exception if key secret is missing](./spec/acceptance/rest/auth_spec.rb#L668)
|
1029
|
+
* [should raise an exception if key name is missing](./spec/acceptance/rest/auth_spec.rb#L672)
|
1030
|
+
* timestamp attribute
|
1031
|
+
* [is a Time object in Ruby and is set to the local time](./spec/acceptance/rest/auth_spec.rb#L699)
|
1032
|
+
* with :query_time auth_option
|
1033
|
+
* [queries the server for the timestamp](./spec/acceptance/rest/auth_spec.rb#L684)
|
1034
|
+
* with :timestamp option
|
1035
|
+
* [uses the provided timestamp in the token request](./spec/acceptance/rest/auth_spec.rb#L694)
|
699
1036
|
* signing
|
700
|
-
* [generates a valid HMAC](./spec/acceptance/rest/auth_spec.rb#
|
1037
|
+
* [generates a valid HMAC](./spec/acceptance/rest/auth_spec.rb#L723)
|
701
1038
|
* using token authentication
|
702
1039
|
* with :token option
|
703
|
-
* [authenticates successfully using the provided :token](./spec/acceptance/rest/auth_spec.rb#
|
704
|
-
* [disallows publishing on unspecified capability channels](./spec/acceptance/rest/auth_spec.rb#
|
705
|
-
* [fails if timestamp is invalid](./spec/acceptance/rest/auth_spec.rb#
|
706
|
-
* [cannot be renewed automatically](./spec/acceptance/rest/auth_spec.rb#
|
1040
|
+
* [authenticates successfully using the provided :token](./spec/acceptance/rest/auth_spec.rb#L746)
|
1041
|
+
* [disallows publishing on unspecified capability channels](./spec/acceptance/rest/auth_spec.rb#L750)
|
1042
|
+
* [fails if timestamp is invalid](./spec/acceptance/rest/auth_spec.rb#L758)
|
1043
|
+
* [cannot be renewed automatically](./spec/acceptance/rest/auth_spec.rb#L766)
|
707
1044
|
* when implicit as a result of using :client id
|
708
1045
|
* and requests to the Ably server are mocked
|
709
|
-
* [will send a token request to the server](./spec/acceptance/rest/auth_spec.rb#
|
1046
|
+
* [will send a token request to the server](./spec/acceptance/rest/auth_spec.rb#L794)
|
710
1047
|
* a token is created
|
711
|
-
* [before a request is made](./spec/acceptance/rest/auth_spec.rb#
|
712
|
-
* [when a message is published](./spec/acceptance/rest/auth_spec.rb#
|
713
|
-
* [with capability and TTL defaults](./spec/acceptance/rest/auth_spec.rb#
|
1048
|
+
* [before a request is made](./spec/acceptance/rest/auth_spec.rb#L803)
|
1049
|
+
* [when a message is published](./spec/acceptance/rest/auth_spec.rb#L807)
|
1050
|
+
* [with capability and TTL defaults](./spec/acceptance/rest/auth_spec.rb#L811)
|
714
1051
|
* when using an :key and basic auth
|
715
|
-
* [#using_token_auth? is false](./spec/acceptance/rest/auth_spec.rb#
|
716
|
-
* [#key attribute contains the key string](./spec/acceptance/rest/auth_spec.rb#
|
717
|
-
* [#using_basic_auth? is true](./spec/acceptance/rest/auth_spec.rb#
|
1052
|
+
* [#using_token_auth? is false](./spec/acceptance/rest/auth_spec.rb#L826)
|
1053
|
+
* [#key attribute contains the key string](./spec/acceptance/rest/auth_spec.rb#L830)
|
1054
|
+
* [#using_basic_auth? is true](./spec/acceptance/rest/auth_spec.rb#L834)
|
718
1055
|
|
719
1056
|
### Ably::Rest
|
720
1057
|
_(see [spec/acceptance/rest/base_spec.rb](./spec/acceptance/rest/base_spec.rb))_
|
@@ -741,31 +1078,55 @@ _(see [spec/acceptance/rest/base_spec.rb](./spec/acceptance/rest/base_spec.rb))_
|
|
741
1078
|
* when auth#token_renewable?
|
742
1079
|
* [should automatically reissue a token](./spec/acceptance/rest/base_spec.rb#L143)
|
743
1080
|
* when NOT auth#token_renewable?
|
744
|
-
* [should raise an
|
1081
|
+
* [should raise an TokenExpired exception](./spec/acceptance/rest/base_spec.rb#L158)
|
745
1082
|
|
746
1083
|
### Ably::Rest::Channel
|
747
1084
|
_(see [spec/acceptance/rest/channel_spec.rb](./spec/acceptance/rest/channel_spec.rb))_
|
748
1085
|
* using JSON and MsgPack protocol
|
749
1086
|
* #publish
|
750
|
-
*
|
1087
|
+
* with name and data arguments
|
1088
|
+
* [publishes the message and return true indicating success](./spec/acceptance/rest/channel_spec.rb#L20)
|
1089
|
+
* with an array of Hash objects with :name and :data attributes
|
1090
|
+
* [publishes an array of messages in one HTTP request](./spec/acceptance/rest/channel_spec.rb#L34)
|
1091
|
+
* with an array of Message objects
|
1092
|
+
* [publishes an array of messages in one HTTP request](./spec/acceptance/rest/channel_spec.rb#L49)
|
1093
|
+
* without adequate permissions on the channel
|
1094
|
+
* [raises a permission error when publishing](./spec/acceptance/rest/channel_spec.rb#L61)
|
1095
|
+
* null attributes
|
1096
|
+
* when name is null
|
1097
|
+
* [publishes the message without a name attribute in the payload](./spec/acceptance/rest/channel_spec.rb#L70)
|
1098
|
+
* when data is null
|
1099
|
+
* [publishes the message without a data attribute in the payload](./spec/acceptance/rest/channel_spec.rb#L81)
|
1100
|
+
* with neither name or data attributes
|
1101
|
+
* [publishes the message without any attributes in the payload](./spec/acceptance/rest/channel_spec.rb#L92)
|
751
1102
|
* #history
|
752
|
-
* [
|
753
|
-
* [
|
1103
|
+
* [returns a PaginatedResult model](./spec/acceptance/rest/channel_spec.rb#L119)
|
1104
|
+
* [returns the current message history for the channel](./spec/acceptance/rest/channel_spec.rb#L123)
|
1105
|
+
* [returns paged history using the PaginatedResult model](./spec/acceptance/rest/channel_spec.rb#L151)
|
754
1106
|
* message timestamps
|
755
|
-
* [
|
1107
|
+
* [are after the messages were published](./spec/acceptance/rest/channel_spec.rb#L136)
|
756
1108
|
* message IDs
|
757
|
-
* [
|
1109
|
+
* [is unique](./spec/acceptance/rest/channel_spec.rb#L144)
|
1110
|
+
* direction
|
1111
|
+
* [returns paged history backwards by default](./spec/acceptance/rest/channel_spec.rb#L172)
|
1112
|
+
* [returns history forward if specified in the options](./spec/acceptance/rest/channel_spec.rb#L178)
|
1113
|
+
* limit
|
1114
|
+
* [defaults to 100](./spec/acceptance/rest/channel_spec.rb#L190)
|
758
1115
|
* #history option
|
759
1116
|
* :start
|
760
1117
|
* with milliseconds since epoch value
|
761
|
-
* [uses this value in the history request](./spec/acceptance/rest/channel_spec.rb#
|
1118
|
+
* [uses this value in the history request](./spec/acceptance/rest/channel_spec.rb#L233)
|
762
1119
|
* with a Time object value
|
763
|
-
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/channel_spec.rb#
|
1120
|
+
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/channel_spec.rb#L243)
|
764
1121
|
* :end
|
765
1122
|
* with milliseconds since epoch value
|
766
|
-
* [uses this value in the history request](./spec/acceptance/rest/channel_spec.rb#
|
1123
|
+
* [uses this value in the history request](./spec/acceptance/rest/channel_spec.rb#L233)
|
767
1124
|
* with a Time object value
|
768
|
-
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/channel_spec.rb#
|
1125
|
+
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/channel_spec.rb#L243)
|
1126
|
+
* when argument start is after end
|
1127
|
+
* [should raise an exception](./spec/acceptance/rest/channel_spec.rb#L253)
|
1128
|
+
* #presence
|
1129
|
+
* [returns a REST Presence object](./spec/acceptance/rest/channel_spec.rb#L263)
|
769
1130
|
|
770
1131
|
### Ably::Rest::Channels
|
771
1132
|
_(see [spec/acceptance/rest/channels_spec.rb](./spec/acceptance/rest/channels_spec.rb))_
|
@@ -778,6 +1139,10 @@ _(see [spec/acceptance/rest/channels_spec.rb](./spec/acceptance/rest/channels_sp
|
|
778
1139
|
* behaves like a channel
|
779
1140
|
* [returns a channel object](./spec/acceptance/rest/channels_spec.rb#L6)
|
780
1141
|
* [returns channel object and passes the provided options](./spec/acceptance/rest/channels_spec.rb#L11)
|
1142
|
+
* accessing an existing channel object with different options
|
1143
|
+
* [overrides the existing channel options and returns the channel object](./spec/acceptance/rest/channels_spec.rb#L39)
|
1144
|
+
* accessing an existing channel object without specifying any channel options
|
1145
|
+
* [returns the existing channel without modifying the channel options](./spec/acceptance/rest/channels_spec.rb#L50)
|
781
1146
|
* using undocumented array accessor [] method on client#channels
|
782
1147
|
* behaves like a channel
|
783
1148
|
* [returns a channel object](./spec/acceptance/rest/channels_spec.rb#L6)
|
@@ -787,43 +1152,69 @@ _(see [spec/acceptance/rest/channels_spec.rb](./spec/acceptance/rest/channels_sp
|
|
787
1152
|
_(see [spec/acceptance/rest/client_spec.rb](./spec/acceptance/rest/client_spec.rb))_
|
788
1153
|
* using JSON and MsgPack protocol
|
789
1154
|
* #initialize
|
790
|
-
* with
|
791
|
-
* [
|
1155
|
+
* with only an API key
|
1156
|
+
* [uses basic authentication](./spec/acceptance/rest/client_spec.rb#L24)
|
1157
|
+
* with an explicit string :token
|
1158
|
+
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#L32)
|
1159
|
+
* with :use_token_auth set to true
|
1160
|
+
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#L40)
|
1161
|
+
* with a :client_id configured
|
1162
|
+
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#L48)
|
1163
|
+
* with an :auth_callback Proc
|
1164
|
+
* [calls the auth Proc to get a new token](./spec/acceptance/rest/client_spec.rb#L56)
|
1165
|
+
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#L61)
|
792
1166
|
* with an auth URL
|
793
|
-
* [
|
1167
|
+
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#L70)
|
1168
|
+
* before any REST request
|
1169
|
+
* [sends an HTTP request to the provided auth URL to get a new token](./spec/acceptance/rest/client_spec.rb#L81)
|
1170
|
+
* auth headers
|
1171
|
+
* with basic auth
|
1172
|
+
* [sends the API key in authentication part of the secure URL (the Authorization: Basic header is not used with the Faraday HTTP library by default)](./spec/acceptance/rest/client_spec.rb#L101)
|
1173
|
+
* with token auth
|
1174
|
+
* without specifying protocol
|
1175
|
+
* [sends the token string over HTTPS in the Authorization Bearer header with Base64 encoding](./spec/acceptance/rest/client_spec.rb#L120)
|
1176
|
+
* when setting constructor ClientOption :tls to false
|
1177
|
+
* [sends the token string over HTTP in the Authorization Bearer header with Base64 encoding](./spec/acceptance/rest/client_spec.rb#L130)
|
794
1178
|
* using tokens
|
795
1179
|
* when expired
|
796
|
-
* [creates a new token automatically when the old token expires](./spec/acceptance/rest/client_spec.rb#
|
1180
|
+
* [creates a new token automatically when the old token expires](./spec/acceptance/rest/client_spec.rb#L161)
|
797
1181
|
* when token has not expired
|
798
|
-
* [reuses the existing token for every request](./spec/acceptance/rest/client_spec.rb#
|
1182
|
+
* [reuses the existing token for every request](./spec/acceptance/rest/client_spec.rb#L175)
|
799
1183
|
* connection transport
|
800
1184
|
* for default host
|
801
|
-
* [is configured to timeout connection opening in 4 seconds](./spec/acceptance/rest/client_spec.rb#
|
802
|
-
* [is configured to timeout connection requests in 15 seconds](./spec/acceptance/rest/client_spec.rb#
|
1185
|
+
* [is configured to timeout connection opening in 4 seconds](./spec/acceptance/rest/client_spec.rb#L191)
|
1186
|
+
* [is configured to timeout connection requests in 15 seconds](./spec/acceptance/rest/client_spec.rb#L195)
|
803
1187
|
* for the fallback hosts
|
804
|
-
* [is configured to timeout connection opening in 4 seconds](./spec/acceptance/rest/client_spec.rb#
|
805
|
-
* [is configured to timeout connection requests in 15 seconds](./spec/acceptance/rest/client_spec.rb#
|
1188
|
+
* [is configured to timeout connection opening in 4 seconds](./spec/acceptance/rest/client_spec.rb#L201)
|
1189
|
+
* [is configured to timeout connection requests in 15 seconds](./spec/acceptance/rest/client_spec.rb#L205)
|
806
1190
|
* fallback hosts
|
807
1191
|
* configured
|
808
|
-
* [should make connection attempts to A.ably-realtime.com, B.ably-realtime.com, C.ably-realtime.com, D.ably-realtime.com, E.ably-realtime.com](./spec/acceptance/rest/client_spec.rb#
|
1192
|
+
* [should make connection attempts to A.ably-realtime.com, B.ably-realtime.com, C.ably-realtime.com, D.ably-realtime.com, E.ably-realtime.com](./spec/acceptance/rest/client_spec.rb#L218)
|
809
1193
|
* when environment is NOT production
|
810
|
-
* [does not retry failed requests with fallback hosts when there is a connection error](./spec/acceptance/rest/client_spec.rb#
|
1194
|
+
* [does not retry failed requests with fallback hosts when there is a connection error](./spec/acceptance/rest/client_spec.rb#L235)
|
811
1195
|
* when environment is production
|
812
1196
|
* and connection times out
|
813
|
-
* [tries fallback hosts 3 times](./spec/acceptance/rest/client_spec.rb#
|
1197
|
+
* [tries fallback hosts 3 times](./spec/acceptance/rest/client_spec.rb#L272)
|
814
1198
|
* and the total request time exeeds 10 seconds
|
815
|
-
* [makes no further attempts to any fallback hosts](./spec/acceptance/rest/client_spec.rb#
|
1199
|
+
* [makes no further attempts to any fallback hosts](./spec/acceptance/rest/client_spec.rb#L287)
|
816
1200
|
* and connection fails
|
817
|
-
* [tries fallback hosts 3 times](./spec/acceptance/rest/client_spec.rb#
|
1201
|
+
* [tries fallback hosts 3 times](./spec/acceptance/rest/client_spec.rb#L303)
|
1202
|
+
* and basic authentication fails
|
1203
|
+
* [does not attempt the fallback hosts as this is an authentication failure](./spec/acceptance/rest/client_spec.rb#L327)
|
1204
|
+
* and server returns a 50x error
|
1205
|
+
* [attempts the fallback hosts as this is an authentication failure](./spec/acceptance/rest/client_spec.rb#L349)
|
818
1206
|
* with a custom host
|
819
1207
|
* that does not exist
|
820
|
-
* [fails immediately and raises a Faraday Error](./spec/acceptance/rest/client_spec.rb#
|
1208
|
+
* [fails immediately and raises a Faraday Error](./spec/acceptance/rest/client_spec.rb#L365)
|
821
1209
|
* fallback hosts
|
822
|
-
* [are never used](./spec/acceptance/rest/client_spec.rb#
|
1210
|
+
* [are never used](./spec/acceptance/rest/client_spec.rb#L386)
|
823
1211
|
* that times out
|
824
|
-
* [fails immediately and raises a Faraday Error](./spec/acceptance/rest/client_spec.rb#
|
1212
|
+
* [fails immediately and raises a Faraday Error](./spec/acceptance/rest/client_spec.rb#L401)
|
825
1213
|
* fallback hosts
|
826
|
-
* [are never used](./spec/acceptance/rest/client_spec.rb#
|
1214
|
+
* [are never used](./spec/acceptance/rest/client_spec.rb#L414)
|
1215
|
+
* #auth
|
1216
|
+
* [is provides access to the Auth object](./spec/acceptance/rest/client_spec.rb#L428)
|
1217
|
+
* [configures the Auth object with all ClientOptions passed to client in the initializer](./spec/acceptance/rest/client_spec.rb#L432)
|
827
1218
|
|
828
1219
|
### Ably::Models::MessageEncoders
|
829
1220
|
_(see [spec/acceptance/rest/encoders_spec.rb](./spec/acceptance/rest/encoders_spec.rb))_
|
@@ -863,59 +1254,77 @@ _(see [spec/acceptance/rest/message_spec.rb](./spec/acceptance/rest/message_spec
|
|
863
1254
|
* using JSON and MsgPack protocol
|
864
1255
|
* publishing with an ASCII_8BIT message name
|
865
1256
|
* [is converted into UTF_8](./spec/acceptance/rest/message_spec.rb#L18)
|
1257
|
+
* with supported data payload content type
|
1258
|
+
* JSON Object (Hash)
|
1259
|
+
* [is encoded and decoded to the same hash](./spec/acceptance/rest/message_spec.rb#L30)
|
1260
|
+
* JSON Array
|
1261
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/rest/message_spec.rb#L39)
|
1262
|
+
* String
|
1263
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/rest/message_spec.rb#L48)
|
1264
|
+
* Binary
|
1265
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/rest/message_spec.rb#L57)
|
1266
|
+
* with unsupported data payload content type
|
1267
|
+
* Integer
|
1268
|
+
* [is raises an UnsupportedDataType 40011 exception](./spec/acceptance/rest/message_spec.rb#L68)
|
1269
|
+
* Float
|
1270
|
+
* [is raises an UnsupportedDataType 40011 exception](./spec/acceptance/rest/message_spec.rb#L76)
|
1271
|
+
* Boolean
|
1272
|
+
* [is raises an UnsupportedDataType 40011 exception](./spec/acceptance/rest/message_spec.rb#L84)
|
1273
|
+
* False
|
1274
|
+
* [is raises an UnsupportedDataType 40011 exception](./spec/acceptance/rest/message_spec.rb#L92)
|
866
1275
|
* encryption and encoding
|
867
1276
|
* with #publish and #history
|
868
1277
|
* with AES-128-CBC using crypto-data-128.json fixtures
|
869
1278
|
* item 0 with encrypted encoding utf-8/cipher+aes-128-cbc/base64
|
870
1279
|
* behaves like an Ably encrypter and decrypter
|
871
|
-
* [encrypts message automatically when published](./spec/acceptance/rest/message_spec.rb#
|
872
|
-
* [sends and retrieves messages that are encrypted & decrypted by the Ably library](./spec/acceptance/rest/message_spec.rb#
|
1280
|
+
* [encrypts message automatically when published](./spec/acceptance/rest/message_spec.rb#L137)
|
1281
|
+
* [sends and retrieves messages that are encrypted & decrypted by the Ably library](./spec/acceptance/rest/message_spec.rb#L152)
|
873
1282
|
* item 1 with encrypted encoding cipher+aes-128-cbc/base64
|
874
1283
|
* behaves like an Ably encrypter and decrypter
|
875
|
-
* [encrypts message automatically when published](./spec/acceptance/rest/message_spec.rb#
|
876
|
-
* [sends and retrieves messages that are encrypted & decrypted by the Ably library](./spec/acceptance/rest/message_spec.rb#
|
1284
|
+
* [encrypts message automatically when published](./spec/acceptance/rest/message_spec.rb#L137)
|
1285
|
+
* [sends and retrieves messages that are encrypted & decrypted by the Ably library](./spec/acceptance/rest/message_spec.rb#L152)
|
877
1286
|
* item 2 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
|
878
1287
|
* behaves like an Ably encrypter and decrypter
|
879
|
-
* [encrypts message automatically when published](./spec/acceptance/rest/message_spec.rb#
|
880
|
-
* [sends and retrieves messages that are encrypted & decrypted by the Ably library](./spec/acceptance/rest/message_spec.rb#
|
1288
|
+
* [encrypts message automatically when published](./spec/acceptance/rest/message_spec.rb#L137)
|
1289
|
+
* [sends and retrieves messages that are encrypted & decrypted by the Ably library](./spec/acceptance/rest/message_spec.rb#L152)
|
881
1290
|
* item 3 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
|
882
1291
|
* behaves like an Ably encrypter and decrypter
|
883
|
-
* [encrypts message automatically when published](./spec/acceptance/rest/message_spec.rb#
|
884
|
-
* [sends and retrieves messages that are encrypted & decrypted by the Ably library](./spec/acceptance/rest/message_spec.rb#
|
1292
|
+
* [encrypts message automatically when published](./spec/acceptance/rest/message_spec.rb#L137)
|
1293
|
+
* [sends and retrieves messages that are encrypted & decrypted by the Ably library](./spec/acceptance/rest/message_spec.rb#L152)
|
885
1294
|
* with AES-256-CBC using crypto-data-256.json fixtures
|
886
1295
|
* item 0 with encrypted encoding utf-8/cipher+aes-256-cbc/base64
|
887
1296
|
* behaves like an Ably encrypter and decrypter
|
888
|
-
* [encrypts message automatically when published](./spec/acceptance/rest/message_spec.rb#
|
889
|
-
* [sends and retrieves messages that are encrypted & decrypted by the Ably library](./spec/acceptance/rest/message_spec.rb#
|
1297
|
+
* [encrypts message automatically when published](./spec/acceptance/rest/message_spec.rb#L137)
|
1298
|
+
* [sends and retrieves messages that are encrypted & decrypted by the Ably library](./spec/acceptance/rest/message_spec.rb#L152)
|
890
1299
|
* item 1 with encrypted encoding cipher+aes-256-cbc/base64
|
891
1300
|
* behaves like an Ably encrypter and decrypter
|
892
|
-
* [encrypts message automatically when published](./spec/acceptance/rest/message_spec.rb#
|
893
|
-
* [sends and retrieves messages that are encrypted & decrypted by the Ably library](./spec/acceptance/rest/message_spec.rb#
|
1301
|
+
* [encrypts message automatically when published](./spec/acceptance/rest/message_spec.rb#L137)
|
1302
|
+
* [sends and retrieves messages that are encrypted & decrypted by the Ably library](./spec/acceptance/rest/message_spec.rb#L152)
|
894
1303
|
* item 2 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
|
895
1304
|
* behaves like an Ably encrypter and decrypter
|
896
|
-
* [encrypts message automatically when published](./spec/acceptance/rest/message_spec.rb#
|
897
|
-
* [sends and retrieves messages that are encrypted & decrypted by the Ably library](./spec/acceptance/rest/message_spec.rb#
|
1305
|
+
* [encrypts message automatically when published](./spec/acceptance/rest/message_spec.rb#L137)
|
1306
|
+
* [sends and retrieves messages that are encrypted & decrypted by the Ably library](./spec/acceptance/rest/message_spec.rb#L152)
|
898
1307
|
* item 3 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
|
899
1308
|
* behaves like an Ably encrypter and decrypter
|
900
|
-
* [encrypts message automatically when published](./spec/acceptance/rest/message_spec.rb#
|
901
|
-
* [sends and retrieves messages that are encrypted & decrypted by the Ably library](./spec/acceptance/rest/message_spec.rb#
|
1309
|
+
* [encrypts message automatically when published](./spec/acceptance/rest/message_spec.rb#L137)
|
1310
|
+
* [sends and retrieves messages that are encrypted & decrypted by the Ably library](./spec/acceptance/rest/message_spec.rb#L152)
|
902
1311
|
* when publishing lots of messages
|
903
|
-
* [encrypts on #publish and decrypts on #history](./spec/acceptance/rest/message_spec.rb#
|
1312
|
+
* [encrypts on #publish and decrypts on #history](./spec/acceptance/rest/message_spec.rb#L185)
|
904
1313
|
* when retrieving #history with a different protocol
|
905
|
-
* [delivers a String ASCII-8BIT payload to the receiver](./spec/acceptance/rest/message_spec.rb#
|
906
|
-
* [delivers a String UTF-8 payload to the receiver](./spec/acceptance/rest/message_spec.rb#
|
907
|
-
* [delivers a Hash payload to the receiver](./spec/acceptance/rest/message_spec.rb#
|
1314
|
+
* [delivers a String ASCII-8BIT payload to the receiver](./spec/acceptance/rest/message_spec.rb#L212)
|
1315
|
+
* [delivers a String UTF-8 payload to the receiver](./spec/acceptance/rest/message_spec.rb#L212)
|
1316
|
+
* [delivers a Hash payload to the receiver](./spec/acceptance/rest/message_spec.rb#L212)
|
908
1317
|
* when publishing on an unencrypted channel and retrieving with #history on an encrypted channel
|
909
|
-
* [does not attempt to decrypt the message](./spec/acceptance/rest/message_spec.rb#
|
1318
|
+
* [does not attempt to decrypt the message](./spec/acceptance/rest/message_spec.rb#L228)
|
910
1319
|
* when publishing on an encrypted channel and retrieving with #history on an unencrypted channel
|
911
|
-
* [retrieves the message that remains encrypted with an encrypted encoding attribute](./spec/acceptance/rest/message_spec.rb#
|
912
|
-
* [logs a Cipher exception](./spec/acceptance/rest/message_spec.rb#
|
1320
|
+
* [retrieves the message that remains encrypted with an encrypted encoding attribute](./spec/acceptance/rest/message_spec.rb#L249)
|
1321
|
+
* [logs a Cipher exception](./spec/acceptance/rest/message_spec.rb#L255)
|
913
1322
|
* publishing on an encrypted channel and retrieving #history with a different algorithm on another client
|
914
|
-
* [retrieves the message that remains encrypted with an encrypted encoding attribute](./spec/acceptance/rest/message_spec.rb#
|
915
|
-
* [logs a Cipher exception](./spec/acceptance/rest/message_spec.rb#
|
1323
|
+
* [retrieves the message that remains encrypted with an encrypted encoding attribute](./spec/acceptance/rest/message_spec.rb#L276)
|
1324
|
+
* [logs a Cipher exception](./spec/acceptance/rest/message_spec.rb#L282)
|
916
1325
|
* publishing on an encrypted channel and subscribing with a different key on another client
|
917
|
-
* [retrieves the message that remains encrypted with an encrypted encoding attribute](./spec/acceptance/rest/message_spec.rb#
|
918
|
-
* [logs a Cipher exception](./spec/acceptance/rest/message_spec.rb#
|
1326
|
+
* [retrieves the message that remains encrypted with an encrypted encoding attribute](./spec/acceptance/rest/message_spec.rb#L303)
|
1327
|
+
* [logs a Cipher exception](./spec/acceptance/rest/message_spec.rb#L309)
|
919
1328
|
|
920
1329
|
### Ably::Rest::Presence
|
921
1330
|
_(see [spec/acceptance/rest/presence_spec.rb](./spec/acceptance/rest/presence_spec.rb))_
|
@@ -924,78 +1333,105 @@ _(see [spec/acceptance/rest/presence_spec.rb](./spec/acceptance/rest/presence_sp
|
|
924
1333
|
* #get
|
925
1334
|
* [returns current members on the channel with their action set to :present](./spec/acceptance/rest/presence_spec.rb#L41)
|
926
1335
|
* with :limit option
|
927
|
-
* [returns a paged response limiting number of members per page](./spec/acceptance/rest/presence_spec.rb#
|
1336
|
+
* [returns a paged response limiting number of members per page](./spec/acceptance/rest/presence_spec.rb#L57)
|
1337
|
+
* default :limit
|
1338
|
+
* [defaults to a limit of 100](./spec/acceptance/rest/presence_spec.rb#L89)
|
1339
|
+
* with :client_id option
|
1340
|
+
* PENDING: *[returns a list members filtered by the provided client ID](./spec/acceptance/rest/presence_spec.rb#L98)*
|
1341
|
+
* with :connection_id option
|
1342
|
+
* PENDING: *[returns a list members filtered by the provided connection ID](./spec/acceptance/rest/presence_spec.rb#L109)*
|
928
1343
|
* #history
|
929
|
-
* [returns recent presence activity](./spec/acceptance/rest/presence_spec.rb#
|
1344
|
+
* [returns recent presence activity](./spec/acceptance/rest/presence_spec.rb#L120)
|
1345
|
+
* default behaviour
|
1346
|
+
* [uses backwards direction](./spec/acceptance/rest/presence_spec.rb#L135)
|
930
1347
|
* with options
|
931
1348
|
* direction: :forwards
|
932
|
-
* [returns recent presence activity forwards with most recent history last](./spec/acceptance/rest/presence_spec.rb#
|
1349
|
+
* [returns recent presence activity forwards with most recent history last](./spec/acceptance/rest/presence_spec.rb#L147)
|
933
1350
|
* direction: :backwards
|
934
|
-
* [returns recent presence activity backwards with most recent history first](./spec/acceptance/rest/presence_spec.rb#
|
1351
|
+
* [returns recent presence activity backwards with most recent history first](./spec/acceptance/rest/presence_spec.rb#L162)
|
935
1352
|
* #history
|
936
|
-
* with
|
937
|
-
*
|
938
|
-
*
|
939
|
-
* [
|
940
|
-
*
|
941
|
-
* [
|
942
|
-
*
|
943
|
-
*
|
944
|
-
*
|
945
|
-
|
946
|
-
*
|
1353
|
+
* with options
|
1354
|
+
* limit options
|
1355
|
+
* default
|
1356
|
+
* [is set to 100](./spec/acceptance/rest/presence_spec.rb#L210)
|
1357
|
+
* set to 1000
|
1358
|
+
* [is passes the limit query param value 1000](./spec/acceptance/rest/presence_spec.rb#L223)
|
1359
|
+
* with time range options
|
1360
|
+
* :start
|
1361
|
+
* with milliseconds since epoch value
|
1362
|
+
* [uses this value in the history request](./spec/acceptance/rest/presence_spec.rb#L253)
|
1363
|
+
* with Time object value
|
1364
|
+
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/presence_spec.rb#L263)
|
1365
|
+
* :end
|
1366
|
+
* with milliseconds since epoch value
|
1367
|
+
* [uses this value in the history request](./spec/acceptance/rest/presence_spec.rb#L253)
|
1368
|
+
* with Time object value
|
1369
|
+
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/presence_spec.rb#L263)
|
1370
|
+
* when argument start is after end
|
1371
|
+
* [should raise an exception](./spec/acceptance/rest/presence_spec.rb#L274)
|
947
1372
|
* decoding
|
948
1373
|
* with encoded fixture data
|
949
1374
|
* #history
|
950
|
-
* [decodes encoded and encryped presence fixture data automatically](./spec/acceptance/rest/presence_spec.rb#
|
1375
|
+
* [decodes encoded and encryped presence fixture data automatically](./spec/acceptance/rest/presence_spec.rb#L293)
|
951
1376
|
* #get
|
952
|
-
* [decodes encoded and encryped presence fixture data automatically](./spec/acceptance/rest/presence_spec.rb#
|
1377
|
+
* [decodes encoded and encryped presence fixture data automatically](./spec/acceptance/rest/presence_spec.rb#L300)
|
953
1378
|
* decoding permutations using mocked #history
|
954
1379
|
* valid decodeable content
|
955
1380
|
* #get
|
956
|
-
* [automaticaly decodes presence messages](./spec/acceptance/rest/presence_spec.rb#
|
1381
|
+
* [automaticaly decodes presence messages](./spec/acceptance/rest/presence_spec.rb#L356)
|
957
1382
|
* #history
|
958
|
-
* [automaticaly decodes presence messages](./spec/acceptance/rest/presence_spec.rb#
|
1383
|
+
* [automaticaly decodes presence messages](./spec/acceptance/rest/presence_spec.rb#L373)
|
959
1384
|
* invalid data
|
960
1385
|
* #get
|
961
|
-
* [returns the messages still encoded](./spec/acceptance/rest/presence_spec.rb#
|
962
|
-
* [logs a cipher error](./spec/acceptance/rest/presence_spec.rb#
|
1386
|
+
* [returns the messages still encoded](./spec/acceptance/rest/presence_spec.rb#L404)
|
1387
|
+
* [logs a cipher error](./spec/acceptance/rest/presence_spec.rb#L408)
|
963
1388
|
* #history
|
964
|
-
* [returns the messages still encoded](./spec/acceptance/rest/presence_spec.rb#
|
965
|
-
* [logs a cipher error](./spec/acceptance/rest/presence_spec.rb#
|
1389
|
+
* [returns the messages still encoded](./spec/acceptance/rest/presence_spec.rb#L428)
|
1390
|
+
* [logs a cipher error](./spec/acceptance/rest/presence_spec.rb#L432)
|
966
1391
|
|
967
1392
|
### Ably::Rest::Client#stats
|
968
1393
|
_(see [spec/acceptance/rest/stats_spec.rb](./spec/acceptance/rest/stats_spec.rb))_
|
969
1394
|
* using JSON and MsgPack protocol
|
970
1395
|
* fetching application stats
|
1396
|
+
* [returns a PaginatedResult object](./spec/acceptance/rest/stats_spec.rb#L54)
|
971
1397
|
* by minute
|
1398
|
+
* with no options
|
1399
|
+
* [uses the minute interval by default](./spec/acceptance/rest/stats_spec.rb#L66)
|
972
1400
|
* with :from set to last interval and :limit set to 1
|
973
|
-
* [retrieves only one stat](./spec/acceptance/rest/stats_spec.rb#
|
974
|
-
* [returns zero value for any missing metrics](./spec/acceptance/rest/stats_spec.rb#
|
975
|
-
* [returns all aggregated message data](./spec/acceptance/rest/stats_spec.rb#
|
976
|
-
* [returns inbound realtime all data](./spec/acceptance/rest/stats_spec.rb#
|
977
|
-
* [returns inbound realtime message data](./spec/acceptance/rest/stats_spec.rb#
|
978
|
-
* [returns outbound realtime all data](./spec/acceptance/rest/stats_spec.rb#
|
979
|
-
* [returns persisted presence all data](./spec/acceptance/rest/stats_spec.rb#
|
980
|
-
* [returns connections all data](./spec/acceptance/rest/stats_spec.rb#
|
981
|
-
* [returns channels all data](./spec/acceptance/rest/stats_spec.rb#
|
982
|
-
* [returns api_requests data](./spec/acceptance/rest/stats_spec.rb#
|
983
|
-
* [returns token_requests data](./spec/acceptance/rest/stats_spec.rb#
|
984
|
-
* [returns stat objects with #interval_granularity equal to :minute](./spec/acceptance/rest/stats_spec.rb#
|
985
|
-
* [returns stat objects with #interval_id matching :start](./spec/acceptance/rest/stats_spec.rb#
|
986
|
-
* [returns stat objects with #interval_time matching :start Time](./spec/acceptance/rest/stats_spec.rb#
|
1401
|
+
* [retrieves only one stat](./spec/acceptance/rest/stats_spec.rb#L75)
|
1402
|
+
* [returns zero value for any missing metrics](./spec/acceptance/rest/stats_spec.rb#L79)
|
1403
|
+
* [returns all aggregated message data](./spec/acceptance/rest/stats_spec.rb#L84)
|
1404
|
+
* [returns inbound realtime all data](./spec/acceptance/rest/stats_spec.rb#L89)
|
1405
|
+
* [returns inbound realtime message data](./spec/acceptance/rest/stats_spec.rb#L94)
|
1406
|
+
* [returns outbound realtime all data](./spec/acceptance/rest/stats_spec.rb#L99)
|
1407
|
+
* [returns persisted presence all data](./spec/acceptance/rest/stats_spec.rb#L104)
|
1408
|
+
* [returns connections all data](./spec/acceptance/rest/stats_spec.rb#L109)
|
1409
|
+
* [returns channels all data](./spec/acceptance/rest/stats_spec.rb#L114)
|
1410
|
+
* [returns api_requests data](./spec/acceptance/rest/stats_spec.rb#L119)
|
1411
|
+
* [returns token_requests data](./spec/acceptance/rest/stats_spec.rb#L124)
|
1412
|
+
* [returns stat objects with #interval_granularity equal to :minute](./spec/acceptance/rest/stats_spec.rb#L129)
|
1413
|
+
* [returns stat objects with #interval_id matching :start](./spec/acceptance/rest/stats_spec.rb#L133)
|
1414
|
+
* [returns stat objects with #interval_time matching :start Time](./spec/acceptance/rest/stats_spec.rb#L137)
|
987
1415
|
* with :start set to first interval, :limit set to 1 and direction :forwards
|
988
|
-
* [returns the first interval stats as stats are provided forwards from :start](./spec/acceptance/rest/stats_spec.rb#
|
989
|
-
* [returns 3 pages of stats](./spec/acceptance/rest/stats_spec.rb#
|
1416
|
+
* [returns the first interval stats as stats are provided forwards from :start](./spec/acceptance/rest/stats_spec.rb#L147)
|
1417
|
+
* [returns 3 pages of stats](./spec/acceptance/rest/stats_spec.rb#L151)
|
990
1418
|
* with :end set to last interval, :limit set to 1 and direction :backwards
|
991
|
-
* [returns the 3rd interval stats first as stats are provided backwards from :end](./spec/acceptance/rest/stats_spec.rb#
|
992
|
-
* [returns 3 pages of stats](./spec/acceptance/rest/stats_spec.rb#
|
1419
|
+
* [returns the 3rd interval stats first as stats are provided backwards from :end](./spec/acceptance/rest/stats_spec.rb#L163)
|
1420
|
+
* [returns 3 pages of stats](./spec/acceptance/rest/stats_spec.rb#L167)
|
1421
|
+
* with :end set to last interval and :limit set to 3 to ensure only last years stats are included
|
1422
|
+
* the REST API
|
1423
|
+
* [defaults to direction :backwards](./spec/acceptance/rest/stats_spec.rb#L179)
|
1424
|
+
* with :end set to previous year interval
|
1425
|
+
* the REST API
|
1426
|
+
* [defaults to 100 items for pagination](./spec/acceptance/rest/stats_spec.rb#L191)
|
993
1427
|
* by hour
|
994
|
-
* [should aggregate the stats for that period](./spec/acceptance/rest/stats_spec.rb#
|
1428
|
+
* [should aggregate the stats for that period](./spec/acceptance/rest/stats_spec.rb#L215)
|
995
1429
|
* by day
|
996
|
-
* [should aggregate the stats for that period](./spec/acceptance/rest/stats_spec.rb#
|
1430
|
+
* [should aggregate the stats for that period](./spec/acceptance/rest/stats_spec.rb#L215)
|
997
1431
|
* by month
|
998
|
-
* [should aggregate the stats for that period](./spec/acceptance/rest/stats_spec.rb#
|
1432
|
+
* [should aggregate the stats for that period](./spec/acceptance/rest/stats_spec.rb#L215)
|
1433
|
+
* when argument start is after end
|
1434
|
+
* [should raise an exception](./spec/acceptance/rest/stats_spec.rb#L227)
|
999
1435
|
|
1000
1436
|
### Ably::Rest::Client#time
|
1001
1437
|
_(see [spec/acceptance/rest/time_spec.rb](./spec/acceptance/rest/time_spec.rb))_
|
@@ -1007,22 +1443,22 @@ _(see [spec/acceptance/rest/time_spec.rb](./spec/acceptance/rest/time_spec.rb))_
|
|
1007
1443
|
_(see [spec/unit/auth_spec.rb](./spec/unit/auth_spec.rb))_
|
1008
1444
|
* client_id option
|
1009
1445
|
* with nil value
|
1010
|
-
* [is permitted](./spec/unit/auth_spec.rb#
|
1446
|
+
* [is permitted](./spec/unit/auth_spec.rb#L20)
|
1011
1447
|
* as UTF_8 string
|
1012
|
-
* [is permitted](./spec/unit/auth_spec.rb#
|
1013
|
-
* [remains as UTF-8](./spec/unit/auth_spec.rb#
|
1448
|
+
* [is permitted](./spec/unit/auth_spec.rb#L28)
|
1449
|
+
* [remains as UTF-8](./spec/unit/auth_spec.rb#L32)
|
1014
1450
|
* as SHIFT_JIS string
|
1015
|
-
* [gets converted to UTF-8](./spec/unit/auth_spec.rb#
|
1016
|
-
* [is compatible with original encoding](./spec/unit/auth_spec.rb#
|
1451
|
+
* [gets converted to UTF-8](./spec/unit/auth_spec.rb#L40)
|
1452
|
+
* [is compatible with original encoding](./spec/unit/auth_spec.rb#L44)
|
1017
1453
|
* as ASCII_8BIT string
|
1018
|
-
* [gets converted to UTF-8](./spec/unit/auth_spec.rb#
|
1019
|
-
* [is compatible with original encoding](./spec/unit/auth_spec.rb#
|
1454
|
+
* [gets converted to UTF-8](./spec/unit/auth_spec.rb#L52)
|
1455
|
+
* [is compatible with original encoding](./spec/unit/auth_spec.rb#L56)
|
1020
1456
|
* as Integer
|
1021
|
-
* [raises an argument error](./spec/unit/auth_spec.rb#
|
1457
|
+
* [raises an argument error](./spec/unit/auth_spec.rb#L64)
|
1022
1458
|
* defaults
|
1023
|
-
* [should default TTL to 1 hour](./spec/unit/auth_spec.rb#
|
1024
|
-
* [should default capability to all](./spec/unit/auth_spec.rb#
|
1025
|
-
* [should
|
1459
|
+
* [should default TTL to 1 hour](./spec/unit/auth_spec.rb#L74)
|
1460
|
+
* [should default capability to all](./spec/unit/auth_spec.rb#L78)
|
1461
|
+
* [should have defaults for :ttl and :capability](./spec/unit/auth_spec.rb#L82)
|
1026
1462
|
|
1027
1463
|
### Ably::Logger
|
1028
1464
|
_(see [spec/unit/logger_spec.rb](./spec/unit/logger_spec.rb))_
|
@@ -1204,6 +1640,8 @@ _(see [spec/unit/models/message_encoders/utf8_spec.rb](./spec/unit/models/messag
|
|
1204
1640
|
_(see [spec/unit/models/message_spec.rb](./spec/unit/models/message_spec.rb))_
|
1205
1641
|
* behaves like a model
|
1206
1642
|
* attributes
|
1643
|
+
* #id
|
1644
|
+
* [retrieves attribute :id](./spec/shared/model_behaviour.rb#L15)
|
1207
1645
|
* #name
|
1208
1646
|
* [retrieves attribute :name](./spec/shared/model_behaviour.rb#L15)
|
1209
1647
|
* #client_id
|
@@ -1276,46 +1714,44 @@ _(see [spec/unit/models/message_spec.rb](./spec/unit/models/message_spec.rb))_
|
|
1276
1714
|
* as Nil
|
1277
1715
|
* [is permitted](./spec/unit/models/message_spec.rb#L134)
|
1278
1716
|
|
1279
|
-
### Ably::Models::
|
1280
|
-
_(see [spec/unit/models/
|
1717
|
+
### Ably::Models::PaginatedResult
|
1718
|
+
_(see [spec/unit/models/paginated_result_spec.rb](./spec/unit/models/paginated_result_spec.rb))_
|
1281
1719
|
* #items
|
1282
|
-
* [returns correct length from body](./spec/unit/models/
|
1283
|
-
* [is Enumerable](./spec/unit/models/
|
1284
|
-
* [is iterable](./spec/unit/models/
|
1285
|
-
* [provides [] accessor method](./spec/unit/models/
|
1286
|
-
* [#first gets the first item in page](./spec/unit/models/
|
1287
|
-
* [#last gets the last item in page](./spec/unit/models/
|
1720
|
+
* [returns correct length from body](./spec/unit/models/paginated_result_spec.rb#L31)
|
1721
|
+
* [is Enumerable](./spec/unit/models/paginated_result_spec.rb#L35)
|
1722
|
+
* [is iterable](./spec/unit/models/paginated_result_spec.rb#L39)
|
1723
|
+
* [provides [] accessor method](./spec/unit/models/paginated_result_spec.rb#L57)
|
1724
|
+
* [#first gets the first item in page](./spec/unit/models/paginated_result_spec.rb#L63)
|
1725
|
+
* [#last gets the last item in page](./spec/unit/models/paginated_result_spec.rb#L67)
|
1288
1726
|
* #each
|
1289
|
-
* [returns an enumerator](./spec/unit/models/
|
1290
|
-
* [yields each item](./spec/unit/models/
|
1727
|
+
* [returns an enumerator](./spec/unit/models/paginated_result_spec.rb#L44)
|
1728
|
+
* [yields each item](./spec/unit/models/paginated_result_spec.rb#L48)
|
1291
1729
|
* with non paged http response
|
1292
|
-
* [is the
|
1293
|
-
* [
|
1294
|
-
* [does not
|
1295
|
-
* [
|
1296
|
-
* [returns nil when accessing
|
1297
|
-
* [returns nil when accessing first page](./spec/unit/models/paginated_resource_spec.rb#L192)
|
1730
|
+
* [is the last page](./spec/unit/models/paginated_result_spec.rb#L172)
|
1731
|
+
* [does not have next page](./spec/unit/models/paginated_result_spec.rb#L176)
|
1732
|
+
* [does not support pagination](./spec/unit/models/paginated_result_spec.rb#L180)
|
1733
|
+
* [returns nil when accessing next page](./spec/unit/models/paginated_result_spec.rb#L184)
|
1734
|
+
* [returns nil when accessing first page](./spec/unit/models/paginated_result_spec.rb#L188)
|
1298
1735
|
* with paged http response
|
1299
|
-
* [
|
1300
|
-
* [
|
1301
|
-
* [
|
1302
|
-
* [supports pagination](./spec/unit/models/paginated_resource_spec.rb#L222)
|
1736
|
+
* [has next page](./spec/unit/models/paginated_result_spec.rb#L206)
|
1737
|
+
* [is not the last page](./spec/unit/models/paginated_result_spec.rb#L210)
|
1738
|
+
* [supports pagination](./spec/unit/models/paginated_result_spec.rb#L214)
|
1303
1739
|
* accessing next page
|
1304
|
-
* [returns another
|
1305
|
-
* [retrieves the next page of results](./spec/unit/models/
|
1306
|
-
* [
|
1307
|
-
* [
|
1308
|
-
* [is the last page](./spec/unit/models/
|
1309
|
-
* [returns nil when trying to access the last page when it is the last page](./spec/unit/models/paginated_resource_spec.rb#L271)
|
1740
|
+
* [returns another PaginatedResult](./spec/unit/models/paginated_result_spec.rb#L242)
|
1741
|
+
* [retrieves the next page of results](./spec/unit/models/paginated_result_spec.rb#L246)
|
1742
|
+
* [does not have a next page](./spec/unit/models/paginated_result_spec.rb#L251)
|
1743
|
+
* [is the last page](./spec/unit/models/paginated_result_spec.rb#L255)
|
1744
|
+
* [returns nil when trying to access the last page when it is the last page](./spec/unit/models/paginated_result_spec.rb#L259)
|
1310
1745
|
* and then first page
|
1311
|
-
* [returns a
|
1312
|
-
* [retrieves the first page of results](./spec/unit/models/
|
1313
|
-
* [is the first page](./spec/unit/models/paginated_resource_spec.rb#L290)
|
1746
|
+
* [returns a PaginatedResult](./spec/unit/models/paginated_result_spec.rb#L270)
|
1747
|
+
* [retrieves the first page of results](./spec/unit/models/paginated_result_spec.rb#L274)
|
1314
1748
|
|
1315
1749
|
### Ably::Models::PresenceMessage
|
1316
1750
|
_(see [spec/unit/models/presence_message_spec.rb](./spec/unit/models/presence_message_spec.rb))_
|
1317
1751
|
* behaves like a model
|
1318
1752
|
* attributes
|
1753
|
+
* #id
|
1754
|
+
* [retrieves attribute :id](./spec/shared/model_behaviour.rb#L15)
|
1319
1755
|
* #client_id
|
1320
1756
|
* [retrieves attribute :client_id](./spec/shared/model_behaviour.rb#L15)
|
1321
1757
|
* #data
|
@@ -1404,6 +1840,8 @@ _(see [spec/unit/models/protocol_message_spec.rb](./spec/unit/models/protocol_me
|
|
1404
1840
|
* [retrieves attribute :channel_serial](./spec/shared/model_behaviour.rb#L15)
|
1405
1841
|
* #connection_id
|
1406
1842
|
* [retrieves attribute :connection_id](./spec/shared/model_behaviour.rb#L15)
|
1843
|
+
* #connection_key
|
1844
|
+
* [retrieves attribute :connection_key](./spec/shared/model_behaviour.rb#L15)
|
1407
1845
|
* #==
|
1408
1846
|
* [is true when attributes are the same](./spec/shared/model_behaviour.rb#L41)
|
1409
1847
|
* [is false when attributes are not the same](./spec/shared/model_behaviour.rb#L46)
|
@@ -1465,6 +1903,10 @@ _(see [spec/unit/models/protocol_message_spec.rb](./spec/unit/models/protocol_me
|
|
1465
1903
|
* [returns nil](./spec/unit/models/protocol_message_spec.rb#L253)
|
1466
1904
|
* with error
|
1467
1905
|
* [returns a valid ErrorInfo object](./spec/unit/models/protocol_message_spec.rb#L261)
|
1906
|
+
* #messages
|
1907
|
+
* [contains Message objects](./spec/unit/models/protocol_message_spec.rb#L271)
|
1908
|
+
* #presence
|
1909
|
+
* [contains PresenceMessage objects](./spec/unit/models/protocol_message_spec.rb#L281)
|
1468
1910
|
|
1469
1911
|
### Ably::Models::Stats
|
1470
1912
|
_(see [spec/unit/models/stats_spec.rb](./spec/unit/models/stats_spec.rb))_
|
@@ -1679,7 +2121,7 @@ _(see [spec/unit/models/token_request_spec.rb](./spec/unit/models/token_request_
|
|
1679
2121
|
|
1680
2122
|
### Ably::Modules::EventEmitter
|
1681
2123
|
_(see [spec/unit/modules/event_emitter_spec.rb](./spec/unit/modules/event_emitter_spec.rb))_
|
1682
|
-
* #
|
2124
|
+
* #emit event fan out
|
1683
2125
|
* [should emit an event for any number of subscribers](./spec/unit/modules/event_emitter_spec.rb#L19)
|
1684
2126
|
* [sends only messages to matching event names](./spec/unit/modules/event_emitter_spec.rb#L28)
|
1685
2127
|
* #on subscribe to multiple events
|
@@ -1716,7 +2158,7 @@ _(see [spec/unit/modules/state_emitter_spec.rb](./spec/unit/modules/state_emitte
|
|
1716
2158
|
* [#state= sets current state](./spec/unit/modules/state_emitter_spec.rb#L32)
|
1717
2159
|
* [#change_state sets current state](./spec/unit/modules/state_emitter_spec.rb#L36)
|
1718
2160
|
* #change_state with arguments
|
1719
|
-
* [passes the arguments through to the
|
2161
|
+
* [passes the arguments through to the executed callback](./spec/unit/modules/state_emitter_spec.rb#L44)
|
1720
2162
|
* #state?
|
1721
2163
|
* [returns true if state matches](./spec/unit/modules/state_emitter_spec.rb#L55)
|
1722
2164
|
* [returns false if state does not match](./spec/unit/modules/state_emitter_spec.rb#L59)
|
@@ -1742,49 +2184,53 @@ _(see [spec/unit/realtime/channel_spec.rb](./spec/unit/realtime/channel_spec.rb)
|
|
1742
2184
|
* [raises an argument error](./spec/unit/realtime/channel_spec.rb#L63)
|
1743
2185
|
* #publish name argument
|
1744
2186
|
* as UTF_8 string
|
1745
|
-
* [is permitted](./spec/unit/realtime/channel_spec.rb#
|
2187
|
+
* [is permitted](./spec/unit/realtime/channel_spec.rb#L80)
|
1746
2188
|
* as SHIFT_JIS string
|
1747
|
-
* [is permitted](./spec/unit/realtime/channel_spec.rb#
|
2189
|
+
* [is permitted](./spec/unit/realtime/channel_spec.rb#L88)
|
1748
2190
|
* as ASCII_8BIT string
|
1749
|
-
* [is permitted](./spec/unit/realtime/channel_spec.rb#
|
2191
|
+
* [is permitted](./spec/unit/realtime/channel_spec.rb#L96)
|
1750
2192
|
* as Integer
|
1751
|
-
* [raises an argument error](./spec/unit/realtime/channel_spec.rb#
|
2193
|
+
* [raises an argument error](./spec/unit/realtime/channel_spec.rb#L104)
|
1752
2194
|
* as Nil
|
1753
|
-
* [
|
2195
|
+
* [is permitted](./spec/unit/realtime/channel_spec.rb#L112)
|
1754
2196
|
* callbacks
|
1755
|
-
* [are supported for valid STATE events](./spec/unit/realtime/channel_spec.rb#
|
1756
|
-
* [fail with unacceptable STATE event names](./spec/unit/realtime/channel_spec.rb#
|
2197
|
+
* [are supported for valid STATE events](./spec/unit/realtime/channel_spec.rb#L119)
|
2198
|
+
* [fail with unacceptable STATE event names](./spec/unit/realtime/channel_spec.rb#L125)
|
1757
2199
|
* subscriptions
|
1758
2200
|
* #subscribe
|
1759
|
-
* [without a block raises an invalid ArgumentError](./spec/unit/realtime/channel_spec.rb#
|
1760
|
-
* [with no event name specified subscribes the provided block to all events](./spec/unit/realtime/channel_spec.rb#
|
1761
|
-
* [with a single event name subscribes that block to matching events](./spec/unit/realtime/channel_spec.rb#
|
1762
|
-
* [with a multiple event name arguments subscribes that block to all of those event names](./spec/unit/realtime/channel_spec.rb#
|
1763
|
-
* [with a multiple duplicate event name arguments subscribes that block to all of those unique event names once](./spec/unit/realtime/channel_spec.rb#
|
2201
|
+
* [without a block raises an invalid ArgumentError](./spec/unit/realtime/channel_spec.rb#L167)
|
2202
|
+
* [with no event name specified subscribes the provided block to all events](./spec/unit/realtime/channel_spec.rb#L171)
|
2203
|
+
* [with a single event name subscribes that block to matching events](./spec/unit/realtime/channel_spec.rb#L177)
|
2204
|
+
* [with a multiple event name arguments subscribes that block to all of those event names](./spec/unit/realtime/channel_spec.rb#L184)
|
2205
|
+
* [with a multiple duplicate event name arguments subscribes that block to all of those unique event names once](./spec/unit/realtime/channel_spec.rb#L196)
|
1764
2206
|
* #unsubscribe
|
1765
|
-
* [with no event name specified unsubscribes that block from all events](./spec/unit/realtime/channel_spec.rb#
|
1766
|
-
* [with a single event name argument unsubscribes the provided block with the matching event name](./spec/unit/realtime/channel_spec.rb#
|
1767
|
-
* [with multiple event name arguments unsubscribes each of those matching event names with the provided block](./spec/unit/realtime/channel_spec.rb#
|
1768
|
-
* [with a non-matching event name argument has no effect](./spec/unit/realtime/channel_spec.rb#
|
1769
|
-
* [with no block argument unsubscribes all blocks for the event name argument](./spec/unit/realtime/channel_spec.rb#
|
2207
|
+
* [with no event name specified unsubscribes that block from all events](./spec/unit/realtime/channel_spec.rb#L213)
|
2208
|
+
* [with a single event name argument unsubscribes the provided block with the matching event name](./spec/unit/realtime/channel_spec.rb#L219)
|
2209
|
+
* [with multiple event name arguments unsubscribes each of those matching event names with the provided block](./spec/unit/realtime/channel_spec.rb#L225)
|
2210
|
+
* [with a non-matching event name argument has no effect](./spec/unit/realtime/channel_spec.rb#L231)
|
2211
|
+
* [with no block argument unsubscribes all blocks for the event name argument](./spec/unit/realtime/channel_spec.rb#L237)
|
1770
2212
|
|
1771
2213
|
### Ably::Realtime::Channels
|
1772
2214
|
_(see [spec/unit/realtime/channels_spec.rb](./spec/unit/realtime/channels_spec.rb))_
|
1773
2215
|
* creating channels
|
1774
|
-
* [
|
1775
|
-
*
|
1776
|
-
|
2216
|
+
* [[] creates a channel](./spec/unit/realtime/channels_spec.rb#L43)
|
2217
|
+
* #get
|
2218
|
+
* [creates a channel if it does not exist](./spec/unit/realtime/channels_spec.rb#L14)
|
2219
|
+
* when an existing channel exists
|
2220
|
+
* [will reuse a channel object if it exists](./spec/unit/realtime/channels_spec.rb#L20)
|
2221
|
+
* [will update the options on the channel if provided](./spec/unit/realtime/channels_spec.rb#L26)
|
2222
|
+
* [will leave the options intact on the channel if not provided](./spec/unit/realtime/channels_spec.rb#L34)
|
1777
2223
|
* #fetch
|
1778
|
-
* [retrieves a channel if it exists](./spec/unit/realtime/channels_spec.rb#
|
1779
|
-
* [calls the block if channel is missing](./spec/unit/realtime/channels_spec.rb#
|
2224
|
+
* [retrieves a channel if it exists](./spec/unit/realtime/channels_spec.rb#L50)
|
2225
|
+
* [calls the block if channel is missing](./spec/unit/realtime/channels_spec.rb#L55)
|
1780
2226
|
* destroying channels
|
1781
|
-
* [#release detaches and then releases the channel resources](./spec/unit/realtime/channels_spec.rb#
|
2227
|
+
* [#release detaches and then releases the channel resources](./spec/unit/realtime/channels_spec.rb#L63)
|
1782
2228
|
* is Enumerable
|
1783
|
-
* [allows enumeration](./spec/unit/realtime/channels_spec.rb#
|
1784
|
-
* [provides #length](./spec/unit/realtime/channels_spec.rb#
|
2229
|
+
* [allows enumeration](./spec/unit/realtime/channels_spec.rb#L80)
|
2230
|
+
* [provides #length](./spec/unit/realtime/channels_spec.rb#L96)
|
1785
2231
|
* #each
|
1786
|
-
* [returns an enumerator](./spec/unit/realtime/channels_spec.rb#
|
1787
|
-
* [yields each channel](./spec/unit/realtime/channels_spec.rb#
|
2232
|
+
* [returns an enumerator](./spec/unit/realtime/channels_spec.rb#L85)
|
2233
|
+
* [yields each channel](./spec/unit/realtime/channels_spec.rb#L89)
|
1788
2234
|
|
1789
2235
|
### Ably::Realtime::Client
|
1790
2236
|
_(see [spec/unit/realtime/client_spec.rb](./spec/unit/realtime/client_spec.rb))_
|
@@ -1807,37 +2253,49 @@ _(see [spec/unit/realtime/client_spec.rb](./spec/unit/realtime/client_spec.rb))_
|
|
1807
2253
|
* with valid arguments
|
1808
2254
|
* key only
|
1809
2255
|
* [connects to the Ably service](./spec/shared/client_initializer_behaviour.rb#L87)
|
2256
|
+
* [uses basic auth](./spec/shared/client_initializer_behaviour.rb#L91)
|
1810
2257
|
* with a string key instead of options hash
|
1811
|
-
* [sets the key](./spec/shared/client_initializer_behaviour.rb#
|
1812
|
-
* [sets the key_name](./spec/shared/client_initializer_behaviour.rb#
|
1813
|
-
* [sets the key_secret](./spec/shared/client_initializer_behaviour.rb#
|
2258
|
+
* [sets the key](./spec/shared/client_initializer_behaviour.rb#L107)
|
2259
|
+
* [sets the key_name](./spec/shared/client_initializer_behaviour.rb#L111)
|
2260
|
+
* [sets the key_secret](./spec/shared/client_initializer_behaviour.rb#L115)
|
2261
|
+
* [uses basic auth](./spec/shared/client_initializer_behaviour.rb#L119)
|
1814
2262
|
* with a string token key instead of options hash
|
1815
|
-
* [sets the token](./spec/shared/client_initializer_behaviour.rb#L119)
|
1816
|
-
* with token
|
1817
2263
|
* [sets the token](./spec/shared/client_initializer_behaviour.rb#L127)
|
1818
|
-
* with
|
2264
|
+
* with token
|
1819
2265
|
* [sets the token](./spec/shared/client_initializer_behaviour.rb#L135)
|
2266
|
+
* with token_details
|
2267
|
+
* [sets the token](./spec/shared/client_initializer_behaviour.rb#L143)
|
2268
|
+
* with token_params
|
2269
|
+
* [configures the default token_params](./spec/shared/client_initializer_behaviour.rb#L151)
|
1820
2270
|
* endpoint
|
1821
|
-
* [defaults to production](./spec/shared/client_initializer_behaviour.rb#
|
2271
|
+
* [defaults to production](./spec/shared/client_initializer_behaviour.rb#L158)
|
1822
2272
|
* with environment option
|
1823
|
-
* [uses an alternate endpoint](./spec/shared/client_initializer_behaviour.rb#
|
2273
|
+
* [uses an alternate endpoint](./spec/shared/client_initializer_behaviour.rb#L165)
|
2274
|
+
* with rest_host option
|
2275
|
+
* PENDING: *[uses an alternate endpoint for REST clients](./spec/shared/client_initializer_behaviour.rb#L173)*
|
2276
|
+
* with realtime_host option
|
2277
|
+
* [uses an alternate endpoint for Realtime clients](./spec/shared/client_initializer_behaviour.rb#L182)
|
2278
|
+
* with port option and non-TLS connections
|
2279
|
+
* [uses the custom port for non-TLS requests](./spec/shared/client_initializer_behaviour.rb#L191)
|
2280
|
+
* with tls_port option and a TLS connection
|
2281
|
+
* [uses the custom port for TLS requests](./spec/shared/client_initializer_behaviour.rb#L199)
|
1824
2282
|
* tls
|
1825
|
-
* [defaults to TLS](./spec/shared/client_initializer_behaviour.rb#
|
2283
|
+
* [defaults to TLS](./spec/shared/client_initializer_behaviour.rb#L218)
|
1826
2284
|
* set to false
|
1827
|
-
* [uses plain text](./spec/shared/client_initializer_behaviour.rb#
|
1828
|
-
* [uses HTTP](./spec/shared/client_initializer_behaviour.rb#
|
2285
|
+
* [uses plain text](./spec/shared/client_initializer_behaviour.rb#L209)
|
2286
|
+
* [uses HTTP](./spec/shared/client_initializer_behaviour.rb#L213)
|
1829
2287
|
* logger
|
1830
2288
|
* default
|
1831
|
-
* [uses Ruby Logger](./spec/shared/client_initializer_behaviour.rb#
|
1832
|
-
* [specifies Logger::
|
2289
|
+
* [uses Ruby Logger](./spec/shared/client_initializer_behaviour.rb#L225)
|
2290
|
+
* [specifies Logger::WARN log level](./spec/shared/client_initializer_behaviour.rb#L229)
|
1833
2291
|
* with log_level :none
|
1834
|
-
* [silences all logging with a NilLogger](./spec/shared/client_initializer_behaviour.rb#
|
2292
|
+
* [silences all logging with a NilLogger](./spec/shared/client_initializer_behaviour.rb#L237)
|
1835
2293
|
* with custom logger and log_level
|
1836
|
-
* [uses the custom logger](./spec/shared/client_initializer_behaviour.rb#
|
1837
|
-
* [sets the custom log level](./spec/shared/client_initializer_behaviour.rb#
|
2294
|
+
* [uses the custom logger](./spec/shared/client_initializer_behaviour.rb#L255)
|
2295
|
+
* [sets the custom log level](./spec/shared/client_initializer_behaviour.rb#L259)
|
1838
2296
|
* delegators
|
1839
|
-
* [delegates :client_id to .auth](./spec/shared/client_initializer_behaviour.rb#
|
1840
|
-
* [delegates :auth_options to .auth](./spec/shared/client_initializer_behaviour.rb#
|
2297
|
+
* [delegates :client_id to .auth](./spec/shared/client_initializer_behaviour.rb#L269)
|
2298
|
+
* [delegates :auth_options to .auth](./spec/shared/client_initializer_behaviour.rb#L274)
|
1841
2299
|
* delegation to the REST Client
|
1842
2300
|
* [passes on the options to the initializer](./spec/unit/realtime/client_spec.rb#L15)
|
1843
2301
|
* for attribute
|
@@ -1942,8 +2400,6 @@ _(see [spec/unit/rest/channel_spec.rb](./spec/unit/rest/channel_spec.rb))_
|
|
1942
2400
|
* [is permitted](./spec/unit/rest/channel_spec.rb#L88)
|
1943
2401
|
* as Integer
|
1944
2402
|
* [raises an argument error](./spec/unit/rest/channel_spec.rb#L96)
|
1945
|
-
* as Nil
|
1946
|
-
* [raises an argument error](./spec/unit/rest/channel_spec.rb#L104)
|
1947
2403
|
|
1948
2404
|
### Ably::Rest::Channels
|
1949
2405
|
_(see [spec/unit/rest/channels_spec.rb](./spec/unit/rest/channels_spec.rb))_
|
@@ -1984,50 +2440,62 @@ _(see [spec/unit/rest/client_spec.rb](./spec/unit/rest/client_spec.rb))_
|
|
1984
2440
|
* with valid arguments
|
1985
2441
|
* key only
|
1986
2442
|
* [connects to the Ably service](./spec/shared/client_initializer_behaviour.rb#L87)
|
2443
|
+
* [uses basic auth](./spec/shared/client_initializer_behaviour.rb#L91)
|
1987
2444
|
* with a string key instead of options hash
|
1988
|
-
* [sets the key](./spec/shared/client_initializer_behaviour.rb#
|
1989
|
-
* [sets the key_name](./spec/shared/client_initializer_behaviour.rb#
|
1990
|
-
* [sets the key_secret](./spec/shared/client_initializer_behaviour.rb#
|
2445
|
+
* [sets the key](./spec/shared/client_initializer_behaviour.rb#L107)
|
2446
|
+
* [sets the key_name](./spec/shared/client_initializer_behaviour.rb#L111)
|
2447
|
+
* [sets the key_secret](./spec/shared/client_initializer_behaviour.rb#L115)
|
2448
|
+
* [uses basic auth](./spec/shared/client_initializer_behaviour.rb#L119)
|
1991
2449
|
* with a string token key instead of options hash
|
1992
|
-
* [sets the token](./spec/shared/client_initializer_behaviour.rb#L119)
|
1993
|
-
* with token
|
1994
2450
|
* [sets the token](./spec/shared/client_initializer_behaviour.rb#L127)
|
1995
|
-
* with
|
2451
|
+
* with token
|
1996
2452
|
* [sets the token](./spec/shared/client_initializer_behaviour.rb#L135)
|
2453
|
+
* with token_details
|
2454
|
+
* [sets the token](./spec/shared/client_initializer_behaviour.rb#L143)
|
2455
|
+
* with token_params
|
2456
|
+
* [configures the default token_params](./spec/shared/client_initializer_behaviour.rb#L151)
|
1997
2457
|
* endpoint
|
1998
|
-
* [defaults to production](./spec/shared/client_initializer_behaviour.rb#
|
2458
|
+
* [defaults to production](./spec/shared/client_initializer_behaviour.rb#L158)
|
1999
2459
|
* with environment option
|
2000
|
-
* [uses an alternate endpoint](./spec/shared/client_initializer_behaviour.rb#
|
2460
|
+
* [uses an alternate endpoint](./spec/shared/client_initializer_behaviour.rb#L165)
|
2461
|
+
* with rest_host option
|
2462
|
+
* [uses an alternate endpoint for REST clients](./spec/shared/client_initializer_behaviour.rb#L173)
|
2463
|
+
* with realtime_host option
|
2464
|
+
* PENDING: *[uses an alternate endpoint for Realtime clients](./spec/shared/client_initializer_behaviour.rb#L182)*
|
2465
|
+
* with port option and non-TLS connections
|
2466
|
+
* [uses the custom port for non-TLS requests](./spec/shared/client_initializer_behaviour.rb#L191)
|
2467
|
+
* with tls_port option and a TLS connection
|
2468
|
+
* [uses the custom port for TLS requests](./spec/shared/client_initializer_behaviour.rb#L199)
|
2001
2469
|
* tls
|
2002
|
-
* [defaults to TLS](./spec/shared/client_initializer_behaviour.rb#
|
2470
|
+
* [defaults to TLS](./spec/shared/client_initializer_behaviour.rb#L218)
|
2003
2471
|
* set to false
|
2004
|
-
* [uses plain text](./spec/shared/client_initializer_behaviour.rb#
|
2005
|
-
* [uses HTTP](./spec/shared/client_initializer_behaviour.rb#
|
2472
|
+
* [uses plain text](./spec/shared/client_initializer_behaviour.rb#L209)
|
2473
|
+
* [uses HTTP](./spec/shared/client_initializer_behaviour.rb#L213)
|
2006
2474
|
* logger
|
2007
2475
|
* default
|
2008
|
-
* [uses Ruby Logger](./spec/shared/client_initializer_behaviour.rb#
|
2009
|
-
* [specifies Logger::
|
2476
|
+
* [uses Ruby Logger](./spec/shared/client_initializer_behaviour.rb#L225)
|
2477
|
+
* [specifies Logger::WARN log level](./spec/shared/client_initializer_behaviour.rb#L229)
|
2010
2478
|
* with log_level :none
|
2011
|
-
* [silences all logging with a NilLogger](./spec/shared/client_initializer_behaviour.rb#
|
2479
|
+
* [silences all logging with a NilLogger](./spec/shared/client_initializer_behaviour.rb#L237)
|
2012
2480
|
* with custom logger and log_level
|
2013
|
-
* [uses the custom logger](./spec/shared/client_initializer_behaviour.rb#
|
2014
|
-
* [sets the custom log level](./spec/shared/client_initializer_behaviour.rb#
|
2481
|
+
* [uses the custom logger](./spec/shared/client_initializer_behaviour.rb#L255)
|
2482
|
+
* [sets the custom log level](./spec/shared/client_initializer_behaviour.rb#L259)
|
2015
2483
|
* delegators
|
2016
|
-
* [delegates :client_id to .auth](./spec/shared/client_initializer_behaviour.rb#
|
2017
|
-
* [delegates :auth_options to .auth](./spec/shared/client_initializer_behaviour.rb#
|
2484
|
+
* [delegates :client_id to .auth](./spec/shared/client_initializer_behaviour.rb#L269)
|
2485
|
+
* [delegates :auth_options to .auth](./spec/shared/client_initializer_behaviour.rb#L274)
|
2018
2486
|
* initializer options
|
2019
2487
|
* TLS
|
2020
2488
|
* disabled
|
2021
2489
|
* [fails for any operation with basic auth and attempting to send an API key over a non-secure connection](./spec/unit/rest/client_spec.rb#L17)
|
2022
2490
|
* :use_token_auth
|
2023
2491
|
* set to false
|
2024
|
-
* with
|
2492
|
+
* with a key and :tls => false
|
2025
2493
|
* [fails for any operation with basic auth and attempting to send an API key over a non-secure connection](./spec/unit/rest/client_spec.rb#L28)
|
2026
|
-
* without
|
2027
|
-
* [fails as
|
2494
|
+
* without a key
|
2495
|
+
* [fails as a key is required if not using token auth](./spec/unit/rest/client_spec.rb#L36)
|
2028
2496
|
* set to true
|
2029
|
-
* without
|
2030
|
-
* [fails as
|
2497
|
+
* without a key or token
|
2498
|
+
* [fails as a key is required to issue tokens](./spec/unit/rest/client_spec.rb#L46)
|
2031
2499
|
|
2032
2500
|
### Ably::Rest
|
2033
2501
|
_(see [spec/unit/rest/rest_spec.rb](./spec/unit/rest/rest_spec.rb))_
|
@@ -2068,6 +2536,6 @@ _(see [spec/unit/util/pub_sub_spec.rb](./spec/unit/util/pub_sub_spec.rb))_
|
|
2068
2536
|
|
2069
2537
|
## Test summary
|
2070
2538
|
|
2071
|
-
* Passing tests:
|
2072
|
-
* Pending tests:
|
2539
|
+
* Passing tests: 1244
|
2540
|
+
* Pending tests: 13
|
2073
2541
|
* Failing tests: 0
|