ably-rest 1.0.6 → 1.1.4.rc
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +1 -1
- data/README.md +23 -15
- data/ably-rest.gemspec +6 -6
- data/lib/submodules/ably-ruby/.editorconfig +14 -0
- data/lib/submodules/ably-ruby/.travis.yml +10 -8
- data/lib/submodules/ably-ruby/CHANGELOG.md +75 -3
- data/lib/submodules/ably-ruby/LICENSE +1 -3
- data/lib/submodules/ably-ruby/README.md +12 -7
- data/lib/submodules/ably-ruby/Rakefile +32 -0
- data/lib/submodules/ably-ruby/SPEC.md +1277 -835
- data/lib/submodules/ably-ruby/ably.gemspec +15 -10
- data/lib/submodules/ably-ruby/lib/ably/auth.rb +30 -4
- data/lib/submodules/ably-ruby/lib/ably/exceptions.rb +10 -4
- data/lib/submodules/ably-ruby/lib/ably/logger.rb +7 -1
- data/lib/submodules/ably-ruby/lib/ably/models/channel_state_change.rb +1 -1
- data/lib/submodules/ably-ruby/lib/ably/models/connection_state_change.rb +1 -1
- data/lib/submodules/ably-ruby/lib/ably/models/device_details.rb +87 -0
- data/lib/submodules/ably-ruby/lib/ably/models/device_push_details.rb +86 -0
- data/lib/submodules/ably-ruby/lib/ably/models/error_info.rb +23 -2
- data/lib/submodules/ably-ruby/lib/ably/models/idiomatic_ruby_wrapper.rb +4 -4
- data/lib/submodules/ably-ruby/lib/ably/models/protocol_message.rb +32 -2
- data/lib/submodules/ably-ruby/lib/ably/models/push_channel_subscription.rb +89 -0
- data/lib/submodules/ably-ruby/lib/ably/modules/conversions.rb +1 -1
- data/lib/submodules/ably-ruby/lib/ably/modules/encodeable.rb +1 -1
- data/lib/submodules/ably-ruby/lib/ably/modules/exception_codes.rb +128 -0
- data/lib/submodules/ably-ruby/lib/ably/modules/model_common.rb +15 -2
- data/lib/submodules/ably-ruby/lib/ably/modules/state_machine.rb +2 -2
- data/lib/submodules/ably-ruby/lib/ably/realtime.rb +1 -0
- data/lib/submodules/ably-ruby/lib/ably/realtime/auth.rb +1 -1
- data/lib/submodules/ably-ruby/lib/ably/realtime/channel.rb +24 -102
- data/lib/submodules/ably-ruby/lib/ably/realtime/channel/channel_manager.rb +2 -6
- data/lib/submodules/ably-ruby/lib/ably/realtime/channel/channel_state_machine.rb +2 -2
- data/lib/submodules/ably-ruby/lib/ably/realtime/channel/publisher.rb +74 -0
- data/lib/submodules/ably-ruby/lib/ably/realtime/channel/push_channel.rb +62 -0
- data/lib/submodules/ably-ruby/lib/ably/realtime/client.rb +91 -3
- data/lib/submodules/ably-ruby/lib/ably/realtime/client/incoming_message_dispatcher.rb +6 -2
- data/lib/submodules/ably-ruby/lib/ably/realtime/client/outgoing_message_dispatcher.rb +1 -1
- data/lib/submodules/ably-ruby/lib/ably/realtime/connection.rb +34 -20
- data/lib/submodules/ably-ruby/lib/ably/realtime/connection/connection_manager.rb +25 -9
- data/lib/submodules/ably-ruby/lib/ably/realtime/connection/websocket_transport.rb +1 -1
- data/lib/submodules/ably-ruby/lib/ably/realtime/presence.rb +4 -4
- data/lib/submodules/ably-ruby/lib/ably/realtime/presence/members_map.rb +3 -3
- data/lib/submodules/ably-ruby/lib/ably/realtime/push.rb +40 -0
- data/lib/submodules/ably-ruby/lib/ably/realtime/push/admin.rb +61 -0
- data/lib/submodules/ably-ruby/lib/ably/realtime/push/channel_subscriptions.rb +108 -0
- data/lib/submodules/ably-ruby/lib/ably/realtime/push/device_registrations.rb +105 -0
- data/lib/submodules/ably-ruby/lib/ably/rest.rb +1 -0
- data/lib/submodules/ably-ruby/lib/ably/rest/channel.rb +53 -17
- data/lib/submodules/ably-ruby/lib/ably/rest/channel/push_channel.rb +62 -0
- data/lib/submodules/ably-ruby/lib/ably/rest/client.rb +162 -35
- data/lib/submodules/ably-ruby/lib/ably/rest/middleware/fail_if_unsupported_mime_type.rb +4 -1
- data/lib/submodules/ably-ruby/lib/ably/rest/middleware/parse_message_pack.rb +17 -1
- data/lib/submodules/ably-ruby/lib/ably/rest/presence.rb +1 -0
- data/lib/submodules/ably-ruby/lib/ably/rest/push.rb +42 -0
- data/lib/submodules/ably-ruby/lib/ably/rest/push/admin.rb +54 -0
- data/lib/submodules/ably-ruby/lib/ably/rest/push/channel_subscriptions.rb +121 -0
- data/lib/submodules/ably-ruby/lib/ably/rest/push/device_registrations.rb +103 -0
- data/lib/submodules/ably-ruby/lib/ably/version.rb +7 -2
- data/lib/submodules/ably-ruby/spec/acceptance/realtime/auth_spec.rb +245 -17
- data/lib/submodules/ably-ruby/spec/acceptance/realtime/channel_history_spec.rb +26 -20
- data/lib/submodules/ably-ruby/spec/acceptance/realtime/channel_spec.rb +177 -59
- data/lib/submodules/ably-ruby/spec/acceptance/realtime/client_spec.rb +153 -0
- data/lib/submodules/ably-ruby/spec/acceptance/realtime/connection_failures_spec.rb +72 -6
- data/lib/submodules/ably-ruby/spec/acceptance/realtime/connection_spec.rb +129 -18
- data/lib/submodules/ably-ruby/spec/acceptance/realtime/message_spec.rb +36 -34
- data/lib/submodules/ably-ruby/spec/acceptance/realtime/presence_spec.rb +201 -167
- data/lib/submodules/ably-ruby/spec/acceptance/realtime/push_admin_spec.rb +736 -0
- data/lib/submodules/ably-ruby/spec/acceptance/realtime/push_spec.rb +27 -0
- data/lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb +41 -3
- data/lib/submodules/ably-ruby/spec/acceptance/rest/base_spec.rb +2 -2
- data/lib/submodules/ably-ruby/spec/acceptance/rest/channel_spec.rb +79 -4
- data/lib/submodules/ably-ruby/spec/acceptance/rest/channels_spec.rb +6 -0
- data/lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb +129 -10
- data/lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb +158 -6
- data/lib/submodules/ably-ruby/spec/acceptance/rest/push_admin_spec.rb +952 -0
- data/lib/submodules/ably-ruby/spec/acceptance/rest/push_spec.rb +25 -0
- data/lib/submodules/ably-ruby/spec/acceptance/rest/time_spec.rb +1 -1
- data/lib/submodules/ably-ruby/spec/run_parallel_tests +33 -0
- data/lib/submodules/ably-ruby/spec/spec_helper.rb +1 -1
- data/lib/submodules/ably-ruby/spec/support/debug_failure_helper.rb +9 -5
- data/lib/submodules/ably-ruby/spec/support/test_app.rb +2 -2
- data/lib/submodules/ably-ruby/spec/unit/logger_spec.rb +10 -3
- data/lib/submodules/ably-ruby/spec/unit/models/device_details_spec.rb +102 -0
- data/lib/submodules/ably-ruby/spec/unit/models/device_push_details_spec.rb +101 -0
- data/lib/submodules/ably-ruby/spec/unit/models/error_info_spec.rb +51 -3
- data/lib/submodules/ably-ruby/spec/unit/models/message_spec.rb +17 -2
- data/lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb +1 -1
- data/lib/submodules/ably-ruby/spec/unit/models/push_channel_subscription_spec.rb +86 -0
- data/lib/submodules/ably-ruby/spec/unit/modules/enum_spec.rb +1 -1
- data/lib/submodules/ably-ruby/spec/unit/realtime/client_spec.rb +13 -1
- data/lib/submodules/ably-ruby/spec/unit/realtime/connection_spec.rb +1 -1
- data/lib/submodules/ably-ruby/spec/unit/realtime/push_channel_spec.rb +36 -0
- data/lib/submodules/ably-ruby/spec/unit/rest/channel_spec.rb +8 -1
- data/lib/submodules/ably-ruby/spec/unit/rest/client_spec.rb +30 -0
- data/lib/submodules/ably-ruby/spec/unit/rest/push_channel_spec.rb +36 -0
- metadata +46 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 12d0c3187eec6e03160420f9266a02e4b57017c45cc9792cb701644bd594b8f6
|
4
|
+
data.tar.gz: c5c0a1da2d5f750452b3693ea616c58ddb9bf925afc7a6766859668293241adb
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f321aa69c45f938136ab02c5fd466cc33b661a6481b5244edf8d4eca1090879c9bb1b568d181794a88df623bb971ac3fd5da879b9df012a110a247ae86807eed
|
7
|
+
data.tar.gz: b4df91228d73641db9ce8b9ed3e98420c0ada82cd657d0122dacc471307104932c13be50938d0f8b14b5a68b51e12ae475f962235d5e05097aad811388cb5c3d
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -1,9 +1,8 @@
|
|
1
1
|
# [Ably](https://www.ably.io)
|
2
2
|
|
3
|
-
[](https://travis-ci.org/ably/ably-ruby-rest)
|
4
3
|
[](http://badge.fury.io/rb/ably-rest)
|
5
4
|
|
6
|
-
A Ruby REST client library for [www.ably.io](https://www.ably.io), the realtime messaging service.
|
5
|
+
A Ruby REST client library for [www.ably.io](https://www.ably.io), the realtime messaging service. This library currently targets the [Ably 1.1 client library specification](https://www.ably.io/documentation/client-lib-development-guide/features/). You can jump to the '[Known Limitations](#known-limitations)' section to see the features this client library does not yet support or [view our client library SDKs feature support matrix](https://www.ably.io/download/sdk-feature-support-matrix) to see the list of all the available features.
|
7
6
|
|
8
7
|
## Documentation
|
9
8
|
|
@@ -15,6 +14,14 @@ This REST only library was created for developers who do not want EventMachine a
|
|
15
14
|
|
16
15
|
If however you need to use a realtime library that offers an asynchronous evented AP, then we recommended you [take a look at the combined REST & Realtime gem](https://rubygems.org/gems/ably).
|
17
16
|
|
17
|
+
## Known Limitations
|
18
|
+
|
19
|
+
This client library is currently *not compatible* with some of the Ably features:
|
20
|
+
|
21
|
+
| Feature |
|
22
|
+
| :--- |
|
23
|
+
| [Custom transportParams](https://www.ably.io/documentation/realtime/connection#client-options) |
|
24
|
+
|
18
25
|
## Installation
|
19
26
|
|
20
27
|
The client library is available as a [gem from RubyGems.org](https://rubygems.org/gems/ably-rest).
|
@@ -142,22 +149,23 @@ To see what has changed in recent versions of Bundler, see the [CHANGELOG](CHANG
|
|
142
149
|
Please note that the bulk of this repo is in fact a submodule of the [Ably Ruby REST & Realtime library](https://github.com/ably/ably-ruby). If you want to issue a PR, it is likely you should be looking in that repo to add features or make contributions.
|
143
150
|
|
144
151
|
1. Fork it
|
145
|
-
2.
|
146
|
-
3.
|
147
|
-
4.
|
148
|
-
|
149
|
-
|
152
|
+
2. When pulling to local, make sure to also pull submodules (git submodule init && git submodule update)
|
153
|
+
3. Create your feature branch (`git checkout -b my-new-feature`)
|
154
|
+
4. Commit your changes (`git commit -am 'Add some feature'`)
|
155
|
+
5. Ensure you have added suitable tests and the test suite is passing(`bundle exec rspec`)
|
156
|
+
6. Push to the branch (`git push origin my-new-feature`)
|
157
|
+
7. Create a new Pull Request
|
150
158
|
|
151
159
|
## Release Process
|
152
160
|
|
153
|
-
1. `
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
+
1. From the `main` branch, `cd lib/submodules/ably-ruby`
|
162
|
+
2. `git fetch origin && git fetch --tags`
|
163
|
+
3. Reset to the tagged version released in ably-ruby, e.g. `git reset v1.0.5 --hard`
|
164
|
+
4. Ensure submodules of this submodule are up to date (`git submodule update`)
|
165
|
+
5. cd to `ably-ruby-rest`
|
166
|
+
6. Stage changes `git add .`
|
167
|
+
7. Commit version upgrade (`git commit -m "Version upgrade to v1.0.5"`)
|
168
|
+
8. Run `rake release`
|
161
169
|
|
162
170
|
See the [Ably Ruby release process notes](https://github.com/ably/ably-ruby#release-process).
|
163
171
|
|
data/ably-rest.gemspec
CHANGED
@@ -31,8 +31,8 @@ Gem::Specification.new do |spec|
|
|
31
31
|
spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
|
32
32
|
spec.require_paths = ['lib']
|
33
33
|
|
34
|
-
spec.add_runtime_dependency 'faraday', '~> 0
|
35
|
-
spec.add_runtime_dependency '
|
34
|
+
spec.add_runtime_dependency 'faraday', '~> 1.0'
|
35
|
+
spec.add_runtime_dependency 'typhoeus', '~> 1.4'
|
36
36
|
|
37
37
|
if RUBY_VERSION.match(/^1/)
|
38
38
|
spec.add_runtime_dependency 'json', '< 2.0'
|
@@ -42,11 +42,11 @@ Gem::Specification.new do |spec|
|
|
42
42
|
spec.add_runtime_dependency 'msgpack', '>= 0.6.2'
|
43
43
|
spec.add_runtime_dependency 'addressable', '>= 2.0.0'
|
44
44
|
|
45
|
-
spec.add_development_dependency '
|
46
|
-
spec.add_development_dependency '
|
45
|
+
spec.add_development_dependency 'rake', '~> 13.0'
|
46
|
+
spec.add_development_dependency 'bundler', '~> 2.2.1'
|
47
47
|
spec.add_development_dependency 'redcarpet', '~> 3.3'
|
48
|
-
spec.add_development_dependency 'rspec', '~> 3.
|
49
|
-
spec.add_development_dependency 'rspec-retry', '~> 0.
|
48
|
+
spec.add_development_dependency 'rspec', '~> 3.10.0'
|
49
|
+
spec.add_development_dependency 'rspec-retry', '~> 0.6'
|
50
50
|
spec.add_development_dependency 'yard', '~> 0.9'
|
51
51
|
|
52
52
|
if RUBY_VERSION.match(/^1/)
|
@@ -0,0 +1,14 @@
|
|
1
|
+
# http://EditorConfig.org
|
2
|
+
root = true
|
3
|
+
|
4
|
+
# Unix-style newlines with a newline ending every file
|
5
|
+
[*]
|
6
|
+
end_of_line = lf
|
7
|
+
insert_final_newline = true
|
8
|
+
trim_trailing_whitespace = true
|
9
|
+
indent_style = space
|
10
|
+
indent-size = 2
|
11
|
+
charset = utf-8
|
12
|
+
|
13
|
+
[*.md]
|
14
|
+
trim_trailing_whitespace = false
|
@@ -1,16 +1,18 @@
|
|
1
|
-
sudo: false
|
2
1
|
env:
|
3
|
-
- RSPEC_RETRY=true PROTOCOL=json
|
4
|
-
- RSPEC_RETRY=true PROTOCOL=msgpack
|
2
|
+
- RSPEC_RETRY=true PARALLEL_TEST_PROCESSORS=2 PROTOCOL=json
|
3
|
+
- RSPEC_RETRY=true PARALLEL_TEST_PROCESSORS=2 PROTOCOL=msgpack
|
5
4
|
language: ruby
|
6
5
|
rvm:
|
7
6
|
- 1.9.3
|
8
|
-
- 2.0.0
|
9
7
|
- 2.1.10
|
10
|
-
- 2.2.
|
11
|
-
- 2.3.
|
12
|
-
- 2.
|
13
|
-
|
8
|
+
- 2.2.10
|
9
|
+
- 2.3.8
|
10
|
+
- 2.5.5
|
11
|
+
- 2.6.0
|
12
|
+
- 2.6.1
|
13
|
+
- 2.6.2
|
14
|
+
- 2.6.3
|
15
|
+
script: spec/run_parallel_tests
|
14
16
|
notifications:
|
15
17
|
slack:
|
16
18
|
secure: Xe8MwDcV2C8XLGk6O6Co31LpQiRSxsmS7Toy5vM7rHds5fnVRBNn5iX6Q5mXMdLOlnsMhjKLt7zl4fsBOZv+siQ+Us0omZSIYpXCYSCIj8nofReF0Lj8M4oa6lFSL5OuygO7PH+wLKTRxQURGZ6Pi1nHU+RE5izRmsewQHkhtY0=
|
@@ -1,7 +1,78 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
-
## [v1.
|
3
|
+
## [v1.1.3](https://github.com/ably/ably-ruby/tree/v1.1.3)
|
4
4
|
|
5
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v1.1.2...v1.1.3)
|
6
|
+
|
7
|
+
**Merged pull requests:**
|
8
|
+
|
9
|
+
- RestChannel#publish: implement params (RSL1l) [\#210](https://github.com/ably/ably-ruby/pull/210) ([simonwoolf](https://github.com/simonwoolf))
|
10
|
+
|
11
|
+
## [v1.1.2](https://github.com/ably/ably-ruby/tree/v1.1.2)
|
12
|
+
|
13
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v1.1.1...v1.1.2)
|
14
|
+
|
15
|
+
**Merged pull requests:**
|
16
|
+
|
17
|
+
- Remove legacy skipped tests and upgrade MsgPack [\#184](https://github.com/ably/ably-ruby/pull/184) ([mattheworiordan](https://github.com/mattheworiordan))
|
18
|
+
|
19
|
+
## [v1.1.1](https://github.com/ably/ably-ruby/tree/v1.1.1) (2019-05-06)
|
20
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v1.1.0...v1.1.1)
|
21
|
+
|
22
|
+
**Implemented enhancements:**
|
23
|
+
|
24
|
+
- Support transient publishes as part of 1.1 spec [\#164](https://github.com/ably/ably-ruby/issues/164)
|
25
|
+
|
26
|
+
**Fixed bugs:**
|
27
|
+
|
28
|
+
- RTN16b recovery not fully implemented [\#180](https://github.com/ably/ably-ruby/issues/180)
|
29
|
+
- Publishing a high number of messages before connected results in lost messages [\#179](https://github.com/ably/ably-ruby/issues/179)
|
30
|
+
|
31
|
+
**Merged pull requests:**
|
32
|
+
|
33
|
+
- msgSerial fixes including connection recovery fix [\#181](https://github.com/ably/ably-ruby/pull/181) ([mattheworiordan](https://github.com/mattheworiordan))
|
34
|
+
- Known limitations section in README [\#177](https://github.com/ably/ably-ruby/pull/177) ([Srushtika](https://github.com/Srushtika))
|
35
|
+
|
36
|
+
## [v1.1.0](https://github.com/ably/ably-ruby/tree/v1.1.0) (2019-02-06)
|
37
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v1.0.7...v1.1.0)
|
38
|
+
|
39
|
+
**Fixed bugs:**
|
40
|
+
|
41
|
+
- MessagePack::UnknownExtTypeError: unexpected extension type [\#167](https://github.com/ably/ably-ruby/issues/167)
|
42
|
+
- Ably::Modules::StateMachine produces confusing error code [\#158](https://github.com/ably/ably-ruby/issues/158)
|
43
|
+
- Transition state failure [\#125](https://github.com/ably/ably-ruby/issues/125)
|
44
|
+
|
45
|
+
**Merged pull requests:**
|
46
|
+
|
47
|
+
- V1.1 release [\#173](https://github.com/ably/ably-ruby/pull/173) ([mattheworiordan](https://github.com/mattheworiordan))
|
48
|
+
- Rsc15f remember fallback [\#172](https://github.com/ably/ably-ruby/pull/172) ([mattheworiordan](https://github.com/mattheworiordan))
|
49
|
+
- Generate error codes [\#171](https://github.com/ably/ably-ruby/pull/171) ([mattheworiordan](https://github.com/mattheworiordan))
|
50
|
+
- Parallel tests [\#169](https://github.com/ably/ably-ruby/pull/169) ([mattheworiordan](https://github.com/mattheworiordan))
|
51
|
+
- Transient publishing for \#164 [\#166](https://github.com/ably/ably-ruby/pull/166) ([mattheworiordan](https://github.com/mattheworiordan))
|
52
|
+
- Idempotent publishing [\#165](https://github.com/ably/ably-ruby/pull/165) ([mattheworiordan](https://github.com/mattheworiordan))
|
53
|
+
- Release 1.0.7 [\#162](https://github.com/ably/ably-ruby/pull/162) ([funkyboy](https://github.com/funkyboy))
|
54
|
+
- Minor test fixes [\#123](https://github.com/ably/ably-ruby/pull/123) ([SimonWoolf](https://github.com/SimonWoolf))
|
55
|
+
- Push notifications [\#115](https://github.com/ably/ably-ruby/pull/115) ([mattheworiordan](https://github.com/mattheworiordan))
|
56
|
+
|
57
|
+
## [v1.0.7](https://github.com/ably/ably-ruby/tree/v1.0.7) (2018-06-18)
|
58
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v1.0.6...v1.0.7)
|
59
|
+
|
60
|
+
**Implemented enhancements:**
|
61
|
+
|
62
|
+
- Add JWT test [\#136](https://github.com/ably/ably-ruby/issues/136)
|
63
|
+
|
64
|
+
**Fixed bugs:**
|
65
|
+
|
66
|
+
- Is this sequence correct? [\#155](https://github.com/ably/ably-ruby/issues/155)
|
67
|
+
- Documentation for add\_request\_ids [\#152](https://github.com/ably/ably-ruby/issues/152)
|
68
|
+
|
69
|
+
**Merged pull requests:**
|
70
|
+
|
71
|
+
- Fix auth\_method-\>auth\_params [\#157](https://github.com/ably/ably-ruby/pull/157) ([SimonWoolf](https://github.com/SimonWoolf))
|
72
|
+
- Add request\_id attribute documentation [\#156](https://github.com/ably/ably-ruby/pull/156) ([funkyboy](https://github.com/funkyboy))
|
73
|
+
- Add JWT tests [\#137](https://github.com/ably/ably-ruby/pull/137) ([funkyboy](https://github.com/funkyboy))
|
74
|
+
|
75
|
+
## [v1.0.6](https://github.com/ably/ably-ruby/tree/v1.0.6) (2018-05-01)
|
5
76
|
[Full Changelog](https://github.com/ably/ably-ruby/compare/v1.0.5...v1.0.6)
|
6
77
|
|
7
78
|
**Fixed bugs:**
|
@@ -11,17 +82,18 @@
|
|
11
82
|
**Closed issues:**
|
12
83
|
|
13
84
|
- Passing a frozen channel name or name gives an error on the REST client \[Reopen\] [\#145](https://github.com/ably/ably-ruby/issues/145)
|
14
|
-
- Passing a frozen channel name or name gives an error on the REST client [\#132](https://github.com/ably/ably-ruby/issues/132)
|
15
85
|
|
16
86
|
**Merged pull requests:**
|
17
87
|
|
18
88
|
- Add request id fix for bulk publishes [\#154](https://github.com/ably/ably-ruby/pull/154) ([mattheworiordan](https://github.com/mattheworiordan))
|
19
89
|
- Fix race condition in EventMachine [\#153](https://github.com/ably/ably-ruby/pull/153) ([mattheworiordan](https://github.com/mattheworiordan))
|
20
90
|
- Add support for WebSocket native heartbeats [\#151](https://github.com/ably/ably-ruby/pull/151) ([mattheworiordan](https://github.com/mattheworiordan))
|
91
|
+
- Add .editorconfig for basic IDE configuration settings [\#150](https://github.com/ably/ably-ruby/pull/150) ([mattheworiordan](https://github.com/mattheworiordan))
|
21
92
|
- RSC15d test fixes; add \(failing\) tests for GET as well as POST [\#148](https://github.com/ably/ably-ruby/pull/148) ([SimonWoolf](https://github.com/SimonWoolf))
|
22
93
|
- Do not encode strings in-place [\#147](https://github.com/ably/ably-ruby/pull/147) ([mattheworiordan](https://github.com/mattheworiordan))
|
23
94
|
- Only resume if connection is fresh \(RTN15g\*\) [\#146](https://github.com/ably/ably-ruby/pull/146) ([mattheworiordan](https://github.com/mattheworiordan))
|
24
95
|
- Fix channel history pagination test [\#143](https://github.com/ably/ably-ruby/pull/143) ([funkyboy](https://github.com/funkyboy))
|
96
|
+
- New release v1.0.5 [\#142](https://github.com/ably/ably-ruby/pull/142) ([funkyboy](https://github.com/funkyboy))
|
25
97
|
- Fix presence history test [\#141](https://github.com/ably/ably-ruby/pull/141) ([funkyboy](https://github.com/funkyboy))
|
26
98
|
- Do not encode strings in-place [\#140](https://github.com/ably/ably-ruby/pull/140) ([aschuster3](https://github.com/aschuster3))
|
27
99
|
|
@@ -65,7 +137,7 @@
|
|
65
137
|
- Channel name encoding error for REST requests [\#119](https://github.com/ably/ably-ruby/pull/119) ([mattheworiordan](https://github.com/mattheworiordan))
|
66
138
|
|
67
139
|
## [v1.0.1](https://github.com/ably/ably-ruby/tree/v1.0.1) (2017-05-11)
|
68
|
-
[Full Changelog](https://github.com/ably/ably-ruby/compare/v1.0.
|
140
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v1.1.0-beta.push.1...v1.0.1)
|
69
141
|
|
70
142
|
## [v1.1.0-beta.push.1](https://github.com/ably/ably-ruby/tree/v1.1.0-beta.push.1) (2017-04-25)
|
71
143
|
[Full Changelog](https://github.com/ably/ably-ruby/compare/v1.0.0...v1.1.0-beta.push.1)
|
@@ -3,7 +3,7 @@
|
|
3
3
|
[](http://badge.fury.io/rb/ably)
|
4
4
|
[](https://coveralls.io/r/ably/ably-ruby)
|
5
5
|
|
6
|
-
A Ruby client library for [ably.io](https://www.ably.io), the realtime messaging service.
|
6
|
+
A Ruby client library for [ably.io](https://www.ably.io), the realtime messaging service. This library currently targets the [Ably 1.1 client library specification](https://www.ably.io/documentation/client-lib-development-guide/features/). You can jump to the '[Known Limitations](#known-limitations)' section to see the features this client library does not yet support or [view our client library SDKs feature support matrix](https://www.ably.io/download/sdk-feature-support-matrix) to see the list of all the available features.
|
7
7
|
|
8
8
|
## Supported platforms
|
9
9
|
|
@@ -13,6 +13,14 @@ We regression-test the SDK against a selection of Ruby versions (which we update
|
|
13
13
|
|
14
14
|
If you find any compatibility issues, please [do raise an issue](https://github.com/ably/ably-ruby/issues/new) in this repository or [contact Ably customer support](https://support.ably.io/) for advice.
|
15
15
|
|
16
|
+
## Known Limitations
|
17
|
+
|
18
|
+
This client library is currently *not compatible* with some of the Ably features:
|
19
|
+
|
20
|
+
| Feature |
|
21
|
+
| :--- |
|
22
|
+
| [Custom transportParams](https://www.ably.io/documentation/realtime/connection#client-options) |
|
23
|
+
|
16
24
|
## Documentation
|
17
25
|
|
18
26
|
Visit https://www.ably.io/documentation for a complete API reference and more examples.
|
@@ -316,11 +324,8 @@ To see what has changed in recent versions of Bundler, see the [CHANGELOG](CHANG
|
|
316
324
|
This library uses [semantic versioning](http://semver.org/). For each release, the following needs to be done:
|
317
325
|
|
318
326
|
* Update the version number in [version.rb](./lib/ably/version.rb) and commit the change.
|
319
|
-
* Run [`github_changelog_generator`](https://github.com/skywinder/Github-Changelog-Generator) to automate the update of the [CHANGELOG](./CHANGELOG.md). Once the `CHANGELOG` update has completed, manually change the `Unreleased` heading and link with the current version number such as `v1.0.0`. Also ensure that the `Full Changelog` link points to the new version tag instead of the `HEAD`.
|
327
|
+
* Run [`github_changelog_generator`](https://github.com/skywinder/Github-Changelog-Generator) to automate the update of the [CHANGELOG](./CHANGELOG.md). Once the `CHANGELOG` update has completed, manually change the `Unreleased` heading and link with the current version number such as `v1.0.0`. Also ensure that the `Full Changelog` link points to the new version tag instead of the `HEAD`. Ideally, run `rake doc:spec` to generate a new [spec file](./SPEC.md). Then commit these changes.
|
320
328
|
* Add a tag and push to origin such as `git tag v1.0.0 && git push origin v1.0.0`
|
321
329
|
* Visit [https://github.com/ably/ably-ruby/tags](https://github.com/ably/ably-ruby/tags) and `Add release notes` for the release including links to the changelog entry.
|
322
|
-
* Run `rake release` to publish the gem to [Rubygems](
|
323
|
-
|
324
|
-
## License
|
325
|
-
|
326
|
-
Copyright (c) 2017 Ably Real-time Ltd, Licensed under the Apache License, Version 2.0. Refer to [LICENSE](LICENSE) for the license terms.
|
330
|
+
* Run `rake release` to publish the gem to [Rubygems](https://rubygems.org/gems/ably)
|
331
|
+
* Release the [REST-only library `ably-ruby-rest`](https://github.com/ably/ably-ruby-rest#release-process)
|
@@ -29,6 +29,38 @@ begin
|
|
29
29
|
Rake::Task[:spec].invoke
|
30
30
|
end
|
31
31
|
end
|
32
|
+
|
33
|
+
desc 'Generate error code constants from ably-common: https://github.com/ably/ably-common/issues/32'
|
34
|
+
task :generate_error_codes do
|
35
|
+
errors_json_path = File.join(File.dirname(__FILE__), 'lib/submodules/ably-common/protocol/errors.json')
|
36
|
+
module_path = File.join(File.dirname(__FILE__), 'lib/ably/modules/exception_codes.rb')
|
37
|
+
max_length = 0
|
38
|
+
|
39
|
+
errors = JSON.parse(File.read(errors_json_path)).each_with_object({}) do |(key, val), hash|
|
40
|
+
hash[key] = val.split(/\s+/).map { |d| d.upcase.gsub(/[^a-zA-Z]+/, '') }.join('_')
|
41
|
+
end.each do |code, const_name|
|
42
|
+
max_length = [const_name.length, max_length].max
|
43
|
+
end.map do |code, const_name|
|
44
|
+
" #{const_name.ljust(max_length, ' ')} = #{code}"
|
45
|
+
end.join("\n")
|
46
|
+
module_content = <<-EOF
|
47
|
+
# This file is generated by running `rake :generate_error_codes`
|
48
|
+
# Do not manually modify this file
|
49
|
+
# Generated at: #{Time.now.utc}
|
50
|
+
#
|
51
|
+
module Ably
|
52
|
+
module Exceptions
|
53
|
+
module Codes
|
54
|
+
#{errors}
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
EOF
|
59
|
+
File.open(module_path, 'w') { |file| file.write module_content }
|
60
|
+
|
61
|
+
puts "Error code constants have been generated into #{module_path}"
|
62
|
+
puts "Warning: Search for any constants referenced in this library if their name has changed as a result of this constant generation!"
|
63
|
+
end
|
32
64
|
rescue LoadError
|
33
65
|
# RSpec not available
|
34
66
|
end
|
@@ -1,4 +1,4 @@
|
|
1
|
-
# Ably Realtime & REST Client Library
|
1
|
+
# Ably Realtime & REST Client Library 1.1.0 Specification
|
2
2
|
|
3
3
|
### Ably::Realtime::Auth
|
4
4
|
_(see [spec/acceptance/realtime/auth_spec.rb](./spec/acceptance/realtime/auth_spec.rb))_
|
@@ -55,7 +55,7 @@ _(see [spec/acceptance/realtime/auth_spec.rb](./spec/acceptance/realtime/auth_sp
|
|
55
55
|
* and an incompatible client_id in a TokenDetails object passed to the auth callback
|
56
56
|
* [rejects a TokenDetails object with an incompatible client_id and fails with an exception](./spec/acceptance/realtime/auth_spec.rb#L287)
|
57
57
|
* when already authenticated with a valid token
|
58
|
-
* [ensures message delivery continuity whilst upgrading (#RTC8a1)](./spec/acceptance/realtime/auth_spec.rb#
|
58
|
+
* [ensures message delivery continuity whilst upgrading (#RTC8a1)](./spec/acceptance/realtime/auth_spec.rb#L701)
|
59
59
|
* when INITIALIZED
|
60
60
|
* [obtains a token and connects to Ably (#RTC8c, #RTC8b1)](./spec/acceptance/realtime/auth_spec.rb#L328)
|
61
61
|
* when CONNECTING
|
@@ -76,73 +76,99 @@ _(see [spec/acceptance/realtime/auth_spec.rb](./spec/acceptance/realtime/auth_sp
|
|
76
76
|
* when client is identified
|
77
77
|
* [transitions the connection state to FAILED if the client_id changes (#RSA15c, #RTC8a2)](./spec/acceptance/realtime/auth_spec.rb#L596)
|
78
78
|
* when auth fails
|
79
|
-
* [transitions the connection state to the FAILED state (#RSA15c, #RTC8a2, #RTC8a3)](./spec/acceptance/realtime/auth_spec.rb#
|
79
|
+
* [transitions the connection state to the FAILED state (#RSA15c, #RTC8a2, #RTC8a3)](./spec/acceptance/realtime/auth_spec.rb#L612)
|
80
80
|
* when the authCallback fails
|
81
|
-
* [calls the error callback of authorize and leaves the connection intact (#RSA4c3)](./spec/acceptance/realtime/auth_spec.rb#
|
81
|
+
* [calls the error callback of authorize and leaves the connection intact (#RSA4c3)](./spec/acceptance/realtime/auth_spec.rb#L640)
|
82
82
|
* when upgrading capabilities
|
83
|
-
* [is allowed (#RTC8a1)](./spec/acceptance/realtime/auth_spec.rb#
|
83
|
+
* [is allowed (#RTC8a1)](./spec/acceptance/realtime/auth_spec.rb#L659)
|
84
84
|
* when downgrading capabilities (#RTC8a1)
|
85
|
-
* [is allowed and channels are detached](./spec/acceptance/realtime/auth_spec.rb#
|
85
|
+
* [is allowed and channels are detached](./spec/acceptance/realtime/auth_spec.rb#L684)
|
86
86
|
* #authorize_async
|
87
|
-
* [returns a token synchronously](./spec/acceptance/realtime/auth_spec.rb#
|
87
|
+
* [returns a token synchronously](./spec/acceptance/realtime/auth_spec.rb#L735)
|
88
88
|
* server initiated AUTH ProtocolMessage
|
89
89
|
* when received
|
90
|
-
* [should immediately start a new authentication process (#RTN22)](./spec/acceptance/realtime/auth_spec.rb#
|
90
|
+
* [should immediately start a new authentication process (#RTN22)](./spec/acceptance/realtime/auth_spec.rb#L756)
|
91
91
|
* when not received
|
92
|
-
* [should expect the connection to be disconnected by the server but should resume automatically (#RTN22a)](./spec/acceptance/realtime/auth_spec.rb#
|
92
|
+
* [should expect the connection to be disconnected by the server but should resume automatically (#RTN22a)](./spec/acceptance/realtime/auth_spec.rb#L779)
|
93
93
|
* #auth_params
|
94
|
-
* [returns the auth params asynchronously](./spec/acceptance/realtime/auth_spec.rb#
|
94
|
+
* [returns the auth params asynchronously](./spec/acceptance/realtime/auth_spec.rb#L805)
|
95
95
|
* #auth_params_sync
|
96
|
-
* [returns the auth params synchronously](./spec/acceptance/realtime/auth_spec.rb#
|
96
|
+
* [returns the auth params synchronously](./spec/acceptance/realtime/auth_spec.rb#L814)
|
97
97
|
* #auth_header
|
98
|
-
* [returns an auth header asynchronously](./spec/acceptance/realtime/auth_spec.rb#
|
98
|
+
* [returns an auth header asynchronously](./spec/acceptance/realtime/auth_spec.rb#L821)
|
99
99
|
* #auth_header_sync
|
100
|
-
* [returns an auth header synchronously](./spec/acceptance/realtime/auth_spec.rb#
|
100
|
+
* [returns an auth header synchronously](./spec/acceptance/realtime/auth_spec.rb#L830)
|
101
101
|
* #client_id_validated?
|
102
102
|
* when using basic auth
|
103
103
|
* before connected
|
104
|
-
* [is false as basic auth users do not have an identity](./spec/acceptance/realtime/auth_spec.rb#
|
104
|
+
* [is false as basic auth users do not have an identity](./spec/acceptance/realtime/auth_spec.rb#L843)
|
105
105
|
* once connected
|
106
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
107
|
-
* [contains a validated wildcard client_id](./spec/acceptance/realtime/auth_spec.rb#
|
106
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L850)
|
107
|
+
* [contains a validated wildcard client_id](./spec/acceptance/realtime/auth_spec.rb#L857)
|
108
108
|
* when using a token string
|
109
109
|
* with a valid client_id
|
110
110
|
* before connected
|
111
|
-
* [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#
|
112
|
-
* [#client_id is nil](./spec/acceptance/realtime/auth_spec.rb#
|
111
|
+
* [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#L871)
|
112
|
+
* [#client_id is nil](./spec/acceptance/realtime/auth_spec.rb#L876)
|
113
113
|
* once connected
|
114
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
115
|
-
* [#client_id is populated](./spec/acceptance/realtime/auth_spec.rb#
|
114
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L883)
|
115
|
+
* [#client_id is populated](./spec/acceptance/realtime/auth_spec.rb#L890)
|
116
116
|
* with no client_id (anonymous)
|
117
117
|
* before connected
|
118
|
-
* [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#
|
118
|
+
* [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#L903)
|
119
119
|
* once connected
|
120
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
120
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L910)
|
121
121
|
* with a wildcard client_id (anonymous)
|
122
122
|
* before connected
|
123
|
-
* [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#
|
123
|
+
* [is false as identification is not possible from an opaque token string](./spec/acceptance/realtime/auth_spec.rb#L923)
|
124
124
|
* once connected
|
125
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
125
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L930)
|
126
126
|
* when using a token
|
127
127
|
* with a client_id
|
128
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
128
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L944)
|
129
129
|
* once connected
|
130
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
130
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L950)
|
131
131
|
* with no client_id (anonymous)
|
132
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
132
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L962)
|
133
133
|
* once connected
|
134
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
134
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L968)
|
135
135
|
* with a wildcard client_id (anonymous)
|
136
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
136
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L980)
|
137
137
|
* once connected
|
138
|
-
* [is true](./spec/acceptance/realtime/auth_spec.rb#
|
138
|
+
* [is true](./spec/acceptance/realtime/auth_spec.rb#L986)
|
139
139
|
* when using a token request with a client_id
|
140
|
-
* [is not true as identification is not confirmed until authenticated](./spec/acceptance/realtime/auth_spec.rb#
|
140
|
+
* [is not true as identification is not confirmed until authenticated](./spec/acceptance/realtime/auth_spec.rb#L999)
|
141
141
|
* once connected
|
142
|
-
* [is true as identification is completed following CONNECTED ProtocolMessage](./spec/acceptance/realtime/auth_spec.rb#
|
142
|
+
* [is true as identification is completed following CONNECTED ProtocolMessage](./spec/acceptance/realtime/auth_spec.rb#L1005)
|
143
143
|
* deprecated #authorise
|
144
|
-
* [logs a deprecation warning (#RSA10l)](./spec/acceptance/realtime/auth_spec.rb#
|
145
|
-
* [returns a valid token (#RSA10l)](./spec/acceptance/realtime/auth_spec.rb#
|
144
|
+
* [logs a deprecation warning (#RSA10l)](./spec/acceptance/realtime/auth_spec.rb#L1019)
|
145
|
+
* [returns a valid token (#RSA10l)](./spec/acceptance/realtime/auth_spec.rb#L1025)
|
146
|
+
* when using JWT
|
147
|
+
* when using auth_url
|
148
|
+
* when credentials are valid
|
149
|
+
* [client successfully fetches a channel and publishes a message](./spec/acceptance/realtime/auth_spec.rb#L1044)
|
150
|
+
* when credentials are wrong
|
151
|
+
* [disconnected includes and invalid signature message](./spec/acceptance/realtime/auth_spec.rb#L1057)
|
152
|
+
* when token is expired
|
153
|
+
* [receives a 40142 error from the server](./spec/acceptance/realtime/auth_spec.rb#L1070)
|
154
|
+
* when using auth_callback
|
155
|
+
* when credentials are valid
|
156
|
+
* [authentication succeeds and client can post a message](./spec/acceptance/realtime/auth_spec.rb#L1095)
|
157
|
+
* when credentials are invalid
|
158
|
+
* [authentication fails and reason for disconnection is invalid signature](./spec/acceptance/realtime/auth_spec.rb#L1110)
|
159
|
+
* when the client is initialized with ClientOptions and the token is a JWT token
|
160
|
+
* when credentials are valid
|
161
|
+
* [posts successfully to a channel](./spec/acceptance/realtime/auth_spec.rb#L1127)
|
162
|
+
* when credentials are invalid
|
163
|
+
* [fails with an invalid signature error](./spec/acceptance/realtime/auth_spec.rb#L1141)
|
164
|
+
* when JWT token expires
|
165
|
+
* [client disconnects, a new token is requested via auth_callback and the client gets reconnected](./spec/acceptance/realtime/auth_spec.rb#L1168)
|
166
|
+
* and an AUTH procol message is received
|
167
|
+
* [client reauths correctly without going through a disconnection](./spec/acceptance/realtime/auth_spec.rb#L1196)
|
168
|
+
* when the JWT token request includes a client_id
|
169
|
+
* [the client_id is the same that was specified in the auth_callback that generated the JWT token](./spec/acceptance/realtime/auth_spec.rb#L1224)
|
170
|
+
* when the JWT token request includes a subscribe-only capability
|
171
|
+
* [client fails to publish to a channel with subscribe-only capability and publishes successfully on a channel with permissions](./spec/acceptance/realtime/auth_spec.rb#L1242)
|
146
172
|
|
147
173
|
### Ably::Realtime::Channel#history
|
148
174
|
_(see [spec/acceptance/realtime/channel_history_spec.rb](./spec/acceptance/realtime/channel_history_spec.rb))_
|
@@ -154,295 +180,307 @@ _(see [spec/acceptance/realtime/channel_history_spec.rb](./spec/acceptance/realt
|
|
154
180
|
* [retrieves realtime history on both channels](./spec/acceptance/realtime/channel_history_spec.rb#L46)
|
155
181
|
* with lots of messages published with a single client and channel
|
156
182
|
* as one ProtocolMessage
|
157
|
-
* [retrieves history forwards with pagination through :limit option](./spec/acceptance/realtime/channel_history_spec.rb#
|
158
|
-
* [retrieves history backwards with pagination through :limit option](./spec/acceptance/realtime/channel_history_spec.rb#
|
183
|
+
* [retrieves history forwards with pagination through :limit option](./spec/acceptance/realtime/channel_history_spec.rb#L94)
|
184
|
+
* [retrieves history backwards with pagination through :limit option](./spec/acceptance/realtime/channel_history_spec.rb#L103)
|
159
185
|
* in multiple ProtocolMessages
|
160
|
-
* [retrieves limited history forwards with pagination](./spec/acceptance/realtime/channel_history_spec.rb#
|
161
|
-
* [retrieves limited history backwards with pagination](./spec/acceptance/realtime/channel_history_spec.rb#
|
186
|
+
* FAILED: ~~[retrieves limited history forwards with pagination](./spec/acceptance/realtime/channel_history_spec.rb#L114)~~
|
187
|
+
* FAILED: ~~[retrieves limited history backwards with pagination](./spec/acceptance/realtime/channel_history_spec.rb#L125)~~
|
162
188
|
* and REST history
|
163
|
-
* [return the same results with unique matching message IDs](./spec/acceptance/realtime/channel_history_spec.rb#
|
189
|
+
* [return the same results with unique matching message IDs](./spec/acceptance/realtime/channel_history_spec.rb#L141)
|
164
190
|
* with option until_attach: true
|
165
|
-
* [retrieves all messages before channel was attached](./spec/acceptance/realtime/channel_history_spec.rb#
|
166
|
-
* [fails the deferrable unless the state is attached](./spec/acceptance/realtime/channel_history_spec.rb#
|
191
|
+
* [retrieves all messages before channel was attached](./spec/acceptance/realtime/channel_history_spec.rb#L166)
|
192
|
+
* [fails the deferrable unless the state is attached](./spec/acceptance/realtime/channel_history_spec.rb#L215)
|
167
193
|
* and two pages of messages
|
168
|
-
* [retrieves two pages of messages before channel was attached](./spec/acceptance/realtime/channel_history_spec.rb#
|
194
|
+
* [retrieves two pages of messages before channel was attached](./spec/acceptance/realtime/channel_history_spec.rb#L181)
|
169
195
|
|
170
196
|
### Ably::Realtime::Channel
|
171
197
|
_(see [spec/acceptance/realtime/channel_spec.rb](./spec/acceptance/realtime/channel_spec.rb))_
|
172
198
|
* using JSON protocol
|
173
199
|
* initialization
|
174
200
|
* with :auto_connect option set to false on connection
|
175
|
-
* [remains initialized when accessing a channel](./spec/acceptance/realtime/channel_spec.rb#
|
176
|
-
* [opens a connection implicitly on #attach](./spec/acceptance/realtime/channel_spec.rb#
|
201
|
+
* [remains initialized when accessing a channel](./spec/acceptance/realtime/channel_spec.rb#L29)
|
202
|
+
* [opens a connection implicitly on #attach](./spec/acceptance/realtime/channel_spec.rb#L37)
|
177
203
|
* #attach
|
178
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/channel_spec.rb#
|
179
|
-
* [calls the SafeDeferrable callback on success (#RTL4d)](./spec/acceptance/realtime/channel_spec.rb#
|
204
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/channel_spec.rb#L142)
|
205
|
+
* [calls the SafeDeferrable callback on success (#RTL4d)](./spec/acceptance/realtime/channel_spec.rb#L147)
|
180
206
|
* when initialized
|
181
|
-
* [emits attaching then attached events](./spec/acceptance/realtime/channel_spec.rb#
|
182
|
-
* [ignores subsequent #attach calls but calls the success callback if provided](./spec/acceptance/realtime/channel_spec.rb#
|
183
|
-
* [attaches to a channel](./spec/acceptance/realtime/channel_spec.rb#
|
184
|
-
* [attaches to a channel and calls the provided block (#RTL4d)](./spec/acceptance/realtime/channel_spec.rb#
|
185
|
-
* [sends an ATTACH and waits for an ATTACHED (#RTL4c)](./spec/acceptance/realtime/channel_spec.rb#
|
186
|
-
* [implicitly attaches the channel (#RTL7c)](./spec/acceptance/realtime/channel_spec.rb#
|
207
|
+
* [emits attaching then attached events](./spec/acceptance/realtime/channel_spec.rb#L48)
|
208
|
+
* [ignores subsequent #attach calls but calls the success callback if provided](./spec/acceptance/realtime/channel_spec.rb#L58)
|
209
|
+
* [attaches to a channel](./spec/acceptance/realtime/channel_spec.rb#L71)
|
210
|
+
* [attaches to a channel and calls the provided block (#RTL4d)](./spec/acceptance/realtime/channel_spec.rb#L79)
|
211
|
+
* [sends an ATTACH and waits for an ATTACHED (#RTL4c)](./spec/acceptance/realtime/channel_spec.rb#L86)
|
212
|
+
* [implicitly attaches the channel (#RTL7c)](./spec/acceptance/realtime/channel_spec.rb#L110)
|
187
213
|
* when the implicit channel attach fails
|
188
|
-
* [registers the listener anyway (#RTL7c)](./spec/acceptance/realtime/channel_spec.rb#
|
214
|
+
* [registers the listener anyway (#RTL7c)](./spec/acceptance/realtime/channel_spec.rb#L127)
|
189
215
|
* when an ATTACHED acknowledge is not received on the current connection
|
190
|
-
* [sends another ATTACH each time the connection becomes connected](./spec/acceptance/realtime/channel_spec.rb#
|
216
|
+
* [sends another ATTACH each time the connection becomes connected](./spec/acceptance/realtime/channel_spec.rb#L158)
|
191
217
|
* when state is :attached
|
192
|
-
* [does nothing (#RTL4a)](./spec/acceptance/realtime/channel_spec.rb#
|
218
|
+
* [does nothing (#RTL4a)](./spec/acceptance/realtime/channel_spec.rb#L196)
|
193
219
|
* when state is :failed
|
194
|
-
* [reattaches and sets the errorReason to nil (#RTL4g)](./spec/acceptance/realtime/channel_spec.rb#
|
220
|
+
* [reattaches and sets the errorReason to nil (#RTL4g)](./spec/acceptance/realtime/channel_spec.rb#L216)
|
195
221
|
* when state is :detaching
|
196
|
-
* [does the attach operation after the completion of the pending request (#RTL4h)](./spec/acceptance/realtime/channel_spec.rb#
|
222
|
+
* [does the attach operation after the completion of the pending request (#RTL4h)](./spec/acceptance/realtime/channel_spec.rb#L231)
|
197
223
|
* with many connections and many channels on each simultaneously
|
198
|
-
* [attaches all channels](./spec/acceptance/realtime/channel_spec.rb#
|
224
|
+
* [attaches all channels](./spec/acceptance/realtime/channel_spec.rb#L259)
|
199
225
|
* failure as a result of insufficient key permissions
|
200
|
-
* [emits failed event (#RTL4e)](./spec/acceptance/realtime/channel_spec.rb#
|
201
|
-
* [calls the errback of the returned Deferrable (#RTL4d)](./spec/acceptance/realtime/channel_spec.rb#
|
202
|
-
* [updates the error_reason](./spec/acceptance/realtime/channel_spec.rb#
|
226
|
+
* [emits failed event (#RTL4e)](./spec/acceptance/realtime/channel_spec.rb#L291)
|
227
|
+
* [calls the errback of the returned Deferrable (#RTL4d)](./spec/acceptance/realtime/channel_spec.rb#L300)
|
228
|
+
* [updates the error_reason](./spec/acceptance/realtime/channel_spec.rb#L308)
|
203
229
|
* and subsequent authorisation with suitable permissions
|
204
|
-
* [attaches to the channel successfully and resets the channel error_reason](./spec/acceptance/realtime/channel_spec.rb#
|
230
|
+
* [attaches to the channel successfully and resets the channel error_reason](./spec/acceptance/realtime/channel_spec.rb#L317)
|
205
231
|
* with connection state
|
206
|
-
* [is initialized (#RTL4i)](./spec/acceptance/realtime/channel_spec.rb#
|
207
|
-
* [is connecting (#RTL4i)](./spec/acceptance/realtime/channel_spec.rb#
|
208
|
-
* [is disconnected (#RTL4i)](./spec/acceptance/realtime/channel_spec.rb#
|
232
|
+
* [is initialized (#RTL4i)](./spec/acceptance/realtime/channel_spec.rb#L336)
|
233
|
+
* [is connecting (#RTL4i)](./spec/acceptance/realtime/channel_spec.rb#L343)
|
234
|
+
* [is disconnected (#RTL4i)](./spec/acceptance/realtime/channel_spec.rb#L351)
|
209
235
|
* #detach
|
210
236
|
* when state is :attached
|
211
|
-
* [it detaches from a channel (#RTL5d)](./spec/acceptance/realtime/channel_spec.rb#
|
212
|
-
* [detaches from a channel and calls the provided block (#RTL5d, #RTL5e)](./spec/acceptance/realtime/channel_spec.rb#
|
213
|
-
* [emits :detaching then :detached events](./spec/acceptance/realtime/channel_spec.rb#
|
214
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/channel_spec.rb#
|
215
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/channel_spec.rb#
|
237
|
+
* [it detaches from a channel (#RTL5d)](./spec/acceptance/realtime/channel_spec.rb#L366)
|
238
|
+
* [detaches from a channel and calls the provided block (#RTL5d, #RTL5e)](./spec/acceptance/realtime/channel_spec.rb#L376)
|
239
|
+
* [emits :detaching then :detached events](./spec/acceptance/realtime/channel_spec.rb#L386)
|
240
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/channel_spec.rb#L398)
|
241
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/channel_spec.rb#L405)
|
216
242
|
* and DETACHED message is not received within realtime request timeout
|
217
|
-
* [fails the deferrable and returns to the previous state (#RTL5f, #RTL5e)](./spec/acceptance/realtime/channel_spec.rb#
|
243
|
+
* [fails the deferrable and returns to the previous state (#RTL5f, #RTL5e)](./spec/acceptance/realtime/channel_spec.rb#L419)
|
218
244
|
* when state is :failed
|
219
|
-
* [fails the deferrable (#RTL5b)](./spec/acceptance/realtime/channel_spec.rb#
|
245
|
+
* [fails the deferrable (#RTL5b)](./spec/acceptance/realtime/channel_spec.rb#L439)
|
220
246
|
* when state is :attaching
|
221
|
-
* [waits for the attach to complete and then moves to detached](./spec/acceptance/realtime/channel_spec.rb#
|
247
|
+
* [waits for the attach to complete and then moves to detached](./spec/acceptance/realtime/channel_spec.rb#L452)
|
222
248
|
* when state is :detaching
|
223
|
-
* [ignores subsequent #detach calls but calls the callback if provided (#RTL5i)](./spec/acceptance/realtime/channel_spec.rb#
|
249
|
+
* [ignores subsequent #detach calls but calls the callback if provided (#RTL5i)](./spec/acceptance/realtime/channel_spec.rb#L469)
|
224
250
|
* when state is :suspended
|
225
|
-
* [moves the channel state immediately to DETACHED state (#RTL5j)](./spec/acceptance/realtime/channel_spec.rb#
|
251
|
+
* [moves the channel state immediately to DETACHED state (#RTL5j)](./spec/acceptance/realtime/channel_spec.rb#L486)
|
226
252
|
* when state is :initialized
|
227
|
-
* [does nothing as there is no channel to detach (#RTL5a)](./spec/acceptance/realtime/channel_spec.rb#
|
228
|
-
* [returns a valid deferrable](./spec/acceptance/realtime/channel_spec.rb#
|
253
|
+
* [does nothing as there is no channel to detach (#RTL5a)](./spec/acceptance/realtime/channel_spec.rb#L506)
|
254
|
+
* [returns a valid deferrable](./spec/acceptance/realtime/channel_spec.rb#L514)
|
229
255
|
* when state is :detached
|
230
|
-
* [does nothing as the channel is detached (#RTL5a)](./spec/acceptance/realtime/channel_spec.rb#
|
256
|
+
* [does nothing as the channel is detached (#RTL5a)](./spec/acceptance/realtime/channel_spec.rb#L524)
|
231
257
|
* when connection state is
|
232
258
|
* closing
|
233
|
-
* [fails the deferrable (#RTL5b)](./spec/acceptance/realtime/channel_spec.rb#
|
259
|
+
* [fails the deferrable (#RTL5b)](./spec/acceptance/realtime/channel_spec.rb#L541)
|
234
260
|
* failed and channel is failed
|
235
|
-
* [fails the deferrable (#RTL5b)](./spec/acceptance/realtime/channel_spec.rb#
|
261
|
+
* [fails the deferrable (#RTL5b)](./spec/acceptance/realtime/channel_spec.rb#L561)
|
236
262
|
* failed and channel is detached
|
237
|
-
* [fails the deferrable (#RTL5b)](./spec/acceptance/realtime/channel_spec.rb#
|
263
|
+
* [fails the deferrable (#RTL5b)](./spec/acceptance/realtime/channel_spec.rb#L583)
|
238
264
|
* initialized
|
239
|
-
* [does the detach operation once the connection state is connected (#RTL5h)](./spec/acceptance/realtime/channel_spec.rb#
|
265
|
+
* [does the detach operation once the connection state is connected (#RTL5h)](./spec/acceptance/realtime/channel_spec.rb#L603)
|
240
266
|
* connecting
|
241
|
-
* [does the detach operation once the connection state is connected (#RTL5h)](./spec/acceptance/realtime/channel_spec.rb#
|
267
|
+
* [does the detach operation once the connection state is connected (#RTL5h)](./spec/acceptance/realtime/channel_spec.rb#L618)
|
242
268
|
* disconnected
|
243
|
-
* [does the detach operation once the connection state is connected (#RTL5h)](./spec/acceptance/realtime/channel_spec.rb#
|
269
|
+
* [does the detach operation once the connection state is connected (#RTL5h)](./spec/acceptance/realtime/channel_spec.rb#L637)
|
244
270
|
* automatic channel recovery
|
245
271
|
* when an ATTACH request times out
|
246
|
-
* [moves to the SUSPENDED state (#RTL4f)](./spec/acceptance/realtime/channel_spec.rb#
|
272
|
+
* [moves to the SUSPENDED state (#RTL4f)](./spec/acceptance/realtime/channel_spec.rb#L664)
|
247
273
|
* if a subsequent ATTACHED is received on an ATTACHED channel
|
248
|
-
* [ignores the additional ATTACHED if resumed is true (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#
|
249
|
-
* [emits an UPDATE only when resumed is true (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#
|
250
|
-
* [emits an UPDATE when resumed is true and includes the reason error from the ProtocolMessage (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#
|
274
|
+
* [ignores the additional ATTACHED if resumed is true (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#L678)
|
275
|
+
* [emits an UPDATE only when resumed is true (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#L692)
|
276
|
+
* [emits an UPDATE when resumed is true and includes the reason error from the ProtocolMessage (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#L708)
|
251
277
|
* #publish
|
252
|
-
* when attached
|
253
|
-
* [publishes messages](./spec/acceptance/realtime/channel_spec.rb#
|
254
|
-
* when not
|
255
|
-
* [publishes
|
256
|
-
|
257
|
-
*
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
*
|
265
|
-
|
278
|
+
* when channel is attached (#RTL6c1)
|
279
|
+
* [publishes messages](./spec/acceptance/realtime/channel_spec.rb#L733)
|
280
|
+
* when channel is not attached in state Initializing (#RTL6c1)
|
281
|
+
* [publishes messages immediately and does not implicitly attach (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#L745)
|
282
|
+
* when channel is Attaching (#RTL6c1)
|
283
|
+
* [publishes messages immediately (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#L762)
|
284
|
+
* when channel is Detaching (#RTL6c1)
|
285
|
+
* [publishes messages immediately (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#L787)
|
286
|
+
* when channel is Detached (#RTL6c1)
|
287
|
+
* [publishes messages immediately (#RTL6c1)](./spec/acceptance/realtime/channel_spec.rb#L814)
|
288
|
+
* with :queue_messages client option set to false (#RTL6c4)
|
289
|
+
* and connection state connected (#RTL6c4)
|
290
|
+
* [publishes the message](./spec/acceptance/realtime/channel_spec.rb#L845)
|
291
|
+
* and connection state initialized (#RTL6c4)
|
292
|
+
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L854)
|
293
|
+
* and connection state connecting (#RTL6c4)
|
294
|
+
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L864)
|
295
|
+
* and connection state disconnected (#RTL6c4)
|
296
|
+
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L879)
|
297
|
+
* and connection state suspended (#RTL6c4)
|
298
|
+
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L879)
|
299
|
+
* and connection state closing (#RTL6c4)
|
300
|
+
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L879)
|
301
|
+
* and connection state closed (#RTL6c4)
|
302
|
+
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L879)
|
303
|
+
* and the channel state is failed (#RTL6c4)
|
304
|
+
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L900)
|
266
305
|
* with name and data arguments
|
267
|
-
* [publishes the message and return true indicating success](./spec/acceptance/realtime/channel_spec.rb#
|
306
|
+
* [publishes the message and return true indicating success](./spec/acceptance/realtime/channel_spec.rb#L918)
|
268
307
|
* and additional attributes
|
269
|
-
* [publishes the message with the attributes and return true indicating success](./spec/acceptance/realtime/channel_spec.rb#
|
308
|
+
* [publishes the message with the attributes and return true indicating success](./spec/acceptance/realtime/channel_spec.rb#L931)
|
270
309
|
* and additional invalid attributes
|
271
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
310
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L944)
|
272
311
|
* with an array of Hash objects with :name and :data attributes
|
273
|
-
* [publishes an array of messages in one ProtocolMessage](./spec/acceptance/realtime/channel_spec.rb#
|
312
|
+
* [publishes an array of messages in one ProtocolMessage](./spec/acceptance/realtime/channel_spec.rb#L958)
|
274
313
|
* with an array of Message objects
|
275
|
-
* [publishes an array of messages in one ProtocolMessage](./spec/acceptance/realtime/channel_spec.rb#
|
314
|
+
* [publishes an array of messages in one ProtocolMessage](./spec/acceptance/realtime/channel_spec.rb#L986)
|
276
315
|
* nil attributes
|
277
316
|
* when name is nil
|
278
|
-
* [publishes the message without a name attribute in the payload](./spec/acceptance/realtime/channel_spec.rb#
|
317
|
+
* [publishes the message without a name attribute in the payload](./spec/acceptance/realtime/channel_spec.rb#L1010)
|
279
318
|
* when data is nil
|
280
|
-
* [publishes the message without a data attribute in the payload](./spec/acceptance/realtime/channel_spec.rb#
|
319
|
+
* [publishes the message without a data attribute in the payload](./spec/acceptance/realtime/channel_spec.rb#L1033)
|
281
320
|
* with neither name or data attributes
|
282
|
-
* [publishes the message without any attributes in the payload](./spec/acceptance/realtime/channel_spec.rb#
|
321
|
+
* [publishes the message without any attributes in the payload](./spec/acceptance/realtime/channel_spec.rb#L1056)
|
283
322
|
* with two invalid message out of 12
|
284
323
|
* before client_id is known (validated)
|
285
|
-
* [calls the errback once](./spec/acceptance/realtime/channel_spec.rb#
|
324
|
+
* [calls the errback once](./spec/acceptance/realtime/channel_spec.rb#L1080)
|
286
325
|
* when client_id is known (validated)
|
287
|
-
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#
|
326
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L1100)
|
288
327
|
* only invalid messages
|
289
328
|
* before client_id is known (validated)
|
290
|
-
* [calls the errback once](./spec/acceptance/realtime/channel_spec.rb#
|
329
|
+
* [calls the errback once](./spec/acceptance/realtime/channel_spec.rb#L1119)
|
291
330
|
* when client_id is known (validated)
|
292
|
-
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#
|
331
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L1138)
|
293
332
|
* with many many messages and many connections simultaneously
|
294
|
-
* [publishes all messages, all success callbacks are called, and a history request confirms all messages were published](./spec/acceptance/realtime/channel_spec.rb#
|
333
|
+
* [publishes all messages, all success callbacks are called, and a history request confirms all messages were published](./spec/acceptance/realtime/channel_spec.rb#L1152)
|
334
|
+
* with more than allowed messages in a single publish
|
335
|
+
* [rejects the publish](./spec/acceptance/realtime/channel_spec.rb#L1175)
|
295
336
|
* identified clients
|
296
337
|
* when authenticated with a wildcard client_id
|
297
338
|
* with a valid client_id in the message
|
298
|
-
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#
|
339
|
+
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1195)
|
299
340
|
* with a wildcard client_id in the message
|
300
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
341
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1207)
|
301
342
|
* with a non-String client_id in the message
|
302
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
343
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1214)
|
303
344
|
* with an empty client_id in the message
|
304
|
-
* [succeeds and publishes without a client_id](./spec/acceptance/realtime/channel_spec.rb#
|
345
|
+
* [succeeds and publishes without a client_id](./spec/acceptance/realtime/channel_spec.rb#L1221)
|
305
346
|
* when authenticated with a Token string with an implicit client_id
|
306
347
|
* before the client is CONNECTED and the client's identity has been obtained
|
307
348
|
* with a valid client_id in the message
|
308
|
-
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#
|
349
|
+
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1241)
|
309
350
|
* with an invalid client_id in the message
|
310
|
-
* [succeeds in the client library but then fails when delivered to Ably](./spec/acceptance/realtime/channel_spec.rb#
|
351
|
+
* [succeeds in the client library but then fails when delivered to Ably](./spec/acceptance/realtime/channel_spec.rb#L1254)
|
311
352
|
* with an empty client_id in the message
|
312
|
-
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#
|
353
|
+
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L1265)
|
313
354
|
* after the client is CONNECTED and the client's identity is known
|
314
355
|
* with a valid client_id in the message
|
315
|
-
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#
|
356
|
+
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1279)
|
316
357
|
* with an invalid client_id in the message
|
317
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
358
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1293)
|
318
359
|
* with an empty client_id in the message
|
319
|
-
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#
|
360
|
+
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L1302)
|
320
361
|
* when authenticated with a valid client_id
|
321
362
|
* with a valid client_id
|
322
|
-
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#
|
363
|
+
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1324)
|
323
364
|
* with a wildcard client_id in the message
|
324
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
365
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1336)
|
325
366
|
* with an invalid client_id in the message
|
326
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
367
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1343)
|
327
368
|
* with an empty client_id in the message
|
328
|
-
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#
|
369
|
+
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L1350)
|
329
370
|
* when anonymous and no client_id
|
330
371
|
* with a client_id in the message
|
331
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
372
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1369)
|
332
373
|
* with a wildcard client_id in the message
|
333
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
374
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1376)
|
334
375
|
* with an empty client_id in the message
|
335
|
-
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#
|
376
|
+
* [succeeds and publishes with an implicit client_id](./spec/acceptance/realtime/channel_spec.rb#L1383)
|
336
377
|
* #subscribe
|
337
378
|
* with an event argument
|
338
|
-
* [subscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#
|
379
|
+
* [subscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L1399)
|
339
380
|
* before attach
|
340
|
-
* [receives messages as soon as attached](./spec/acceptance/realtime/channel_spec.rb#
|
381
|
+
* [receives messages as soon as attached](./spec/acceptance/realtime/channel_spec.rb#L1409)
|
341
382
|
* with no event argument
|
342
|
-
* [subscribes for all events](./spec/acceptance/realtime/channel_spec.rb#
|
383
|
+
* [subscribes for all events](./spec/acceptance/realtime/channel_spec.rb#L1423)
|
343
384
|
* with a callback that raises an exception
|
344
|
-
* [logs the error and continues](./spec/acceptance/realtime/channel_spec.rb#
|
385
|
+
* [logs the error and continues](./spec/acceptance/realtime/channel_spec.rb#L1435)
|
345
386
|
* many times with different event names
|
346
|
-
* [filters events accordingly to each callback](./spec/acceptance/realtime/channel_spec.rb#
|
387
|
+
* [filters events accordingly to each callback](./spec/acceptance/realtime/channel_spec.rb#L1454)
|
347
388
|
* #unsubscribe
|
348
389
|
* with an event argument
|
349
|
-
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#
|
390
|
+
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L1477)
|
350
391
|
* with no event argument
|
351
|
-
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#
|
392
|
+
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L1490)
|
352
393
|
* when connection state changes to
|
353
394
|
* :failed
|
354
395
|
* an :attaching channel
|
355
|
-
* [transitions state to :failed (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#
|
396
|
+
* [transitions state to :failed (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L1513)
|
356
397
|
* an :attached channel
|
357
|
-
* [transitions state to :failed (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#
|
358
|
-
* [updates the channel error_reason (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#
|
398
|
+
* [transitions state to :failed (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L1530)
|
399
|
+
* [updates the channel error_reason (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L1542)
|
359
400
|
* a :detached channel
|
360
|
-
* [remains in the :detached state (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#
|
401
|
+
* [remains in the :detached state (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L1556)
|
361
402
|
* a :failed channel
|
362
|
-
* [remains in the :failed state and ignores the failure error (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#
|
403
|
+
* [remains in the :failed state and ignores the failure error (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L1575)
|
363
404
|
* a channel ATTACH request
|
364
|
-
* [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#
|
405
|
+
* [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#L1595)
|
365
406
|
* :closed
|
366
407
|
* an :attached channel
|
367
|
-
* [transitions state to :detached (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#
|
408
|
+
* [transitions state to :detached (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#L1611)
|
368
409
|
* an :attaching channel (#RTL3b)
|
369
|
-
* [transitions state to :detached](./spec/acceptance/realtime/channel_spec.rb#
|
410
|
+
* [transitions state to :detached](./spec/acceptance/realtime/channel_spec.rb#L1622)
|
370
411
|
* a :detached channel
|
371
|
-
* [remains in the :detached state (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#
|
412
|
+
* [remains in the :detached state (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#L1637)
|
372
413
|
* a :failed channel
|
373
|
-
* [remains in the :failed state and retains the error_reason (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#
|
414
|
+
* [remains in the :failed state and retains the error_reason (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#L1657)
|
374
415
|
* a channel ATTACH request when connection CLOSED
|
375
|
-
* [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#
|
416
|
+
* [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#L1677)
|
376
417
|
* a channel ATTACH request when connection CLOSING
|
377
|
-
* [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#
|
418
|
+
* [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#L1691)
|
378
419
|
* :suspended
|
379
420
|
* an :attaching channel
|
380
|
-
* [transitions state to :suspended (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#
|
421
|
+
* [transitions state to :suspended (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#L1707)
|
381
422
|
* an :attached channel
|
382
|
-
* [transitions state to :suspended (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#
|
383
|
-
* [transitions state automatically to :attaching once the connection is re-established (#RTN15c3)](./spec/acceptance/realtime/channel_spec.rb#
|
423
|
+
* [transitions state to :suspended (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#L1721)
|
424
|
+
* [transitions state automatically to :attaching once the connection is re-established (#RTN15c3)](./spec/acceptance/realtime/channel_spec.rb#L1730)
|
384
425
|
* a :detached channel
|
385
|
-
* [remains in the :detached state (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#
|
426
|
+
* [remains in the :detached state (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#L1744)
|
386
427
|
* a :failed channel
|
387
|
-
* [remains in the :failed state and retains the error_reason (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#
|
428
|
+
* [remains in the :failed state and retains the error_reason (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#L1764)
|
388
429
|
* a channel ATTACH request when connection SUSPENDED (#RTL4b)
|
389
|
-
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#
|
430
|
+
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1786)
|
390
431
|
* :connected
|
391
432
|
* a :suspended channel
|
392
|
-
* [is automatically reattached (#RTL3d)](./spec/acceptance/realtime/channel_spec.rb#
|
433
|
+
* [is automatically reattached (#RTL3d)](./spec/acceptance/realtime/channel_spec.rb#L1802)
|
393
434
|
* when re-attach attempt fails
|
394
|
-
* [returns to a suspended state (#RTL3d)](./spec/acceptance/realtime/channel_spec.rb#
|
435
|
+
* [returns to a suspended state (#RTL3d)](./spec/acceptance/realtime/channel_spec.rb#L1819)
|
395
436
|
* :disconnected
|
396
437
|
* with an initialized channel
|
397
|
-
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#
|
438
|
+
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L1845)
|
398
439
|
* with an attaching channel
|
399
|
-
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#
|
440
|
+
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L1858)
|
400
441
|
* with an attached channel
|
401
|
-
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#
|
442
|
+
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L1873)
|
402
443
|
* with a detached channel
|
403
|
-
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#
|
444
|
+
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L1885)
|
404
445
|
* with a failed channel
|
405
|
-
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#
|
446
|
+
* [has no effect on the channel states (#RTL3e)](./spec/acceptance/realtime/channel_spec.rb#L1907)
|
406
447
|
* #presence
|
407
|
-
* [returns a Ably::Realtime::Presence object](./spec/acceptance/realtime/channel_spec.rb#
|
448
|
+
* [returns a Ably::Realtime::Presence object](./spec/acceptance/realtime/channel_spec.rb#L1922)
|
408
449
|
* channel state change
|
409
|
-
* [emits a ChannelStateChange object](./spec/acceptance/realtime/channel_spec.rb#
|
450
|
+
* [emits a ChannelStateChange object](./spec/acceptance/realtime/channel_spec.rb#L1929)
|
410
451
|
* ChannelStateChange object
|
411
|
-
* [has current state](./spec/acceptance/realtime/channel_spec.rb#
|
412
|
-
* [has a previous state](./spec/acceptance/realtime/channel_spec.rb#
|
413
|
-
* [has the event that generated the state change (#TA5)](./spec/acceptance/realtime/channel_spec.rb#
|
414
|
-
* [has an empty reason when there is no error](./spec/acceptance/realtime/channel_spec.rb#
|
452
|
+
* [has current state](./spec/acceptance/realtime/channel_spec.rb#L1938)
|
453
|
+
* [has a previous state](./spec/acceptance/realtime/channel_spec.rb#L1947)
|
454
|
+
* [has the event that generated the state change (#TA5)](./spec/acceptance/realtime/channel_spec.rb#L1956)
|
455
|
+
* [has an empty reason when there is no error](./spec/acceptance/realtime/channel_spec.rb#L1974)
|
415
456
|
* on failure
|
416
|
-
* [has a reason Error object when there is an error on the channel](./spec/acceptance/realtime/channel_spec.rb#
|
457
|
+
* [has a reason Error object when there is an error on the channel](./spec/acceptance/realtime/channel_spec.rb#L1987)
|
417
458
|
* #resume (#RTL2f)
|
418
|
-
* [is false when a channel first attaches](./spec/acceptance/realtime/channel_spec.rb#
|
419
|
-
*
|
420
|
-
* [is false when a connection fails to recover and the channel is attached](./spec/acceptance/realtime/channel_spec.rb#
|
459
|
+
* [is false when a channel first attaches](./spec/acceptance/realtime/channel_spec.rb#L2000)
|
460
|
+
* [is true when a connection is recovered and the channel is attached](./spec/acceptance/realtime/channel_spec.rb#L2008)
|
461
|
+
* [is false when a connection fails to recover and the channel is attached](./spec/acceptance/realtime/channel_spec.rb#L2027)
|
421
462
|
* when a resume fails
|
422
|
-
* [is false when a resume fails to recover and the channel is automatically re-attached](./spec/acceptance/realtime/channel_spec.rb#
|
463
|
+
* [is false when a resume fails to recover and the channel is automatically re-attached](./spec/acceptance/realtime/channel_spec.rb#L2049)
|
423
464
|
* moves to
|
424
465
|
* suspended
|
425
|
-
* [all queued messages fail with NACK (#RTL11)](./spec/acceptance/realtime/channel_spec.rb#
|
426
|
-
* [all published messages awaiting an ACK do nothing (#RTL11a)](./spec/acceptance/realtime/channel_spec.rb#
|
427
|
-
* detached
|
428
|
-
* [all queued messages fail with NACK (#RTL11)](./spec/acceptance/realtime/channel_spec.rb#L1960)
|
429
|
-
* [all published messages awaiting an ACK do nothing (#RTL11a)](./spec/acceptance/realtime/channel_spec.rb#L1983)
|
466
|
+
* [all queued messages fail with NACK (#RTL11)](./spec/acceptance/realtime/channel_spec.rb#L2072)
|
467
|
+
* [all published messages awaiting an ACK do nothing (#RTL11a)](./spec/acceptance/realtime/channel_spec.rb#L2095)
|
430
468
|
* failed
|
431
|
-
* [all queued messages fail with NACK (#RTL11)](./spec/acceptance/realtime/channel_spec.rb#
|
432
|
-
* [all published messages awaiting an ACK do nothing (#RTL11a)](./spec/acceptance/realtime/channel_spec.rb#
|
469
|
+
* [all queued messages fail with NACK (#RTL11)](./spec/acceptance/realtime/channel_spec.rb#L2072)
|
470
|
+
* [all published messages awaiting an ACK do nothing (#RTL11a)](./spec/acceptance/realtime/channel_spec.rb#L2095)
|
433
471
|
* when it receives a server-initiated DETACHED (#RTL13)
|
434
472
|
* and channel is initialized (#RTL13)
|
435
|
-
* [does nothing](./spec/acceptance/realtime/channel_spec.rb#
|
473
|
+
* [does nothing](./spec/acceptance/realtime/channel_spec.rb#L2130)
|
436
474
|
* and channel is failed
|
437
|
-
* [does nothing (#RTL13)](./spec/acceptance/realtime/channel_spec.rb#
|
475
|
+
* [does nothing (#RTL13)](./spec/acceptance/realtime/channel_spec.rb#L2151)
|
438
476
|
* and channel is attached
|
439
|
-
* [reattaches immediately (#RTL13a)](./spec/acceptance/realtime/channel_spec.rb#
|
477
|
+
* [reattaches immediately (#RTL13a)](./spec/acceptance/realtime/channel_spec.rb#L2167)
|
440
478
|
* and channel is suspended
|
441
|
-
* [reattaches immediately (#RTL13a)](./spec/acceptance/realtime/channel_spec.rb#
|
479
|
+
* [reattaches immediately (#RTL13a)](./spec/acceptance/realtime/channel_spec.rb#L2183)
|
442
480
|
* and channel is attaching
|
443
|
-
* [will move to the SUSPENDED state and then attempt to ATTACH with the ATTACHING state (#RTL13b)](./spec/acceptance/realtime/channel_spec.rb#
|
481
|
+
* [will move to the SUSPENDED state and then attempt to ATTACH with the ATTACHING state (#RTL13b)](./spec/acceptance/realtime/channel_spec.rb#L2205)
|
444
482
|
* when it receives an ERROR ProtocolMessage
|
445
|
-
* [should transition to the failed state and the error_reason should be set (#RTL14)](./spec/acceptance/realtime/channel_spec.rb#
|
483
|
+
* [should transition to the failed state and the error_reason should be set (#RTL14)](./spec/acceptance/realtime/channel_spec.rb#L2253)
|
446
484
|
|
447
485
|
### Ably::Realtime::Channels
|
448
486
|
_(see [spec/acceptance/realtime/channels_spec.rb](./spec/acceptance/realtime/channels_spec.rb))_
|
@@ -469,58 +507,75 @@ _(see [spec/acceptance/realtime/client_spec.rb](./spec/acceptance/realtime/clien
|
|
469
507
|
* using JSON protocol
|
470
508
|
* initialization
|
471
509
|
* basic auth
|
472
|
-
* [is enabled by default with a provided :key option](./spec/acceptance/realtime/client_spec.rb#
|
510
|
+
* [is enabled by default with a provided :key option](./spec/acceptance/realtime/client_spec.rb#L19)
|
511
|
+
* with an invalid API key
|
512
|
+
* [logs an entry with a help href url matching the code #TI5](./spec/acceptance/realtime/client_spec.rb#L32)
|
473
513
|
* :tls option
|
474
514
|
* set to false to force a plain-text connection
|
475
|
-
* [fails to connect because a private key cannot be sent over a non-secure connection](./spec/acceptance/realtime/client_spec.rb#
|
515
|
+
* [fails to connect because a private key cannot be sent over a non-secure connection](./spec/acceptance/realtime/client_spec.rb#L48)
|
476
516
|
* token auth
|
477
517
|
* with TLS enabled
|
478
518
|
* and a pre-generated Token provided with the :token option
|
479
|
-
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#
|
519
|
+
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#L69)
|
480
520
|
* with valid :key and :use_token_auth option set to true
|
481
|
-
* [automatically authorizes on connect and generates a token](./spec/acceptance/realtime/client_spec.rb#
|
521
|
+
* [automatically authorizes on connect and generates a token](./spec/acceptance/realtime/client_spec.rb#L82)
|
482
522
|
* with client_id
|
483
|
-
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#
|
523
|
+
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#L95)
|
484
524
|
* with TLS disabled
|
485
525
|
* and a pre-generated Token provided with the :token option
|
486
|
-
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#
|
526
|
+
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#L69)
|
487
527
|
* with valid :key and :use_token_auth option set to true
|
488
|
-
* [automatically authorizes on connect and generates a token](./spec/acceptance/realtime/client_spec.rb#
|
528
|
+
* [automatically authorizes on connect and generates a token](./spec/acceptance/realtime/client_spec.rb#L82)
|
489
529
|
* with client_id
|
490
|
-
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#
|
530
|
+
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#L95)
|
491
531
|
* with a Proc for the :auth_callback option
|
492
|
-
* [calls the Proc](./spec/acceptance/realtime/client_spec.rb#
|
493
|
-
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/realtime/client_spec.rb#
|
532
|
+
* [calls the Proc](./spec/acceptance/realtime/client_spec.rb#L120)
|
533
|
+
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/realtime/client_spec.rb#L127)
|
494
534
|
* when the returned token has a client_id
|
495
|
-
* [sets Auth#client_id to the new token's client_id immediately when connecting](./spec/acceptance/realtime/client_spec.rb#
|
496
|
-
* [sets Client#client_id to the new token's client_id immediately when connecting](./spec/acceptance/realtime/client_spec.rb#
|
535
|
+
* [sets Auth#client_id to the new token's client_id immediately when connecting](./spec/acceptance/realtime/client_spec.rb#L135)
|
536
|
+
* [sets Client#client_id to the new token's client_id immediately when connecting](./spec/acceptance/realtime/client_spec.rb#L143)
|
497
537
|
* with a wildcard client_id token
|
498
538
|
* and an explicit client_id in ClientOptions
|
499
|
-
* [allows uses the explicit client_id in the connection](./spec/acceptance/realtime/client_spec.rb#
|
539
|
+
* [allows uses the explicit client_id in the connection](./spec/acceptance/realtime/client_spec.rb#L161)
|
500
540
|
* and client_id omitted in ClientOptions
|
501
|
-
* [uses the token provided clientId in the connection](./spec/acceptance/realtime/client_spec.rb#
|
541
|
+
* [uses the token provided clientId in the connection](./spec/acceptance/realtime/client_spec.rb#L177)
|
502
542
|
* with an invalid wildcard "*" :client_id
|
503
|
-
* [raises an exception](./spec/acceptance/realtime/client_spec.rb#
|
543
|
+
* [raises an exception](./spec/acceptance/realtime/client_spec.rb#L193)
|
504
544
|
* realtime connection settings
|
505
545
|
* defaults
|
506
|
-
* [disconnected_retry_timeout is 15s](./spec/acceptance/realtime/client_spec.rb#
|
507
|
-
* [suspended_retry_timeout is 30s](./spec/acceptance/realtime/client_spec.rb#
|
546
|
+
* [disconnected_retry_timeout is 15s](./spec/acceptance/realtime/client_spec.rb#L202)
|
547
|
+
* [suspended_retry_timeout is 30s](./spec/acceptance/realtime/client_spec.rb#L207)
|
508
548
|
* overriden in ClientOptions
|
509
|
-
* [disconnected_retry_timeout is updated](./spec/acceptance/realtime/client_spec.rb#
|
510
|
-
* [suspended_retry_timeout is updated](./spec/acceptance/realtime/client_spec.rb#
|
549
|
+
* [disconnected_retry_timeout is updated](./spec/acceptance/realtime/client_spec.rb#L216)
|
550
|
+
* [suspended_retry_timeout is updated](./spec/acceptance/realtime/client_spec.rb#L221)
|
511
551
|
* #connection
|
512
|
-
* [provides access to the Connection object](./spec/acceptance/realtime/client_spec.rb#
|
552
|
+
* [provides access to the Connection object](./spec/acceptance/realtime/client_spec.rb#L230)
|
513
553
|
* #channels
|
514
|
-
* [provides access to the Channels collection object](./spec/acceptance/realtime/client_spec.rb#
|
554
|
+
* [provides access to the Channels collection object](./spec/acceptance/realtime/client_spec.rb#L237)
|
515
555
|
* #auth
|
516
|
-
* [provides access to the Realtime::Auth object](./spec/acceptance/realtime/client_spec.rb#
|
556
|
+
* [provides access to the Realtime::Auth object](./spec/acceptance/realtime/client_spec.rb#L244)
|
517
557
|
* #request (#RSC19*)
|
518
558
|
* get
|
519
|
-
* [returns an HttpPaginatedResponse object](./spec/acceptance/realtime/client_spec.rb#
|
559
|
+
* [returns an HttpPaginatedResponse object](./spec/acceptance/realtime/client_spec.rb#L254)
|
520
560
|
* 404 request to invalid URL
|
521
|
-
* [returns an object with 404 status code and error message](./spec/acceptance/realtime/client_spec.rb#
|
561
|
+
* [returns an object with 404 status code and error message](./spec/acceptance/realtime/client_spec.rb#L263)
|
522
562
|
* paged results
|
523
|
-
* [provides paging](./spec/acceptance/realtime/client_spec.rb#
|
563
|
+
* [provides paging](./spec/acceptance/realtime/client_spec.rb#L277)
|
564
|
+
* #publish (#TBC)
|
565
|
+
* [publishing a message implicity connects and publishes the message successfully on the provided channel](./spec/acceptance/realtime/client_spec.rb#L311)
|
566
|
+
* [publishing does not result in a channel being created](./spec/acceptance/realtime/client_spec.rb#L322)
|
567
|
+
* [publishing supports an array of Message objects](./spec/acceptance/realtime/client_spec.rb#L349)
|
568
|
+
* [publishing supports an array of Hash objects](./spec/acceptance/realtime/client_spec.rb#L360)
|
569
|
+
* [publishing on a closed connection fails](./spec/acceptance/realtime/client_spec.rb#L371)
|
570
|
+
* with extras
|
571
|
+
* [publishing supports extras](./spec/acceptance/realtime/client_spec.rb#L338)
|
572
|
+
* queue_messages ClientOption
|
573
|
+
* when true
|
574
|
+
* [will queue messages whilst connecting and publish once connected](./spec/acceptance/realtime/client_spec.rb#L387)
|
575
|
+
* when false
|
576
|
+
* [will reject messages on an initializing connection](./spec/acceptance/realtime/client_spec.rb#L404)
|
577
|
+
* with more than allowed messages in a single publish
|
578
|
+
* [rejects the publish](./spec/acceptance/realtime/client_spec.rb#L421)
|
524
579
|
|
525
580
|
### Ably::Realtime::Connection failures
|
526
581
|
_(see [spec/acceptance/realtime/connection_failures_spec.rb](./spec/acceptance/realtime/connection_failures_spec.rb))_
|
@@ -578,71 +633,81 @@ _(see [spec/acceptance/realtime/connection_failures_spec.rb](./spec/acceptance/r
|
|
578
633
|
* connection resume
|
579
634
|
* when DISCONNECTED ProtocolMessage received from the server
|
580
635
|
* [reconnects automatically and immediately](./spec/acceptance/realtime/connection_failures_spec.rb#L497)
|
636
|
+
* connection state freshness is monitored
|
637
|
+
* [resumes connections when disconnected within the connection_state_ttl period (#RTN15g)](./spec/acceptance/realtime/connection_failures_spec.rb#L518)
|
638
|
+
* when connection_state_ttl period has passed since being disconnected
|
639
|
+
* [clears the local connection state and uses a new connection when the connection_state_ttl period has passed (#RTN15g)](./spec/acceptance/realtime/connection_failures_spec.rb#L558)
|
640
|
+
* when connection_state_ttl period has passed since last activity on the connection
|
641
|
+
* [does not clear the local connection state when the connection_state_ttl period has passed since last activity, but the idle timeout has not passed (#RTN15g1, #RTN15g2)](./spec/acceptance/realtime/connection_failures_spec.rb#L611)
|
642
|
+
* [clears the local connection state and uses a new connection when the connection_state_ttl + max_idle_interval period has passed since last activity (#RTN15g1, #RTN15g2)](./spec/acceptance/realtime/connection_failures_spec.rb#L645)
|
643
|
+
* [still reattaches the channels automatically following a new connection being established (#RTN15g2)](./spec/acceptance/realtime/connection_failures_spec.rb#L680)
|
581
644
|
* and subsequently fails to reconnect
|
582
|
-
* [retries every 15 seconds](./spec/acceptance/realtime/connection_failures_spec.rb#
|
645
|
+
* [retries every 15 seconds](./spec/acceptance/realtime/connection_failures_spec.rb#L739)
|
583
646
|
* when websocket transport is abruptly disconnected
|
584
|
-
* [reconnects automatically](./spec/acceptance/realtime/connection_failures_spec.rb#
|
647
|
+
* [reconnects automatically](./spec/acceptance/realtime/connection_failures_spec.rb#L782)
|
585
648
|
* hosts used
|
586
|
-
* [reconnects with the default host](./spec/acceptance/realtime/connection_failures_spec.rb#
|
649
|
+
* [reconnects with the default host](./spec/acceptance/realtime/connection_failures_spec.rb#L798)
|
587
650
|
* after successfully reconnecting and resuming
|
588
|
-
* [retains connection_id and updates the connection_key (#RTN15e, #RTN16d)](./spec/acceptance/realtime/connection_failures_spec.rb#
|
589
|
-
* [includes the error received in the connection state change from Ably but leaves the channels attached](./spec/acceptance/realtime/connection_failures_spec.rb#
|
590
|
-
* [retains channel subscription state](./spec/acceptance/realtime/connection_failures_spec.rb#
|
591
|
-
* [retains the client_serial (#RTN15c2, #RTN15c3)](./spec/acceptance/realtime/connection_failures_spec.rb#
|
651
|
+
* [retains connection_id and updates the connection_key (#RTN15e, #RTN16d)](./spec/acceptance/realtime/connection_failures_spec.rb#L822)
|
652
|
+
* [includes the error received in the connection state change from Ably but leaves the channels attached](./spec/acceptance/realtime/connection_failures_spec.rb#L837)
|
653
|
+
* [retains channel subscription state](./spec/acceptance/realtime/connection_failures_spec.rb#L863)
|
654
|
+
* [retains the client_serial (#RTN15c2, #RTN15c3)](./spec/acceptance/realtime/connection_failures_spec.rb#L924)
|
592
655
|
* when messages were published whilst the client was disconnected
|
593
|
-
* [receives the messages published whilst offline](./spec/acceptance/realtime/connection_failures_spec.rb#
|
656
|
+
* [receives the messages published whilst offline](./spec/acceptance/realtime/connection_failures_spec.rb#L891)
|
594
657
|
* when failing to resume
|
595
658
|
* because the connection_key is not or no longer valid
|
596
|
-
* [updates the connection_id and connection_key](./spec/acceptance/realtime/connection_failures_spec.rb#
|
597
|
-
* [issue a reattach for all attached channels and fail all message awaiting an ACK (#RTN15c3)](./spec/acceptance/realtime/connection_failures_spec.rb#
|
598
|
-
* [issue a reattach for all attaching channels and fail all queued messages (#RTN15c3)](./spec/acceptance/realtime/connection_failures_spec.rb#
|
599
|
-
* [issue a attach for all suspended channels (#RTN15c3)](./spec/acceptance/realtime/connection_failures_spec.rb#
|
600
|
-
* [sets the error reason on each channel](./spec/acceptance/realtime/connection_failures_spec.rb#
|
601
|
-
* [resets the client_serial (#RTN15c3)](./spec/acceptance/realtime/connection_failures_spec.rb#
|
659
|
+
* [updates the connection_id and connection_key](./spec/acceptance/realtime/connection_failures_spec.rb#L964)
|
660
|
+
* [issue a reattach for all attached channels and fail all message awaiting an ACK (#RTN15c3)](./spec/acceptance/realtime/connection_failures_spec.rb#L979)
|
661
|
+
* [issue a reattach for all attaching channels and fail all queued messages (#RTN15c3)](./spec/acceptance/realtime/connection_failures_spec.rb#L1017)
|
662
|
+
* [issue a attach for all suspended channels (#RTN15c3)](./spec/acceptance/realtime/connection_failures_spec.rb#L1053)
|
663
|
+
* [sets the error reason on each channel](./spec/acceptance/realtime/connection_failures_spec.rb#L1091)
|
664
|
+
* [resets the client_serial (#RTN15c3)](./spec/acceptance/realtime/connection_failures_spec.rb#L1106)
|
602
665
|
* as the DISCONNECTED window to resume has passed
|
603
|
-
* [starts a new connection automatically and does not try and resume](./spec/acceptance/realtime/connection_failures_spec.rb#
|
666
|
+
* [starts a new connection automatically and does not try and resume](./spec/acceptance/realtime/connection_failures_spec.rb#L1143)
|
604
667
|
* when an ERROR protocol message is received
|
605
668
|
* whilst connecting
|
606
669
|
* with a token error code in the range 40140 <= code < 40150 (#RTN14b)
|
607
|
-
* [triggers a re-authentication](./spec/acceptance/realtime/connection_failures_spec.rb#
|
670
|
+
* [triggers a re-authentication](./spec/acceptance/realtime/connection_failures_spec.rb#L1174)
|
608
671
|
* with an error code indicating an error other than a token failure (#RTN14g, #RTN15i)
|
609
|
-
* [causes the connection to fail](./spec/acceptance/realtime/connection_failures_spec.rb#
|
672
|
+
* [causes the connection to fail](./spec/acceptance/realtime/connection_failures_spec.rb#L1190)
|
610
673
|
* with no error code indicating an error other than a token failure (#RTN14g, #RTN15i)
|
611
|
-
* [causes the connection to fail](./spec/acceptance/realtime/connection_failures_spec.rb#
|
674
|
+
* [causes the connection to fail](./spec/acceptance/realtime/connection_failures_spec.rb#L1203)
|
612
675
|
* whilst connected
|
613
676
|
* with a token error code in the range 40140 <= code < 40150 (#RTN14b)
|
614
|
-
* [triggers a re-authentication](./spec/acceptance/realtime/connection_failures_spec.rb#
|
677
|
+
* [triggers a re-authentication](./spec/acceptance/realtime/connection_failures_spec.rb#L1174)
|
615
678
|
* with an error code indicating an error other than a token failure (#RTN14g, #RTN15i)
|
616
|
-
* [causes the connection to fail](./spec/acceptance/realtime/connection_failures_spec.rb#
|
679
|
+
* [causes the connection to fail](./spec/acceptance/realtime/connection_failures_spec.rb#L1190)
|
617
680
|
* with no error code indicating an error other than a token failure (#RTN14g, #RTN15i)
|
618
|
-
* [causes the connection to fail](./spec/acceptance/realtime/connection_failures_spec.rb#
|
681
|
+
* [causes the connection to fail](./spec/acceptance/realtime/connection_failures_spec.rb#L1203)
|
619
682
|
* whilst resuming
|
620
683
|
* with a token error code in the region 40140 <= code < 40150 (RTN15c5)
|
621
|
-
* [triggers a re-authentication and then resumes the connection](./spec/acceptance/realtime/connection_failures_spec.rb#
|
684
|
+
* [triggers a re-authentication and then resumes the connection](./spec/acceptance/realtime/connection_failures_spec.rb#L1247)
|
622
685
|
* with any other error (#RTN15c4)
|
623
|
-
* [moves the connection to the failed state](./spec/acceptance/realtime/connection_failures_spec.rb#
|
686
|
+
* [moves the connection to the failed state](./spec/acceptance/realtime/connection_failures_spec.rb#L1279)
|
624
687
|
* fallback host feature
|
625
688
|
* with custom realtime websocket host option
|
626
|
-
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#
|
689
|
+
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#L1323)
|
627
690
|
* with custom realtime websocket port option
|
628
|
-
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#
|
691
|
+
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#L1341)
|
629
692
|
* with non-production environment
|
630
|
-
* [does not use a fallback host by default](./spec/acceptance/realtime/connection_failures_spec.rb#
|
693
|
+
* [does not use a fallback host by default](./spec/acceptance/realtime/connection_failures_spec.rb#L1360)
|
631
694
|
* :fallback_hosts_use_default is true
|
632
|
-
* [uses a fallback host on every subsequent disconnected attempt until suspended (#RTN17b, #TO3k7)](./spec/acceptance/realtime/connection_failures_spec.rb#
|
695
|
+
* [uses a fallback host on every subsequent disconnected attempt until suspended (#RTN17b, #TO3k7)](./spec/acceptance/realtime/connection_failures_spec.rb#L1378)
|
696
|
+
* [does not use a fallback host if the connection connects on the default host and then later becomes disconnected](./spec/acceptance/realtime/connection_failures_spec.rb#L1396)
|
633
697
|
* :fallback_hosts array is provided
|
634
|
-
* [uses a fallback host on every subsequent disconnected attempt until suspended (#RTN17b, #TO3k6)](./spec/acceptance/realtime/connection_failures_spec.rb#
|
698
|
+
* [uses a fallback host on every subsequent disconnected attempt until suspended (#RTN17b, #TO3k6)](./spec/acceptance/realtime/connection_failures_spec.rb#L1424)
|
635
699
|
* with production environment
|
636
700
|
* when the Internet is down
|
637
|
-
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#
|
701
|
+
* [never uses a fallback host](./spec/acceptance/realtime/connection_failures_spec.rb#L1460)
|
638
702
|
* when the Internet is up
|
639
703
|
* and default options
|
640
|
-
* [uses a fallback host + the original host once on every subsequent disconnected attempt until suspended](./spec/acceptance/realtime/connection_failures_spec.rb#
|
641
|
-
* [uses the primary host when suspended, and then every fallback host and the primary host again on every subsequent suspended attempt](./spec/acceptance/realtime/connection_failures_spec.rb#
|
704
|
+
* [uses a fallback host + the original host once on every subsequent disconnected attempt until suspended](./spec/acceptance/realtime/connection_failures_spec.rb#L1483)
|
705
|
+
* [uses the primary host when suspended, and then every fallback host and the primary host again on every subsequent suspended attempt](./spec/acceptance/realtime/connection_failures_spec.rb#L1502)
|
706
|
+
* [uses the correct host name for the WebSocket requests to the fallback hosts](./spec/acceptance/realtime/connection_failures_spec.rb#L1525)
|
642
707
|
* :fallback_hosts array is provided by an empty array
|
643
|
-
* [uses a fallback host on every subsequent disconnected attempt until suspended (#RTN17b, #TO3k6)](./spec/acceptance/realtime/connection_failures_spec.rb#
|
708
|
+
* [uses a fallback host on every subsequent disconnected attempt until suspended (#RTN17b, #TO3k6)](./spec/acceptance/realtime/connection_failures_spec.rb#L1555)
|
644
709
|
* :fallback_hosts array is provided
|
645
|
-
* [uses a fallback host on every subsequent disconnected attempt until suspended (#RTN17b, #TO3k6)](./spec/acceptance/realtime/connection_failures_spec.rb#
|
710
|
+
* [uses a fallback host on every subsequent disconnected attempt until suspended (#RTN17b, #TO3k6)](./spec/acceptance/realtime/connection_failures_spec.rb#L1575)
|
646
711
|
|
647
712
|
### Ably::Realtime::Connection
|
648
713
|
_(see [spec/acceptance/realtime/connection_spec.rb](./spec/acceptance/realtime/connection_spec.rb))_
|
@@ -672,186 +737,186 @@ _(see [spec/acceptance/realtime/connection_spec.rb](./spec/acceptance/realtime/c
|
|
672
737
|
* when connected with a valid non-expired token
|
673
738
|
* that then expires following the connection being opened
|
674
739
|
* the server
|
675
|
-
* [disconnects the client, and the client automatically renews the token and then reconnects](./spec/acceptance/realtime/connection_spec.rb#
|
740
|
+
* [disconnects the client, and the client automatically renews the token and then reconnects](./spec/acceptance/realtime/connection_spec.rb#L217)
|
676
741
|
* connection state
|
677
|
-
*
|
742
|
+
* [retains messages published when disconnected three times during authentication](./spec/acceptance/realtime/connection_spec.rb#L277)
|
678
743
|
* and subsequent token is invalid
|
679
|
-
* [transitions the connection to the failed state](./spec/acceptance/realtime/connection_spec.rb#
|
744
|
+
* [transitions the connection to the failed state](./spec/acceptance/realtime/connection_spec.rb#L312)
|
680
745
|
* for non-renewable tokens
|
681
746
|
* that are expired
|
682
747
|
* opening a new connection
|
683
|
-
* [transitions state to failed (#RSA4a)](./spec/acceptance/realtime/connection_spec.rb#
|
748
|
+
* [transitions state to failed (#RSA4a)](./spec/acceptance/realtime/connection_spec.rb#L342)
|
684
749
|
* when connected
|
685
|
-
* [transitions state to failed (#RSA4a)](./spec/acceptance/realtime/connection_spec.rb#
|
750
|
+
* [transitions state to failed (#RSA4a)](./spec/acceptance/realtime/connection_spec.rb#L358)
|
686
751
|
* with opaque token string that contain an implicit client_id
|
687
752
|
* string
|
688
|
-
* [sets the Client#client_id and Auth#client_id once CONNECTED](./spec/acceptance/realtime/connection_spec.rb#
|
753
|
+
* [sets the Client#client_id and Auth#client_id once CONNECTED](./spec/acceptance/realtime/connection_spec.rb#L378)
|
689
754
|
* that is incompatible with the current client client_id
|
690
|
-
* [fails the connection](./spec/acceptance/realtime/connection_spec.rb#
|
755
|
+
* [fails the connection](./spec/acceptance/realtime/connection_spec.rb#L390)
|
691
756
|
* wildcard
|
692
|
-
* [configures the Client#client_id and Auth#client_id with a wildcard once CONNECTED](./spec/acceptance/realtime/connection_spec.rb#
|
757
|
+
* [configures the Client#client_id and Auth#client_id with a wildcard once CONNECTED](./spec/acceptance/realtime/connection_spec.rb#L404)
|
693
758
|
* initialization state changes
|
694
759
|
* with implicit #connect
|
695
|
-
* [are emitted in order](./spec/acceptance/realtime/connection_spec.rb#
|
760
|
+
* [are emitted in order](./spec/acceptance/realtime/connection_spec.rb#L436)
|
696
761
|
* with explicit #connect
|
697
|
-
* [are emitted in order](./spec/acceptance/realtime/connection_spec.rb#
|
762
|
+
* [are emitted in order](./spec/acceptance/realtime/connection_spec.rb#L442)
|
698
763
|
* #connect
|
699
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#
|
700
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#
|
701
|
-
* [calls the provided block on success even if state changes to disconnected first](./spec/acceptance/realtime/connection_spec.rb#
|
764
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#L450)
|
765
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#L455)
|
766
|
+
* [calls the provided block on success even if state changes to disconnected first](./spec/acceptance/realtime/connection_spec.rb#L462)
|
702
767
|
* with invalid auth details
|
703
|
-
* [calls the Deferrable errback only once on connection failure](./spec/acceptance/realtime/connection_spec.rb#
|
768
|
+
* [calls the Deferrable errback only once on connection failure](./spec/acceptance/realtime/connection_spec.rb#L491)
|
704
769
|
* when already connected
|
705
|
-
* [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#
|
770
|
+
* [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#L507)
|
706
771
|
* connection#id
|
707
|
-
* [is null before connecting](./spec/acceptance/realtime/connection_spec.rb#
|
772
|
+
* [is null before connecting](./spec/acceptance/realtime/connection_spec.rb#L521)
|
708
773
|
* connection#key
|
709
|
-
* [is null before connecting](./spec/acceptance/realtime/connection_spec.rb#
|
774
|
+
* [is null before connecting](./spec/acceptance/realtime/connection_spec.rb#L528)
|
710
775
|
* once connected
|
711
776
|
* connection#id
|
712
|
-
* [is a string](./spec/acceptance/realtime/connection_spec.rb#
|
713
|
-
* [is unique from the connection#key](./spec/acceptance/realtime/connection_spec.rb#
|
714
|
-
* [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#
|
777
|
+
* [is a string](./spec/acceptance/realtime/connection_spec.rb#L539)
|
778
|
+
* [is unique from the connection#key](./spec/acceptance/realtime/connection_spec.rb#L546)
|
779
|
+
* [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#L553)
|
715
780
|
* connection#key
|
716
|
-
* [is a string](./spec/acceptance/realtime/connection_spec.rb#
|
717
|
-
* [is unique from the connection#id](./spec/acceptance/realtime/connection_spec.rb#
|
718
|
-
* [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#
|
781
|
+
* [is a string](./spec/acceptance/realtime/connection_spec.rb#L562)
|
782
|
+
* [is unique from the connection#id](./spec/acceptance/realtime/connection_spec.rb#L569)
|
783
|
+
* [is unique for every connection](./spec/acceptance/realtime/connection_spec.rb#L576)
|
719
784
|
* following a previous connection being opened and closed
|
720
|
-
* [reconnects and is provided with a new connection ID and connection key from the server](./spec/acceptance/realtime/connection_spec.rb#
|
785
|
+
* [reconnects and is provided with a new connection ID and connection key from the server](./spec/acceptance/realtime/connection_spec.rb#L586)
|
721
786
|
* when closing
|
722
|
-
* [fails the deferrable before the connection is closed](./spec/acceptance/realtime/connection_spec.rb#
|
787
|
+
* [fails the deferrable before the connection is closed](./spec/acceptance/realtime/connection_spec.rb#L603)
|
723
788
|
* #serial connection serial
|
724
|
-
* [is set to -1 when a new connection is opened](./spec/acceptance/realtime/connection_spec.rb#
|
725
|
-
* [is set to 0 when a message
|
726
|
-
* [is set to 1 when the second message
|
789
|
+
* [is set to -1 when a new connection is opened](./spec/acceptance/realtime/connection_spec.rb#L620)
|
790
|
+
* [is set to 0 when a message is received back](./spec/acceptance/realtime/connection_spec.rb#L643)
|
791
|
+
* [is set to 1 when the second message is received](./spec/acceptance/realtime/connection_spec.rb#L651)
|
727
792
|
* when a message is sent but the ACK has not yet been received
|
728
|
-
* [the sent message msgSerial is 0 but the connection serial remains at -1](./spec/acceptance/realtime/connection_spec.rb#
|
793
|
+
* [the sent message msgSerial is 0 but the connection serial remains at -1](./spec/acceptance/realtime/connection_spec.rb#L628)
|
729
794
|
* #close
|
730
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#
|
731
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#
|
795
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/connection_spec.rb#L668)
|
796
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/connection_spec.rb#L675)
|
732
797
|
* when already closed
|
733
|
-
* [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#
|
798
|
+
* [does nothing and no further state changes are emitted](./spec/acceptance/realtime/connection_spec.rb#L686)
|
734
799
|
* when connection state is
|
735
800
|
* :initialized
|
736
|
-
* [changes the connection state to :closing and then immediately :closed without sending a ProtocolMessage CLOSE](./spec/acceptance/realtime/connection_spec.rb#
|
801
|
+
* [changes the connection state to :closing and then immediately :closed without sending a ProtocolMessage CLOSE](./spec/acceptance/realtime/connection_spec.rb#L713)
|
737
802
|
* :connected
|
738
|
-
* [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#
|
803
|
+
* [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#L730)
|
739
804
|
* with an unresponsive connection
|
740
|
-
* [force closes the connection when a :closed ProtocolMessage response is not received](./spec/acceptance/realtime/connection_spec.rb#
|
805
|
+
* [force closes the connection when a :closed ProtocolMessage response is not received](./spec/acceptance/realtime/connection_spec.rb#L757)
|
741
806
|
* #ping
|
742
|
-
* [echoes a heart beat (#RTN13a)](./spec/acceptance/realtime/connection_spec.rb#
|
743
|
-
* [sends a unique ID in each protocol message (#RTN13e)](./spec/acceptance/realtime/connection_spec.rb#
|
744
|
-
* [waits until the connection becomes CONNECTED when in the CONNETING state](./spec/acceptance/realtime/connection_spec.rb#
|
807
|
+
* [echoes a heart beat (#RTN13a)](./spec/acceptance/realtime/connection_spec.rb#L779)
|
808
|
+
* [sends a unique ID in each protocol message (#RTN13e)](./spec/acceptance/realtime/connection_spec.rb#L789)
|
809
|
+
* [waits until the connection becomes CONNECTED when in the CONNETING state](./spec/acceptance/realtime/connection_spec.rb#L813)
|
745
810
|
* with incompatible states
|
746
811
|
* when not connected
|
747
|
-
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#
|
812
|
+
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L826)
|
748
813
|
* when suspended
|
749
|
-
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#
|
814
|
+
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L835)
|
750
815
|
* when failed
|
751
|
-
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#
|
816
|
+
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L847)
|
752
817
|
* when closed
|
753
|
-
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#
|
818
|
+
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L859)
|
754
819
|
* when it becomes closed
|
755
|
-
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#
|
820
|
+
* [fails the deferrable (#RTN13b)](./spec/acceptance/realtime/connection_spec.rb#L873)
|
756
821
|
* with a success block that raises an exception
|
757
|
-
* [catches the exception and logs the error](./spec/acceptance/realtime/connection_spec.rb#
|
822
|
+
* [catches the exception and logs the error](./spec/acceptance/realtime/connection_spec.rb#L886)
|
758
823
|
* when ping times out
|
759
|
-
* [fails the deferrable logs a warning (#RTN13a, #RTN13c)](./spec/acceptance/realtime/connection_spec.rb#
|
760
|
-
* [yields to the block with a nil value](./spec/acceptance/realtime/connection_spec.rb#
|
824
|
+
* [fails the deferrable logs a warning (#RTN13a, #RTN13c)](./spec/acceptance/realtime/connection_spec.rb#L900)
|
825
|
+
* [yields to the block with a nil value](./spec/acceptance/realtime/connection_spec.rb#L919)
|
761
826
|
* Heartbeats (#RTN23)
|
762
827
|
* heartbeat interval
|
763
828
|
* when reduced artificially
|
764
|
-
* [is the sum of the max_idle_interval and realtime_request_timeout (#RTN23a)](./spec/acceptance/realtime/connection_spec.rb#
|
765
|
-
* [disconnects the transport if no heartbeat received since connected (#RTN23a)](./spec/acceptance/realtime/connection_spec.rb#
|
766
|
-
* [disconnects the transport if no heartbeat received since last event received (#RTN23a)](./spec/acceptance/realtime/connection_spec.rb#
|
829
|
+
* [is the sum of the max_idle_interval and realtime_request_timeout (#RTN23a)](./spec/acceptance/realtime/connection_spec.rb#L946)
|
830
|
+
* [disconnects the transport if no heartbeat received since connected (#RTN23a)](./spec/acceptance/realtime/connection_spec.rb#L956)
|
831
|
+
* [disconnects the transport if no heartbeat received since last event received (#RTN23a)](./spec/acceptance/realtime/connection_spec.rb#L967)
|
767
832
|
* transport-level heartbeats are supported in the websocket transport
|
768
|
-
* [provides the heartbeats argument in the websocket connection params (#RTN23b)](./spec/acceptance/realtime/connection_spec.rb#
|
769
|
-
*
|
833
|
+
* [provides the heartbeats argument in the websocket connection params (#RTN23b)](./spec/acceptance/realtime/connection_spec.rb#L982)
|
834
|
+
* [receives websocket heartbeat messages (#RTN23b) [slow test as need to wait for heartbeat]](./spec/acceptance/realtime/connection_spec.rb#L991)
|
770
835
|
* with websocket heartbeats disabled (undocumented)
|
771
|
-
* [does not provide the heartbeats argument in the websocket connection params (#RTN23b)](./spec/acceptance/realtime/connection_spec.rb#
|
772
|
-
* [receives websocket protocol messages (#RTN23b) [slow test as need to wait for heartbeat]](./spec/acceptance/realtime/connection_spec.rb#
|
836
|
+
* PENDING: *[does not provide the heartbeats argument in the websocket connection params (#RTN23b)](./spec/acceptance/realtime/connection_spec.rb#L1007)*
|
837
|
+
* [receives websocket protocol messages (#RTN23b) [slow test as need to wait for heartbeat]](./spec/acceptance/realtime/connection_spec.rb#L1017)
|
773
838
|
* #details
|
774
|
-
* [is nil before connected](./spec/acceptance/realtime/connection_spec.rb#
|
775
|
-
* [contains the ConnectionDetails object once connected (#RTN21)](./spec/acceptance/realtime/connection_spec.rb#
|
776
|
-
* [contains the new ConnectionDetails object once a subsequent connection is created (#RTN21)](./spec/acceptance/realtime/connection_spec.rb#
|
839
|
+
* [is nil before connected](./spec/acceptance/realtime/connection_spec.rb#L1035)
|
840
|
+
* [contains the ConnectionDetails object once connected (#RTN21)](./spec/acceptance/realtime/connection_spec.rb#L1042)
|
841
|
+
* [contains the new ConnectionDetails object once a subsequent connection is created (#RTN21)](./spec/acceptance/realtime/connection_spec.rb#L1051)
|
777
842
|
* with a different default connection_state_ttl
|
778
|
-
* [updates the private Connection#connection_state_ttl when received from Ably in ConnectionDetails](./spec/acceptance/realtime/connection_spec.rb#
|
843
|
+
* [updates the private Connection#connection_state_ttl when received from Ably in ConnectionDetails](./spec/acceptance/realtime/connection_spec.rb#L1072)
|
779
844
|
* recovery
|
780
845
|
* #recovery_key
|
781
|
-
* [is composed of connection key and serial that is kept up to date with each message ACK received](./spec/acceptance/realtime/connection_spec.rb#
|
782
|
-
* [is available when connection is in one of the states: connecting, connected, disconnected](./spec/acceptance/realtime/connection_spec.rb#
|
783
|
-
* [is nil when connection is explicitly CLOSED](./spec/acceptance/realtime/connection_spec.rb#
|
846
|
+
* [is composed of connection key and serial that is kept up to date with each message ACK received](./spec/acceptance/realtime/connection_spec.rb#L1109)
|
847
|
+
* [is available when connection is in one of the states: connecting, connected, disconnected](./spec/acceptance/realtime/connection_spec.rb#L1137)
|
848
|
+
* [is nil when connection is explicitly CLOSED](./spec/acceptance/realtime/connection_spec.rb#L1166)
|
784
849
|
* opening a new connection using a recently disconnected connection's #recovery_key
|
785
|
-
* connection#id
|
786
|
-
* [remains the same
|
850
|
+
* connection#id after recovery
|
851
|
+
* [remains the same](./spec/acceptance/realtime/connection_spec.rb#L1178)
|
787
852
|
* when messages have been sent whilst the old connection is disconnected
|
788
853
|
* the new connection
|
789
|
-
* [recovers server-side queued messages](./spec/acceptance/realtime/connection_spec.rb#
|
854
|
+
* [recovers server-side queued messages](./spec/acceptance/realtime/connection_spec.rb#L1214)
|
790
855
|
* with :recover option
|
791
856
|
* with invalid syntax
|
792
|
-
* [raises an exception](./spec/acceptance/realtime/connection_spec.rb#
|
857
|
+
* [raises an exception](./spec/acceptance/realtime/connection_spec.rb#L1246)
|
793
858
|
* with invalid formatted value sent to server
|
794
|
-
* [sets the #error_reason and moves the connection to FAILED](./spec/acceptance/realtime/connection_spec.rb#
|
859
|
+
* [sets the #error_reason and moves the connection to FAILED](./spec/acceptance/realtime/connection_spec.rb#L1255)
|
795
860
|
* with expired (missing) value sent to server
|
796
|
-
* [connects but sets the error reason and includes the reason in the state change](./spec/acceptance/realtime/connection_spec.rb#
|
861
|
+
* [connects but sets the error reason and includes the reason in the state change](./spec/acceptance/realtime/connection_spec.rb#L1270)
|
797
862
|
* with many connections simultaneously
|
798
|
-
* [opens each with a unique connection#id and connection#key](./spec/acceptance/realtime/connection_spec.rb#
|
863
|
+
* [opens each with a unique connection#id and connection#key](./spec/acceptance/realtime/connection_spec.rb#L1289)
|
799
864
|
* when a state transition is unsupported
|
800
|
-
* [logs the invalid state change as fatal](./spec/acceptance/realtime/connection_spec.rb#
|
865
|
+
* [logs the invalid state change as fatal](./spec/acceptance/realtime/connection_spec.rb#L1309)
|
801
866
|
* protocol failure
|
802
867
|
* receiving an invalid ProtocolMessage
|
803
|
-
* [emits an error on the connection and logs a fatal error message](./spec/acceptance/realtime/connection_spec.rb#
|
868
|
+
* [emits an error on the connection and logs a fatal error message](./spec/acceptance/realtime/connection_spec.rb#L1325)
|
804
869
|
* undocumented method
|
805
870
|
* #internet_up?
|
806
|
-
* [returns a Deferrable](./spec/acceptance/realtime/connection_spec.rb#
|
871
|
+
* [returns a Deferrable](./spec/acceptance/realtime/connection_spec.rb#L1343)
|
807
872
|
* internet up URL protocol
|
808
873
|
* when using TLS for the connection
|
809
|
-
* [uses TLS for the Internet check to https://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#
|
874
|
+
* [uses TLS for the Internet check to https://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#L1354)
|
810
875
|
* when using a non-secured connection
|
811
|
-
* [uses TLS for the Internet check to http://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#
|
876
|
+
* [uses TLS for the Internet check to http://internet-up.ably-realtime.com/is-the-internet-up.txt](./spec/acceptance/realtime/connection_spec.rb#L1364)
|
812
877
|
* when the Internet is up
|
813
|
-
* [calls the block with true](./spec/acceptance/realtime/connection_spec.rb#
|
814
|
-
* [calls the success callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#
|
878
|
+
* [calls the block with true](./spec/acceptance/realtime/connection_spec.rb#L1395)
|
879
|
+
* [calls the success callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#L1402)
|
815
880
|
* with a TLS connection
|
816
|
-
* [checks the Internet up URL over TLS](./spec/acceptance/realtime/connection_spec.rb#
|
881
|
+
* [checks the Internet up URL over TLS](./spec/acceptance/realtime/connection_spec.rb#L1378)
|
817
882
|
* with a non-TLS connection
|
818
|
-
* [checks the Internet up URL over TLS](./spec/acceptance/realtime/connection_spec.rb#
|
883
|
+
* [checks the Internet up URL over TLS](./spec/acceptance/realtime/connection_spec.rb#L1388)
|
819
884
|
* when the Internet is down
|
820
|
-
* [calls the block with false](./spec/acceptance/realtime/connection_spec.rb#
|
821
|
-
* [calls the failure callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#
|
885
|
+
* [calls the block with false](./spec/acceptance/realtime/connection_spec.rb#L1417)
|
886
|
+
* [calls the failure callback of the Deferrable](./spec/acceptance/realtime/connection_spec.rb#L1424)
|
822
887
|
* state change side effects
|
823
888
|
* when connection enters the :disconnected state
|
824
|
-
* [queues messages to be sent and all channels remain attached](./spec/acceptance/realtime/connection_spec.rb#
|
889
|
+
* [queues messages to be sent and all channels remain attached](./spec/acceptance/realtime/connection_spec.rb#L1438)
|
825
890
|
* when connection enters the :suspended state
|
826
|
-
* [moves the channels into the suspended state and prevents publishing of messages on those channels](./spec/acceptance/realtime/connection_spec.rb#
|
891
|
+
* [moves the channels into the suspended state and prevents publishing of messages on those channels](./spec/acceptance/realtime/connection_spec.rb#L1471)
|
827
892
|
* when connection enters the :failed state
|
828
|
-
* [sets all channels to failed and prevents publishing of messages on those channels](./spec/acceptance/realtime/connection_spec.rb#
|
893
|
+
* [sets all channels to failed and prevents publishing of messages on those channels](./spec/acceptance/realtime/connection_spec.rb#L1502)
|
829
894
|
* connection state change
|
830
|
-
* [emits event to all and single subscribers](./spec/acceptance/realtime/connection_spec.rb#
|
831
|
-
* [emits a ConnectionStateChange object](./spec/acceptance/realtime/connection_spec.rb#
|
895
|
+
* [emits event to all and single subscribers](./spec/acceptance/realtime/connection_spec.rb#L1516)
|
896
|
+
* [emits a ConnectionStateChange object](./spec/acceptance/realtime/connection_spec.rb#L1531)
|
832
897
|
* ConnectionStateChange object
|
833
|
-
* [has current state](./spec/acceptance/realtime/connection_spec.rb#
|
834
|
-
* [has a previous state](./spec/acceptance/realtime/connection_spec.rb#
|
835
|
-
* [has the event that generated the state change (#TH5)](./spec/acceptance/realtime/connection_spec.rb#
|
836
|
-
* [has an empty reason when there is no error](./spec/acceptance/realtime/connection_spec.rb#
|
898
|
+
* [has current state](./spec/acceptance/realtime/connection_spec.rb#L1539)
|
899
|
+
* [has a previous state](./spec/acceptance/realtime/connection_spec.rb#L1547)
|
900
|
+
* [has the event that generated the state change (#TH5)](./spec/acceptance/realtime/connection_spec.rb#L1555)
|
901
|
+
* [has an empty reason when there is no error](./spec/acceptance/realtime/connection_spec.rb#L1571)
|
837
902
|
* on failure
|
838
|
-
* [has a reason Error object when there is an error on the connection](./spec/acceptance/realtime/connection_spec.rb#
|
903
|
+
* [has a reason Error object when there is an error on the connection](./spec/acceptance/realtime/connection_spec.rb#L1584)
|
839
904
|
* retry_in
|
840
|
-
* [is nil when a retry is not required](./spec/acceptance/realtime/connection_spec.rb#
|
841
|
-
* [is 0 when first attempt to connect fails](./spec/acceptance/realtime/connection_spec.rb#
|
842
|
-
* [is 0 when an immediate reconnect will occur](./spec/acceptance/realtime/connection_spec.rb#
|
843
|
-
* [contains the next retry period when an immediate reconnect will not occur](./spec/acceptance/realtime/connection_spec.rb#
|
905
|
+
* [is nil when a retry is not required](./spec/acceptance/realtime/connection_spec.rb#L1599)
|
906
|
+
* [is 0 when first attempt to connect fails](./spec/acceptance/realtime/connection_spec.rb#L1606)
|
907
|
+
* [is 0 when an immediate reconnect will occur](./spec/acceptance/realtime/connection_spec.rb#L1616)
|
908
|
+
* [contains the next retry period when an immediate reconnect will not occur](./spec/acceptance/realtime/connection_spec.rb#L1626)
|
844
909
|
* whilst CONNECTED
|
845
910
|
* when a CONNECTED message is received (#RTN24)
|
846
|
-
* [emits an UPDATE event](./spec/acceptance/realtime/connection_spec.rb#
|
847
|
-
* [updates the ConnectionDetail and Connection attributes (#RTC8a1)](./spec/acceptance/realtime/connection_spec.rb#
|
911
|
+
* [emits an UPDATE event](./spec/acceptance/realtime/connection_spec.rb#L1661)
|
912
|
+
* [updates the ConnectionDetail and Connection attributes (#RTC8a1)](./spec/acceptance/realtime/connection_spec.rb#L1676)
|
848
913
|
* when a CONNECTED message with an error is received
|
849
|
-
* [emits an UPDATE event](./spec/acceptance/realtime/connection_spec.rb#
|
914
|
+
* [emits an UPDATE event](./spec/acceptance/realtime/connection_spec.rb#L1711)
|
850
915
|
* version params
|
851
|
-
* [sends the protocol version param v (#G4, #RTN2f)](./spec/acceptance/realtime/connection_spec.rb#
|
852
|
-
* [sends the lib version param lib (#RTN2g)](./spec/acceptance/realtime/connection_spec.rb#
|
916
|
+
* [sends the protocol version param v (#G4, #RTN2f)](./spec/acceptance/realtime/connection_spec.rb#L1732)
|
917
|
+
* [sends the lib version param lib (#RTN2g)](./spec/acceptance/realtime/connection_spec.rb#L1741)
|
853
918
|
* with variant
|
854
|
-
* [sends the lib version param lib with the variant (#RTN2g + #RSC7b)](./spec/acceptance/realtime/connection_spec.rb#
|
919
|
+
* [sends the lib version param lib with the variant (#RTN2g + #RSC7b)](./spec/acceptance/realtime/connection_spec.rb#L1761)
|
855
920
|
|
856
921
|
### Ably::Realtime::Channel Message
|
857
922
|
_(see [spec/acceptance/realtime/message_spec.rb](./spec/acceptance/realtime/message_spec.rb))_
|
@@ -868,154 +933,154 @@ _(see [spec/acceptance/realtime/message_spec.rb](./spec/acceptance/realtime/mess
|
|
868
933
|
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/message_spec.rb#L72)
|
869
934
|
* with supported extra payload content type (#RTL6h, #RSL6a2)
|
870
935
|
* JSON Object (Hash)
|
871
|
-
*
|
936
|
+
* [is encoded and decoded to the same hash](./spec/acceptance/realtime/message_spec.rb#L93)
|
872
937
|
* JSON Array
|
873
|
-
*
|
938
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/message_spec.rb#L102)
|
874
939
|
* nil
|
875
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/message_spec.rb#
|
940
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/message_spec.rb#L108)
|
876
941
|
* with unsupported data payload content type
|
877
942
|
* Integer
|
878
|
-
* [is raises an UnsupportedDataType
|
943
|
+
* [is raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/message_spec.rb#L119)
|
879
944
|
* Float
|
880
|
-
* [is raises an UnsupportedDataType
|
945
|
+
* [is raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/message_spec.rb#L128)
|
881
946
|
* Boolean
|
882
|
-
* [is raises an UnsupportedDataType
|
947
|
+
* [is raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/message_spec.rb#L137)
|
883
948
|
* False
|
884
|
-
* [is raises an UnsupportedDataType
|
949
|
+
* [is raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/message_spec.rb#L146)
|
885
950
|
* with ASCII_8BIT message name
|
886
|
-
* [is converted into UTF_8](./spec/acceptance/realtime/message_spec.rb#
|
951
|
+
* [is converted into UTF_8](./spec/acceptance/realtime/message_spec.rb#L155)
|
887
952
|
* when the message publisher has a client_id
|
888
|
-
* [contains a #client_id attribute](./spec/acceptance/realtime/message_spec.rb#
|
953
|
+
* [contains a #client_id attribute](./spec/acceptance/realtime/message_spec.rb#L171)
|
889
954
|
* #connection_id attribute
|
890
955
|
* over realtime
|
891
|
-
* [matches the sender connection#id](./spec/acceptance/realtime/message_spec.rb#
|
956
|
+
* [matches the sender connection#id](./spec/acceptance/realtime/message_spec.rb#L184)
|
892
957
|
* when retrieved over REST
|
893
|
-
* [matches the sender connection#id](./spec/acceptance/realtime/message_spec.rb#
|
958
|
+
* [matches the sender connection#id](./spec/acceptance/realtime/message_spec.rb#L196)
|
894
959
|
* local echo when published
|
895
|
-
* [is enabled by default](./spec/acceptance/realtime/message_spec.rb#
|
960
|
+
* [is enabled by default](./spec/acceptance/realtime/message_spec.rb#L208)
|
896
961
|
* with :echo_messages option set to false
|
897
|
-
* [will not echo messages to the client but will still broadcast messages to other connected clients](./spec/acceptance/realtime/message_spec.rb#
|
898
|
-
* [will not echo messages to the client from other REST clients publishing using that connection_key](./spec/acceptance/realtime/message_spec.rb#
|
899
|
-
* [will echo messages with a valid connection_id to the client from other REST clients publishing using that connection_key](./spec/acceptance/realtime/message_spec.rb#
|
962
|
+
* [will not echo messages to the client but will still broadcast messages to other connected clients](./spec/acceptance/realtime/message_spec.rb#L228)
|
963
|
+
* [will not echo messages to the client from other REST clients publishing using that connection_key](./spec/acceptance/realtime/message_spec.rb#L247)
|
964
|
+
* [will echo messages with a valid connection_id to the client from other REST clients publishing using that connection_key](./spec/acceptance/realtime/message_spec.rb#L260)
|
900
965
|
* publishing lots of messages across two connections
|
901
|
-
* [sends and receives the messages on both opened connections and calls the success callbacks for each message published](./spec/acceptance/realtime/message_spec.rb#
|
966
|
+
* [sends and receives the messages on both opened connections and calls the success callbacks for each message published](./spec/acceptance/realtime/message_spec.rb#L286)
|
902
967
|
* without suitable publishing permissions
|
903
|
-
* [calls the error callback](./spec/acceptance/realtime/message_spec.rb#
|
968
|
+
* [calls the error callback](./spec/acceptance/realtime/message_spec.rb#L331)
|
904
969
|
* server incorrectly resends a message that was already received by the client library
|
905
|
-
* [discards the message and logs it as an error to the channel](./spec/acceptance/realtime/message_spec.rb#
|
970
|
+
* [discards the message and logs it as an error to the channel](./spec/acceptance/realtime/message_spec.rb#L350)
|
906
971
|
* encoding and decoding encrypted messages
|
907
972
|
* with AES-128-CBC using crypto-data-128.json fixtures (#RTL7d)
|
908
973
|
* item 0 with encrypted encoding utf-8/cipher+aes-128-cbc/base64
|
909
974
|
* behaves like an Ably encrypter and decrypter
|
910
975
|
* with #publish and #subscribe
|
911
|
-
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
912
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
976
|
+
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L415)
|
977
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L435)
|
913
978
|
* item 1 with encrypted encoding cipher+aes-128-cbc/base64
|
914
979
|
* behaves like an Ably encrypter and decrypter
|
915
980
|
* with #publish and #subscribe
|
916
|
-
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
917
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
981
|
+
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L415)
|
982
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L435)
|
918
983
|
* item 2 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
|
919
984
|
* behaves like an Ably encrypter and decrypter
|
920
985
|
* with #publish and #subscribe
|
921
|
-
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
922
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
986
|
+
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L415)
|
987
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L435)
|
923
988
|
* item 3 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
|
924
989
|
* behaves like an Ably encrypter and decrypter
|
925
990
|
* with #publish and #subscribe
|
926
|
-
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
927
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
991
|
+
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L415)
|
992
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L435)
|
928
993
|
* with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d)
|
929
994
|
* item 0 with encrypted encoding utf-8/cipher+aes-256-cbc/base64
|
930
995
|
* behaves like an Ably encrypter and decrypter
|
931
996
|
* with #publish and #subscribe
|
932
|
-
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
933
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
997
|
+
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L415)
|
998
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L435)
|
934
999
|
* item 1 with encrypted encoding cipher+aes-256-cbc/base64
|
935
1000
|
* behaves like an Ably encrypter and decrypter
|
936
1001
|
* with #publish and #subscribe
|
937
|
-
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
938
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
1002
|
+
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L415)
|
1003
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L435)
|
939
1004
|
* item 2 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
|
940
1005
|
* behaves like an Ably encrypter and decrypter
|
941
1006
|
* with #publish and #subscribe
|
942
|
-
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
943
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
1007
|
+
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L415)
|
1008
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L435)
|
944
1009
|
* item 3 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
|
945
1010
|
* behaves like an Ably encrypter and decrypter
|
946
1011
|
* with #publish and #subscribe
|
947
|
-
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
948
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
1012
|
+
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L415)
|
1013
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L435)
|
949
1014
|
* with multiple sends from one client to another
|
950
|
-
* [encrypts and decrypts all messages](./spec/acceptance/realtime/message_spec.rb#
|
951
|
-
* [receives raw messages with the correct encoding](./spec/acceptance/realtime/message_spec.rb#
|
1015
|
+
* [encrypts and decrypts all messages](./spec/acceptance/realtime/message_spec.rb#L474)
|
1016
|
+
* [receives raw messages with the correct encoding](./spec/acceptance/realtime/message_spec.rb#L491)
|
952
1017
|
* subscribing with a different transport protocol
|
953
|
-
* [delivers a String ASCII-8BIT payload to the receiver](./spec/acceptance/realtime/message_spec.rb#
|
954
|
-
* [delivers a String UTF-8 payload to the receiver](./spec/acceptance/realtime/message_spec.rb#
|
955
|
-
* [delivers a Hash payload to the receiver](./spec/acceptance/realtime/message_spec.rb#
|
1018
|
+
* [delivers a String ASCII-8BIT payload to the receiver](./spec/acceptance/realtime/message_spec.rb#L525)
|
1019
|
+
* [delivers a String UTF-8 payload to the receiver](./spec/acceptance/realtime/message_spec.rb#L525)
|
1020
|
+
* [delivers a Hash payload to the receiver](./spec/acceptance/realtime/message_spec.rb#L525)
|
956
1021
|
* publishing on an unencrypted channel and subscribing on an encrypted channel with another client
|
957
|
-
* [does not attempt to decrypt the message](./spec/acceptance/realtime/message_spec.rb#
|
1022
|
+
* [does not attempt to decrypt the message](./spec/acceptance/realtime/message_spec.rb#L546)
|
958
1023
|
* publishing on an encrypted channel and subscribing on an unencrypted channel with another client
|
959
|
-
* [delivers the message but still encrypted with a value in the #encoding attribute (#RTL7e)](./spec/acceptance/realtime/message_spec.rb#
|
960
|
-
* [logs a Cipher error (#RTL7e)](./spec/acceptance/realtime/message_spec.rb#
|
1024
|
+
* [delivers the message but still encrypted with a value in the #encoding attribute (#RTL7e)](./spec/acceptance/realtime/message_spec.rb#L564)
|
1025
|
+
* [logs a Cipher error (#RTL7e)](./spec/acceptance/realtime/message_spec.rb#L575)
|
961
1026
|
* publishing on an encrypted channel and subscribing with a different algorithm on another client
|
962
|
-
* [delivers the message but still encrypted with the cipher detials in the #encoding attribute (#RTL7e)](./spec/acceptance/realtime/message_spec.rb#
|
963
|
-
* [emits a Cipher error on the channel (#RTL7e)](./spec/acceptance/realtime/message_spec.rb#
|
1027
|
+
* [delivers the message but still encrypted with the cipher detials in the #encoding attribute (#RTL7e)](./spec/acceptance/realtime/message_spec.rb#L595)
|
1028
|
+
* [emits a Cipher error on the channel (#RTL7e)](./spec/acceptance/realtime/message_spec.rb#L604)
|
964
1029
|
* publishing on an encrypted channel and subscribing with a different key on another client
|
965
|
-
* [delivers the message but still encrypted with the cipher details in the #encoding attribute](./spec/acceptance/realtime/message_spec.rb#
|
966
|
-
* [emits a Cipher error on the channel](./spec/acceptance/realtime/message_spec.rb#
|
1030
|
+
* [delivers the message but still encrypted with the cipher details in the #encoding attribute](./spec/acceptance/realtime/message_spec.rb#L624)
|
1031
|
+
* [emits a Cipher error on the channel](./spec/acceptance/realtime/message_spec.rb#L635)
|
967
1032
|
* when message is published, the connection disconnects before the ACK is received, and the connection is resumed
|
968
|
-
* [publishes the message again, later receives the ACK and only one message is ever received from Ably](./spec/acceptance/realtime/message_spec.rb#
|
1033
|
+
* [publishes the message again, later receives the ACK and only one message is ever received from Ably](./spec/acceptance/realtime/message_spec.rb#L654)
|
969
1034
|
* when message is published, the connection disconnects before the ACK is received
|
970
1035
|
* the connection is not resumed
|
971
|
-
* [calls the errback for all messages](./spec/acceptance/realtime/message_spec.rb#
|
1036
|
+
* [calls the errback for all messages](./spec/acceptance/realtime/message_spec.rb#L697)
|
972
1037
|
* the connection becomes suspended
|
973
|
-
* [calls the errback for all messages](./spec/acceptance/realtime/message_spec.rb#
|
1038
|
+
* [calls the errback for all messages](./spec/acceptance/realtime/message_spec.rb#L723)
|
974
1039
|
* the connection becomes failed
|
975
|
-
* [calls the errback for all messages](./spec/acceptance/realtime/message_spec.rb#
|
1040
|
+
* [calls the errback for all messages](./spec/acceptance/realtime/message_spec.rb#L750)
|
976
1041
|
* message encoding interoperability
|
977
1042
|
* over a JSON transport
|
978
1043
|
* when decoding string
|
979
|
-
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#
|
1044
|
+
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#L791)
|
980
1045
|
* when encoding string
|
981
|
-
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#
|
1046
|
+
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#L809)
|
982
1047
|
* when decoding string
|
983
|
-
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#
|
1048
|
+
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#L791)
|
984
1049
|
* when encoding string
|
985
|
-
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#
|
1050
|
+
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#L809)
|
986
1051
|
* when decoding jsonObject
|
987
|
-
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#
|
1052
|
+
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#L791)
|
988
1053
|
* when encoding jsonObject
|
989
|
-
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#
|
1054
|
+
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#L809)
|
990
1055
|
* when decoding jsonArray
|
991
|
-
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#
|
1056
|
+
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#L791)
|
992
1057
|
* when encoding jsonArray
|
993
|
-
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#
|
1058
|
+
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#L809)
|
994
1059
|
* when decoding binary
|
995
|
-
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#
|
1060
|
+
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#L791)
|
996
1061
|
* when encoding binary
|
997
|
-
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#
|
1062
|
+
* [ensures that client libraries have compatible encoding and decoding using common fixtures](./spec/acceptance/realtime/message_spec.rb#L809)
|
998
1063
|
* over a MsgPack transport
|
999
1064
|
* when publishing a string using JSON protocol
|
1000
|
-
* [receives the message over MsgPack and the data matches](./spec/acceptance/realtime/message_spec.rb#
|
1065
|
+
* [receives the message over MsgPack and the data matches](./spec/acceptance/realtime/message_spec.rb#L843)
|
1001
1066
|
* when retrieving a string using JSON protocol
|
1002
|
-
* [is compatible with a publishes using MsgPack](./spec/acceptance/realtime/message_spec.rb#
|
1067
|
+
* [is compatible with a publishes using MsgPack](./spec/acceptance/realtime/message_spec.rb#L871)
|
1003
1068
|
* when publishing a string using JSON protocol
|
1004
|
-
* [receives the message over MsgPack and the data matches](./spec/acceptance/realtime/message_spec.rb#
|
1069
|
+
* [receives the message over MsgPack and the data matches](./spec/acceptance/realtime/message_spec.rb#L843)
|
1005
1070
|
* when retrieving a string using JSON protocol
|
1006
|
-
* [is compatible with a publishes using MsgPack](./spec/acceptance/realtime/message_spec.rb#
|
1071
|
+
* [is compatible with a publishes using MsgPack](./spec/acceptance/realtime/message_spec.rb#L871)
|
1007
1072
|
* when publishing a jsonObject using JSON protocol
|
1008
|
-
* [receives the message over MsgPack and the data matches](./spec/acceptance/realtime/message_spec.rb#
|
1073
|
+
* [receives the message over MsgPack and the data matches](./spec/acceptance/realtime/message_spec.rb#L843)
|
1009
1074
|
* when retrieving a jsonObject using JSON protocol
|
1010
|
-
* [is compatible with a publishes using MsgPack](./spec/acceptance/realtime/message_spec.rb#
|
1075
|
+
* [is compatible with a publishes using MsgPack](./spec/acceptance/realtime/message_spec.rb#L871)
|
1011
1076
|
* when publishing a jsonArray using JSON protocol
|
1012
|
-
* [receives the message over MsgPack and the data matches](./spec/acceptance/realtime/message_spec.rb#
|
1077
|
+
* [receives the message over MsgPack and the data matches](./spec/acceptance/realtime/message_spec.rb#L843)
|
1013
1078
|
* when retrieving a jsonArray using JSON protocol
|
1014
|
-
* [is compatible with a publishes using MsgPack](./spec/acceptance/realtime/message_spec.rb#
|
1079
|
+
* [is compatible with a publishes using MsgPack](./spec/acceptance/realtime/message_spec.rb#L871)
|
1015
1080
|
* when publishing a binary using JSON protocol
|
1016
|
-
* [receives the message over MsgPack and the data matches](./spec/acceptance/realtime/message_spec.rb#
|
1081
|
+
* [receives the message over MsgPack and the data matches](./spec/acceptance/realtime/message_spec.rb#L843)
|
1017
1082
|
* when retrieving a binary using JSON protocol
|
1018
|
-
* [is compatible with a publishes using MsgPack](./spec/acceptance/realtime/message_spec.rb#
|
1083
|
+
* [is compatible with a publishes using MsgPack](./spec/acceptance/realtime/message_spec.rb#L871)
|
1019
1084
|
|
1020
1085
|
### Ably::Realtime::Presence history
|
1021
1086
|
_(see [spec/acceptance/realtime/presence_history_spec.rb](./spec/acceptance/realtime/presence_history_spec.rb))_
|
@@ -1024,9 +1089,9 @@ _(see [spec/acceptance/realtime/presence_history_spec.rb](./spec/acceptance/real
|
|
1024
1089
|
* [ensures REST presence history message IDs match ProtocolMessage wrapped message and connection IDs via Realtime](./spec/acceptance/realtime/presence_history_spec.rb#L42)
|
1025
1090
|
* with option until_attach: true
|
1026
1091
|
* [retrieves all presence messages before channel was attached](./spec/acceptance/realtime/presence_history_spec.rb#L61)
|
1027
|
-
* [fails with an exception unless state is attached](./spec/acceptance/realtime/presence_history_spec.rb#
|
1092
|
+
* [fails with an exception unless state is attached](./spec/acceptance/realtime/presence_history_spec.rb#L106)
|
1028
1093
|
* and two pages of messages
|
1029
|
-
* [retrieves two pages of messages before channel was attached](./spec/acceptance/realtime/presence_history_spec.rb#
|
1094
|
+
* [retrieves two pages of messages before channel was attached](./spec/acceptance/realtime/presence_history_spec.rb#L81)
|
1030
1095
|
|
1031
1096
|
### Ably::Realtime::Presence
|
1032
1097
|
_(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/presence_spec.rb))_
|
@@ -1035,35 +1100,35 @@ _(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/pre
|
|
1035
1100
|
* [maintains state as other clients enter and leave the channel (#RTP2e)](./spec/acceptance/realtime/presence_spec.rb#L479)
|
1036
1101
|
* #sync_complete? and SYNC flags (#RTP1)
|
1037
1102
|
* when attaching to a channel without any members present
|
1038
|
-
* [sync_complete? is true, there is no presence flag, and the presence channel is considered synced immediately (#RTP1)](./spec/acceptance/realtime/presence_spec.rb#
|
1103
|
+
* [sync_complete? is true, there is no presence flag, and the presence channel is considered synced immediately (#RTP1)](./spec/acceptance/realtime/presence_spec.rb#L708)
|
1039
1104
|
* when attaching to a channel with members present
|
1040
|
-
* [sync_complete? is false, there is a presence flag, and the presence channel is subsequently synced (#RTP1)](./spec/acceptance/realtime/presence_spec.rb#
|
1105
|
+
* [sync_complete? is false, there is a presence flag, and the presence channel is subsequently synced (#RTP1)](./spec/acceptance/realtime/presence_spec.rb#L729)
|
1041
1106
|
* 101 existing (present) members on a channel (2 SYNC pages)
|
1042
1107
|
* requiring at least 2 SYNC ProtocolMessages
|
1043
1108
|
* when a client attaches to the presence channel
|
1044
|
-
* [emits :present for each member](./spec/acceptance/realtime/presence_spec.rb#
|
1109
|
+
* [emits :present for each member](./spec/acceptance/realtime/presence_spec.rb#L781)
|
1045
1110
|
* and a member enters before the SYNC operation is complete
|
1046
|
-
* [emits a :enter immediately and the member is :present once the sync is complete (#RTP2g)](./spec/acceptance/realtime/presence_spec.rb#
|
1111
|
+
* [emits a :enter immediately and the member is :present once the sync is complete (#RTP2g)](./spec/acceptance/realtime/presence_spec.rb#L797)
|
1047
1112
|
* and a member leaves before the SYNC operation is complete
|
1048
|
-
* [emits :leave immediately as the member leaves and cleans up the ABSENT member after (#RTP2f, #RTP2g)](./spec/acceptance/realtime/presence_spec.rb#
|
1049
|
-
* [ignores presence events with timestamps / identifiers prior to the current :present event in the MembersMap (#RTP2c)](./spec/acceptance/realtime/presence_spec.rb#
|
1050
|
-
* [does not emit :present after the :leave event has been emitted, and that member is not included in the list of members via #get (#RTP2f)](./spec/acceptance/realtime/presence_spec.rb#
|
1113
|
+
* [emits :leave immediately as the member leaves and cleans up the ABSENT member after (#RTP2f, #RTP2g)](./spec/acceptance/realtime/presence_spec.rb#L834)
|
1114
|
+
* [ignores presence events with timestamps / identifiers prior to the current :present event in the MembersMap (#RTP2c)](./spec/acceptance/realtime/presence_spec.rb#L882)
|
1115
|
+
* [does not emit :present after the :leave event has been emitted, and that member is not included in the list of members via #get (#RTP2f)](./spec/acceptance/realtime/presence_spec.rb#L927)
|
1051
1116
|
* #get
|
1052
1117
|
* by default
|
1053
|
-
* [waits until sync is complete (#RTP11c1)](./spec/acceptance/realtime/presence_spec.rb#
|
1118
|
+
* [waits until sync is complete (#RTP11c1)](./spec/acceptance/realtime/presence_spec.rb#L977)
|
1054
1119
|
* with :wait_for_sync option set to false (#RTP11c1)
|
1055
|
-
* [it does not wait for sync](./spec/acceptance/realtime/presence_spec.rb#
|
1120
|
+
* [it does not wait for sync](./spec/acceptance/realtime/presence_spec.rb#L998)
|
1056
1121
|
* state
|
1057
1122
|
* once opened
|
1058
|
-
* [once opened, enters the :left state if the channel detaches](./spec/acceptance/realtime/presence_spec.rb#
|
1123
|
+
* [once opened, enters the :left state if the channel detaches](./spec/acceptance/realtime/presence_spec.rb#L1025)
|
1059
1124
|
* #enter
|
1060
1125
|
* data attribute
|
1061
1126
|
* when provided as argument option to #enter
|
1062
|
-
* [changes to value provided in #leave](./spec/acceptance/realtime/presence_spec.rb#
|
1127
|
+
* [changes to value provided in #leave](./spec/acceptance/realtime/presence_spec.rb#L1050)
|
1063
1128
|
* message #connection_id
|
1064
|
-
* [matches the current client connection_id](./spec/acceptance/realtime/presence_spec.rb#
|
1129
|
+
* [matches the current client connection_id](./spec/acceptance/realtime/presence_spec.rb#L1074)
|
1065
1130
|
* without necessary capabilities to join presence
|
1066
|
-
* [calls the Deferrable errback on capabilities failure](./spec/acceptance/realtime/presence_spec.rb#
|
1131
|
+
* [calls the Deferrable errback on capabilities failure](./spec/acceptance/realtime/presence_spec.rb#L1093)
|
1067
1132
|
* it should behave like a public presence method
|
1068
1133
|
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#L63)
|
1069
1134
|
* [raise an exception if the channel becomes detached](./spec/acceptance/realtime/presence_spec.rb#L81)
|
@@ -1094,21 +1159,21 @@ _(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/pre
|
|
1094
1159
|
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L239)
|
1095
1160
|
* with unsupported data payload content type
|
1096
1161
|
* Integer
|
1097
|
-
* [raises an UnsupportedDataType
|
1162
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L259)
|
1098
1163
|
* Float
|
1099
|
-
* [raises an UnsupportedDataType
|
1164
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L268)
|
1100
1165
|
* Boolean
|
1101
|
-
* [raises an UnsupportedDataType
|
1166
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L277)
|
1102
1167
|
* False
|
1103
|
-
* [raises an UnsupportedDataType
|
1168
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L286)
|
1104
1169
|
* if connection fails before success
|
1105
1170
|
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L331)
|
1106
1171
|
* #update
|
1107
|
-
* [without previous #enter automatically enters](./spec/acceptance/realtime/presence_spec.rb#
|
1108
|
-
* [updates the data if :data argument provided](./spec/acceptance/realtime/presence_spec.rb#
|
1109
|
-
* [updates the data to nil if :data argument is not provided (assumes nil value)](./spec/acceptance/realtime/presence_spec.rb#
|
1172
|
+
* [without previous #enter automatically enters](./spec/acceptance/realtime/presence_spec.rb#L1105)
|
1173
|
+
* [updates the data if :data argument provided](./spec/acceptance/realtime/presence_spec.rb#L1130)
|
1174
|
+
* [updates the data to nil if :data argument is not provided (assumes nil value)](./spec/acceptance/realtime/presence_spec.rb#L1140)
|
1110
1175
|
* when ENTERED
|
1111
|
-
* [has no effect on the state](./spec/acceptance/realtime/presence_spec.rb#
|
1176
|
+
* [has no effect on the state](./spec/acceptance/realtime/presence_spec.rb#L1115)
|
1112
1177
|
* it should behave like a public presence method
|
1113
1178
|
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#L63)
|
1114
1179
|
* [raise an exception if the channel becomes detached](./spec/acceptance/realtime/presence_spec.rb#L81)
|
@@ -1139,26 +1204,26 @@ _(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/pre
|
|
1139
1204
|
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L239)
|
1140
1205
|
* with unsupported data payload content type
|
1141
1206
|
* Integer
|
1142
|
-
* [raises an UnsupportedDataType
|
1207
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L259)
|
1143
1208
|
* Float
|
1144
|
-
* [raises an UnsupportedDataType
|
1209
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L268)
|
1145
1210
|
* Boolean
|
1146
|
-
* [raises an UnsupportedDataType
|
1211
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L277)
|
1147
1212
|
* False
|
1148
|
-
* [raises an UnsupportedDataType
|
1213
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L286)
|
1149
1214
|
* if connection fails before success
|
1150
1215
|
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L331)
|
1151
1216
|
* #leave
|
1152
|
-
* [
|
1217
|
+
* [succeeds and does not emit an event (#RTP10d)](./spec/acceptance/realtime/presence_spec.rb#L1224)
|
1153
1218
|
* :data option
|
1154
1219
|
* when set to a string
|
1155
|
-
* [emits the new data for the leave event](./spec/acceptance/realtime/presence_spec.rb#
|
1220
|
+
* [emits the new data for the leave event](./spec/acceptance/realtime/presence_spec.rb#L1159)
|
1156
1221
|
* when set to nil
|
1157
|
-
* [emits the last value for the data attribute when leaving](./spec/acceptance/realtime/presence_spec.rb#
|
1222
|
+
* [emits the last value for the data attribute when leaving](./spec/acceptance/realtime/presence_spec.rb#L1172)
|
1158
1223
|
* when not passed as an argument (i.e. nil)
|
1159
|
-
* [emits the previous value for the data attribute when leaving](./spec/acceptance/realtime/presence_spec.rb#
|
1224
|
+
* [emits the previous value for the data attribute when leaving](./spec/acceptance/realtime/presence_spec.rb#L1185)
|
1160
1225
|
* and sync is complete
|
1161
|
-
* [does not cache members that have left](./spec/acceptance/realtime/presence_spec.rb#
|
1226
|
+
* [does not cache members that have left](./spec/acceptance/realtime/presence_spec.rb#L1198)
|
1162
1227
|
* it should behave like a public presence method
|
1163
1228
|
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#L293)
|
1164
1229
|
* [allows a block to be passed in that is executed upon success](./spec/acceptance/realtime/presence_spec.rb#L300)
|
@@ -1175,27 +1240,27 @@ _(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/pre
|
|
1175
1240
|
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L239)
|
1176
1241
|
* with unsupported data payload content type
|
1177
1242
|
* Integer
|
1178
|
-
* [raises an UnsupportedDataType
|
1243
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L259)
|
1179
1244
|
* Float
|
1180
|
-
* [raises an UnsupportedDataType
|
1245
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L268)
|
1181
1246
|
* Boolean
|
1182
|
-
* [raises an UnsupportedDataType
|
1247
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L277)
|
1183
1248
|
* False
|
1184
|
-
* [raises an UnsupportedDataType
|
1249
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L286)
|
1185
1250
|
* if connection fails before success
|
1186
1251
|
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L331)
|
1187
1252
|
* :left event
|
1188
|
-
* [emits the data defined in enter](./spec/acceptance/realtime/presence_spec.rb#
|
1189
|
-
* [emits the data defined in update](./spec/acceptance/realtime/presence_spec.rb#
|
1253
|
+
* [emits the data defined in enter](./spec/acceptance/realtime/presence_spec.rb#L1240)
|
1254
|
+
* [emits the data defined in update](./spec/acceptance/realtime/presence_spec.rb#L1251)
|
1190
1255
|
* entering/updating/leaving presence state on behalf of another client_id
|
1191
1256
|
* #enter_client
|
1192
1257
|
* multiple times on the same channel with different client_ids
|
1193
|
-
* [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#
|
1194
|
-
* [enters a channel and sets the data based on the provided :data option](./spec/acceptance/realtime/presence_spec.rb#
|
1258
|
+
* [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#L1274)
|
1259
|
+
* [enters a channel and sets the data based on the provided :data option](./spec/acceptance/realtime/presence_spec.rb#L1288)
|
1195
1260
|
* message #connection_id
|
1196
|
-
* [matches the current client connection_id](./spec/acceptance/realtime/presence_spec.rb#
|
1261
|
+
* [matches the current client connection_id](./spec/acceptance/realtime/presence_spec.rb#L1307)
|
1197
1262
|
* without necessary capabilities to enter on behalf of another client
|
1198
|
-
* [calls the Deferrable errback on capabilities failure](./spec/acceptance/realtime/presence_spec.rb#
|
1263
|
+
* [calls the Deferrable errback on capabilities failure](./spec/acceptance/realtime/presence_spec.rb#L1327)
|
1199
1264
|
* it should behave like a public presence method
|
1200
1265
|
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#L63)
|
1201
1266
|
* [raise an exception if the channel becomes detached](./spec/acceptance/realtime/presence_spec.rb#L81)
|
@@ -1226,13 +1291,13 @@ _(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/pre
|
|
1226
1291
|
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L239)
|
1227
1292
|
* with unsupported data payload content type
|
1228
1293
|
* Integer
|
1229
|
-
* [raises an UnsupportedDataType
|
1294
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L259)
|
1230
1295
|
* Float
|
1231
|
-
* [raises an UnsupportedDataType
|
1296
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L268)
|
1232
1297
|
* Boolean
|
1233
|
-
* [raises an UnsupportedDataType
|
1298
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L277)
|
1234
1299
|
* False
|
1235
|
-
* [raises an UnsupportedDataType
|
1300
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L286)
|
1236
1301
|
* if connection fails before success
|
1237
1302
|
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L331)
|
1238
1303
|
* it should behave like a presence on behalf of another client method
|
@@ -1267,9 +1332,9 @@ _(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/pre
|
|
1267
1332
|
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L470)
|
1268
1333
|
* #update_client
|
1269
1334
|
* multiple times on the same channel with different client_ids
|
1270
|
-
* [updates the data attribute for the member when :data option provided](./spec/acceptance/realtime/presence_spec.rb#
|
1271
|
-
* [updates the data attribute to null for the member when :data option is not provided (assumed null)](./spec/acceptance/realtime/presence_spec.rb#
|
1272
|
-
* [enters if not already entered](./spec/acceptance/realtime/presence_spec.rb#
|
1335
|
+
* [updates the data attribute for the member when :data option provided](./spec/acceptance/realtime/presence_spec.rb#L1341)
|
1336
|
+
* [updates the data attribute to null for the member when :data option is not provided (assumed null)](./spec/acceptance/realtime/presence_spec.rb#L1365)
|
1337
|
+
* [enters if not already entered](./spec/acceptance/realtime/presence_spec.rb#L1377)
|
1273
1338
|
* it should behave like a public presence method
|
1274
1339
|
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#L63)
|
1275
1340
|
* [raise an exception if the channel becomes detached](./spec/acceptance/realtime/presence_spec.rb#L81)
|
@@ -1300,13 +1365,13 @@ _(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/pre
|
|
1300
1365
|
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L239)
|
1301
1366
|
* with unsupported data payload content type
|
1302
1367
|
* Integer
|
1303
|
-
* [raises an UnsupportedDataType
|
1368
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L259)
|
1304
1369
|
* Float
|
1305
|
-
* [raises an UnsupportedDataType
|
1370
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L268)
|
1306
1371
|
* Boolean
|
1307
|
-
* [raises an UnsupportedDataType
|
1372
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L277)
|
1308
1373
|
* False
|
1309
|
-
* [raises an UnsupportedDataType
|
1374
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L286)
|
1310
1375
|
* if connection fails before success
|
1311
1376
|
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L331)
|
1312
1377
|
* it should behave like a presence on behalf of another client method
|
@@ -1342,14 +1407,14 @@ _(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/pre
|
|
1342
1407
|
* #leave_client
|
1343
1408
|
* leaves a channel
|
1344
1409
|
* multiple times on the same channel with different client_ids
|
1345
|
-
* [emits the :leave event for each client_id](./spec/acceptance/realtime/presence_spec.rb#
|
1346
|
-
* [succeeds if that client_id has not previously entered the channel](./spec/acceptance/realtime/presence_spec.rb#
|
1410
|
+
* [emits the :leave event for each client_id](./spec/acceptance/realtime/presence_spec.rb#L1407)
|
1411
|
+
* [succeeds if that client_id has not previously entered the channel](./spec/acceptance/realtime/presence_spec.rb#L1431)
|
1347
1412
|
* with a new value in :data option
|
1348
|
-
* [emits the leave event with the new data value](./spec/acceptance/realtime/presence_spec.rb#
|
1413
|
+
* [emits the leave event with the new data value](./spec/acceptance/realtime/presence_spec.rb#L1455)
|
1349
1414
|
* with a nil value in :data option
|
1350
|
-
* [emits the leave event with the previous value as a convenience](./spec/acceptance/realtime/presence_spec.rb#
|
1415
|
+
* [emits the leave event with the previous value as a convenience](./spec/acceptance/realtime/presence_spec.rb#L1468)
|
1351
1416
|
* with no :data option
|
1352
|
-
* [emits the leave event with the previous value as a convenience](./spec/acceptance/realtime/presence_spec.rb#
|
1417
|
+
* [emits the leave event with the previous value as a convenience](./spec/acceptance/realtime/presence_spec.rb#L1481)
|
1353
1418
|
* it should behave like a public presence method
|
1354
1419
|
* [raise an exception if the channel is detached](./spec/acceptance/realtime/presence_spec.rb#L63)
|
1355
1420
|
* [raise an exception if the channel becomes detached](./spec/acceptance/realtime/presence_spec.rb#L81)
|
@@ -1380,13 +1445,13 @@ _(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/pre
|
|
1380
1445
|
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L239)
|
1381
1446
|
* with unsupported data payload content type
|
1382
1447
|
* Integer
|
1383
|
-
* [raises an UnsupportedDataType
|
1448
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L259)
|
1384
1449
|
* Float
|
1385
|
-
* [raises an UnsupportedDataType
|
1450
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L268)
|
1386
1451
|
* Boolean
|
1387
|
-
* [raises an UnsupportedDataType
|
1452
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L277)
|
1388
1453
|
* False
|
1389
|
-
* [raises an UnsupportedDataType
|
1454
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L286)
|
1390
1455
|
* if connection fails before success
|
1391
1456
|
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L331)
|
1392
1457
|
* it should behave like a presence on behalf of another client method
|
@@ -1420,103 +1485,170 @@ _(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/pre
|
|
1420
1485
|
* and an empty client_id
|
1421
1486
|
* [throws an exception](./spec/acceptance/realtime/presence_spec.rb#L470)
|
1422
1487
|
* #get
|
1423
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#
|
1424
|
-
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#
|
1425
|
-
* [catches exceptions in the provided method block](./spec/acceptance/realtime/presence_spec.rb#
|
1426
|
-
* [implicitly attaches the channel (#RTP11b)](./spec/acceptance/realtime/presence_spec.rb#
|
1427
|
-
* [fails if the connection is DETACHED (#RTP11b)](./spec/acceptance/realtime/presence_spec.rb#
|
1428
|
-
* [fails if the connection is FAILED (#RTP11b)](./spec/acceptance/realtime/presence_spec.rb#
|
1429
|
-
* [returns the current members on the channel (#RTP11a)](./spec/acceptance/realtime/presence_spec.rb#
|
1430
|
-
* [filters by connection_id option if provided (#RTP11c3)](./spec/acceptance/realtime/presence_spec.rb#
|
1431
|
-
* [filters by client_id option if provided (#RTP11c2)](./spec/acceptance/realtime/presence_spec.rb#
|
1432
|
-
* [does not wait for SYNC to complete if :wait_for_sync option is false (#RTP11c1)](./spec/acceptance/realtime/presence_spec.rb#
|
1433
|
-
* [returns the list of members and waits for SYNC to complete by default (#RTP11a)](./spec/acceptance/realtime/presence_spec.rb#
|
1488
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/presence_spec.rb#L1500)
|
1489
|
+
* [calls the Deferrable callback on success](./spec/acceptance/realtime/presence_spec.rb#L1505)
|
1490
|
+
* [catches exceptions in the provided method block](./spec/acceptance/realtime/presence_spec.rb#L1512)
|
1491
|
+
* [implicitly attaches the channel (#RTP11b)](./spec/acceptance/realtime/presence_spec.rb#L1520)
|
1492
|
+
* [fails if the connection is DETACHED (#RTP11b)](./spec/acceptance/realtime/presence_spec.rb#L1555)
|
1493
|
+
* [fails if the connection is FAILED (#RTP11b)](./spec/acceptance/realtime/presence_spec.rb#L1570)
|
1494
|
+
* [returns the current members on the channel (#RTP11a)](./spec/acceptance/realtime/presence_spec.rb#L1654)
|
1495
|
+
* [filters by connection_id option if provided (#RTP11c3)](./spec/acceptance/realtime/presence_spec.rb#L1671)
|
1496
|
+
* [filters by client_id option if provided (#RTP11c2)](./spec/acceptance/realtime/presence_spec.rb#L1693)
|
1497
|
+
* [does not wait for SYNC to complete if :wait_for_sync option is false (#RTP11c1)](./spec/acceptance/realtime/presence_spec.rb#L1717)
|
1498
|
+
* [returns the list of members and waits for SYNC to complete by default (#RTP11a)](./spec/acceptance/realtime/presence_spec.rb#L1729)
|
1434
1499
|
* when the channel is SUSPENDED
|
1435
1500
|
* with wait_for_sync: true
|
1436
|
-
* [
|
1501
|
+
* [results in an error with @code@ @91005@ and a @message@ stating that the presence state is out of sync (#RTP11d)](./spec/acceptance/realtime/presence_spec.rb#L1530)
|
1437
1502
|
* with wait_for_sync: false
|
1438
|
-
* [returns the current PresenceMap and does not wait for the channel to change to the ATTACHED state (#RTP11d)](./spec/acceptance/realtime/presence_spec.rb#
|
1503
|
+
* [returns the current PresenceMap and does not wait for the channel to change to the ATTACHED state (#RTP11d)](./spec/acceptance/realtime/presence_spec.rb#L1543)
|
1439
1504
|
* during a sync
|
1440
1505
|
* when :wait_for_sync is true
|
1441
|
-
* [fails if the connection becomes FAILED (#RTP11b)](./spec/acceptance/realtime/presence_spec.rb#
|
1442
|
-
* [fails if the channel becomes detached (#RTP11b)](./spec/acceptance/realtime/presence_spec.rb#
|
1506
|
+
* [fails if the connection becomes FAILED (#RTP11b)](./spec/acceptance/realtime/presence_spec.rb#L1607)
|
1507
|
+
* [fails if the channel becomes detached (#RTP11b)](./spec/acceptance/realtime/presence_spec.rb#L1630)
|
1443
1508
|
* when a member enters and then leaves
|
1444
|
-
* [has no members](./spec/acceptance/realtime/presence_spec.rb#
|
1509
|
+
* [has no members](./spec/acceptance/realtime/presence_spec.rb#L1742)
|
1445
1510
|
* when a member enters and the presence map is updated
|
1446
|
-
* [adds the member as being :present (#RTP2d)](./spec/acceptance/realtime/presence_spec.rb#
|
1511
|
+
* [adds the member as being :present (#RTP2d)](./spec/acceptance/realtime/presence_spec.rb#L1757)
|
1447
1512
|
* with lots of members on different clients
|
1448
|
-
* [returns a complete list of members on all clients](./spec/acceptance/realtime/presence_spec.rb#
|
1513
|
+
* [returns a complete list of members on all clients](./spec/acceptance/realtime/presence_spec.rb#L1778)
|
1449
1514
|
* #subscribe
|
1450
|
-
* [implicitly attaches](./spec/acceptance/realtime/presence_spec.rb#
|
1515
|
+
* [implicitly attaches](./spec/acceptance/realtime/presence_spec.rb#L1853)
|
1451
1516
|
* with no arguments
|
1452
|
-
* [calls the callback for all presence events](./spec/acceptance/realtime/presence_spec.rb#
|
1517
|
+
* [calls the callback for all presence events](./spec/acceptance/realtime/presence_spec.rb#L1814)
|
1453
1518
|
* with event name
|
1454
|
-
* [calls the callback for specified presence event](./spec/acceptance/realtime/presence_spec.rb#
|
1519
|
+
* [calls the callback for specified presence event](./spec/acceptance/realtime/presence_spec.rb#L1834)
|
1455
1520
|
* with a callback that raises an exception
|
1456
|
-
* [logs the error and continues](./spec/acceptance/realtime/presence_spec.rb#
|
1521
|
+
* [logs the error and continues](./spec/acceptance/realtime/presence_spec.rb#L1866)
|
1457
1522
|
* #unsubscribe
|
1458
1523
|
* with no arguments
|
1459
|
-
* [removes the callback for all presence events](./spec/acceptance/realtime/presence_spec.rb#
|
1524
|
+
* [removes the callback for all presence events](./spec/acceptance/realtime/presence_spec.rb#L1887)
|
1460
1525
|
* with event name
|
1461
|
-
* [removes the callback for specified presence event](./spec/acceptance/realtime/presence_spec.rb#
|
1526
|
+
* [removes the callback for specified presence event](./spec/acceptance/realtime/presence_spec.rb#L1905)
|
1462
1527
|
* REST #get
|
1463
|
-
* [returns current members](./spec/acceptance/realtime/presence_spec.rb#
|
1464
|
-
* [returns no members once left](./spec/acceptance/realtime/presence_spec.rb#
|
1528
|
+
* [returns current members](./spec/acceptance/realtime/presence_spec.rb#L1924)
|
1529
|
+
* [returns no members once left](./spec/acceptance/realtime/presence_spec.rb#L1940)
|
1465
1530
|
* client_id with ASCII_8BIT
|
1466
1531
|
* in connection set up
|
1467
|
-
* [is converted into UTF_8](./spec/acceptance/realtime/presence_spec.rb#
|
1532
|
+
* [is converted into UTF_8](./spec/acceptance/realtime/presence_spec.rb#L1960)
|
1468
1533
|
* in channel options
|
1469
|
-
* [is converted into UTF_8](./spec/acceptance/realtime/presence_spec.rb#
|
1534
|
+
* [is converted into UTF_8](./spec/acceptance/realtime/presence_spec.rb#L1973)
|
1470
1535
|
* encoding and decoding of presence message data
|
1471
|
-
* [encrypts presence message data](./spec/acceptance/realtime/presence_spec.rb#
|
1536
|
+
* [encrypts presence message data](./spec/acceptance/realtime/presence_spec.rb#L1999)
|
1472
1537
|
* #subscribe
|
1473
|
-
* [emits decrypted enter events](./spec/acceptance/realtime/presence_spec.rb#
|
1474
|
-
* [emits decrypted update events](./spec/acceptance/realtime/presence_spec.rb#
|
1475
|
-
* [emits previously set data for leave events](./spec/acceptance/realtime/presence_spec.rb#
|
1538
|
+
* [emits decrypted enter events](./spec/acceptance/realtime/presence_spec.rb#L2018)
|
1539
|
+
* [emits decrypted update events](./spec/acceptance/realtime/presence_spec.rb#L2030)
|
1540
|
+
* [emits previously set data for leave events](./spec/acceptance/realtime/presence_spec.rb#L2044)
|
1476
1541
|
* #get
|
1477
|
-
* [returns a list of members with decrypted data](./spec/acceptance/realtime/presence_spec.rb#
|
1542
|
+
* [returns a list of members with decrypted data](./spec/acceptance/realtime/presence_spec.rb#L2060)
|
1478
1543
|
* REST #get
|
1479
|
-
* [returns a list of members with decrypted data](./spec/acceptance/realtime/presence_spec.rb#
|
1544
|
+
* [returns a list of members with decrypted data](./spec/acceptance/realtime/presence_spec.rb#L2074)
|
1480
1545
|
* when cipher settings do not match publisher
|
1481
|
-
* [delivers an unencoded presence message left with encoding value](./spec/acceptance/realtime/presence_spec.rb#
|
1482
|
-
* [emits an error when cipher does not match and presence data cannot be decoded](./spec/acceptance/realtime/presence_spec.rb#
|
1546
|
+
* [delivers an unencoded presence message left with encoding value](./spec/acceptance/realtime/presence_spec.rb#L2090)
|
1547
|
+
* [emits an error when cipher does not match and presence data cannot be decoded](./spec/acceptance/realtime/presence_spec.rb#L2103)
|
1483
1548
|
* leaving
|
1484
|
-
* [expect :left event once underlying connection is closed](./spec/acceptance/realtime/presence_spec.rb#
|
1485
|
-
* [expect :left event with client data from enter event](./spec/acceptance/realtime/presence_spec.rb#
|
1549
|
+
* [expect :left event once underlying connection is closed](./spec/acceptance/realtime/presence_spec.rb#L2119)
|
1550
|
+
* [expect :left event with client data from enter event](./spec/acceptance/realtime/presence_spec.rb#L2129)
|
1486
1551
|
* connection failure mid-way through a large member sync
|
1487
|
-
* [resumes the SYNC operation (#RTP3)](./spec/acceptance/realtime/presence_spec.rb#
|
1552
|
+
* [resumes the SYNC operation (#RTP3)](./spec/acceptance/realtime/presence_spec.rb#L2148)
|
1488
1553
|
* server-initiated sync
|
1489
1554
|
* with multiple SYNC pages
|
1490
|
-
* [is initiated with a SYNC message and completed with a later SYNC message with no cursor value part of the channelSerial (#RTP18a, #RTP18b) ](./spec/acceptance/realtime/presence_spec.rb#
|
1555
|
+
* [is initiated with a SYNC message and completed with a later SYNC message with no cursor value part of the channelSerial (#RTP18a, #RTP18b) ](./spec/acceptance/realtime/presence_spec.rb#L2186)
|
1491
1556
|
* with a single SYNC page
|
1492
|
-
* [is initiated and completed with a single SYNC message (and no channelSerial) (#RTP18a, #RTP18c) ](./spec/acceptance/realtime/presence_spec.rb#
|
1557
|
+
* [is initiated and completed with a single SYNC message (and no channelSerial) (#RTP18a, #RTP18c) ](./spec/acceptance/realtime/presence_spec.rb#L2237)
|
1493
1558
|
* when members exist in the PresenceMap before a SYNC completes
|
1494
|
-
* [removes the members that are no longer present (#RTP19)](./spec/acceptance/realtime/presence_spec.rb#
|
1559
|
+
* [removes the members that are no longer present (#RTP19)](./spec/acceptance/realtime/presence_spec.rb#L2285)
|
1495
1560
|
* when the client does not have presence subscribe privileges but is present on the channel
|
1496
|
-
* PENDING: *[receives presence updates for all presence events generated by the current connection and the presence map is kept up to date (#RTP17a)](./spec/acceptance/realtime/presence_spec.rb#
|
1561
|
+
* PENDING: *[receives presence updates for all presence events generated by the current connection and the presence map is kept up to date (#RTP17a)](./spec/acceptance/realtime/presence_spec.rb#L2343)*
|
1497
1562
|
* local PresenceMap for presence members entered by this client
|
1498
|
-
* [maintains a copy of the member map for any member that shares this connection's connection ID (#RTP17)](./spec/acceptance/realtime/presence_spec.rb#
|
1563
|
+
* [maintains a copy of the member map for any member that shares this connection's connection ID (#RTP17)](./spec/acceptance/realtime/presence_spec.rb#L2393)
|
1499
1564
|
* when a channel becomes attached again
|
1500
1565
|
* and the resume flag is true
|
1501
1566
|
* and the presence flag is false
|
1502
|
-
* [does not send any presence events as the PresenceMap is in sync (#RTP5c1)](./spec/acceptance/realtime/presence_spec.rb#
|
1567
|
+
* [does not send any presence events as the PresenceMap is in sync (#RTP5c1)](./spec/acceptance/realtime/presence_spec.rb#L2439)
|
1503
1568
|
* and the presence flag is true
|
1504
1569
|
* and following the SYNC all local MemberMap members are present in the PresenceMap
|
1505
|
-
* [does nothing as MemberMap is in sync (#RTP5c2)](./spec/acceptance/realtime/presence_spec.rb#
|
1570
|
+
* [does nothing as MemberMap is in sync (#RTP5c2)](./spec/acceptance/realtime/presence_spec.rb#L2469)
|
1506
1571
|
* and following the SYNC a local MemberMap member is not present in the PresenceMap
|
1507
|
-
* [re-enters the missing members automatically (#RTP5c2)](./spec/acceptance/realtime/presence_spec.rb#
|
1572
|
+
* [re-enters the missing members automatically (#RTP5c2)](./spec/acceptance/realtime/presence_spec.rb#L2508)
|
1508
1573
|
* and the resume flag is false
|
1509
1574
|
* and the presence flag is false
|
1510
|
-
* [immediately resends all local presence members (#RTP5c2, #RTP19a)](./spec/acceptance/realtime/presence_spec.rb#
|
1575
|
+
* [immediately resends all local presence members (#RTP5c2, #RTP19a)](./spec/acceptance/realtime/presence_spec.rb#L2591)
|
1511
1576
|
* when re-entering a client automatically, if the re-enter fails for any reason
|
1512
|
-
* [should emit an ErrorInfo with error code 91004 (#RTP5c3)](./spec/acceptance/realtime/presence_spec.rb#
|
1577
|
+
* [should emit an ErrorInfo with error code 91004 (#RTP5c3)](./spec/acceptance/realtime/presence_spec.rb#L2642)
|
1513
1578
|
* channel state side effects
|
1514
1579
|
* channel transitions to the FAILED state
|
1515
|
-
* [clears the PresenceMap and local member map copy and does not emit any presence events (#RTP5a)](./spec/acceptance/realtime/presence_spec.rb#
|
1580
|
+
* [clears the PresenceMap and local member map copy and does not emit any presence events (#RTP5a)](./spec/acceptance/realtime/presence_spec.rb#L2699)
|
1516
1581
|
* channel transitions to the DETACHED state
|
1517
|
-
* [clears the PresenceMap and local member map copy and does not emit any presence events (#RTP5a)](./spec/acceptance/realtime/presence_spec.rb#
|
1582
|
+
* [clears the PresenceMap and local member map copy and does not emit any presence events (#RTP5a)](./spec/acceptance/realtime/presence_spec.rb#L2726)
|
1518
1583
|
* channel transitions to the SUSPENDED state
|
1519
|
-
* [maintains the PresenceMap and only publishes presence event changes since the last attached state (#RTP5f)](./spec/acceptance/realtime/presence_spec.rb#
|
1584
|
+
* [maintains the PresenceMap and only publishes presence event changes since the last attached state (#RTP5f)](./spec/acceptance/realtime/presence_spec.rb#L2762)
|
1585
|
+
|
1586
|
+
### Ably::Realtime::Push::Admin
|
1587
|
+
_(see [spec/acceptance/realtime/push_admin_spec.rb](./spec/acceptance/realtime/push_admin_spec.rb))_
|
1588
|
+
* using JSON protocol
|
1589
|
+
* #publish
|
1590
|
+
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/push_admin_spec.rb#L35)
|
1591
|
+
* [accepts valid push data and recipient](./spec/acceptance/realtime/push_admin_spec.rb#L139)
|
1592
|
+
* invalid arguments
|
1593
|
+
* [raises an exception with a nil recipient](./spec/acceptance/realtime/push_admin_spec.rb#L44)
|
1594
|
+
* [raises an exception with a empty recipient](./spec/acceptance/realtime/push_admin_spec.rb#L49)
|
1595
|
+
* [raises an exception with a nil recipient](./spec/acceptance/realtime/push_admin_spec.rb#L54)
|
1596
|
+
* [raises an exception with a empty recipient](./spec/acceptance/realtime/push_admin_spec.rb#L59)
|
1597
|
+
* invalid recipient
|
1598
|
+
* PENDING: *[raises an error after receiving a 40x realtime response](./spec/acceptance/realtime/push_admin_spec.rb#L66)*
|
1599
|
+
* invalid push data
|
1600
|
+
* PENDING: *[raises an error after receiving a 40x realtime response](./spec/acceptance/realtime/push_admin_spec.rb#L76)*
|
1601
|
+
* recipient variable case
|
1602
|
+
* [is converted to snakeCase](./spec/acceptance/realtime/push_admin_spec.rb#L131)
|
1603
|
+
* using test environment channel recipient (#RSH1a)
|
1604
|
+
* [triggers a push notification](./spec/acceptance/realtime/push_admin_spec.rb#L169)
|
1605
|
+
* #device_registrations
|
1606
|
+
* without permissions
|
1607
|
+
* [raises a permissions not authorized exception](./spec/acceptance/realtime/push_admin_spec.rb#L197)
|
1608
|
+
* #list
|
1609
|
+
* [returns a PaginatedResult object containing DeviceDetails objects](./spec/acceptance/realtime/push_admin_spec.rb#L241)
|
1610
|
+
* [supports paging](./spec/acceptance/realtime/push_admin_spec.rb#L249)
|
1611
|
+
* [raises an exception if params are invalid](./spec/acceptance/realtime/push_admin_spec.rb#L265)
|
1612
|
+
* #get
|
1613
|
+
* [returns a DeviceDetails object if a device ID string is provided](./spec/acceptance/realtime/push_admin_spec.rb#L298)
|
1614
|
+
* with a failed request
|
1615
|
+
* [raises a ResourceMissing exception if device ID does not exist](./spec/acceptance/realtime/push_admin_spec.rb#L315)
|
1616
|
+
* #save
|
1617
|
+
* [saves the new DeviceDetails Hash object](./spec/acceptance/realtime/push_admin_spec.rb#L358)
|
1618
|
+
* with a failed request
|
1619
|
+
* [fails if data is invalid](./spec/acceptance/realtime/push_admin_spec.rb#L376)
|
1620
|
+
* #remove_where
|
1621
|
+
* [removes all matching device registrations by client_id](./spec/acceptance/realtime/push_admin_spec.rb#L408)
|
1622
|
+
* #remove
|
1623
|
+
* [removes the provided device id string](./spec/acceptance/realtime/push_admin_spec.rb#L441)
|
1624
|
+
* #channel_subscriptions
|
1625
|
+
* #list
|
1626
|
+
* [returns a PaginatedResult object containing DeviceDetails objects](./spec/acceptance/realtime/push_admin_spec.rb#L511)
|
1627
|
+
* [supports paging](./spec/acceptance/realtime/push_admin_spec.rb#L519)
|
1628
|
+
* [raises an exception if none of the required filters are provided](./spec/acceptance/realtime/push_admin_spec.rb#L535)
|
1629
|
+
* #list_channels
|
1630
|
+
* [returns a PaginatedResult object containing String objects](./spec/acceptance/realtime/push_admin_spec.rb#L560)
|
1631
|
+
* #save
|
1632
|
+
* [saves the new client_id PushChannelSubscription Hash object](./spec/acceptance/realtime/push_admin_spec.rb#L575)
|
1633
|
+
* [raises an exception for invalid params](./spec/acceptance/realtime/push_admin_spec.rb#L586)
|
1634
|
+
* failed requests
|
1635
|
+
* [fails for invalid requests](./spec/acceptance/realtime/push_admin_spec.rb#L599)
|
1636
|
+
* #remove_where
|
1637
|
+
* [removes matching client_ids](./spec/acceptance/realtime/push_admin_spec.rb#L626)
|
1638
|
+
* [succeeds on no match](./spec/acceptance/realtime/push_admin_spec.rb#L653)
|
1639
|
+
* failed requests
|
1640
|
+
* [device_id and client_id filters in the same request are not supported](./spec/acceptance/realtime/push_admin_spec.rb#L645)
|
1641
|
+
* #remove
|
1642
|
+
* [removes match for Hash object by channel and client_id](./spec/acceptance/realtime/push_admin_spec.rb#L673)
|
1643
|
+
* [succeeds even if there is no match](./spec/acceptance/realtime/push_admin_spec.rb#L685)
|
1644
|
+
|
1645
|
+
### Ably::Realtime::Push
|
1646
|
+
_(see [spec/acceptance/realtime/push_spec.rb](./spec/acceptance/realtime/push_spec.rb))_
|
1647
|
+
* using JSON protocol
|
1648
|
+
* #activate
|
1649
|
+
* [raises an unsupported exception](./spec/acceptance/realtime/push_spec.rb#L14)
|
1650
|
+
* #deactivate
|
1651
|
+
* [raises an unsupported exception](./spec/acceptance/realtime/push_spec.rb#L21)
|
1520
1652
|
|
1521
1653
|
### Ably::Realtime::Client#stats
|
1522
1654
|
_(see [spec/acceptance/realtime/stats_spec.rb](./spec/acceptance/realtime/stats_spec.rb))_
|
@@ -1600,7 +1732,7 @@ _(see [spec/acceptance/rest/auth_spec.rb](./spec/acceptance/rest/auth_spec.rb))_
|
|
1600
1732
|
* [sets Auth#client_id to the new token's client_id](./spec/acceptance/rest/auth_spec.rb#L451)
|
1601
1733
|
* [sets Client#client_id to the new token's client_id](./spec/acceptance/rest/auth_spec.rb#L455)
|
1602
1734
|
* that returns a TokenDetails JSON object
|
1603
|
-
* [calls the
|
1735
|
+
* [calls the lambda when authenticating to obtain the request token](./spec/acceptance/rest/auth_spec.rb#L489)
|
1604
1736
|
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#L494)
|
1605
1737
|
* when authorized
|
1606
1738
|
* [sets Auth#client_id to the new token's client_id](./spec/acceptance/rest/auth_spec.rb#L506)
|
@@ -1640,104 +1772,112 @@ _(see [spec/acceptance/rest/auth_spec.rb](./spec/acceptance/rest/auth_spec.rb))_
|
|
1640
1772
|
* with previous authorisation
|
1641
1773
|
* [requests a new token if token is expired](./spec/acceptance/rest/auth_spec.rb#L743)
|
1642
1774
|
* [issues a new token every time #authorize is called](./spec/acceptance/rest/auth_spec.rb#L749)
|
1643
|
-
* with a
|
1644
|
-
* [calls the
|
1645
|
-
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#
|
1775
|
+
* with a lambda for the :auth_callback option
|
1776
|
+
* [calls the lambda](./spec/acceptance/rest/auth_spec.rb#L777)
|
1777
|
+
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#L781)
|
1646
1778
|
* for every subsequent #request_token
|
1647
|
-
* without a :auth_callback
|
1648
|
-
* [calls the originally provided block](./spec/acceptance/rest/auth_spec.rb#
|
1779
|
+
* without a :auth_callback lambda
|
1780
|
+
* [calls the originally provided block](./spec/acceptance/rest/auth_spec.rb#L787)
|
1649
1781
|
* with a provided block
|
1650
|
-
* [does not call the originally provided
|
1782
|
+
* [does not call the originally provided lambda and calls the new #request_token :auth_callback lambda](./spec/acceptance/rest/auth_spec.rb#L794)
|
1651
1783
|
* with an explicit token string that expires
|
1652
|
-
* and a
|
1653
|
-
* [calls the
|
1784
|
+
* and a lambda for the :auth_callback option to provide a means to renew the token
|
1785
|
+
* [calls the lambda once the token has expired and the new token is used](./spec/acceptance/rest/auth_spec.rb#L821)
|
1654
1786
|
* with an explicit ClientOptions client_id
|
1655
1787
|
* and an incompatible client_id in a TokenDetails object passed to the auth callback
|
1656
|
-
* [rejects a TokenDetails object with an incompatible client_id and raises an exception](./spec/acceptance/rest/auth_spec.rb#
|
1788
|
+
* [rejects a TokenDetails object with an incompatible client_id and raises an exception](./spec/acceptance/rest/auth_spec.rb#L839)
|
1657
1789
|
* and an incompatible client_id in a TokenRequest object passed to the auth callback and raises an exception
|
1658
|
-
* [rejects a TokenRequests object with an incompatible client_id and raises an exception](./spec/acceptance/rest/auth_spec.rb#
|
1790
|
+
* [rejects a TokenRequests object with an incompatible client_id and raises an exception](./spec/acceptance/rest/auth_spec.rb#L847)
|
1659
1791
|
* and a token string without any retrievable client_id
|
1660
|
-
* [rejects a TokenRequests object with an incompatible client_id and raises an exception](./spec/acceptance/rest/auth_spec.rb#
|
1792
|
+
* [rejects a TokenRequests object with an incompatible client_id and raises an exception](./spec/acceptance/rest/auth_spec.rb#L855)
|
1661
1793
|
* #create_token_request
|
1662
|
-
* [returns a TokenRequest object](./spec/acceptance/rest/auth_spec.rb#
|
1663
|
-
* [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#
|
1664
|
-
* [uses the key name from the client](./spec/acceptance/rest/auth_spec.rb#
|
1665
|
-
* [
|
1666
|
-
* [
|
1794
|
+
* [returns a TokenRequest object](./spec/acceptance/rest/auth_spec.rb#L870)
|
1795
|
+
* [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#L874)
|
1796
|
+
* [uses the key name from the client](./spec/acceptance/rest/auth_spec.rb#L881)
|
1797
|
+
* [specifies no TTL (#RSA5)](./spec/acceptance/rest/auth_spec.rb#L885)
|
1798
|
+
* [specifies no capability (#RSA6)](./spec/acceptance/rest/auth_spec.rb#L899)
|
1667
1799
|
* with a :ttl option below the Token expiry buffer that ensures tokens are renewed 15s before they expire as they are considered expired
|
1668
|
-
* [uses the Token expiry buffer default + 10s to allow for a token request in flight](./spec/acceptance/rest/auth_spec.rb#
|
1800
|
+
* [uses the Token expiry buffer default + 10s to allow for a token request in flight](./spec/acceptance/rest/auth_spec.rb#L893)
|
1669
1801
|
* the nonce
|
1670
|
-
* [is unique for every request](./spec/acceptance/rest/auth_spec.rb#
|
1671
|
-
* [is at least 16 characters](./spec/acceptance/rest/auth_spec.rb#
|
1802
|
+
* [is unique for every request](./spec/acceptance/rest/auth_spec.rb#L904)
|
1803
|
+
* [is at least 16 characters](./spec/acceptance/rest/auth_spec.rb#L909)
|
1672
1804
|
* with token param :ttl
|
1673
|
-
* [overrides default](./spec/acceptance/rest/auth_spec.rb#
|
1805
|
+
* [overrides default](./spec/acceptance/rest/auth_spec.rb#L920)
|
1674
1806
|
* with token param :nonce
|
1675
|
-
* [overrides default](./spec/acceptance/rest/auth_spec.rb#
|
1807
|
+
* [overrides default](./spec/acceptance/rest/auth_spec.rb#L920)
|
1676
1808
|
* with token param :client_id
|
1677
|
-
* [overrides default](./spec/acceptance/rest/auth_spec.rb#
|
1809
|
+
* [overrides default](./spec/acceptance/rest/auth_spec.rb#L920)
|
1678
1810
|
* when specifying capability
|
1679
|
-
* [overrides the default](./spec/acceptance/rest/auth_spec.rb#
|
1680
|
-
* [uses these capabilities when Ably issues an actual token](./spec/acceptance/rest/auth_spec.rb#
|
1811
|
+
* [overrides the default](./spec/acceptance/rest/auth_spec.rb#L931)
|
1812
|
+
* [uses these capabilities when Ably issues an actual token](./spec/acceptance/rest/auth_spec.rb#L935)
|
1681
1813
|
* with additional invalid attributes
|
1682
|
-
* [are ignored](./spec/acceptance/rest/auth_spec.rb#
|
1814
|
+
* [are ignored](./spec/acceptance/rest/auth_spec.rb#L945)
|
1683
1815
|
* when required fields are missing
|
1684
|
-
* [should raise an exception if key secret is missing](./spec/acceptance/rest/auth_spec.rb#
|
1685
|
-
* [should raise an exception if key name is missing](./spec/acceptance/rest/auth_spec.rb#
|
1816
|
+
* [should raise an exception if key secret is missing](./spec/acceptance/rest/auth_spec.rb#L956)
|
1817
|
+
* [should raise an exception if key name is missing](./spec/acceptance/rest/auth_spec.rb#L960)
|
1686
1818
|
* timestamp attribute
|
1687
|
-
* [is a Time object in Ruby and is set to the local time](./spec/acceptance/rest/auth_spec.rb#
|
1819
|
+
* [is a Time object in Ruby and is set to the local time](./spec/acceptance/rest/auth_spec.rb#L987)
|
1688
1820
|
* with :query_time auth_option
|
1689
|
-
* [queries the server for the timestamp](./spec/acceptance/rest/auth_spec.rb#
|
1821
|
+
* [queries the server for the timestamp](./spec/acceptance/rest/auth_spec.rb#L972)
|
1690
1822
|
* with :timestamp option
|
1691
|
-
* [uses the provided timestamp in the token request](./spec/acceptance/rest/auth_spec.rb#
|
1823
|
+
* [uses the provided timestamp in the token request](./spec/acceptance/rest/auth_spec.rb#L982)
|
1692
1824
|
* signing
|
1693
|
-
* [generates a valid HMAC](./spec/acceptance/rest/auth_spec.rb#
|
1825
|
+
* [generates a valid HMAC](./spec/acceptance/rest/auth_spec.rb#L1011)
|
1694
1826
|
* lexicographic ordering of channels and operations
|
1695
|
-
* [HMAC is lexicographic ordered and thus the HMAC is identical](./spec/acceptance/rest/auth_spec.rb#
|
1696
|
-
* [is valid when used for authentication](./spec/acceptance/rest/auth_spec.rb#
|
1827
|
+
* [HMAC is lexicographic ordered and thus the HMAC is identical](./spec/acceptance/rest/auth_spec.rb#L1038)
|
1828
|
+
* [is valid when used for authentication](./spec/acceptance/rest/auth_spec.rb#L1044)
|
1697
1829
|
* using token authentication
|
1698
1830
|
* with :token option
|
1699
|
-
* [authenticates successfully using the provided :token](./spec/acceptance/rest/auth_spec.rb#
|
1700
|
-
* [disallows publishing on unspecified capability channels](./spec/acceptance/rest/auth_spec.rb#
|
1701
|
-
* [fails if timestamp is invalid](./spec/acceptance/rest/auth_spec.rb#
|
1702
|
-
* [cannot be renewed automatically](./spec/acceptance/rest/auth_spec.rb#
|
1831
|
+
* [authenticates successfully using the provided :token](./spec/acceptance/rest/auth_spec.rb#L1071)
|
1832
|
+
* [disallows publishing on unspecified capability channels](./spec/acceptance/rest/auth_spec.rb#L1075)
|
1833
|
+
* [fails if timestamp is invalid](./spec/acceptance/rest/auth_spec.rb#L1083)
|
1834
|
+
* [cannot be renewed automatically](./spec/acceptance/rest/auth_spec.rb#L1091)
|
1703
1835
|
* and the token expires
|
1704
|
-
* [should indicate an error and not retry the request (#RSA4a)](./spec/acceptance/rest/auth_spec.rb#
|
1836
|
+
* [should indicate an error and not retry the request (#RSA4a)](./spec/acceptance/rest/auth_spec.rb#L1125)
|
1705
1837
|
* when implicit as a result of using :client_id
|
1706
1838
|
* and requests to the Ably server are mocked
|
1707
|
-
* [will send a token request to the server](./spec/acceptance/rest/auth_spec.rb#
|
1839
|
+
* [will send a token request to the server](./spec/acceptance/rest/auth_spec.rb#L1155)
|
1708
1840
|
* a token is created
|
1709
|
-
* [before a request is made](./spec/acceptance/rest/auth_spec.rb#
|
1710
|
-
* [when a message is published](./spec/acceptance/rest/auth_spec.rb#
|
1711
|
-
* [with capability and TTL defaults](./spec/acceptance/rest/auth_spec.rb#
|
1712
|
-
* [#client_id contains the client_id](./spec/acceptance/rest/auth_spec.rb#
|
1841
|
+
* [before a request is made](./spec/acceptance/rest/auth_spec.rb#L1164)
|
1842
|
+
* [when a message is published](./spec/acceptance/rest/auth_spec.rb#L1168)
|
1843
|
+
* [with capability and TTL defaults (#TK2a, #TK2b)](./spec/acceptance/rest/auth_spec.rb#L1172)
|
1844
|
+
* [#client_id contains the client_id](./spec/acceptance/rest/auth_spec.rb#L1183)
|
1713
1845
|
* when token expires
|
1714
|
-
* [automatically renews the token (#RSA4b)](./spec/acceptance/rest/auth_spec.rb#
|
1715
|
-
* [fails if the token renewal fails (#RSA4b)](./spec/acceptance/rest/auth_spec.rb#
|
1846
|
+
* [automatically renews the token (#RSA4b)](./spec/acceptance/rest/auth_spec.rb#L1212)
|
1847
|
+
* [fails if the token renewal fails (#RSA4b)](./spec/acceptance/rest/auth_spec.rb#L1222)
|
1716
1848
|
* when :client_id is provided in a token
|
1717
|
-
* [#client_id contains the client_id](./spec/acceptance/rest/auth_spec.rb#
|
1849
|
+
* [#client_id contains the client_id](./spec/acceptance/rest/auth_spec.rb#L1246)
|
1718
1850
|
* #client_id_validated?
|
1719
1851
|
* when using basic auth
|
1720
|
-
* [is false as basic auth users do not have an identity](./spec/acceptance/rest/auth_spec.rb#
|
1852
|
+
* [is false as basic auth users do not have an identity](./spec/acceptance/rest/auth_spec.rb#L1258)
|
1721
1853
|
* when using a token auth string for a token with a client_id
|
1722
|
-
* [is false as identification is not possible from an opaque token string](./spec/acceptance/rest/auth_spec.rb#
|
1854
|
+
* [is false as identification is not possible from an opaque token string](./spec/acceptance/rest/auth_spec.rb#L1266)
|
1723
1855
|
* when using a token
|
1724
1856
|
* with a client_id
|
1725
|
-
* [is true](./spec/acceptance/rest/auth_spec.rb#
|
1857
|
+
* [is true](./spec/acceptance/rest/auth_spec.rb#L1275)
|
1726
1858
|
* with no client_id (anonymous)
|
1727
|
-
* [is true](./spec/acceptance/rest/auth_spec.rb#
|
1859
|
+
* [is true](./spec/acceptance/rest/auth_spec.rb#L1283)
|
1728
1860
|
* with a wildcard client_id (anonymous)
|
1729
|
-
* [is false](./spec/acceptance/rest/auth_spec.rb#
|
1861
|
+
* [is false](./spec/acceptance/rest/auth_spec.rb#L1291)
|
1730
1862
|
* when using a token request with a client_id
|
1731
|
-
* [is not true as identification is not confirmed until authenticated](./spec/acceptance/rest/auth_spec.rb#
|
1863
|
+
* [is not true as identification is not confirmed until authenticated](./spec/acceptance/rest/auth_spec.rb#L1300)
|
1732
1864
|
* after authentication
|
1733
|
-
* [is true as identification is completed during implicit authentication](./spec/acceptance/rest/auth_spec.rb#
|
1865
|
+
* [is true as identification is completed during implicit authentication](./spec/acceptance/rest/auth_spec.rb#L1307)
|
1734
1866
|
* when using a :key and basic auth
|
1735
|
-
* [#using_token_auth? is false](./spec/acceptance/rest/auth_spec.rb#
|
1736
|
-
* [#key attribute contains the key string](./spec/acceptance/rest/auth_spec.rb#
|
1737
|
-
* [#using_basic_auth? is true](./spec/acceptance/rest/auth_spec.rb#
|
1867
|
+
* [#using_token_auth? is false](./spec/acceptance/rest/auth_spec.rb#L1315)
|
1868
|
+
* [#key attribute contains the key string](./spec/acceptance/rest/auth_spec.rb#L1319)
|
1869
|
+
* [#using_basic_auth? is true](./spec/acceptance/rest/auth_spec.rb#L1323)
|
1738
1870
|
* deprecated #authorise
|
1739
|
-
* [logs a deprecation warning (#RSA10l)](./spec/acceptance/rest/auth_spec.rb#
|
1740
|
-
* [returns a valid token (#RSA10l)](./spec/acceptance/rest/auth_spec.rb#
|
1871
|
+
* [logs a deprecation warning (#RSA10l)](./spec/acceptance/rest/auth_spec.rb#L1332)
|
1872
|
+
* [returns a valid token (#RSA10l)](./spec/acceptance/rest/auth_spec.rb#L1337)
|
1873
|
+
* when using JWT
|
1874
|
+
* [authenticates correctly using the JWT token generated by the echo server](./spec/acceptance/rest/auth_spec.rb#L1349)
|
1875
|
+
* when the JWT embeds an Ably token
|
1876
|
+
* [authenticates correctly using the embedded token](./spec/acceptance/rest/auth_spec.rb#L1356)
|
1877
|
+
* and the requested token is encrypted
|
1878
|
+
* [authenticates correctly using the embedded token](./spec/acceptance/rest/auth_spec.rb#L1363)
|
1879
|
+
* when the token requested is returned with application/jwt content type
|
1880
|
+
* [authenticates correctly and pulls stats](./spec/acceptance/rest/auth_spec.rb#L1374)
|
1741
1881
|
|
1742
1882
|
### Ably::Rest
|
1743
1883
|
_(see [spec/acceptance/rest/base_spec.rb](./spec/acceptance/rest/base_spec.rb))_
|
@@ -1822,34 +1962,37 @@ _(see [spec/acceptance/rest/channel_spec.rb](./spec/acceptance/rest/channel_spec
|
|
1822
1962
|
* [throws an exception](./spec/acceptance/rest/channel_spec.rb#L244)
|
1823
1963
|
* with an empty client_id in the message
|
1824
1964
|
* [succeeds and publishes with an implicit client_id](./spec/acceptance/rest/channel_spec.rb#L250)
|
1965
|
+
* with a non ASCII channel name
|
1966
|
+
* stubbed
|
1967
|
+
* [correctly encodes the channel name](./spec/acceptance/rest/channel_spec.rb#L272)
|
1825
1968
|
* #history
|
1826
|
-
* [returns a PaginatedResult model](./spec/acceptance/rest/channel_spec.rb#
|
1827
|
-
* [returns the current message history for the channel](./spec/acceptance/rest/channel_spec.rb#
|
1828
|
-
* [returns paged history using the PaginatedResult model](./spec/acceptance/rest/channel_spec.rb#
|
1969
|
+
* [returns a PaginatedResult model](./spec/acceptance/rest/channel_spec.rb#L297)
|
1970
|
+
* [returns the current message history for the channel](./spec/acceptance/rest/channel_spec.rb#L301)
|
1971
|
+
* [returns paged history using the PaginatedResult model](./spec/acceptance/rest/channel_spec.rb#L329)
|
1829
1972
|
* message timestamps
|
1830
|
-
* [are after the messages were published](./spec/acceptance/rest/channel_spec.rb#
|
1973
|
+
* [are after the messages were published](./spec/acceptance/rest/channel_spec.rb#L314)
|
1831
1974
|
* message IDs
|
1832
|
-
* [is unique](./spec/acceptance/rest/channel_spec.rb#
|
1975
|
+
* [is unique](./spec/acceptance/rest/channel_spec.rb#L322)
|
1833
1976
|
* direction
|
1834
|
-
* [returns paged history backwards by default](./spec/acceptance/rest/channel_spec.rb#
|
1835
|
-
* [returns history forward if specified in the options](./spec/acceptance/rest/channel_spec.rb#
|
1977
|
+
* [returns paged history backwards by default](./spec/acceptance/rest/channel_spec.rb#L356)
|
1978
|
+
* [returns history forward if specified in the options](./spec/acceptance/rest/channel_spec.rb#L362)
|
1836
1979
|
* limit
|
1837
|
-
* [defaults to 100](./spec/acceptance/rest/channel_spec.rb#
|
1980
|
+
* [defaults to 100](./spec/acceptance/rest/channel_spec.rb#L374)
|
1838
1981
|
* #history option
|
1839
1982
|
* :start
|
1840
1983
|
* with milliseconds since epoch value
|
1841
|
-
* [uses this value in the history request](./spec/acceptance/rest/channel_spec.rb#
|
1984
|
+
* [uses this value in the history request](./spec/acceptance/rest/channel_spec.rb#L414)
|
1842
1985
|
* with a Time object value
|
1843
|
-
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/channel_spec.rb#
|
1986
|
+
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/channel_spec.rb#L424)
|
1844
1987
|
* :end
|
1845
1988
|
* with milliseconds since epoch value
|
1846
|
-
* [uses this value in the history request](./spec/acceptance/rest/channel_spec.rb#
|
1989
|
+
* [uses this value in the history request](./spec/acceptance/rest/channel_spec.rb#L414)
|
1847
1990
|
* with a Time object value
|
1848
|
-
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/channel_spec.rb#
|
1991
|
+
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/channel_spec.rb#L424)
|
1849
1992
|
* when argument start is after end
|
1850
|
-
* [should raise an exception](./spec/acceptance/rest/channel_spec.rb#
|
1993
|
+
* [should raise an exception](./spec/acceptance/rest/channel_spec.rb#L434)
|
1851
1994
|
* #presence
|
1852
|
-
* [returns a REST Presence object](./spec/acceptance/rest/channel_spec.rb#
|
1995
|
+
* [returns a REST Presence object](./spec/acceptance/rest/channel_spec.rb#L444)
|
1853
1996
|
|
1854
1997
|
### Ably::Rest::Channels
|
1855
1998
|
_(see [spec/acceptance/rest/channels_spec.rb](./spec/acceptance/rest/channels_spec.rb))_
|
@@ -1877,131 +2020,168 @@ _(see [spec/acceptance/rest/client_spec.rb](./spec/acceptance/rest/client_spec.r
|
|
1877
2020
|
* #initialize
|
1878
2021
|
* with only an API key
|
1879
2022
|
* [uses basic authentication](./spec/acceptance/rest/client_spec.rb#L25)
|
2023
|
+
* with an invalid API key
|
2024
|
+
* [logs an entry with a help href url matching the code #TI5](./spec/acceptance/rest/client_spec.rb#L33)
|
1880
2025
|
* with an explicit string :token
|
1881
|
-
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#
|
2026
|
+
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#L46)
|
1882
2027
|
* with :use_token_auth set to true
|
1883
|
-
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#
|
2028
|
+
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#L54)
|
1884
2029
|
* with a :client_id configured
|
1885
|
-
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#
|
2030
|
+
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#L62)
|
1886
2031
|
* with a non string :client_id
|
1887
|
-
* [raises an ArgumentError](./spec/acceptance/rest/client_spec.rb#
|
2032
|
+
* [raises an ArgumentError](./spec/acceptance/rest/client_spec.rb#L70)
|
1888
2033
|
* with an invalid wildcard "*" :client_id
|
1889
|
-
* [raises an exception](./spec/acceptance/rest/client_spec.rb#
|
1890
|
-
* with an :auth_callback
|
1891
|
-
* [calls the auth
|
1892
|
-
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#
|
2034
|
+
* [raises an exception](./spec/acceptance/rest/client_spec.rb#L76)
|
2035
|
+
* with an :auth_callback lambda
|
2036
|
+
* [calls the auth lambda to get a new token](./spec/acceptance/rest/client_spec.rb#L84)
|
2037
|
+
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#L89)
|
1893
2038
|
* with :default_token_params
|
1894
|
-
* [overides the default token params (#TO3j11)](./spec/acceptance/rest/client_spec.rb#
|
1895
|
-
* with an :auth_callback
|
1896
|
-
* [correctly sets the clientId on the token](./spec/acceptance/rest/client_spec.rb#
|
2039
|
+
* [overides the default token params (#TO3j11)](./spec/acceptance/rest/client_spec.rb#L103)
|
2040
|
+
* with an :auth_callback lambda (clientId provided in library options instead of as a token_request param)
|
2041
|
+
* [correctly sets the clientId on the token](./spec/acceptance/rest/client_spec.rb#L113)
|
1897
2042
|
* with an auth URL
|
1898
|
-
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#
|
2043
|
+
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#L123)
|
1899
2044
|
* before any REST request
|
1900
|
-
* [sends an HTTP request to the provided auth URL to get a new token](./spec/acceptance/rest/client_spec.rb#
|
2045
|
+
* [sends an HTTP request to the provided auth URL to get a new token](./spec/acceptance/rest/client_spec.rb#L134)
|
1901
2046
|
* auth headers
|
1902
2047
|
* with basic auth
|
1903
|
-
* [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#
|
2048
|
+
* [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#L154)
|
1904
2049
|
* with token auth
|
1905
2050
|
* without specifying protocol
|
1906
|
-
* [sends the token string over HTTPS in the Authorization Bearer header with Base64 encoding](./spec/acceptance/rest/client_spec.rb#
|
2051
|
+
* [sends the token string over HTTPS in the Authorization Bearer header with Base64 encoding](./spec/acceptance/rest/client_spec.rb#L173)
|
1907
2052
|
* when setting constructor ClientOption :tls to false
|
1908
|
-
* [sends the token string over HTTP in the Authorization Bearer header with Base64 encoding](./spec/acceptance/rest/client_spec.rb#
|
2053
|
+
* [sends the token string over HTTP in the Authorization Bearer header with Base64 encoding](./spec/acceptance/rest/client_spec.rb#L183)
|
1909
2054
|
* using tokens
|
1910
2055
|
* when expired
|
1911
|
-
* [creates a new token automatically when the old token expires](./spec/acceptance/rest/client_spec.rb#
|
2056
|
+
* [creates a new token automatically when the old token expires](./spec/acceptance/rest/client_spec.rb#L216)
|
1912
2057
|
* with a different client_id in the subsequent token
|
1913
|
-
* [fails to authenticate and raises an exception](./spec/acceptance/rest/client_spec.rb#
|
2058
|
+
* [fails to authenticate and raises an exception](./spec/acceptance/rest/client_spec.rb#L229)
|
1914
2059
|
* when token has not expired
|
1915
|
-
* [reuses the existing token for every request](./spec/acceptance/rest/client_spec.rb#
|
2060
|
+
* [reuses the existing token for every request](./spec/acceptance/rest/client_spec.rb#L240)
|
1916
2061
|
* connection transport
|
1917
2062
|
* defaults
|
1918
2063
|
* for default host
|
1919
|
-
* [is configured to timeout connection opening in 4 seconds](./spec/acceptance/rest/client_spec.rb#
|
1920
|
-
* [is configured to timeout connection requests in
|
2064
|
+
* [is configured to timeout connection opening in 4 seconds](./spec/acceptance/rest/client_spec.rb#L257)
|
2065
|
+
* [is configured to timeout connection requests in 10 seconds](./spec/acceptance/rest/client_spec.rb#L261)
|
1921
2066
|
* for the fallback hosts
|
1922
|
-
* [is configured to timeout connection opening in 4 seconds](./spec/acceptance/rest/client_spec.rb#
|
1923
|
-
* [is configured to timeout connection requests in
|
2067
|
+
* [is configured to timeout connection opening in 4 seconds](./spec/acceptance/rest/client_spec.rb#L267)
|
2068
|
+
* [is configured to timeout connection requests in 10 seconds](./spec/acceptance/rest/client_spec.rb#L271)
|
1924
2069
|
* with custom http_open_timeout and http_request_timeout options
|
1925
2070
|
* for default host
|
1926
|
-
* [is configured to use custom open timeout](./spec/acceptance/rest/client_spec.rb#
|
1927
|
-
* [is configured to use custom request timeout](./spec/acceptance/rest/client_spec.rb#
|
2071
|
+
* [is configured to use custom open timeout](./spec/acceptance/rest/client_spec.rb#L283)
|
2072
|
+
* [is configured to use custom request timeout](./spec/acceptance/rest/client_spec.rb#L287)
|
1928
2073
|
* for the fallback hosts
|
1929
|
-
* [is configured to timeout connection opening in 4 seconds](./spec/acceptance/rest/client_spec.rb#
|
1930
|
-
* [is configured to timeout connection requests in
|
2074
|
+
* [is configured to timeout connection opening in 4 seconds](./spec/acceptance/rest/client_spec.rb#L293)
|
2075
|
+
* [is configured to timeout connection requests in 10 seconds](./spec/acceptance/rest/client_spec.rb#L297)
|
1931
2076
|
* fallback hosts
|
1932
2077
|
* configured
|
1933
|
-
* [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 (#RSC15a)](./spec/acceptance/rest/client_spec.rb#
|
2078
|
+
* [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 (#RSC15a)](./spec/acceptance/rest/client_spec.rb#L311)
|
1934
2079
|
* when environment is NOT production (#RSC15b)
|
1935
|
-
* [does not retry failed requests with fallback hosts when there is a connection error](./spec/acceptance/rest/client_spec.rb#
|
2080
|
+
* [does not retry failed requests with fallback hosts when there is a connection error](./spec/acceptance/rest/client_spec.rb#L328)
|
1936
2081
|
* when environment is production
|
1937
2082
|
* and connection times out
|
1938
|
-
* [tries fallback hosts 3 times (#RSC15b, #RSC15b)](./spec/acceptance/rest/client_spec.rb#
|
1939
|
-
* and the total request time exeeds
|
1940
|
-
* [makes no further attempts to any fallback hosts](./spec/acceptance/rest/client_spec.rb#
|
2083
|
+
* [tries fallback hosts 3 times (#RSC15b, #RSC15b)](./spec/acceptance/rest/client_spec.rb#L367)
|
2084
|
+
* and the total request time exeeds 15 seconds
|
2085
|
+
* [makes no further attempts to any fallback hosts](./spec/acceptance/rest/client_spec.rb#L382)
|
1941
2086
|
* and connection fails
|
1942
|
-
* [tries fallback hosts 3 times](./spec/acceptance/rest/client_spec.rb#
|
2087
|
+
* [tries fallback hosts 3 times](./spec/acceptance/rest/client_spec.rb#L398)
|
1943
2088
|
* and first request to primary endpoint fails
|
1944
|
-
* [tries a fallback host, and for the next request tries the primary endpoint again (#RSC15e)](./spec/acceptance/rest/client_spec.rb#
|
2089
|
+
* [tries a fallback host, and for the next request tries the primary endpoint again (#RSC15e)](./spec/acceptance/rest/client_spec.rb#L432)
|
1945
2090
|
* and basic authentication fails
|
1946
|
-
* [does not attempt the fallback hosts as this is an authentication failure](./spec/acceptance/rest/client_spec.rb#
|
2091
|
+
* [does not attempt the fallback hosts as this is an authentication failure](./spec/acceptance/rest/client_spec.rb#L459)
|
1947
2092
|
* and server returns a 50x error
|
1948
|
-
* [attempts the fallback hosts as this is an authentication failure (#RSC15d)](./spec/acceptance/rest/client_spec.rb#
|
2093
|
+
* [attempts the fallback hosts as this is an authentication failure (#RSC15d)](./spec/acceptance/rest/client_spec.rb#L481)
|
1949
2094
|
* when environment is production and server returns a 50x error
|
1950
2095
|
* with custom fallback hosts provided
|
1951
|
-
* [attempts the fallback hosts as this is an authentication failure (#RSC15b, #RSC15a, #TO3k6)](./spec/acceptance/rest/client_spec.rb#
|
2096
|
+
* [attempts the fallback hosts as this is an authentication failure (#RSC15b, #RSC15a, #TO3k6)](./spec/acceptance/rest/client_spec.rb#L530)
|
1952
2097
|
* with an empty array of fallback hosts provided (#RSC15b, #RSC15a, #TO3k6)
|
1953
|
-
* [does not attempt the fallback hosts as this is an authentication failure](./spec/acceptance/rest/client_spec.rb#
|
2098
|
+
* [does not attempt the fallback hosts as this is an authentication failure](./spec/acceptance/rest/client_spec.rb#L543)
|
1954
2099
|
* using a local web-server
|
1955
2100
|
* and timing out the primary host
|
1956
|
-
* with request timeout less than max_retry_duration
|
1957
|
-
* [tries
|
1958
|
-
* with request timeout less than max_retry_duration
|
1959
|
-
* [tries
|
2101
|
+
* POST with request timeout less than max_retry_duration
|
2102
|
+
* [tries the primary host, then both fallback hosts (#RSC15d)](./spec/acceptance/rest/client_spec.rb#L607)
|
2103
|
+
* GET with request timeout less than max_retry_duration
|
2104
|
+
* [tries the primary host, then both fallback hosts (#RSC15d)](./spec/acceptance/rest/client_spec.rb#L630)
|
2105
|
+
* POST with request timeout more than max_retry_duration
|
2106
|
+
* [does not try any fallback hosts (#RSC15d)](./spec/acceptance/rest/client_spec.rb#L653)
|
2107
|
+
* GET with request timeout more than max_retry_duration
|
2108
|
+
* [does not try any fallback hosts (#RSC15d)](./spec/acceptance/rest/client_spec.rb#L675)
|
1960
2109
|
* and failing the primary host
|
1961
|
-
* [tries one of the fallback hosts](./spec/acceptance/rest/client_spec.rb#
|
2110
|
+
* [tries one of the fallback hosts](./spec/acceptance/rest/client_spec.rb#L720)
|
2111
|
+
* to fail the primary host, allow a fallback to succeed, then later trigger a fallback to the primary host (#RSC15f)
|
2112
|
+
* [succeeds and remembers fallback host preferences across requests](./spec/acceptance/rest/client_spec.rb#L776)
|
2113
|
+
* with custom :fallback_retry_timeout
|
2114
|
+
* [stops using the preferred fallback after this time](./spec/acceptance/rest/client_spec.rb#L813)
|
1962
2115
|
* when environment is not production and server returns a 50x error
|
1963
2116
|
* with custom fallback hosts provided (#RSC15b, #TO3k6)
|
1964
|
-
* [attempts the fallback hosts as this is not an authentication failure](./spec/acceptance/rest/client_spec.rb#
|
2117
|
+
* [attempts the fallback hosts as this is not an authentication failure](./spec/acceptance/rest/client_spec.rb#L874)
|
1965
2118
|
* with an empty array of fallback hosts provided (#RSC15b, #TO3k6)
|
1966
|
-
* [does not attempt the fallback hosts as this is an authentication failure](./spec/acceptance/rest/client_spec.rb#
|
2119
|
+
* [does not attempt the fallback hosts as this is an authentication failure](./spec/acceptance/rest/client_spec.rb#L887)
|
1967
2120
|
* with fallback_hosts_use_default: true (#RSC15b, #TO3k7)
|
1968
|
-
* [attempts the default fallback hosts as this is an authentication failure](./spec/acceptance/rest/client_spec.rb#
|
2121
|
+
* [attempts the default fallback hosts as this is an authentication failure](./spec/acceptance/rest/client_spec.rb#L912)
|
1969
2122
|
* with a custom host
|
1970
2123
|
* that does not exist
|
1971
|
-
* [fails immediately and raises a Faraday Error](./spec/acceptance/rest/client_spec.rb#
|
2124
|
+
* [fails immediately and raises a Faraday Error](./spec/acceptance/rest/client_spec.rb#L928)
|
1972
2125
|
* fallback hosts
|
1973
|
-
* [are never used](./spec/acceptance/rest/client_spec.rb#
|
2126
|
+
* [are never used](./spec/acceptance/rest/client_spec.rb#L949)
|
1974
2127
|
* that times out
|
1975
|
-
* [fails immediately and raises a Faraday Error](./spec/acceptance/rest/client_spec.rb#
|
2128
|
+
* [fails immediately and raises a Faraday Error](./spec/acceptance/rest/client_spec.rb#L964)
|
1976
2129
|
* fallback hosts
|
1977
|
-
* [are never used](./spec/acceptance/rest/client_spec.rb#
|
2130
|
+
* [are never used](./spec/acceptance/rest/client_spec.rb#L977)
|
1978
2131
|
* HTTP configuration options
|
1979
|
-
* [is frozen](./spec/acceptance/rest/client_spec.rb#
|
2132
|
+
* [is frozen](./spec/acceptance/rest/client_spec.rb#L1034)
|
1980
2133
|
* defaults
|
1981
|
-
* [#http_open_timeout is 4s](./spec/acceptance/rest/client_spec.rb#
|
1982
|
-
* [#http_request_timeout is
|
1983
|
-
* [#http_max_retry_count is 3](./spec/acceptance/rest/client_spec.rb#
|
1984
|
-
* [#http_max_retry_duration is
|
2134
|
+
* [#http_open_timeout is 4s](./spec/acceptance/rest/client_spec.rb#L989)
|
2135
|
+
* [#http_request_timeout is 10s](./spec/acceptance/rest/client_spec.rb#L993)
|
2136
|
+
* [#http_max_retry_count is 3](./spec/acceptance/rest/client_spec.rb#L997)
|
2137
|
+
* [#http_max_retry_duration is 15s](./spec/acceptance/rest/client_spec.rb#L1001)
|
1985
2138
|
* configured
|
1986
|
-
* [#http_open_timeout uses provided value](./spec/acceptance/rest/client_spec.rb#
|
1987
|
-
* [#http_request_timeout uses provided value](./spec/acceptance/rest/client_spec.rb#
|
1988
|
-
* [#http_max_retry_count uses provided value](./spec/acceptance/rest/client_spec.rb#
|
1989
|
-
* [#http_max_retry_duration uses provided value](./spec/acceptance/rest/client_spec.rb#
|
2139
|
+
* [#http_open_timeout uses provided value](./spec/acceptance/rest/client_spec.rb#L1017)
|
2140
|
+
* [#http_request_timeout uses provided value](./spec/acceptance/rest/client_spec.rb#L1021)
|
2141
|
+
* [#http_max_retry_count uses provided value](./spec/acceptance/rest/client_spec.rb#L1025)
|
2142
|
+
* [#http_max_retry_duration uses provided value](./spec/acceptance/rest/client_spec.rb#L1029)
|
1990
2143
|
* #auth
|
1991
|
-
* [is provides access to the Auth object](./spec/acceptance/rest/client_spec.rb#
|
1992
|
-
* [configures the Auth object with all ClientOptions passed to client in the initializer](./spec/acceptance/rest/client_spec.rb#
|
2144
|
+
* [is provides access to the Auth object](./spec/acceptance/rest/client_spec.rb#L1045)
|
2145
|
+
* [configures the Auth object with all ClientOptions passed to client in the initializer](./spec/acceptance/rest/client_spec.rb#L1049)
|
1993
2146
|
* version headers
|
1994
2147
|
* with variant none
|
1995
|
-
* [sends a protocol version and lib version header (#G4, #RSC7a, #RSC7b)](./spec/acceptance/rest/client_spec.rb#
|
2148
|
+
* [sends a protocol version and lib version header (#G4, #RSC7a, #RSC7b)](./spec/acceptance/rest/client_spec.rb#L1083)
|
1996
2149
|
* with variant foo
|
1997
|
-
* [sends a protocol version and lib version header (#G4, #RSC7a, #RSC7b)](./spec/acceptance/rest/client_spec.rb#
|
2150
|
+
* [sends a protocol version and lib version header (#G4, #RSC7a, #RSC7b)](./spec/acceptance/rest/client_spec.rb#L1083)
|
1998
2151
|
* #request (#RSC19*)
|
1999
2152
|
* get
|
2000
|
-
* [returns an HttpPaginatedResponse object](./spec/acceptance/rest/client_spec.rb#
|
2153
|
+
* [returns an HttpPaginatedResponse object](./spec/acceptance/rest/client_spec.rb#L1096)
|
2001
2154
|
* 404 request to invalid URL
|
2002
|
-
* [returns an object with 404 status code and error message](./spec/acceptance/rest/client_spec.rb#
|
2155
|
+
* [returns an object with 404 status code and error message](./spec/acceptance/rest/client_spec.rb#L1103)
|
2003
2156
|
* paged results
|
2004
|
-
* [provides paging](./spec/acceptance/rest/client_spec.rb#
|
2157
|
+
* [provides paging](./spec/acceptance/rest/client_spec.rb#L1115)
|
2158
|
+
* request_id generation
|
2159
|
+
* Timeout error
|
2160
|
+
* with option add_request_ids: true
|
2161
|
+
* [has an error with the same request_id of the request](./spec/acceptance/rest/client_spec.rb#L1150)
|
2162
|
+
* with option add_request_ids: true and REST operations with a message body
|
2163
|
+
* with mocks to inspect the params
|
2164
|
+
* with a single publish
|
2165
|
+
* [succeeds and sends the request_id as a param](./spec/acceptance/rest/client_spec.rb#L1172)
|
2166
|
+
* with an array publish
|
2167
|
+
* [succeeds and sends the request_id as a param](./spec/acceptance/rest/client_spec.rb#L1179)
|
2168
|
+
* without mocks to ensure the requests are accepted
|
2169
|
+
* with a single publish
|
2170
|
+
* [succeeds and sends the request_id as a param](./spec/acceptance/rest/client_spec.rb#L1188)
|
2171
|
+
* with an array publish
|
2172
|
+
* [succeeds and sends the request_id as a param](./spec/acceptance/rest/client_spec.rb#L1195)
|
2173
|
+
* option add_request_ids: true and specified fallback hosts
|
2174
|
+
* [request_id is the same across retries](./spec/acceptance/rest/client_spec.rb#L1220)
|
2175
|
+
* without request_id
|
2176
|
+
* [does not include request_id in ConnectionTimeout error](./spec/acceptance/rest/client_spec.rb#L1232)
|
2177
|
+
* UnauthorizedRequest nonce error
|
2178
|
+
* [includes request_id in UnauthorizedRequest error due to replayed nonce](./spec/acceptance/rest/client_spec.rb#L1245)
|
2179
|
+
* failed request logging
|
2180
|
+
* [is absent when requests do not fail](./spec/acceptance/rest/client_spec.rb#L1262)
|
2181
|
+
* with the first request failing
|
2182
|
+
* [is present with success message when requests do not actually fail](./spec/acceptance/rest/client_spec.rb#L1277)
|
2183
|
+
* with all requests failing
|
2184
|
+
* [is present when all requests fail](./spec/acceptance/rest/client_spec.rb#L1294)
|
2005
2185
|
|
2006
2186
|
### Ably::Models::MessageEncoders
|
2007
2187
|
_(see [spec/acceptance/rest/encoders_spec.rb](./spec/acceptance/rest/encoders_spec.rb))_
|
@@ -2040,85 +2220,113 @@ _(see [spec/acceptance/rest/encoders_spec.rb](./spec/acceptance/rest/encoders_sp
|
|
2040
2220
|
_(see [spec/acceptance/rest/message_spec.rb](./spec/acceptance/rest/message_spec.rb))_
|
2041
2221
|
* using JSON protocol
|
2042
2222
|
* publishing with an ASCII_8BIT message name
|
2043
|
-
* [is converted into UTF_8](./spec/acceptance/rest/message_spec.rb#
|
2223
|
+
* [is converted into UTF_8](./spec/acceptance/rest/message_spec.rb#L19)
|
2044
2224
|
* with supported data payload content type
|
2045
2225
|
* JSON Object (Hash)
|
2046
|
-
* [is encoded and decoded to the same hash](./spec/acceptance/rest/message_spec.rb#
|
2226
|
+
* [is encoded and decoded to the same hash](./spec/acceptance/rest/message_spec.rb#L31)
|
2047
2227
|
* JSON Array
|
2048
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/rest/message_spec.rb#
|
2228
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/rest/message_spec.rb#L40)
|
2049
2229
|
* String
|
2050
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/rest/message_spec.rb#
|
2230
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/rest/message_spec.rb#L49)
|
2051
2231
|
* Binary
|
2052
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/rest/message_spec.rb#
|
2232
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/rest/message_spec.rb#L58)
|
2053
2233
|
* with supported extra payload content type (#RSL1h, #RSL6a2)
|
2054
2234
|
* JSON Object (Hash)
|
2055
|
-
*
|
2235
|
+
* [is encoded and decoded to the same hash](./spec/acceptance/rest/message_spec.rb#L71)
|
2056
2236
|
* JSON Array
|
2057
|
-
*
|
2237
|
+
* [is encoded and decoded to the same deep multi-type object](./spec/acceptance/rest/message_spec.rb#L81)
|
2058
2238
|
* nil
|
2059
|
-
* [is encoded and decoded to the same Array](./spec/acceptance/rest/message_spec.rb#
|
2239
|
+
* [is encoded and decoded to the same Array](./spec/acceptance/rest/message_spec.rb#L88)
|
2240
|
+
* idempotency (#RSL1k)
|
2241
|
+
* [idempotent publishing is disabled by default with 1.1 (#TO3n)](./spec/acceptance/rest/message_spec.rb#L165)
|
2242
|
+
* [idempotent publishing is enabled by default with 1.2 (#TO3n)](./spec/acceptance/rest/message_spec.rb#L170)
|
2243
|
+
* when ID is not included (#RSL1k2)
|
2244
|
+
* with Message object
|
2245
|
+
* [publishes the same message three times](./spec/acceptance/rest/message_spec.rb#L104)
|
2246
|
+
* with #publish arguments only
|
2247
|
+
* [publishes the same message three times](./spec/acceptance/rest/message_spec.rb#L111)
|
2248
|
+
* when ID is included (#RSL1k2, #RSL1k5)
|
2249
|
+
* [the ID provided is used for the published messages](./spec/acceptance/rest/message_spec.rb#L140)
|
2250
|
+
* PENDING: *[for multiple messages in one publish operation (#RSL1k3)](./spec/acceptance/rest/message_spec.rb#L145)*
|
2251
|
+
* PENDING: *[for multiple messages in one publish operation with IDs following the required format described in RSL1k1 (#RSL1k3)](./spec/acceptance/rest/message_spec.rb#L154)*
|
2252
|
+
* with Message object
|
2253
|
+
* PENDING: *[three REST publishes result in only one message being published](./spec/acceptance/rest/message_spec.rb#L122)*
|
2254
|
+
* with #publish arguments only
|
2255
|
+
* PENDING: *[three REST publishes result in only one message being published](./spec/acceptance/rest/message_spec.rb#L132)*
|
2256
|
+
* when idempotent publishing is enabled in the client library ClientOptions (#TO3n)
|
2257
|
+
* [the ID is populated with a random ID and serial 0 from this lib (#RSL1k1)](./spec/acceptance/rest/message_spec.rb#L242)
|
2258
|
+
* when there is a network failure triggering an automatic retry (#RSL1k4)
|
2259
|
+
* PENDING: *[for multiple messages in one publish operation](./spec/acceptance/rest/message_spec.rb#L233)*
|
2260
|
+
* with Message object
|
2261
|
+
* PENDING: *[two REST publish retries result in only one message being published](./spec/acceptance/rest/message_spec.rb#L197)*
|
2262
|
+
* with #publish arguments only
|
2263
|
+
* PENDING: *[two REST publish retries result in only one message being published](./spec/acceptance/rest/message_spec.rb#L209)*
|
2264
|
+
* with explicitly provided message ID
|
2265
|
+
* PENDING: *[two REST publish retries result in only one message being published](./spec/acceptance/rest/message_spec.rb#L223)*
|
2266
|
+
* when publishing a batch of messages
|
2267
|
+
* PENDING: *[the ID is populated with a single random ID and sequence of serials from this lib (#RSL1k1)](./spec/acceptance/rest/message_spec.rb#L250)*
|
2060
2268
|
* with unsupported data payload content type
|
2061
2269
|
* Integer
|
2062
|
-
* [is raises an UnsupportedDataType
|
2270
|
+
* [is raises an UnsupportedDataType 40013 exception](./spec/acceptance/rest/message_spec.rb#L269)
|
2063
2271
|
* Float
|
2064
|
-
* [is raises an UnsupportedDataType
|
2272
|
+
* [is raises an UnsupportedDataType 40013 exception](./spec/acceptance/rest/message_spec.rb#L277)
|
2065
2273
|
* Boolean
|
2066
|
-
* [is raises an UnsupportedDataType
|
2274
|
+
* [is raises an UnsupportedDataType 40013 exception](./spec/acceptance/rest/message_spec.rb#L285)
|
2067
2275
|
* False
|
2068
|
-
* [is raises an UnsupportedDataType
|
2276
|
+
* [is raises an UnsupportedDataType 40013 exception](./spec/acceptance/rest/message_spec.rb#L293)
|
2069
2277
|
* encryption and encoding
|
2070
2278
|
* with #publish and #history
|
2071
2279
|
* with AES-128-CBC using crypto-data-128.json fixtures (#RTL7d)
|
2072
2280
|
* item 0 with encrypted encoding utf-8/cipher+aes-128-cbc/base64
|
2073
2281
|
* behaves like an Ably encrypter and decrypter
|
2074
|
-
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2075
|
-
* [sends and retrieves messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2282
|
+
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#L338)
|
2283
|
+
* [sends and retrieves messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/rest/message_spec.rb#L353)
|
2076
2284
|
* item 1 with encrypted encoding cipher+aes-128-cbc/base64
|
2077
2285
|
* behaves like an Ably encrypter and decrypter
|
2078
|
-
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2079
|
-
* [sends and retrieves messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2286
|
+
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#L338)
|
2287
|
+
* [sends and retrieves messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/rest/message_spec.rb#L353)
|
2080
2288
|
* item 2 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
|
2081
2289
|
* behaves like an Ably encrypter and decrypter
|
2082
|
-
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2083
|
-
* [sends and retrieves messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2290
|
+
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#L338)
|
2291
|
+
* [sends and retrieves messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/rest/message_spec.rb#L353)
|
2084
2292
|
* item 3 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
|
2085
2293
|
* behaves like an Ably encrypter and decrypter
|
2086
|
-
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2087
|
-
* [sends and retrieves messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2294
|
+
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#L338)
|
2295
|
+
* [sends and retrieves messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/rest/message_spec.rb#L353)
|
2088
2296
|
* with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d)
|
2089
2297
|
* item 0 with encrypted encoding utf-8/cipher+aes-256-cbc/base64
|
2090
2298
|
* behaves like an Ably encrypter and decrypter
|
2091
|
-
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2092
|
-
* [sends and retrieves messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2299
|
+
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#L338)
|
2300
|
+
* [sends and retrieves messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/rest/message_spec.rb#L353)
|
2093
2301
|
* item 1 with encrypted encoding cipher+aes-256-cbc/base64
|
2094
2302
|
* behaves like an Ably encrypter and decrypter
|
2095
|
-
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2096
|
-
* [sends and retrieves messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2303
|
+
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#L338)
|
2304
|
+
* [sends and retrieves messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/rest/message_spec.rb#L353)
|
2097
2305
|
* item 2 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
|
2098
2306
|
* behaves like an Ably encrypter and decrypter
|
2099
|
-
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2100
|
-
* [sends and retrieves messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2307
|
+
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#L338)
|
2308
|
+
* [sends and retrieves messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/rest/message_spec.rb#L353)
|
2101
2309
|
* item 3 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
|
2102
2310
|
* behaves like an Ably encrypter and decrypter
|
2103
|
-
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2104
|
-
* [sends and retrieves messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2311
|
+
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#L338)
|
2312
|
+
* [sends and retrieves messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/rest/message_spec.rb#L353)
|
2105
2313
|
* when publishing lots of messages
|
2106
|
-
* [encrypts on #publish and decrypts on #history](./spec/acceptance/rest/message_spec.rb#
|
2314
|
+
* [encrypts on #publish and decrypts on #history](./spec/acceptance/rest/message_spec.rb#L386)
|
2107
2315
|
* when retrieving #history with a different protocol
|
2108
|
-
* [delivers a String ASCII-8BIT payload to the receiver](./spec/acceptance/rest/message_spec.rb#
|
2109
|
-
* [delivers a String UTF-8 payload to the receiver](./spec/acceptance/rest/message_spec.rb#
|
2110
|
-
* [delivers a Hash payload to the receiver](./spec/acceptance/rest/message_spec.rb#
|
2316
|
+
* [delivers a String ASCII-8BIT payload to the receiver](./spec/acceptance/rest/message_spec.rb#L413)
|
2317
|
+
* [delivers a String UTF-8 payload to the receiver](./spec/acceptance/rest/message_spec.rb#L413)
|
2318
|
+
* [delivers a Hash payload to the receiver](./spec/acceptance/rest/message_spec.rb#L413)
|
2111
2319
|
* when publishing on an unencrypted channel and retrieving with #history on an encrypted channel
|
2112
|
-
* [does not attempt to decrypt the message](./spec/acceptance/rest/message_spec.rb#
|
2320
|
+
* [does not attempt to decrypt the message](./spec/acceptance/rest/message_spec.rb#L429)
|
2113
2321
|
* when publishing on an encrypted channel and retrieving with #history on an unencrypted channel
|
2114
|
-
* [retrieves the message that remains encrypted with an encrypted encoding attribute (#RTL7e)](./spec/acceptance/rest/message_spec.rb#
|
2115
|
-
* [logs a Cipher exception (#RTL7e)](./spec/acceptance/rest/message_spec.rb#
|
2322
|
+
* [retrieves the message that remains encrypted with an encrypted encoding attribute (#RTL7e)](./spec/acceptance/rest/message_spec.rb#L450)
|
2323
|
+
* [logs a Cipher exception (#RTL7e)](./spec/acceptance/rest/message_spec.rb#L456)
|
2116
2324
|
* publishing on an encrypted channel and retrieving #history with a different algorithm on another client (#RTL7e)
|
2117
|
-
* [retrieves the message that remains encrypted with an encrypted encoding attribute (#RTL7e)](./spec/acceptance/rest/message_spec.rb#
|
2118
|
-
* [logs a Cipher exception (#RTL7e)](./spec/acceptance/rest/message_spec.rb#
|
2325
|
+
* [retrieves the message that remains encrypted with an encrypted encoding attribute (#RTL7e)](./spec/acceptance/rest/message_spec.rb#L477)
|
2326
|
+
* [logs a Cipher exception (#RTL7e)](./spec/acceptance/rest/message_spec.rb#L483)
|
2119
2327
|
* publishing on an encrypted channel and subscribing with a different key on another client
|
2120
|
-
* [retrieves the message that remains encrypted with an encrypted encoding attribute](./spec/acceptance/rest/message_spec.rb#
|
2121
|
-
* [logs a Cipher exception](./spec/acceptance/rest/message_spec.rb#
|
2328
|
+
* [retrieves the message that remains encrypted with an encrypted encoding attribute](./spec/acceptance/rest/message_spec.rb#L504)
|
2329
|
+
* [logs a Cipher exception](./spec/acceptance/rest/message_spec.rb#L510)
|
2122
2330
|
|
2123
2331
|
### Ably::Rest::Presence
|
2124
2332
|
_(see [spec/acceptance/rest/presence_spec.rb](./spec/acceptance/rest/presence_spec.rb))_
|
@@ -2135,54 +2343,148 @@ _(see [spec/acceptance/rest/presence_spec.rb](./spec/acceptance/rest/presence_sp
|
|
2135
2343
|
* with :connection_id option
|
2136
2344
|
* [returns a list members filtered by the provided connection ID](./spec/acceptance/rest/presence_spec.rb#L106)
|
2137
2345
|
* [returns a list members filtered by the provided connection ID](./spec/acceptance/rest/presence_spec.rb#L110)
|
2346
|
+
* with a non ASCII channel name
|
2347
|
+
* stubbed
|
2348
|
+
* [correctly encodes the channel name](./spec/acceptance/rest/presence_spec.rb#L127)
|
2138
2349
|
* #history
|
2139
|
-
* [returns recent presence activity](./spec/acceptance/rest/presence_spec.rb#
|
2350
|
+
* [returns recent presence activity](./spec/acceptance/rest/presence_spec.rb#L138)
|
2140
2351
|
* default behaviour
|
2141
|
-
* [uses backwards direction](./spec/acceptance/rest/presence_spec.rb#
|
2352
|
+
* [uses backwards direction](./spec/acceptance/rest/presence_spec.rb#L153)
|
2142
2353
|
* with options
|
2143
2354
|
* direction: :forwards
|
2144
|
-
* [returns recent presence activity forwards with most recent history last](./spec/acceptance/rest/presence_spec.rb#
|
2355
|
+
* [returns recent presence activity forwards with most recent history last](./spec/acceptance/rest/presence_spec.rb#L165)
|
2145
2356
|
* direction: :backwards
|
2146
|
-
* [returns recent presence activity backwards with most recent history first](./spec/acceptance/rest/presence_spec.rb#
|
2357
|
+
* [returns recent presence activity backwards with most recent history first](./spec/acceptance/rest/presence_spec.rb#L180)
|
2147
2358
|
* #history
|
2148
2359
|
* with options
|
2149
2360
|
* limit options
|
2150
2361
|
* default
|
2151
|
-
* [is set to 100](./spec/acceptance/rest/presence_spec.rb#
|
2362
|
+
* [is set to 100](./spec/acceptance/rest/presence_spec.rb#L225)
|
2152
2363
|
* set to 1000
|
2153
|
-
* [is passes the limit query param value 1000](./spec/acceptance/rest/presence_spec.rb#
|
2364
|
+
* [is passes the limit query param value 1000](./spec/acceptance/rest/presence_spec.rb#L238)
|
2154
2365
|
* with time range options
|
2155
2366
|
* :start
|
2156
2367
|
* with milliseconds since epoch value
|
2157
|
-
* [uses this value in the history request](./spec/acceptance/rest/presence_spec.rb#
|
2368
|
+
* [uses this value in the history request](./spec/acceptance/rest/presence_spec.rb#L268)
|
2158
2369
|
* with Time object value
|
2159
|
-
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/presence_spec.rb#
|
2370
|
+
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/presence_spec.rb#L278)
|
2160
2371
|
* :end
|
2161
2372
|
* with milliseconds since epoch value
|
2162
|
-
* [uses this value in the history request](./spec/acceptance/rest/presence_spec.rb#
|
2373
|
+
* [uses this value in the history request](./spec/acceptance/rest/presence_spec.rb#L268)
|
2163
2374
|
* with Time object value
|
2164
|
-
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/presence_spec.rb#
|
2375
|
+
* [converts the value to milliseconds since epoch in the hisotry request](./spec/acceptance/rest/presence_spec.rb#L278)
|
2165
2376
|
* when argument start is after end
|
2166
|
-
* [should raise an exception](./spec/acceptance/rest/presence_spec.rb#
|
2377
|
+
* [should raise an exception](./spec/acceptance/rest/presence_spec.rb#L289)
|
2167
2378
|
* decoding
|
2168
2379
|
* with encoded fixture data
|
2169
2380
|
* #history
|
2170
|
-
* [decodes encoded and encryped presence fixture data automatically](./spec/acceptance/rest/presence_spec.rb#
|
2381
|
+
* [decodes encoded and encryped presence fixture data automatically](./spec/acceptance/rest/presence_spec.rb#L308)
|
2171
2382
|
* #get
|
2172
|
-
* [decodes encoded and encryped presence fixture data automatically](./spec/acceptance/rest/presence_spec.rb#
|
2383
|
+
* [decodes encoded and encryped presence fixture data automatically](./spec/acceptance/rest/presence_spec.rb#L315)
|
2173
2384
|
* decoding permutations using mocked #history
|
2174
2385
|
* valid decodeable content
|
2175
2386
|
* #get
|
2176
|
-
* [automaticaly decodes presence messages](./spec/acceptance/rest/presence_spec.rb#
|
2387
|
+
* [automaticaly decodes presence messages](./spec/acceptance/rest/presence_spec.rb#L368)
|
2177
2388
|
* #history
|
2178
|
-
* [automaticaly decodes presence messages](./spec/acceptance/rest/presence_spec.rb#
|
2389
|
+
* [automaticaly decodes presence messages](./spec/acceptance/rest/presence_spec.rb#L385)
|
2179
2390
|
* invalid data
|
2180
2391
|
* #get
|
2181
|
-
* [returns the messages still encoded](./spec/acceptance/rest/presence_spec.rb#
|
2182
|
-
* [logs a cipher error](./spec/acceptance/rest/presence_spec.rb#
|
2392
|
+
* [returns the messages still encoded](./spec/acceptance/rest/presence_spec.rb#L416)
|
2393
|
+
* [logs a cipher error](./spec/acceptance/rest/presence_spec.rb#L420)
|
2183
2394
|
* #history
|
2184
|
-
* [returns the messages still encoded](./spec/acceptance/rest/presence_spec.rb#
|
2185
|
-
* [logs a cipher error](./spec/acceptance/rest/presence_spec.rb#
|
2395
|
+
* [returns the messages still encoded](./spec/acceptance/rest/presence_spec.rb#L440)
|
2396
|
+
* [logs a cipher error](./spec/acceptance/rest/presence_spec.rb#L444)
|
2397
|
+
|
2398
|
+
### Ably::Rest::Push::Admin
|
2399
|
+
_(see [spec/acceptance/rest/push_admin_spec.rb](./spec/acceptance/rest/push_admin_spec.rb))_
|
2400
|
+
* using JSON protocol
|
2401
|
+
* #publish
|
2402
|
+
* [accepts valid push data and recipient (#RSH1a)](./spec/acceptance/rest/push_admin_spec.rb#L127)
|
2403
|
+
* without publish permissions
|
2404
|
+
* [raises a permissions issue exception](./spec/acceptance/rest/push_admin_spec.rb#L40)
|
2405
|
+
* invalid arguments (#RHS1a)
|
2406
|
+
* [raises an exception with a nil recipient](./spec/acceptance/rest/push_admin_spec.rb#L46)
|
2407
|
+
* [raises an exception with a empty recipient](./spec/acceptance/rest/push_admin_spec.rb#L50)
|
2408
|
+
* [raises an exception with a nil recipient](./spec/acceptance/rest/push_admin_spec.rb#L54)
|
2409
|
+
* [raises an exception with a empty recipient](./spec/acceptance/rest/push_admin_spec.rb#L58)
|
2410
|
+
* invalid recipient (#RSH1a)
|
2411
|
+
* [raises an error after receiving a 40x realtime response](./spec/acceptance/rest/push_admin_spec.rb#L64)
|
2412
|
+
* invalid push data (#RSH1a)
|
2413
|
+
* [raises an error after receiving a 40x realtime response](./spec/acceptance/rest/push_admin_spec.rb#L70)
|
2414
|
+
* recipient variable case
|
2415
|
+
* [is converted to snakeCase](./spec/acceptance/rest/push_admin_spec.rb#L121)
|
2416
|
+
* using test environment channel recipient (#RSH1a)
|
2417
|
+
* [triggers a push notification](./spec/acceptance/rest/push_admin_spec.rb#L152)
|
2418
|
+
* #device_registrations (#RSH1b)
|
2419
|
+
* without permissions
|
2420
|
+
* [raises a permissions not authorized exception](./spec/acceptance/rest/push_admin_spec.rb#L172)
|
2421
|
+
* #list (#RSH1b2)
|
2422
|
+
* [returns a PaginatedResult object containing DeviceDetails objects](./spec/acceptance/rest/push_admin_spec.rb#L207)
|
2423
|
+
* [returns an empty PaginatedResult if not params match](./spec/acceptance/rest/push_admin_spec.rb#L213)
|
2424
|
+
* [supports paging](./spec/acceptance/rest/push_admin_spec.rb#L219)
|
2425
|
+
* [provides filtering](./spec/acceptance/rest/push_admin_spec.rb#L231)
|
2426
|
+
* #get (#RSH1b1)
|
2427
|
+
* [returns a DeviceDetails object if a device ID string is provided](./spec/acceptance/rest/push_admin_spec.rb#L270)
|
2428
|
+
* [returns a DeviceDetails object if a DeviceDetails object is provided](./spec/acceptance/rest/push_admin_spec.rb#L278)
|
2429
|
+
* [raises a ResourceMissing exception if device ID does not exist](./spec/acceptance/rest/push_admin_spec.rb#L286)
|
2430
|
+
* #save (#RSH1b3)
|
2431
|
+
* [saves the new DeviceDetails Hash object](./spec/acceptance/rest/push_admin_spec.rb#L325)
|
2432
|
+
* [saves the associated DevicePushDetails](./spec/acceptance/rest/push_admin_spec.rb#L340)
|
2433
|
+
* [does not allow some fields to be configured](./spec/acceptance/rest/push_admin_spec.rb#L394)
|
2434
|
+
* [allows device_secret to be configured](./spec/acceptance/rest/push_admin_spec.rb#L407)
|
2435
|
+
* [saves the new DeviceDetails object](./spec/acceptance/rest/push_admin_spec.rb#L416)
|
2436
|
+
* [allows arbitrary number of subsequent saves](./spec/acceptance/rest/push_admin_spec.rb#L425)
|
2437
|
+
* [fails if data is invalid](./spec/acceptance/rest/push_admin_spec.rb#L438)
|
2438
|
+
* with GCM target
|
2439
|
+
* [saves the associated DevicePushDetails](./spec/acceptance/rest/push_admin_spec.rb#L354)
|
2440
|
+
* with web target
|
2441
|
+
* [saves the associated DevicePushDetails](./spec/acceptance/rest/push_admin_spec.rb#L375)
|
2442
|
+
* #remove_where (#RSH1b5)
|
2443
|
+
* [removes all matching device registrations by client_id](./spec/acceptance/rest/push_admin_spec.rb#L484)
|
2444
|
+
* [removes device by device_id](./spec/acceptance/rest/push_admin_spec.rb#L489)
|
2445
|
+
* [succeeds even if there is no match](./spec/acceptance/rest/push_admin_spec.rb#L494)
|
2446
|
+
* #remove (#RSH1b4)
|
2447
|
+
* [removes the provided device id string](./spec/acceptance/rest/push_admin_spec.rb#L541)
|
2448
|
+
* [removes the provided DeviceDetails](./spec/acceptance/rest/push_admin_spec.rb#L546)
|
2449
|
+
* [succeeds if the item does not exist](./spec/acceptance/rest/push_admin_spec.rb#L551)
|
2450
|
+
* #channel_subscriptions (#RSH1c)
|
2451
|
+
* #list (#RSH1c1)
|
2452
|
+
* [returns a PaginatedResult object containing DeviceDetails objects](./spec/acceptance/rest/push_admin_spec.rb#L613)
|
2453
|
+
* [returns an empty PaginatedResult if params do not match](./spec/acceptance/rest/push_admin_spec.rb#L619)
|
2454
|
+
* [supports paging](./spec/acceptance/rest/push_admin_spec.rb#L625)
|
2455
|
+
* [provides filtering](./spec/acceptance/rest/push_admin_spec.rb#L637)
|
2456
|
+
* [raises an exception if none of the required filters are provided](./spec/acceptance/rest/push_admin_spec.rb#L665)
|
2457
|
+
* #list_channels (#RSH1c2)
|
2458
|
+
* [returns a PaginatedResult object containing String objects](./spec/acceptance/rest/push_admin_spec.rb#L689)
|
2459
|
+
* PENDING: *[supports paging](./spec/acceptance/rest/push_admin_spec.rb#L696)*
|
2460
|
+
* [returns an accurate number of channels after devices are deleted](./spec/acceptance/rest/push_admin_spec.rb#L714)
|
2461
|
+
* #save (#RSH1c3)
|
2462
|
+
* [saves the new client_id PushChannelSubscription Hash object](./spec/acceptance/rest/push_admin_spec.rb#L733)
|
2463
|
+
* [saves the new device_id PushChannelSubscription Hash object](./spec/acceptance/rest/push_admin_spec.rb#L744)
|
2464
|
+
* [saves the client_id PushChannelSubscription object](./spec/acceptance/rest/push_admin_spec.rb#L755)
|
2465
|
+
* [saves the device_id PushChannelSubscription object](./spec/acceptance/rest/push_admin_spec.rb#L766)
|
2466
|
+
* [allows arbitrary number of subsequent saves](./spec/acceptance/rest/push_admin_spec.rb#L777)
|
2467
|
+
* [fails if data is invalid](./spec/acceptance/rest/push_admin_spec.rb#L790)
|
2468
|
+
* #remove_where (#RSH1c5)
|
2469
|
+
* PENDING: *[removes matching channels](./spec/acceptance/rest/push_admin_spec.rb#L817)*
|
2470
|
+
* [removes matching client_ids](./spec/acceptance/rest/push_admin_spec.rb#L825)
|
2471
|
+
* [removes matching device_ids](./spec/acceptance/rest/push_admin_spec.rb#L831)
|
2472
|
+
* [device_id and client_id filters in the same request are not suppoorted](./spec/acceptance/rest/push_admin_spec.rb#L837)
|
2473
|
+
* [succeeds on no match](./spec/acceptance/rest/push_admin_spec.rb#L841)
|
2474
|
+
* #remove (#RSH1c4)
|
2475
|
+
* [removes match for Hash object by channel and client_id](./spec/acceptance/rest/push_admin_spec.rb#L865)
|
2476
|
+
* [removes match for PushChannelSubscription object by channel and client_id](./spec/acceptance/rest/push_admin_spec.rb#L870)
|
2477
|
+
* [removes match for Hash object by channel and device_id](./spec/acceptance/rest/push_admin_spec.rb#L877)
|
2478
|
+
* [removes match for PushChannelSubscription object by channel and client_id](./spec/acceptance/rest/push_admin_spec.rb#L882)
|
2479
|
+
* [succeeds even if there is no match](./spec/acceptance/rest/push_admin_spec.rb#L889)
|
2480
|
+
|
2481
|
+
### Ably::Rest::Push
|
2482
|
+
_(see [spec/acceptance/rest/push_spec.rb](./spec/acceptance/rest/push_spec.rb))_
|
2483
|
+
* using JSON protocol
|
2484
|
+
* #activate
|
2485
|
+
* [raises an unsupported exception](./spec/acceptance/rest/push_spec.rb#L14)
|
2486
|
+
* #deactivate
|
2487
|
+
* [raises an unsupported exception](./spec/acceptance/rest/push_spec.rb#L20)
|
2186
2488
|
|
2187
2489
|
### Ably::Rest::Client#stats
|
2188
2490
|
_(see [spec/acceptance/rest/stats_spec.rb](./spec/acceptance/rest/stats_spec.rb))_
|
@@ -2253,22 +2555,21 @@ _(see [spec/unit/auth_spec.rb](./spec/unit/auth_spec.rb))_
|
|
2253
2555
|
* as Integer
|
2254
2556
|
* [raises an argument error](./spec/unit/auth_spec.rb#L64)
|
2255
2557
|
* defaults
|
2256
|
-
* [should default TTL
|
2257
|
-
* [should default capability
|
2258
|
-
* [should have defaults for :ttl and :capability](./spec/unit/auth_spec.rb#L82)
|
2558
|
+
* [should have no default TTL](./spec/unit/auth_spec.rb#L71)
|
2559
|
+
* [should have no default capability](./spec/unit/auth_spec.rb#L75)
|
2259
2560
|
|
2260
2561
|
### Ably::Logger
|
2261
2562
|
_(see [spec/unit/logger_spec.rb](./spec/unit/logger_spec.rb))_
|
2262
2563
|
* [uses the language provided Logger by default](./spec/unit/logger_spec.rb#L15)
|
2263
2564
|
* with a custom Logger
|
2264
2565
|
* with an invalid interface
|
2265
|
-
* [raises an exception](./spec/unit/logger_spec.rb#
|
2566
|
+
* [raises an exception](./spec/unit/logger_spec.rb#L122)
|
2266
2567
|
* with a valid interface
|
2267
|
-
* [is used](./spec/unit/logger_spec.rb#
|
2568
|
+
* [is used](./spec/unit/logger_spec.rb#L133)
|
2268
2569
|
* with blocks
|
2269
|
-
* [does not call the block unless the log level is met](./spec/unit/logger_spec.rb#
|
2570
|
+
* [does not call the block unless the log level is met](./spec/unit/logger_spec.rb#L151)
|
2270
2571
|
* with an exception in the logger block
|
2271
|
-
* [catches the error and continues](./spec/unit/logger_spec.rb#
|
2572
|
+
* [catches the error and continues](./spec/unit/logger_spec.rb#L166)
|
2272
2573
|
|
2273
2574
|
### Ably::Models::AuthDetails
|
2274
2575
|
_(see [spec/unit/models/auth_details_spec.rb](./spec/unit/models/auth_details_spec.rb))_
|
@@ -2398,25 +2699,93 @@ _(see [spec/unit/models/connection_state_change_spec.rb](./spec/unit/models/conn
|
|
2398
2699
|
* invalid attributes
|
2399
2700
|
* [raises an argument error](./spec/unit/models/connection_state_change_spec.rb#L61)
|
2400
2701
|
|
2702
|
+
### Ably::Models::DeviceDetails
|
2703
|
+
_(see [spec/unit/models/device_details_spec.rb](./spec/unit/models/device_details_spec.rb))_
|
2704
|
+
* #id and #id=
|
2705
|
+
* [setter accepts a string value and getter returns the new value](./spec/unit/models/device_details_spec.rb#L16)
|
2706
|
+
* [setter accepts nil](./spec/unit/models/device_details_spec.rb#L22)
|
2707
|
+
* [rejects non string or nil values](./spec/unit/models/device_details_spec.rb#L29)
|
2708
|
+
* #platform and #platform=
|
2709
|
+
* [setter accepts a string value and getter returns the new value](./spec/unit/models/device_details_spec.rb#L16)
|
2710
|
+
* [setter accepts nil](./spec/unit/models/device_details_spec.rb#L22)
|
2711
|
+
* [rejects non string or nil values](./spec/unit/models/device_details_spec.rb#L29)
|
2712
|
+
* #form_factor and #form_factor=
|
2713
|
+
* [setter accepts a string value and getter returns the new value](./spec/unit/models/device_details_spec.rb#L16)
|
2714
|
+
* [setter accepts nil](./spec/unit/models/device_details_spec.rb#L22)
|
2715
|
+
* [rejects non string or nil values](./spec/unit/models/device_details_spec.rb#L29)
|
2716
|
+
* #client_id and #client_id=
|
2717
|
+
* [setter accepts a string value and getter returns the new value](./spec/unit/models/device_details_spec.rb#L16)
|
2718
|
+
* [setter accepts nil](./spec/unit/models/device_details_spec.rb#L22)
|
2719
|
+
* [rejects non string or nil values](./spec/unit/models/device_details_spec.rb#L29)
|
2720
|
+
* #device_secret and #device_secret=
|
2721
|
+
* [setter accepts a string value and getter returns the new value](./spec/unit/models/device_details_spec.rb#L16)
|
2722
|
+
* [setter accepts nil](./spec/unit/models/device_details_spec.rb#L22)
|
2723
|
+
* [rejects non string or nil values](./spec/unit/models/device_details_spec.rb#L29)
|
2724
|
+
* camelCase constructor attributes
|
2725
|
+
* [are rubyfied and exposed as underscore case](./spec/unit/models/device_details_spec.rb#L39)
|
2726
|
+
* [are generated when the object is serialised to JSON](./spec/unit/models/device_details_spec.rb#L43)
|
2727
|
+
* #metadata and #metadata=
|
2728
|
+
* [setter accepts a Hash value and getter returns the new value](./spec/unit/models/device_details_spec.rb#L51)
|
2729
|
+
* [setter accepts nil but always returns an empty hash](./spec/unit/models/device_details_spec.rb#L57)
|
2730
|
+
* [rejects non Hash or nil values](./spec/unit/models/device_details_spec.rb#L64)
|
2731
|
+
* #push and #push=
|
2732
|
+
* [setter accepts a DevicePushDetails object and getter returns a DevicePushDetails object](./spec/unit/models/device_details_spec.rb#L74)
|
2733
|
+
* [setter accepts a Hash value and getter returns a DevicePushDetails object](./spec/unit/models/device_details_spec.rb#L82)
|
2734
|
+
* [setter accepts nil but always returns a DevicePushDetails object](./spec/unit/models/device_details_spec.rb#L90)
|
2735
|
+
* [rejects non Hash, DevicePushDetails or nil values](./spec/unit/models/device_details_spec.rb#L98)
|
2736
|
+
|
2737
|
+
### Ably::Models::DevicePushDetails
|
2738
|
+
_(see [spec/unit/models/device_push_details_spec.rb](./spec/unit/models/device_push_details_spec.rb))_
|
2739
|
+
* #state and #state=
|
2740
|
+
* [setter accepts a string value and getter returns the new value](./spec/unit/models/device_push_details_spec.rb#L16)
|
2741
|
+
* [setter accepts nil](./spec/unit/models/device_push_details_spec.rb#L22)
|
2742
|
+
* [rejects non string or nil values](./spec/unit/models/device_push_details_spec.rb#L29)
|
2743
|
+
* camelCase constructor attributes
|
2744
|
+
* [are rubyfied and exposed as underscore case](./spec/unit/models/device_push_details_spec.rb#L39)
|
2745
|
+
* [are generated when the object is serialised to JSON](./spec/unit/models/device_push_details_spec.rb#L44)
|
2746
|
+
* #recipient and #recipient=
|
2747
|
+
* [setter accepts a Hash value and getter returns the new value](./spec/unit/models/device_push_details_spec.rb#L52)
|
2748
|
+
* [setter accepts nil but always returns an empty hash](./spec/unit/models/device_push_details_spec.rb#L58)
|
2749
|
+
* [rejects non Hash or nil values](./spec/unit/models/device_push_details_spec.rb#L65)
|
2750
|
+
* #error_reason and #error_reason=
|
2751
|
+
* [setter accepts a ErrorInfo object and getter returns a ErrorInfo object](./spec/unit/models/device_push_details_spec.rb#L74)
|
2752
|
+
* [setter accepts a Hash value and getter returns a ErrorInfo object](./spec/unit/models/device_push_details_spec.rb#L82)
|
2753
|
+
* [setter accepts nil values](./spec/unit/models/device_push_details_spec.rb#L90)
|
2754
|
+
* [rejects non Hash, ErrorInfo or nil values](./spec/unit/models/device_push_details_spec.rb#L97)
|
2755
|
+
|
2401
2756
|
### Ably::Models::ErrorInfo
|
2402
2757
|
_(see [spec/unit/models/error_info_spec.rb](./spec/unit/models/error_info_spec.rb))_
|
2403
|
-
*
|
2404
|
-
*
|
2405
|
-
*
|
2406
|
-
*
|
2407
|
-
|
2408
|
-
*
|
2409
|
-
|
2410
|
-
*
|
2411
|
-
|
2412
|
-
|
2413
|
-
|
2414
|
-
*
|
2415
|
-
|
2416
|
-
|
2417
|
-
|
2418
|
-
|
2419
|
-
|
2758
|
+
* #TI1, #TI4
|
2759
|
+
* behaves like a model
|
2760
|
+
* attributes
|
2761
|
+
* #code
|
2762
|
+
* [retrieves attribute :code](./spec/shared/model_behaviour.rb#L15)
|
2763
|
+
* #status_code
|
2764
|
+
* [retrieves attribute :status_code](./spec/shared/model_behaviour.rb#L15)
|
2765
|
+
* #href
|
2766
|
+
* [retrieves attribute :href](./spec/shared/model_behaviour.rb#L15)
|
2767
|
+
* #message
|
2768
|
+
* [retrieves attribute :message](./spec/shared/model_behaviour.rb#L15)
|
2769
|
+
* #==
|
2770
|
+
* [is true when attributes are the same](./spec/shared/model_behaviour.rb#L41)
|
2771
|
+
* [is false when attributes are not the same](./spec/shared/model_behaviour.rb#L46)
|
2772
|
+
* [is false when class type differs](./spec/shared/model_behaviour.rb#L50)
|
2773
|
+
* is immutable
|
2774
|
+
* [prevents changes](./spec/shared/model_behaviour.rb#L76)
|
2775
|
+
* [dups options](./spec/shared/model_behaviour.rb#L80)
|
2776
|
+
* #status #TI1, #TI2
|
2777
|
+
* [is an alias for #status_code](./spec/unit/models/error_info_spec.rb#L15)
|
2778
|
+
* log entries container help link #TI5
|
2779
|
+
* without an error code
|
2780
|
+
* [does not include the help URL](./spec/unit/models/error_info_spec.rb#L25)
|
2781
|
+
* with a specified error code
|
2782
|
+
* [includes https://help.ably.io/error/[CODE] in the stringified object](./spec/unit/models/error_info_spec.rb#L33)
|
2783
|
+
* with an error code and an href attribute
|
2784
|
+
* [includes the specified href in the stringified object](./spec/unit/models/error_info_spec.rb#L41)
|
2785
|
+
* with an error code and a message with the same error URL
|
2786
|
+
* [includes the specified error URL only once in the stringified object](./spec/unit/models/error_info_spec.rb#L50)
|
2787
|
+
* with an error code and a message with a different error URL
|
2788
|
+
* [includes the specified error URL from the message and the error code URL in the stringified object](./spec/unit/models/error_info_spec.rb#L58)
|
2420
2789
|
|
2421
2790
|
### Ably::Models::HttpPaginatedResponse: #HP1 -> #HP8
|
2422
2791
|
_(see [spec/unit/models/http_paginated_result_spec.rb](./spec/unit/models/http_paginated_result_spec.rb))_
|
@@ -2628,109 +2997,113 @@ _(see [spec/unit/models/message_encoders/utf8_spec.rb](./spec/unit/models/messag
|
|
2628
2997
|
|
2629
2998
|
### Ably::Models::Message
|
2630
2999
|
_(see [spec/unit/models/message_spec.rb](./spec/unit/models/message_spec.rb))_
|
2631
|
-
*
|
2632
|
-
*
|
2633
|
-
*
|
2634
|
-
*
|
2635
|
-
|
2636
|
-
*
|
2637
|
-
|
2638
|
-
*
|
2639
|
-
|
2640
|
-
*
|
2641
|
-
|
2642
|
-
*
|
2643
|
-
|
2644
|
-
*
|
2645
|
-
|
2646
|
-
|
2647
|
-
|
2648
|
-
*
|
2649
|
-
|
3000
|
+
* serialization of the Message object (#RSL1j)
|
3001
|
+
* behaves like a model
|
3002
|
+
* attributes
|
3003
|
+
* #id
|
3004
|
+
* [retrieves attribute :id](./spec/shared/model_behaviour.rb#L15)
|
3005
|
+
* #name
|
3006
|
+
* [retrieves attribute :name](./spec/shared/model_behaviour.rb#L15)
|
3007
|
+
* #client_id
|
3008
|
+
* [retrieves attribute :client_id](./spec/shared/model_behaviour.rb#L15)
|
3009
|
+
* #data
|
3010
|
+
* [retrieves attribute :data](./spec/shared/model_behaviour.rb#L15)
|
3011
|
+
* #encoding
|
3012
|
+
* [retrieves attribute :encoding](./spec/shared/model_behaviour.rb#L15)
|
3013
|
+
* #==
|
3014
|
+
* [is true when attributes are the same](./spec/shared/model_behaviour.rb#L41)
|
3015
|
+
* [is false when attributes are not the same](./spec/shared/model_behaviour.rb#L46)
|
3016
|
+
* [is false when class type differs](./spec/shared/model_behaviour.rb#L50)
|
3017
|
+
* is immutable
|
3018
|
+
* [prevents changes](./spec/shared/model_behaviour.rb#L76)
|
3019
|
+
* [dups options](./spec/shared/model_behaviour.rb#L80)
|
3020
|
+
* #id (#RSL1j)
|
3021
|
+
* [exposes the #id attribute](./spec/unit/models/message_spec.rb#L25)
|
3022
|
+
* [#as_json exposes the #id attribute](./spec/unit/models/message_spec.rb#L29)
|
2650
3023
|
* #timestamp
|
2651
|
-
* [retrieves attribute :timestamp as Time object from ProtocolMessage](./spec/unit/models/message_spec.rb#
|
3024
|
+
* [retrieves attribute :timestamp as Time object from ProtocolMessage](./spec/unit/models/message_spec.rb#L37)
|
2652
3025
|
* #extras (#TM2i)
|
2653
3026
|
* when missing
|
2654
|
-
* [is nil](./spec/unit/models/message_spec.rb#
|
3027
|
+
* [is nil](./spec/unit/models/message_spec.rb#L48)
|
2655
3028
|
* when a string
|
2656
|
-
* [raises an exception](./spec/unit/models/message_spec.rb#
|
3029
|
+
* [raises an exception](./spec/unit/models/message_spec.rb#L55)
|
2657
3030
|
* when a Hash
|
2658
|
-
* [contains a Hash Json object](./spec/unit/models/message_spec.rb#
|
3031
|
+
* [contains a Hash Json object](./spec/unit/models/message_spec.rb#L62)
|
2659
3032
|
* when a Json Array
|
2660
|
-
* [contains a Json Array object](./spec/unit/models/message_spec.rb#
|
3033
|
+
* [contains a Json Array object](./spec/unit/models/message_spec.rb#L69)
|
2661
3034
|
* #connection_id attribute
|
2662
3035
|
* when this model has a connectionId attribute
|
2663
3036
|
* but no protocol message
|
2664
|
-
* [uses the model value](./spec/unit/models/message_spec.rb#
|
3037
|
+
* [uses the model value](./spec/unit/models/message_spec.rb#L84)
|
2665
3038
|
* with a protocol message with a different connectionId
|
2666
|
-
* [uses the model value](./spec/unit/models/message_spec.rb#
|
3039
|
+
* [uses the model value](./spec/unit/models/message_spec.rb#L92)
|
2667
3040
|
* when this model has no connectionId attribute
|
2668
3041
|
* and no protocol message
|
2669
|
-
* [uses the model value](./spec/unit/models/message_spec.rb#
|
3042
|
+
* [uses the model value](./spec/unit/models/message_spec.rb#L102)
|
2670
3043
|
* with a protocol message with a connectionId
|
2671
|
-
* [uses the model value](./spec/unit/models/message_spec.rb#
|
3044
|
+
* [uses the model value](./spec/unit/models/message_spec.rb#L110)
|
2672
3045
|
* initialized with
|
2673
3046
|
* :name
|
2674
3047
|
* as UTF_8 string
|
2675
|
-
* [is permitted](./spec/unit/models/message_spec.rb#
|
2676
|
-
* [remains as UTF-8](./spec/unit/models/message_spec.rb#
|
3048
|
+
* [is permitted](./spec/unit/models/message_spec.rb#L137)
|
3049
|
+
* [remains as UTF-8](./spec/unit/models/message_spec.rb#L141)
|
2677
3050
|
* as SHIFT_JIS string
|
2678
|
-
* [gets converted to UTF-8](./spec/unit/models/message_spec.rb#
|
2679
|
-
* [is compatible with original encoding](./spec/unit/models/message_spec.rb#
|
3051
|
+
* [gets converted to UTF-8](./spec/unit/models/message_spec.rb#L149)
|
3052
|
+
* [is compatible with original encoding](./spec/unit/models/message_spec.rb#L153)
|
2680
3053
|
* as ASCII_8BIT string
|
2681
|
-
* [gets converted to UTF-8](./spec/unit/models/message_spec.rb#
|
2682
|
-
* [is compatible with original encoding](./spec/unit/models/message_spec.rb#
|
3054
|
+
* [gets converted to UTF-8](./spec/unit/models/message_spec.rb#L161)
|
3055
|
+
* [is compatible with original encoding](./spec/unit/models/message_spec.rb#L165)
|
2683
3056
|
* as Integer
|
2684
|
-
* [raises an argument error](./spec/unit/models/message_spec.rb#
|
3057
|
+
* [raises an argument error](./spec/unit/models/message_spec.rb#L173)
|
2685
3058
|
* as Nil
|
2686
|
-
* [is permitted](./spec/unit/models/message_spec.rb#
|
3059
|
+
* [is permitted](./spec/unit/models/message_spec.rb#L181)
|
2687
3060
|
* :client_id
|
2688
3061
|
* as UTF_8 string
|
2689
|
-
* [is permitted](./spec/unit/models/message_spec.rb#
|
2690
|
-
* [remains as UTF-8](./spec/unit/models/message_spec.rb#
|
3062
|
+
* [is permitted](./spec/unit/models/message_spec.rb#L137)
|
3063
|
+
* [remains as UTF-8](./spec/unit/models/message_spec.rb#L141)
|
2691
3064
|
* as SHIFT_JIS string
|
2692
|
-
* [gets converted to UTF-8](./spec/unit/models/message_spec.rb#
|
2693
|
-
* [is compatible with original encoding](./spec/unit/models/message_spec.rb#
|
3065
|
+
* [gets converted to UTF-8](./spec/unit/models/message_spec.rb#L149)
|
3066
|
+
* [is compatible with original encoding](./spec/unit/models/message_spec.rb#L153)
|
2694
3067
|
* as ASCII_8BIT string
|
2695
|
-
* [gets converted to UTF-8](./spec/unit/models/message_spec.rb#
|
2696
|
-
* [is compatible with original encoding](./spec/unit/models/message_spec.rb#
|
3068
|
+
* [gets converted to UTF-8](./spec/unit/models/message_spec.rb#L161)
|
3069
|
+
* [is compatible with original encoding](./spec/unit/models/message_spec.rb#L165)
|
2697
3070
|
* as Integer
|
2698
|
-
* [raises an argument error](./spec/unit/models/message_spec.rb#
|
3071
|
+
* [raises an argument error](./spec/unit/models/message_spec.rb#L173)
|
2699
3072
|
* as Nil
|
2700
|
-
* [is permitted](./spec/unit/models/message_spec.rb#
|
3073
|
+
* [is permitted](./spec/unit/models/message_spec.rb#L181)
|
2701
3074
|
* :encoding
|
2702
3075
|
* as UTF_8 string
|
2703
|
-
* [is permitted](./spec/unit/models/message_spec.rb#
|
2704
|
-
* [remains as UTF-8](./spec/unit/models/message_spec.rb#
|
3076
|
+
* [is permitted](./spec/unit/models/message_spec.rb#L137)
|
3077
|
+
* [remains as UTF-8](./spec/unit/models/message_spec.rb#L141)
|
2705
3078
|
* as SHIFT_JIS string
|
2706
|
-
* [gets converted to UTF-8](./spec/unit/models/message_spec.rb#
|
2707
|
-
* [is compatible with original encoding](./spec/unit/models/message_spec.rb#
|
3079
|
+
* [gets converted to UTF-8](./spec/unit/models/message_spec.rb#L149)
|
3080
|
+
* [is compatible with original encoding](./spec/unit/models/message_spec.rb#L153)
|
2708
3081
|
* as ASCII_8BIT string
|
2709
|
-
* [gets converted to UTF-8](./spec/unit/models/message_spec.rb#
|
2710
|
-
* [is compatible with original encoding](./spec/unit/models/message_spec.rb#
|
3082
|
+
* [gets converted to UTF-8](./spec/unit/models/message_spec.rb#L161)
|
3083
|
+
* [is compatible with original encoding](./spec/unit/models/message_spec.rb#L165)
|
2711
3084
|
* as Integer
|
2712
|
-
* [raises an argument error](./spec/unit/models/message_spec.rb#
|
3085
|
+
* [raises an argument error](./spec/unit/models/message_spec.rb#L173)
|
2713
3086
|
* as Nil
|
2714
|
-
* [is permitted](./spec/unit/models/message_spec.rb#
|
3087
|
+
* [is permitted](./spec/unit/models/message_spec.rb#L181)
|
2715
3088
|
* #from_encoded (#TM3)
|
2716
3089
|
* with no encoding
|
2717
|
-
* [returns a message object](./spec/unit/models/message_spec.rb#
|
3090
|
+
* [returns a message object](./spec/unit/models/message_spec.rb#L437)
|
2718
3091
|
* with a block
|
2719
|
-
* [does not call the block](./spec/unit/models/message_spec.rb#
|
3092
|
+
* [does not call the block](./spec/unit/models/message_spec.rb#L445)
|
2720
3093
|
* with an encoding
|
2721
|
-
* [returns a message object](./spec/unit/models/message_spec.rb#
|
3094
|
+
* [returns a message object](./spec/unit/models/message_spec.rb#L462)
|
2722
3095
|
* with a custom encoding
|
2723
|
-
* [returns a message object with the residual incompatible transforms left in the encoding property](./spec/unit/models/message_spec.rb#
|
3096
|
+
* [returns a message object with the residual incompatible transforms left in the encoding property](./spec/unit/models/message_spec.rb#L477)
|
2724
3097
|
* with a Cipher encoding
|
2725
|
-
* [returns a message object with the residual incompatible transforms left in the encoding property](./spec/unit/models/message_spec.rb#
|
3098
|
+
* [returns a message object with the residual incompatible transforms left in the encoding property](./spec/unit/models/message_spec.rb#L496)
|
2726
3099
|
* with invalid Cipher encoding
|
2727
3100
|
* without a block
|
2728
|
-
* [raises an exception](./spec/unit/models/message_spec.rb#
|
3101
|
+
* [raises an exception](./spec/unit/models/message_spec.rb#L514)
|
2729
3102
|
* with a block
|
2730
|
-
* [calls the block with the exception](./spec/unit/models/message_spec.rb#
|
3103
|
+
* [calls the block with the exception](./spec/unit/models/message_spec.rb#L520)
|
2731
3104
|
* #from_encoded_array (#TM3)
|
2732
3105
|
* with no encoding
|
2733
|
-
* [returns an Array of message objects](./spec/unit/models/message_spec.rb#
|
3106
|
+
* [returns an Array of message objects](./spec/unit/models/message_spec.rb#L539)
|
2734
3107
|
|
2735
3108
|
### Ably::Models::PaginatedResult
|
2736
3109
|
_(see [spec/unit/models/paginated_result_spec.rb](./spec/unit/models/paginated_result_spec.rb))_
|
@@ -2981,6 +3354,31 @@ _(see [spec/unit/models/protocol_message_spec.rb](./spec/unit/models/protocol_me
|
|
2981
3354
|
* existing in both #connection_key and #connection_details.connection_key
|
2982
3355
|
* [returns #connection_details.connection_key as #connection_key will be deprecated > 0.8](./spec/unit/models/protocol_message_spec.rb#L385)
|
2983
3356
|
|
3357
|
+
### Ably::Models::PushChannelSubscription
|
3358
|
+
_(see [spec/unit/models/push_channel_subscription_spec.rb](./spec/unit/models/push_channel_subscription_spec.rb))_
|
3359
|
+
* #channel and #channel=
|
3360
|
+
* [setter accepts a string value and getter returns the new value](./spec/unit/models/push_channel_subscription_spec.rb#L21)
|
3361
|
+
* [setter accepts nil](./spec/unit/models/push_channel_subscription_spec.rb#L27)
|
3362
|
+
* [rejects non string or nil values](./spec/unit/models/push_channel_subscription_spec.rb#L34)
|
3363
|
+
* #client_id and #client_id=
|
3364
|
+
* [setter accepts a string value and getter returns the new value](./spec/unit/models/push_channel_subscription_spec.rb#L21)
|
3365
|
+
* [setter accepts nil](./spec/unit/models/push_channel_subscription_spec.rb#L27)
|
3366
|
+
* [rejects non string or nil values](./spec/unit/models/push_channel_subscription_spec.rb#L34)
|
3367
|
+
* #device_id and #device_id=
|
3368
|
+
* [setter accepts a string value and getter returns the new value](./spec/unit/models/push_channel_subscription_spec.rb#L21)
|
3369
|
+
* [setter accepts nil](./spec/unit/models/push_channel_subscription_spec.rb#L27)
|
3370
|
+
* [rejects non string or nil values](./spec/unit/models/push_channel_subscription_spec.rb#L34)
|
3371
|
+
* camelCase constructor attributes
|
3372
|
+
* [are rubyfied and exposed as underscore case](./spec/unit/models/push_channel_subscription_spec.rb#L44)
|
3373
|
+
* [are generated when the object is serialised to JSON](./spec/unit/models/push_channel_subscription_spec.rb#L48)
|
3374
|
+
* conversion method PushChannelSubscription
|
3375
|
+
* [accepts a PushChannelSubscription object](./spec/unit/models/push_channel_subscription_spec.rb#L57)
|
3376
|
+
* #for_client_id constructor
|
3377
|
+
* with a valid object
|
3378
|
+
* [accepts a Hash object](./spec/unit/models/push_channel_subscription_spec.rb#L70)
|
3379
|
+
* with an invalid valid object
|
3380
|
+
* [accepts a Hash object](./spec/unit/models/push_channel_subscription_spec.rb#L81)
|
3381
|
+
|
2984
3382
|
### Ably::Models::Stats
|
2985
3383
|
_(see [spec/unit/models/stats_spec.rb](./spec/unit/models/stats_spec.rb))_
|
2986
3384
|
* #all stats
|
@@ -3417,11 +3815,11 @@ _(see [spec/unit/realtime/client_spec.rb](./spec/unit/realtime/client_spec.rb))_
|
|
3417
3815
|
* with log_level :none
|
3418
3816
|
* [silences all logging with a NilLogger](./spec/shared/client_initializer_behaviour.rb#L257)
|
3419
3817
|
* with custom logger and log_level
|
3420
|
-
* [uses the custom logger](./spec/shared/client_initializer_behaviour.rb#
|
3421
|
-
* [sets the custom log level](./spec/shared/client_initializer_behaviour.rb#
|
3818
|
+
* [uses the custom logger](./spec/shared/client_initializer_behaviour.rb#L267)
|
3819
|
+
* [sets the custom log level](./spec/shared/client_initializer_behaviour.rb#L271)
|
3422
3820
|
* delegators
|
3423
|
-
* [delegates :client_id to .auth](./spec/shared/client_initializer_behaviour.rb#
|
3424
|
-
* [delegates :auth_options to .auth](./spec/shared/client_initializer_behaviour.rb#
|
3821
|
+
* [delegates :client_id to .auth](./spec/shared/client_initializer_behaviour.rb#L285)
|
3822
|
+
* [delegates :auth_options to .auth](./spec/shared/client_initializer_behaviour.rb#L290)
|
3425
3823
|
* delegation to the REST Client
|
3426
3824
|
* [passes on the options to the initializer](./spec/unit/realtime/client_spec.rb#L15)
|
3427
3825
|
* for attribute
|
@@ -3429,6 +3827,9 @@ _(see [spec/unit/realtime/client_spec.rb](./spec/unit/realtime/client_spec.rb))_
|
|
3429
3827
|
* [#use_tls?](./spec/unit/realtime/client_spec.rb#L23)
|
3430
3828
|
* [#log_level](./spec/unit/realtime/client_spec.rb#L23)
|
3431
3829
|
* [#custom_host](./spec/unit/realtime/client_spec.rb#L23)
|
3830
|
+
* push
|
3831
|
+
* [#device is not supported and raises an exception](./spec/unit/realtime/client_spec.rb#L34)
|
3832
|
+
* [#push returns a Push object](./spec/unit/realtime/client_spec.rb#L38)
|
3432
3833
|
|
3433
3834
|
### Ably::Realtime::Connection
|
3434
3835
|
_(see [spec/unit/realtime/connection_spec.rb](./spec/unit/realtime/connection_spec.rb))_
|
@@ -3455,6 +3856,19 @@ _(see [spec/unit/realtime/presence_spec.rb](./spec/unit/realtime/presence_spec.r
|
|
3455
3856
|
* [with a non-matching action argument has no effect](./spec/unit/realtime/presence_spec.rb#L125)
|
3456
3857
|
* [with no block argument unsubscribes all blocks for the action argument](./spec/unit/realtime/presence_spec.rb#L131)
|
3457
3858
|
|
3859
|
+
### Ably::Realtime::Channel::PushChannel
|
3860
|
+
_(see [spec/unit/realtime/push_channel_spec.rb](./spec/unit/realtime/push_channel_spec.rb))_
|
3861
|
+
* [is constructed with a channel](./spec/unit/realtime/push_channel_spec.rb#L10)
|
3862
|
+
* [raises an exception if constructed with an invalid type](./spec/unit/realtime/push_channel_spec.rb#L14)
|
3863
|
+
* [exposes the channel as attribute #channel](./spec/unit/realtime/push_channel_spec.rb#L18)
|
3864
|
+
* [is available in the #push attribute of the channel](./spec/unit/realtime/push_channel_spec.rb#L22)
|
3865
|
+
* methods not implemented as push notifications
|
3866
|
+
* [#subscribe_device raises an unsupported exception](./spec/unit/realtime/push_channel_spec.rb#L31)
|
3867
|
+
* [#subscribe_client_id raises an unsupported exception](./spec/unit/realtime/push_channel_spec.rb#L31)
|
3868
|
+
* [#unsubscribe_device raises an unsupported exception](./spec/unit/realtime/push_channel_spec.rb#L31)
|
3869
|
+
* [#unsubscribe_client_id raises an unsupported exception](./spec/unit/realtime/push_channel_spec.rb#L31)
|
3870
|
+
* [#get_subscriptions raises an unsupported exception](./spec/unit/realtime/push_channel_spec.rb#L31)
|
3871
|
+
|
3458
3872
|
### Ably::Realtime
|
3459
3873
|
_(see [spec/unit/realtime/realtime_spec.rb](./spec/unit/realtime/realtime_spec.rb))_
|
3460
3874
|
* [constructor returns an Ably::Realtime::Client](./spec/unit/realtime/realtime_spec.rb#L6)
|
@@ -3505,27 +3919,32 @@ _(see [spec/unit/realtime/safe_deferrable_spec.rb](./spec/unit/realtime/safe_def
|
|
3505
3919
|
_(see [spec/unit/rest/channel_spec.rb](./spec/unit/rest/channel_spec.rb))_
|
3506
3920
|
* #initializer
|
3507
3921
|
* as UTF_8 string
|
3508
|
-
* [is permitted](./spec/unit/rest/channel_spec.rb#
|
3509
|
-
* [remains as UTF-8](./spec/unit/rest/channel_spec.rb#
|
3922
|
+
* [is permitted](./spec/unit/rest/channel_spec.rb#L23)
|
3923
|
+
* [remains as UTF-8](./spec/unit/rest/channel_spec.rb#L27)
|
3924
|
+
* as frozen UTF_8 string
|
3925
|
+
* [is permitted](./spec/unit/rest/channel_spec.rb#L36)
|
3926
|
+
* [remains as UTF-8](./spec/unit/rest/channel_spec.rb#L40)
|
3510
3927
|
* as SHIFT_JIS string
|
3511
|
-
* [gets converted to UTF-8](./spec/unit/rest/channel_spec.rb#
|
3512
|
-
* [is compatible with original encoding](./spec/unit/rest/channel_spec.rb#
|
3928
|
+
* [gets converted to UTF-8](./spec/unit/rest/channel_spec.rb#L48)
|
3929
|
+
* [is compatible with original encoding](./spec/unit/rest/channel_spec.rb#L52)
|
3513
3930
|
* as ASCII_8BIT string
|
3514
|
-
* [gets converted to UTF-8](./spec/unit/rest/channel_spec.rb#
|
3515
|
-
* [is compatible with original encoding](./spec/unit/rest/channel_spec.rb#
|
3931
|
+
* [gets converted to UTF-8](./spec/unit/rest/channel_spec.rb#L60)
|
3932
|
+
* [is compatible with original encoding](./spec/unit/rest/channel_spec.rb#L64)
|
3516
3933
|
* as Integer
|
3517
|
-
* [raises an argument error](./spec/unit/rest/channel_spec.rb#
|
3934
|
+
* [raises an argument error](./spec/unit/rest/channel_spec.rb#L72)
|
3518
3935
|
* as Nil
|
3519
|
-
* [raises an argument error](./spec/unit/rest/channel_spec.rb#
|
3936
|
+
* [raises an argument error](./spec/unit/rest/channel_spec.rb#L80)
|
3520
3937
|
* #publish name argument
|
3521
3938
|
* as UTF_8 string
|
3522
|
-
* [is permitted](./spec/unit/rest/channel_spec.rb#
|
3939
|
+
* [is permitted](./spec/unit/rest/channel_spec.rb#L92)
|
3940
|
+
* as frozen UTF_8 string
|
3941
|
+
* [is permitted](./spec/unit/rest/channel_spec.rb#L101)
|
3523
3942
|
* as SHIFT_JIS string
|
3524
|
-
* [is permitted](./spec/unit/rest/channel_spec.rb#
|
3943
|
+
* [is permitted](./spec/unit/rest/channel_spec.rb#L109)
|
3525
3944
|
* as ASCII_8BIT string
|
3526
|
-
* [is permitted](./spec/unit/rest/channel_spec.rb#
|
3945
|
+
* [is permitted](./spec/unit/rest/channel_spec.rb#L117)
|
3527
3946
|
* as Integer
|
3528
|
-
* [raises an argument error](./spec/unit/rest/channel_spec.rb#
|
3947
|
+
* [raises an argument error](./spec/unit/rest/channel_spec.rb#L125)
|
3529
3948
|
|
3530
3949
|
### Ably::Rest::Channels
|
3531
3950
|
_(see [spec/unit/rest/channels_spec.rb](./spec/unit/rest/channels_spec.rb))_
|
@@ -3604,24 +4023,47 @@ _(see [spec/unit/rest/client_spec.rb](./spec/unit/rest/client_spec.rb))_
|
|
3604
4023
|
* with log_level :none
|
3605
4024
|
* [silences all logging with a NilLogger](./spec/shared/client_initializer_behaviour.rb#L257)
|
3606
4025
|
* with custom logger and log_level
|
3607
|
-
* [uses the custom logger](./spec/shared/client_initializer_behaviour.rb#
|
3608
|
-
* [sets the custom log level](./spec/shared/client_initializer_behaviour.rb#
|
4026
|
+
* [uses the custom logger](./spec/shared/client_initializer_behaviour.rb#L267)
|
4027
|
+
* [sets the custom log level](./spec/shared/client_initializer_behaviour.rb#L271)
|
3609
4028
|
* delegators
|
3610
|
-
* [delegates :client_id to .auth](./spec/shared/client_initializer_behaviour.rb#
|
3611
|
-
* [delegates :auth_options to .auth](./spec/shared/client_initializer_behaviour.rb#
|
4029
|
+
* [delegates :client_id to .auth](./spec/shared/client_initializer_behaviour.rb#L285)
|
4030
|
+
* [delegates :auth_options to .auth](./spec/shared/client_initializer_behaviour.rb#L290)
|
3612
4031
|
* initializer options
|
3613
4032
|
* TLS
|
3614
4033
|
* disabled
|
3615
4034
|
* [fails for any operation with basic auth and attempting to send an API key over a non-secure connection (#RSA1)](./spec/unit/rest/client_spec.rb#L17)
|
4035
|
+
* fallback_retry_timeout (#RSC15f)
|
4036
|
+
* default
|
4037
|
+
* [is set to 10 minutes](./spec/unit/rest/client_spec.rb#L27)
|
4038
|
+
* when provided
|
4039
|
+
* [configures a new timeout](./spec/unit/rest/client_spec.rb#L35)
|
3616
4040
|
* :use_token_auth
|
3617
4041
|
* set to false
|
3618
4042
|
* with a key and :tls => false
|
3619
|
-
* [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#
|
4043
|
+
* [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#L46)
|
3620
4044
|
* without a key
|
3621
|
-
* [fails as a key is required if not using token auth](./spec/unit/rest/client_spec.rb#
|
4045
|
+
* [fails as a key is required if not using token auth](./spec/unit/rest/client_spec.rb#L54)
|
3622
4046
|
* set to true
|
3623
4047
|
* without a key or token
|
3624
|
-
* [fails as a key is required to issue tokens](./spec/unit/rest/client_spec.rb#
|
4048
|
+
* [fails as a key is required to issue tokens](./spec/unit/rest/client_spec.rb#L64)
|
4049
|
+
* request_id generation
|
4050
|
+
* [includes request_id in URL](./spec/unit/rest/client_spec.rb#L74)
|
4051
|
+
* push
|
4052
|
+
* [#device is not supported and raises an exception](./spec/unit/rest/client_spec.rb#L82)
|
4053
|
+
* [#push returns a Push object](./spec/unit/rest/client_spec.rb#L86)
|
4054
|
+
|
4055
|
+
### Ably::Rest::Channel::PushChannel
|
4056
|
+
_(see [spec/unit/rest/push_channel_spec.rb](./spec/unit/rest/push_channel_spec.rb))_
|
4057
|
+
* [is constructed with a channel](./spec/unit/rest/push_channel_spec.rb#L10)
|
4058
|
+
* [raises an exception if constructed with an invalid type](./spec/unit/rest/push_channel_spec.rb#L14)
|
4059
|
+
* [exposes the channel as attribute #channel](./spec/unit/rest/push_channel_spec.rb#L18)
|
4060
|
+
* [is available in the #push attribute of the channel](./spec/unit/rest/push_channel_spec.rb#L22)
|
4061
|
+
* methods not implemented as push notifications
|
4062
|
+
* [#subscribe_device raises an unsupported exception](./spec/unit/rest/push_channel_spec.rb#L31)
|
4063
|
+
* [#subscribe_client_id raises an unsupported exception](./spec/unit/rest/push_channel_spec.rb#L31)
|
4064
|
+
* [#unsubscribe_device raises an unsupported exception](./spec/unit/rest/push_channel_spec.rb#L31)
|
4065
|
+
* [#unsubscribe_client_id raises an unsupported exception](./spec/unit/rest/push_channel_spec.rb#L31)
|
4066
|
+
* [#get_subscriptions raises an unsupported exception](./spec/unit/rest/push_channel_spec.rb#L31)
|
3625
4067
|
|
3626
4068
|
### Ably::Rest
|
3627
4069
|
_(see [spec/unit/rest/rest_spec.rb](./spec/unit/rest/rest_spec.rb))_
|
@@ -3673,6 +4115,6 @@ _(see [spec/unit/util/pub_sub_spec.rb](./spec/unit/util/pub_sub_spec.rb))_
|
|
3673
4115
|
|
3674
4116
|
## Test summary
|
3675
4117
|
|
3676
|
-
* Passing tests:
|
3677
|
-
* Pending tests:
|
3678
|
-
* Failing tests:
|
4118
|
+
* Passing tests: 2045
|
4119
|
+
* Pending tests: 19
|
4120
|
+
* Failing tests: 2
|