ably 1.0.7 → 1.1.0
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/.editorconfig +14 -0
- data/.travis.yml +4 -4
- data/CHANGELOG.md +26 -3
- data/Rakefile +32 -0
- data/SPEC.md +920 -565
- data/ably.gemspec +9 -4
- data/lib/ably/auth.rb +28 -2
- data/lib/ably/exceptions.rb +8 -2
- data/lib/ably/models/channel_state_change.rb +1 -1
- data/lib/ably/models/connection_state_change.rb +1 -1
- data/lib/ably/models/device_details.rb +87 -0
- data/lib/ably/models/device_push_details.rb +86 -0
- data/lib/ably/models/error_info.rb +23 -2
- data/lib/ably/models/idiomatic_ruby_wrapper.rb +4 -4
- data/lib/ably/models/protocol_message.rb +32 -2
- data/lib/ably/models/push_channel_subscription.rb +89 -0
- data/lib/ably/modules/conversions.rb +1 -1
- data/lib/ably/modules/encodeable.rb +1 -1
- data/lib/ably/modules/exception_codes.rb +128 -0
- data/lib/ably/modules/model_common.rb +15 -2
- data/lib/ably/modules/state_machine.rb +1 -1
- data/lib/ably/realtime.rb +1 -0
- data/lib/ably/realtime/auth.rb +1 -1
- data/lib/ably/realtime/channel.rb +24 -102
- data/lib/ably/realtime/channel/channel_manager.rb +2 -6
- data/lib/ably/realtime/channel/channel_state_machine.rb +2 -2
- data/lib/ably/realtime/channel/publisher.rb +74 -0
- data/lib/ably/realtime/channel/push_channel.rb +62 -0
- data/lib/ably/realtime/client.rb +87 -0
- data/lib/ably/realtime/client/incoming_message_dispatcher.rb +6 -2
- data/lib/ably/realtime/client/outgoing_message_dispatcher.rb +1 -1
- data/lib/ably/realtime/connection.rb +8 -5
- data/lib/ably/realtime/connection/connection_manager.rb +7 -7
- data/lib/ably/realtime/connection/websocket_transport.rb +1 -1
- data/lib/ably/realtime/presence.rb +4 -4
- data/lib/ably/realtime/presence/members_map.rb +3 -3
- data/lib/ably/realtime/push.rb +40 -0
- data/lib/ably/realtime/push/admin.rb +61 -0
- data/lib/ably/realtime/push/channel_subscriptions.rb +108 -0
- data/lib/ably/realtime/push/device_registrations.rb +105 -0
- data/lib/ably/rest.rb +1 -0
- data/lib/ably/rest/channel.rb +33 -5
- data/lib/ably/rest/channel/push_channel.rb +62 -0
- data/lib/ably/rest/client.rb +137 -28
- data/lib/ably/rest/middleware/parse_message_pack.rb +17 -1
- data/lib/ably/rest/presence.rb +1 -0
- data/lib/ably/rest/push.rb +42 -0
- data/lib/ably/rest/push/admin.rb +54 -0
- data/lib/ably/rest/push/channel_subscriptions.rb +121 -0
- data/lib/ably/rest/push/device_registrations.rb +103 -0
- data/lib/ably/version.rb +7 -2
- data/spec/acceptance/realtime/auth_spec.rb +6 -8
- data/spec/acceptance/realtime/channel_spec.rb +166 -51
- data/spec/acceptance/realtime/client_spec.rb +149 -0
- data/spec/acceptance/realtime/connection_failures_spec.rb +1 -1
- data/spec/acceptance/realtime/connection_spec.rb +4 -4
- data/spec/acceptance/realtime/message_spec.rb +19 -17
- data/spec/acceptance/realtime/presence_spec.rb +5 -5
- data/spec/acceptance/realtime/push_admin_spec.rb +696 -0
- data/spec/acceptance/realtime/push_spec.rb +27 -0
- data/spec/acceptance/rest/auth_spec.rb +4 -3
- data/spec/acceptance/rest/base_spec.rb +2 -2
- data/spec/acceptance/rest/client_spec.rb +129 -10
- data/spec/acceptance/rest/message_spec.rb +175 -4
- data/spec/acceptance/rest/push_admin_spec.rb +896 -0
- data/spec/acceptance/rest/push_spec.rb +25 -0
- data/spec/acceptance/rest/time_spec.rb +1 -1
- data/spec/run_parallel_tests +33 -0
- data/spec/unit/logger_spec.rb +10 -3
- data/spec/unit/models/device_details_spec.rb +102 -0
- data/spec/unit/models/device_push_details_spec.rb +101 -0
- data/spec/unit/models/error_info_spec.rb +51 -3
- data/spec/unit/models/message_spec.rb +17 -2
- data/spec/unit/models/presence_message_spec.rb +1 -1
- data/spec/unit/models/push_channel_subscription_spec.rb +86 -0
- data/spec/unit/realtime/client_spec.rb +12 -0
- data/spec/unit/realtime/push_channel_spec.rb +36 -0
- data/spec/unit/rest/channel_spec.rb +8 -1
- data/spec/unit/rest/client_spec.rb +30 -0
- data/spec/unit/rest/push_channel_spec.rb +36 -0
- metadata +71 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 41a1cf12a01ccf1b9ecf3523790c45d77c08815d23d1cd3b23058dd456377a0b
|
4
|
+
data.tar.gz: e5174d825c354bc813819c3e0a0ab7341c46b8e04864ac24575c475cd773ad54
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8327568876690de6bbc5e95d3ce7759f7856b73d91e8726f5880291cb5a5579d962cd4b93b4d87b497d9e395a7971f515b926c2f54e220b1ba2667744bc891dd
|
7
|
+
data.tar.gz: 13752c5b6f79067275b192a55d14019ace0781eb061844248faf56b878d9afd78229396e82c11d171851f5570164921d9729e3ca1560c297e179e556ba87ed2e
|
data/.editorconfig
ADDED
@@ -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
|
data/.travis.yml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
sudo: false
|
2
2
|
env:
|
3
|
-
- RSPEC_RETRY=true PROTOCOL=json
|
4
|
-
- RSPEC_RETRY=true PROTOCOL=msgpack
|
3
|
+
- RSPEC_RETRY=true PARALLEL_TEST_PROCESSORS=4 PROTOCOL=json
|
4
|
+
- RSPEC_RETRY=true PARALLEL_TEST_PROCESSORS=4 PROTOCOL=msgpack
|
5
5
|
language: ruby
|
6
6
|
rvm:
|
7
7
|
- 1.9.3
|
@@ -9,8 +9,8 @@ rvm:
|
|
9
9
|
- 2.1.10
|
10
10
|
- 2.2.0
|
11
11
|
- 2.3.6
|
12
|
-
- 2.4.
|
13
|
-
script:
|
12
|
+
- 2.4.4
|
13
|
+
script: spec/run_parallel_tests
|
14
14
|
notifications:
|
15
15
|
slack:
|
16
16
|
secure: Xe8MwDcV2C8XLGk6O6Co31LpQiRSxsmS7Toy5vM7rHds5fnVRBNn5iX6Q5mXMdLOlnsMhjKLt7zl4fsBOZv+siQ+Us0omZSIYpXCYSCIj8nofReF0Lj8M4oa6lFSL5OuygO7PH+wLKTRxQURGZ6Pi1nHU+RE5izRmsewQHkhtY0=
|
data/CHANGELOG.md
CHANGED
@@ -1,8 +1,29 @@
|
|
1
1
|
# Change Log
|
2
2
|
|
3
|
-
## [v1.0
|
3
|
+
## [v1.1.0](https://github.com/ably/ably-ruby/tree/v1.1.0)
|
4
4
|
|
5
|
-
[Full Changelog](https://github.com/ably/ably-ruby/compare/v1.0.
|
5
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v1.0.7...v1.1.0)
|
6
|
+
|
7
|
+
**Fixed bugs:**
|
8
|
+
|
9
|
+
- MessagePack::UnknownExtTypeError: unexpected extension type [\#167](https://github.com/ably/ably-ruby/issues/167)
|
10
|
+
- Ably::Modules::StateMachine produces confusing error code [\#158](https://github.com/ably/ably-ruby/issues/158)
|
11
|
+
- Transition state failure [\#125](https://github.com/ably/ably-ruby/issues/125)
|
12
|
+
|
13
|
+
**Merged pull requests:**
|
14
|
+
|
15
|
+
- V1.1 release [\#173](https://github.com/ably/ably-ruby/pull/173) ([mattheworiordan](https://github.com/mattheworiordan))
|
16
|
+
- Rsc15f remember fallback [\#172](https://github.com/ably/ably-ruby/pull/172) ([mattheworiordan](https://github.com/mattheworiordan))
|
17
|
+
- Generate error codes [\#171](https://github.com/ably/ably-ruby/pull/171) ([mattheworiordan](https://github.com/mattheworiordan))
|
18
|
+
- Parallel tests [\#169](https://github.com/ably/ably-ruby/pull/169) ([mattheworiordan](https://github.com/mattheworiordan))
|
19
|
+
- Transient publishing for \#164 [\#166](https://github.com/ably/ably-ruby/pull/166) ([mattheworiordan](https://github.com/mattheworiordan))
|
20
|
+
- Idempotent publishing [\#165](https://github.com/ably/ably-ruby/pull/165) ([mattheworiordan](https://github.com/mattheworiordan))
|
21
|
+
- Release 1.0.7 [\#162](https://github.com/ably/ably-ruby/pull/162) ([funkyboy](https://github.com/funkyboy))
|
22
|
+
- Minor test fixes [\#123](https://github.com/ably/ably-ruby/pull/123) ([SimonWoolf](https://github.com/SimonWoolf))
|
23
|
+
- Push notifications [\#115](https://github.com/ably/ably-ruby/pull/115) ([mattheworiordan](https://github.com/mattheworiordan))
|
24
|
+
|
25
|
+
## [v1.0.7](https://github.com/ably/ably-ruby/tree/v1.0.7) (2018-06-18)
|
26
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v1.0.6...v1.0.7)
|
6
27
|
|
7
28
|
**Implemented enhancements:**
|
8
29
|
|
@@ -10,6 +31,7 @@
|
|
10
31
|
|
11
32
|
**Fixed bugs:**
|
12
33
|
|
34
|
+
- Is this sequence correct? [\#155](https://github.com/ably/ably-ruby/issues/155)
|
13
35
|
- Documentation for add\_request\_ids [\#152](https://github.com/ably/ably-ruby/issues/152)
|
14
36
|
|
15
37
|
**Merged pull requests:**
|
@@ -35,6 +57,7 @@
|
|
35
57
|
- Add request id fix for bulk publishes [\#154](https://github.com/ably/ably-ruby/pull/154) ([mattheworiordan](https://github.com/mattheworiordan))
|
36
58
|
- Fix race condition in EventMachine [\#153](https://github.com/ably/ably-ruby/pull/153) ([mattheworiordan](https://github.com/mattheworiordan))
|
37
59
|
- Add support for WebSocket native heartbeats [\#151](https://github.com/ably/ably-ruby/pull/151) ([mattheworiordan](https://github.com/mattheworiordan))
|
60
|
+
- Add .editorconfig for basic IDE configuration settings [\#150](https://github.com/ably/ably-ruby/pull/150) ([mattheworiordan](https://github.com/mattheworiordan))
|
38
61
|
- 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))
|
39
62
|
- Do not encode strings in-place [\#147](https://github.com/ably/ably-ruby/pull/147) ([mattheworiordan](https://github.com/mattheworiordan))
|
40
63
|
- Only resume if connection is fresh \(RTN15g\*\) [\#146](https://github.com/ably/ably-ruby/pull/146) ([mattheworiordan](https://github.com/mattheworiordan))
|
@@ -83,7 +106,7 @@
|
|
83
106
|
- Channel name encoding error for REST requests [\#119](https://github.com/ably/ably-ruby/pull/119) ([mattheworiordan](https://github.com/mattheworiordan))
|
84
107
|
|
85
108
|
## [v1.0.1](https://github.com/ably/ably-ruby/tree/v1.0.1) (2017-05-11)
|
86
|
-
[Full Changelog](https://github.com/ably/ably-ruby/compare/v1.0.
|
109
|
+
[Full Changelog](https://github.com/ably/ably-ruby/compare/v1.1.0-beta.push.1...v1.0.1)
|
87
110
|
|
88
111
|
## [v1.1.0-beta.push.1](https://github.com/ably/ably-ruby/tree/v1.1.0-beta.push.1) (2017-04-25)
|
89
112
|
[Full Changelog](https://github.com/ably/ably-ruby/compare/v1.0.0...v1.1.0-beta.push.1)
|
data/Rakefile
CHANGED
@@ -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
|
data/SPEC.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
# Ably Realtime & REST Client Library 1.0
|
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,99 +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
146
|
* when using JWT
|
147
147
|
* when using auth_url
|
148
148
|
* when credentials are valid
|
149
|
-
* [client successfully fetches a channel and publishes a message](./spec/acceptance/realtime/auth_spec.rb#
|
149
|
+
* [client successfully fetches a channel and publishes a message](./spec/acceptance/realtime/auth_spec.rb#L1044)
|
150
150
|
* when credentials are wrong
|
151
|
-
* [disconnected includes and invalid signature message](./spec/acceptance/realtime/auth_spec.rb#
|
151
|
+
* [disconnected includes and invalid signature message](./spec/acceptance/realtime/auth_spec.rb#L1057)
|
152
152
|
* when token is expired
|
153
|
-
* [receives a 40142 error from the server](./spec/acceptance/realtime/auth_spec.rb#
|
153
|
+
* [receives a 40142 error from the server](./spec/acceptance/realtime/auth_spec.rb#L1070)
|
154
154
|
* when using auth_callback
|
155
155
|
* when credentials are valid
|
156
|
-
* [authentication succeeds and client can post a message](./spec/acceptance/realtime/auth_spec.rb#
|
156
|
+
* [authentication succeeds and client can post a message](./spec/acceptance/realtime/auth_spec.rb#L1095)
|
157
157
|
* when credentials are invalid
|
158
|
-
* [authentication fails and reason for disconnection is invalid signature](./spec/acceptance/realtime/auth_spec.rb#
|
158
|
+
* [authentication fails and reason for disconnection is invalid signature](./spec/acceptance/realtime/auth_spec.rb#L1110)
|
159
159
|
* when the client is initialized with ClientOptions and the token is a JWT token
|
160
160
|
* when credentials are valid
|
161
|
-
* [posts successfully to a channel](./spec/acceptance/realtime/auth_spec.rb#
|
161
|
+
* [posts successfully to a channel](./spec/acceptance/realtime/auth_spec.rb#L1127)
|
162
162
|
* when credentials are invalid
|
163
|
-
* [fails with an invalid signature error](./spec/acceptance/realtime/auth_spec.rb#
|
163
|
+
* [fails with an invalid signature error](./spec/acceptance/realtime/auth_spec.rb#L1141)
|
164
164
|
* when JWT token expires
|
165
|
-
* [client disconnects, a new token is requested via auth_callback and the client gets reconnected](./spec/acceptance/realtime/auth_spec.rb#
|
165
|
+
* [client disconnects, a new token is requested via auth_callback and the client gets reconnected](./spec/acceptance/realtime/auth_spec.rb#L1168)
|
166
166
|
* and an AUTH procol message is received
|
167
|
-
* [client reauths correctly without going through a disconnection](./spec/acceptance/realtime/auth_spec.rb#
|
167
|
+
* [client reauths correctly without going through a disconnection](./spec/acceptance/realtime/auth_spec.rb#L1196)
|
168
168
|
* when the JWT token request includes a client_id
|
169
|
-
* [the client_id is the same that was specified in the auth_callback that generated the JWT token](./spec/acceptance/realtime/auth_spec.rb#
|
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
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#
|
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)
|
172
172
|
|
173
173
|
### Ably::Realtime::Channel#history
|
174
174
|
_(see [spec/acceptance/realtime/channel_history_spec.rb](./spec/acceptance/realtime/channel_history_spec.rb))_
|
@@ -183,8 +183,8 @@ _(see [spec/acceptance/realtime/channel_history_spec.rb](./spec/acceptance/realt
|
|
183
183
|
* [retrieves history forwards with pagination through :limit option](./spec/acceptance/realtime/channel_history_spec.rb#L94)
|
184
184
|
* [retrieves history backwards with pagination through :limit option](./spec/acceptance/realtime/channel_history_spec.rb#L103)
|
185
185
|
* in multiple ProtocolMessages
|
186
|
-
* [retrieves limited history forwards with pagination](./spec/acceptance/realtime/channel_history_spec.rb#L114)
|
187
|
-
* [retrieves limited history backwards with pagination](./spec/acceptance/realtime/channel_history_spec.rb#L125)
|
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)~~
|
188
188
|
* and REST history
|
189
189
|
* [return the same results with unique matching message IDs](./spec/acceptance/realtime/channel_history_spec.rb#L141)
|
190
190
|
* with option until_attach: true
|
@@ -198,277 +198,289 @@ _(see [spec/acceptance/realtime/channel_spec.rb](./spec/acceptance/realtime/chan
|
|
198
198
|
* using JSON protocol
|
199
199
|
* initialization
|
200
200
|
* with :auto_connect option set to false on connection
|
201
|
-
* [remains initialized when accessing a channel](./spec/acceptance/realtime/channel_spec.rb#
|
202
|
-
* [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)
|
203
203
|
* #attach
|
204
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/channel_spec.rb#
|
205
|
-
* [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)
|
206
206
|
* when initialized
|
207
|
-
* [emits attaching then attached events](./spec/acceptance/realtime/channel_spec.rb#
|
208
|
-
* [ignores subsequent #attach calls but calls the success callback if provided](./spec/acceptance/realtime/channel_spec.rb#
|
209
|
-
* [attaches to a channel](./spec/acceptance/realtime/channel_spec.rb#
|
210
|
-
* [attaches to a channel and calls the provided block (#RTL4d)](./spec/acceptance/realtime/channel_spec.rb#
|
211
|
-
* [sends an ATTACH and waits for an ATTACHED (#RTL4c)](./spec/acceptance/realtime/channel_spec.rb#
|
212
|
-
* [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)
|
213
213
|
* when the implicit channel attach fails
|
214
|
-
* [registers the listener anyway (#RTL7c)](./spec/acceptance/realtime/channel_spec.rb#
|
214
|
+
* [registers the listener anyway (#RTL7c)](./spec/acceptance/realtime/channel_spec.rb#L127)
|
215
215
|
* when an ATTACHED acknowledge is not received on the current connection
|
216
|
-
* [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)
|
217
217
|
* when state is :attached
|
218
|
-
* [does nothing (#RTL4a)](./spec/acceptance/realtime/channel_spec.rb#
|
218
|
+
* [does nothing (#RTL4a)](./spec/acceptance/realtime/channel_spec.rb#L196)
|
219
219
|
* when state is :failed
|
220
|
-
* [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)
|
221
221
|
* when state is :detaching
|
222
|
-
* [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)
|
223
223
|
* with many connections and many channels on each simultaneously
|
224
|
-
* [attaches all channels](./spec/acceptance/realtime/channel_spec.rb#
|
224
|
+
* [attaches all channels](./spec/acceptance/realtime/channel_spec.rb#L259)
|
225
225
|
* failure as a result of insufficient key permissions
|
226
|
-
* [emits failed event (#RTL4e)](./spec/acceptance/realtime/channel_spec.rb#
|
227
|
-
* [calls the errback of the returned Deferrable (#RTL4d)](./spec/acceptance/realtime/channel_spec.rb#
|
228
|
-
* [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)
|
229
229
|
* and subsequent authorisation with suitable permissions
|
230
|
-
* [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)
|
231
231
|
* with connection state
|
232
|
-
* [is initialized (#RTL4i)](./spec/acceptance/realtime/channel_spec.rb#
|
233
|
-
* [is connecting (#RTL4i)](./spec/acceptance/realtime/channel_spec.rb#
|
234
|
-
* [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)
|
235
235
|
* #detach
|
236
236
|
* when state is :attached
|
237
|
-
* [it detaches from a channel (#RTL5d)](./spec/acceptance/realtime/channel_spec.rb#
|
238
|
-
* [detaches from a channel and calls the provided block (#RTL5d, #RTL5e)](./spec/acceptance/realtime/channel_spec.rb#
|
239
|
-
* [emits :detaching then :detached events](./spec/acceptance/realtime/channel_spec.rb#
|
240
|
-
* [returns a SafeDeferrable that catches exceptions in callbacks and logs them](./spec/acceptance/realtime/channel_spec.rb#
|
241
|
-
* [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)
|
242
242
|
* and DETACHED message is not received within realtime request timeout
|
243
|
-
* [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)
|
244
244
|
* when state is :failed
|
245
|
-
* [fails the deferrable (#RTL5b)](./spec/acceptance/realtime/channel_spec.rb#
|
245
|
+
* [fails the deferrable (#RTL5b)](./spec/acceptance/realtime/channel_spec.rb#L439)
|
246
246
|
* when state is :attaching
|
247
|
-
* [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)
|
248
248
|
* when state is :detaching
|
249
|
-
* [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)
|
250
250
|
* when state is :suspended
|
251
|
-
* [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)
|
252
252
|
* when state is :initialized
|
253
|
-
* [does nothing as there is no channel to detach (#RTL5a)](./spec/acceptance/realtime/channel_spec.rb#
|
254
|
-
* [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)
|
255
255
|
* when state is :detached
|
256
|
-
* [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)
|
257
257
|
* when connection state is
|
258
258
|
* closing
|
259
|
-
* [fails the deferrable (#RTL5b)](./spec/acceptance/realtime/channel_spec.rb#
|
259
|
+
* [fails the deferrable (#RTL5b)](./spec/acceptance/realtime/channel_spec.rb#L541)
|
260
260
|
* failed and channel is failed
|
261
|
-
* [fails the deferrable (#RTL5b)](./spec/acceptance/realtime/channel_spec.rb#
|
261
|
+
* [fails the deferrable (#RTL5b)](./spec/acceptance/realtime/channel_spec.rb#L561)
|
262
262
|
* failed and channel is detached
|
263
|
-
* [fails the deferrable (#RTL5b)](./spec/acceptance/realtime/channel_spec.rb#
|
263
|
+
* [fails the deferrable (#RTL5b)](./spec/acceptance/realtime/channel_spec.rb#L583)
|
264
264
|
* initialized
|
265
|
-
* [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)
|
266
266
|
* connecting
|
267
|
-
* [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)
|
268
268
|
* disconnected
|
269
|
-
* [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)
|
270
270
|
* automatic channel recovery
|
271
271
|
* when an ATTACH request times out
|
272
|
-
* [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)
|
273
273
|
* if a subsequent ATTACHED is received on an ATTACHED channel
|
274
|
-
* [ignores the additional ATTACHED if resumed is true (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#
|
275
|
-
* [emits an UPDATE only when resumed is true (#RTL12)](./spec/acceptance/realtime/channel_spec.rb#
|
276
|
-
* [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)
|
277
277
|
* #publish
|
278
|
-
* when attached
|
279
|
-
* [publishes messages](./spec/acceptance/realtime/channel_spec.rb#
|
280
|
-
* when not
|
281
|
-
* [publishes
|
282
|
-
|
283
|
-
*
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
*
|
291
|
-
|
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)
|
292
305
|
* with name and data arguments
|
293
|
-
* [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)
|
294
307
|
* and additional attributes
|
295
|
-
* [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)
|
296
309
|
* and additional invalid attributes
|
297
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
310
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L944)
|
298
311
|
* with an array of Hash objects with :name and :data attributes
|
299
|
-
* [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)
|
300
313
|
* with an array of Message objects
|
301
|
-
* [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)
|
302
315
|
* nil attributes
|
303
316
|
* when name is nil
|
304
|
-
* [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)
|
305
318
|
* when data is nil
|
306
|
-
* [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)
|
307
320
|
* with neither name or data attributes
|
308
|
-
* [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)
|
309
322
|
* with two invalid message out of 12
|
310
323
|
* before client_id is known (validated)
|
311
|
-
* [calls the errback once](./spec/acceptance/realtime/channel_spec.rb#
|
324
|
+
* [calls the errback once](./spec/acceptance/realtime/channel_spec.rb#L1080)
|
312
325
|
* when client_id is known (validated)
|
313
|
-
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#
|
326
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L1100)
|
314
327
|
* only invalid messages
|
315
328
|
* before client_id is known (validated)
|
316
|
-
* [calls the errback once](./spec/acceptance/realtime/channel_spec.rb#
|
329
|
+
* [calls the errback once](./spec/acceptance/realtime/channel_spec.rb#L1119)
|
317
330
|
* when client_id is known (validated)
|
318
|
-
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#
|
331
|
+
* [raises an exception](./spec/acceptance/realtime/channel_spec.rb#L1138)
|
319
332
|
* with many many messages and many connections simultaneously
|
320
|
-
* [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)
|
321
336
|
* identified clients
|
322
337
|
* when authenticated with a wildcard client_id
|
323
338
|
* with a valid client_id in the message
|
324
|
-
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#
|
339
|
+
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1195)
|
325
340
|
* with a wildcard client_id in the message
|
326
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
341
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1207)
|
327
342
|
* with a non-String client_id in the message
|
328
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
343
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1214)
|
329
344
|
* with an empty client_id in the message
|
330
|
-
* [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)
|
331
346
|
* when authenticated with a Token string with an implicit client_id
|
332
347
|
* before the client is CONNECTED and the client's identity has been obtained
|
333
348
|
* with a valid client_id in the message
|
334
|
-
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#
|
349
|
+
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1241)
|
335
350
|
* with an invalid client_id in the message
|
336
|
-
* [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)
|
337
352
|
* with an empty client_id in the message
|
338
|
-
* [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)
|
339
354
|
* after the client is CONNECTED and the client's identity is known
|
340
355
|
* with a valid client_id in the message
|
341
|
-
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#
|
356
|
+
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1279)
|
342
357
|
* with an invalid client_id in the message
|
343
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
358
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1293)
|
344
359
|
* with an empty client_id in the message
|
345
|
-
* [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)
|
346
361
|
* when authenticated with a valid client_id
|
347
362
|
* with a valid client_id
|
348
|
-
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#
|
363
|
+
* [succeeds](./spec/acceptance/realtime/channel_spec.rb#L1324)
|
349
364
|
* with a wildcard client_id in the message
|
350
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
365
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1336)
|
351
366
|
* with an invalid client_id in the message
|
352
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
367
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1343)
|
353
368
|
* with an empty client_id in the message
|
354
|
-
* [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)
|
355
370
|
* when anonymous and no client_id
|
356
371
|
* with a client_id in the message
|
357
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
372
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1369)
|
358
373
|
* with a wildcard client_id in the message
|
359
|
-
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#
|
374
|
+
* [throws an exception](./spec/acceptance/realtime/channel_spec.rb#L1376)
|
360
375
|
* with an empty client_id in the message
|
361
|
-
* [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)
|
362
377
|
* #subscribe
|
363
378
|
* with an event argument
|
364
|
-
* [subscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#
|
379
|
+
* [subscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L1399)
|
365
380
|
* before attach
|
366
|
-
* [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)
|
367
382
|
* with no event argument
|
368
|
-
* [subscribes for all events](./spec/acceptance/realtime/channel_spec.rb#
|
383
|
+
* [subscribes for all events](./spec/acceptance/realtime/channel_spec.rb#L1423)
|
369
384
|
* with a callback that raises an exception
|
370
|
-
* [logs the error and continues](./spec/acceptance/realtime/channel_spec.rb#
|
385
|
+
* [logs the error and continues](./spec/acceptance/realtime/channel_spec.rb#L1435)
|
371
386
|
* many times with different event names
|
372
|
-
* [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)
|
373
388
|
* #unsubscribe
|
374
389
|
* with an event argument
|
375
|
-
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#
|
390
|
+
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L1477)
|
376
391
|
* with no event argument
|
377
|
-
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#
|
392
|
+
* [unsubscribes for a single event](./spec/acceptance/realtime/channel_spec.rb#L1490)
|
378
393
|
* when connection state changes to
|
379
394
|
* :failed
|
380
395
|
* an :attaching channel
|
381
|
-
* [transitions state to :failed (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#
|
396
|
+
* [transitions state to :failed (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#L1513)
|
382
397
|
* an :attached channel
|
383
|
-
* [transitions state to :failed (#RTL3a)](./spec/acceptance/realtime/channel_spec.rb#
|
384
|
-
* [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)
|
385
400
|
* a :detached channel
|
386
|
-
* [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)
|
387
402
|
* a :failed channel
|
388
|
-
* [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)
|
389
404
|
* a channel ATTACH request
|
390
|
-
* [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#
|
405
|
+
* [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#L1595)
|
391
406
|
* :closed
|
392
407
|
* an :attached channel
|
393
|
-
* [transitions state to :detached (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#
|
408
|
+
* [transitions state to :detached (#RTL3b)](./spec/acceptance/realtime/channel_spec.rb#L1611)
|
394
409
|
* an :attaching channel (#RTL3b)
|
395
|
-
* [transitions state to :detached](./spec/acceptance/realtime/channel_spec.rb#
|
410
|
+
* [transitions state to :detached](./spec/acceptance/realtime/channel_spec.rb#L1622)
|
396
411
|
* a :detached channel
|
397
|
-
* [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)
|
398
413
|
* a :failed channel
|
399
|
-
* [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)
|
400
415
|
* a channel ATTACH request when connection CLOSED
|
401
|
-
* [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#
|
416
|
+
* [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#L1677)
|
402
417
|
* a channel ATTACH request when connection CLOSING
|
403
|
-
* [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#
|
418
|
+
* [fails the deferrable (#RTL4b)](./spec/acceptance/realtime/channel_spec.rb#L1691)
|
404
419
|
* :suspended
|
405
420
|
* an :attaching channel
|
406
|
-
* [transitions state to :suspended (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#
|
421
|
+
* [transitions state to :suspended (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#L1707)
|
407
422
|
* an :attached channel
|
408
|
-
* [transitions state to :suspended (#RTL3c)](./spec/acceptance/realtime/channel_spec.rb#
|
409
|
-
* [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)
|
410
425
|
* a :detached channel
|
411
|
-
* [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)
|
412
427
|
* a :failed channel
|
413
|
-
* [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)
|
414
429
|
* a channel ATTACH request when connection SUSPENDED (#RTL4b)
|
415
|
-
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#
|
430
|
+
* [fails the deferrable](./spec/acceptance/realtime/channel_spec.rb#L1786)
|
416
431
|
* :connected
|
417
432
|
* a :suspended channel
|
418
|
-
* [is automatically reattached (#RTL3d)](./spec/acceptance/realtime/channel_spec.rb#
|
433
|
+
* [is automatically reattached (#RTL3d)](./spec/acceptance/realtime/channel_spec.rb#L1802)
|
419
434
|
* when re-attach attempt fails
|
420
|
-
* [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)
|
421
436
|
* :disconnected
|
422
437
|
* with an initialized channel
|
423
|
-
* [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)
|
424
439
|
* with an attaching channel
|
425
|
-
* [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)
|
426
441
|
* with an attached channel
|
427
|
-
* [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)
|
428
443
|
* with a detached channel
|
429
|
-
* [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)
|
430
445
|
* with a failed channel
|
431
|
-
* [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)
|
432
447
|
* #presence
|
433
|
-
* [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)
|
434
449
|
* channel state change
|
435
|
-
* [emits a ChannelStateChange object](./spec/acceptance/realtime/channel_spec.rb#
|
450
|
+
* [emits a ChannelStateChange object](./spec/acceptance/realtime/channel_spec.rb#L1929)
|
436
451
|
* ChannelStateChange object
|
437
|
-
* [has current state](./spec/acceptance/realtime/channel_spec.rb#
|
438
|
-
* [has a previous state](./spec/acceptance/realtime/channel_spec.rb#
|
439
|
-
* [has the event that generated the state change (#TA5)](./spec/acceptance/realtime/channel_spec.rb#
|
440
|
-
* [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)
|
441
456
|
* on failure
|
442
|
-
* [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)
|
443
458
|
* #resume (#RTL2f)
|
444
|
-
* [is false when a channel first attaches](./spec/acceptance/realtime/channel_spec.rb#
|
445
|
-
* [is true when a connection is recovered and the channel is attached](./spec/acceptance/realtime/channel_spec.rb#
|
446
|
-
* [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)
|
447
462
|
* when a resume fails
|
448
|
-
* [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)
|
449
464
|
* moves to
|
450
465
|
* suspended
|
451
|
-
* [all queued messages fail with NACK (#RTL11)](./spec/acceptance/realtime/channel_spec.rb#
|
452
|
-
* [all published messages awaiting an ACK do nothing (#RTL11a)](./spec/acceptance/realtime/channel_spec.rb#
|
453
|
-
* detached
|
454
|
-
* [all queued messages fail with NACK (#RTL11)](./spec/acceptance/realtime/channel_spec.rb#L1958)
|
455
|
-
* [all published messages awaiting an ACK do nothing (#RTL11a)](./spec/acceptance/realtime/channel_spec.rb#L1981)
|
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)
|
456
468
|
* failed
|
457
|
-
* [all queued messages fail with NACK (#RTL11)](./spec/acceptance/realtime/channel_spec.rb#
|
458
|
-
* [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)
|
459
471
|
* when it receives a server-initiated DETACHED (#RTL13)
|
460
472
|
* and channel is initialized (#RTL13)
|
461
|
-
* [does nothing](./spec/acceptance/realtime/channel_spec.rb#
|
473
|
+
* [does nothing](./spec/acceptance/realtime/channel_spec.rb#L2130)
|
462
474
|
* and channel is failed
|
463
|
-
* [does nothing (#RTL13)](./spec/acceptance/realtime/channel_spec.rb#
|
475
|
+
* [does nothing (#RTL13)](./spec/acceptance/realtime/channel_spec.rb#L2151)
|
464
476
|
* and channel is attached
|
465
|
-
* [reattaches immediately (#RTL13a)](./spec/acceptance/realtime/channel_spec.rb#
|
477
|
+
* [reattaches immediately (#RTL13a)](./spec/acceptance/realtime/channel_spec.rb#L2167)
|
466
478
|
* and channel is suspended
|
467
|
-
* [reattaches immediately (#RTL13a)](./spec/acceptance/realtime/channel_spec.rb#
|
479
|
+
* [reattaches immediately (#RTL13a)](./spec/acceptance/realtime/channel_spec.rb#L2183)
|
468
480
|
* and channel is attaching
|
469
|
-
* [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)
|
470
482
|
* when it receives an ERROR ProtocolMessage
|
471
|
-
* [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)
|
472
484
|
|
473
485
|
### Ably::Realtime::Channels
|
474
486
|
_(see [spec/acceptance/realtime/channels_spec.rb](./spec/acceptance/realtime/channels_spec.rb))_
|
@@ -495,58 +507,75 @@ _(see [spec/acceptance/realtime/client_spec.rb](./spec/acceptance/realtime/clien
|
|
495
507
|
* using JSON protocol
|
496
508
|
* initialization
|
497
509
|
* basic auth
|
498
|
-
* [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)
|
499
513
|
* :tls option
|
500
514
|
* set to false to force a plain-text connection
|
501
|
-
* [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)
|
502
516
|
* token auth
|
503
517
|
* with TLS enabled
|
504
518
|
* and a pre-generated Token provided with the :token option
|
505
|
-
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#
|
519
|
+
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#L69)
|
506
520
|
* with valid :key and :use_token_auth option set to true
|
507
|
-
* [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)
|
508
522
|
* with client_id
|
509
|
-
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#
|
523
|
+
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#L95)
|
510
524
|
* with TLS disabled
|
511
525
|
* and a pre-generated Token provided with the :token option
|
512
|
-
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#
|
526
|
+
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#L69)
|
513
527
|
* with valid :key and :use_token_auth option set to true
|
514
|
-
* [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)
|
515
529
|
* with client_id
|
516
|
-
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#
|
530
|
+
* [connects using token auth](./spec/acceptance/realtime/client_spec.rb#L95)
|
517
531
|
* with a Proc for the :auth_callback option
|
518
|
-
* [calls the Proc](./spec/acceptance/realtime/client_spec.rb#
|
519
|
-
* [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)
|
520
534
|
* when the returned token has a client_id
|
521
|
-
* [sets Auth#client_id to the new token's client_id immediately when connecting](./spec/acceptance/realtime/client_spec.rb#
|
522
|
-
* [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)
|
523
537
|
* with a wildcard client_id token
|
524
538
|
* and an explicit client_id in ClientOptions
|
525
|
-
* [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)
|
526
540
|
* and client_id omitted in ClientOptions
|
527
|
-
* [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)
|
528
542
|
* with an invalid wildcard "*" :client_id
|
529
|
-
* [raises an exception](./spec/acceptance/realtime/client_spec.rb#
|
543
|
+
* [raises an exception](./spec/acceptance/realtime/client_spec.rb#L193)
|
530
544
|
* realtime connection settings
|
531
545
|
* defaults
|
532
|
-
* [disconnected_retry_timeout is 15s](./spec/acceptance/realtime/client_spec.rb#
|
533
|
-
* [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)
|
534
548
|
* overriden in ClientOptions
|
535
|
-
* [disconnected_retry_timeout is updated](./spec/acceptance/realtime/client_spec.rb#
|
536
|
-
* [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)
|
537
551
|
* #connection
|
538
|
-
* [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)
|
539
553
|
* #channels
|
540
|
-
* [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)
|
541
555
|
* #auth
|
542
|
-
* [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)
|
543
557
|
* #request (#RSC19*)
|
544
558
|
* get
|
545
|
-
* [returns an HttpPaginatedResponse object](./spec/acceptance/realtime/client_spec.rb#
|
559
|
+
* [returns an HttpPaginatedResponse object](./spec/acceptance/realtime/client_spec.rb#L254)
|
546
560
|
* 404 request to invalid URL
|
547
|
-
* [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)
|
548
562
|
* paged results
|
549
|
-
* [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)
|
550
579
|
|
551
580
|
### Ably::Realtime::Connection failures
|
552
581
|
_(see [spec/acceptance/realtime/connection_failures_spec.rb](./spec/acceptance/realtime/connection_failures_spec.rb))_
|
@@ -911,13 +940,13 @@ _(see [spec/acceptance/realtime/message_spec.rb](./spec/acceptance/realtime/mess
|
|
911
940
|
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/message_spec.rb#L108)
|
912
941
|
* with unsupported data payload content type
|
913
942
|
* Integer
|
914
|
-
* [is raises an UnsupportedDataType
|
943
|
+
* [is raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/message_spec.rb#L119)
|
915
944
|
* Float
|
916
|
-
* [is raises an UnsupportedDataType
|
945
|
+
* [is raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/message_spec.rb#L128)
|
917
946
|
* Boolean
|
918
|
-
* [is raises an UnsupportedDataType
|
947
|
+
* [is raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/message_spec.rb#L137)
|
919
948
|
* False
|
920
|
-
* [is raises an UnsupportedDataType
|
949
|
+
* [is raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/message_spec.rb#L146)
|
921
950
|
* with ASCII_8BIT message name
|
922
951
|
* [is converted into UTF_8](./spec/acceptance/realtime/message_spec.rb#L155)
|
923
952
|
* when the message publisher has a client_id
|
@@ -945,113 +974,113 @@ _(see [spec/acceptance/realtime/message_spec.rb](./spec/acceptance/realtime/mess
|
|
945
974
|
* behaves like an Ably encrypter and decrypter
|
946
975
|
* with #publish and #subscribe
|
947
976
|
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L415)
|
948
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
977
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L435)
|
949
978
|
* item 1 with encrypted encoding cipher+aes-128-cbc/base64
|
950
979
|
* behaves like an Ably encrypter and decrypter
|
951
980
|
* with #publish and #subscribe
|
952
981
|
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L415)
|
953
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
982
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L435)
|
954
983
|
* item 2 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
|
955
984
|
* behaves like an Ably encrypter and decrypter
|
956
985
|
* with #publish and #subscribe
|
957
986
|
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L415)
|
958
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
987
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L435)
|
959
988
|
* item 3 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
|
960
989
|
* behaves like an Ably encrypter and decrypter
|
961
990
|
* with #publish and #subscribe
|
962
991
|
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L415)
|
963
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
992
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L435)
|
964
993
|
* with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d)
|
965
994
|
* item 0 with encrypted encoding utf-8/cipher+aes-256-cbc/base64
|
966
995
|
* behaves like an Ably encrypter and decrypter
|
967
996
|
* with #publish and #subscribe
|
968
997
|
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L415)
|
969
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
998
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L435)
|
970
999
|
* item 1 with encrypted encoding cipher+aes-256-cbc/base64
|
971
1000
|
* behaves like an Ably encrypter and decrypter
|
972
1001
|
* with #publish and #subscribe
|
973
1002
|
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L415)
|
974
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
1003
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L435)
|
975
1004
|
* item 2 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
|
976
1005
|
* behaves like an Ably encrypter and decrypter
|
977
1006
|
* with #publish and #subscribe
|
978
1007
|
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L415)
|
979
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
1008
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L435)
|
980
1009
|
* item 3 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
|
981
1010
|
* behaves like an Ably encrypter and decrypter
|
982
1011
|
* with #publish and #subscribe
|
983
1012
|
* [encrypts message automatically before they are pushed to the server (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L415)
|
984
|
-
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#
|
1013
|
+
* [sends and receives messages that are encrypted & decrypted by the Ably library (#RTL7d)](./spec/acceptance/realtime/message_spec.rb#L435)
|
985
1014
|
* with multiple sends from one client to another
|
986
|
-
* [encrypts and decrypts all messages](./spec/acceptance/realtime/message_spec.rb#
|
987
|
-
* [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)
|
988
1017
|
* subscribing with a different transport protocol
|
989
|
-
* [delivers a String ASCII-8BIT payload to the receiver](./spec/acceptance/realtime/message_spec.rb#
|
990
|
-
* [delivers a String UTF-8 payload to the receiver](./spec/acceptance/realtime/message_spec.rb#
|
991
|
-
* [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)
|
992
1021
|
* publishing on an unencrypted channel and subscribing on an encrypted channel with another client
|
993
|
-
* [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)
|
994
1023
|
* publishing on an encrypted channel and subscribing on an unencrypted channel with another client
|
995
|
-
* [delivers the message but still encrypted with a value in the #encoding attribute (#RTL7e)](./spec/acceptance/realtime/message_spec.rb#
|
996
|
-
* [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)
|
997
1026
|
* publishing on an encrypted channel and subscribing with a different algorithm on another client
|
998
|
-
* [delivers the message but still encrypted with the cipher detials in the #encoding attribute (#RTL7e)](./spec/acceptance/realtime/message_spec.rb#
|
999
|
-
* [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)
|
1000
1029
|
* publishing on an encrypted channel and subscribing with a different key on another client
|
1001
|
-
* [delivers the message but still encrypted with the cipher details in the #encoding attribute](./spec/acceptance/realtime/message_spec.rb#
|
1002
|
-
* [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)
|
1003
1032
|
* when message is published, the connection disconnects before the ACK is received, and the connection is resumed
|
1004
|
-
* [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)
|
1005
1034
|
* when message is published, the connection disconnects before the ACK is received
|
1006
1035
|
* the connection is not resumed
|
1007
|
-
* [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)
|
1008
1037
|
* the connection becomes suspended
|
1009
|
-
* [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)
|
1010
1039
|
* the connection becomes failed
|
1011
|
-
* [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)
|
1012
1041
|
* message encoding interoperability
|
1013
1042
|
* over a JSON transport
|
1014
1043
|
* when decoding string
|
1015
|
-
* [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)
|
1016
1045
|
* when encoding string
|
1017
|
-
* [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)
|
1018
1047
|
* when decoding string
|
1019
|
-
* [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)
|
1020
1049
|
* when encoding string
|
1021
|
-
* [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)
|
1022
1051
|
* when decoding jsonObject
|
1023
|
-
* [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)
|
1024
1053
|
* when encoding jsonObject
|
1025
|
-
* [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)
|
1026
1055
|
* when decoding jsonArray
|
1027
|
-
* [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)
|
1028
1057
|
* when encoding jsonArray
|
1029
|
-
* [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)
|
1030
1059
|
* when decoding binary
|
1031
|
-
* [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)
|
1032
1061
|
* when encoding binary
|
1033
|
-
* [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)
|
1034
1063
|
* over a MsgPack transport
|
1035
1064
|
* when publishing a string using JSON protocol
|
1036
|
-
* [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)
|
1037
1066
|
* when retrieving a string using JSON protocol
|
1038
|
-
* [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)
|
1039
1068
|
* when publishing a string using JSON protocol
|
1040
|
-
* [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)
|
1041
1070
|
* when retrieving a string using JSON protocol
|
1042
|
-
* [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)
|
1043
1072
|
* when publishing a jsonObject using JSON protocol
|
1044
|
-
* [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)
|
1045
1074
|
* when retrieving a jsonObject using JSON protocol
|
1046
|
-
* [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)
|
1047
1076
|
* when publishing a jsonArray using JSON protocol
|
1048
|
-
* [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)
|
1049
1078
|
* when retrieving a jsonArray using JSON protocol
|
1050
|
-
* [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)
|
1051
1080
|
* when publishing a binary using JSON protocol
|
1052
|
-
* [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)
|
1053
1082
|
* when retrieving a binary using JSON protocol
|
1054
|
-
* [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)
|
1055
1084
|
|
1056
1085
|
### Ably::Realtime::Presence history
|
1057
1086
|
_(see [spec/acceptance/realtime/presence_history_spec.rb](./spec/acceptance/realtime/presence_history_spec.rb))_
|
@@ -1130,13 +1159,13 @@ _(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/pre
|
|
1130
1159
|
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L239)
|
1131
1160
|
* with unsupported data payload content type
|
1132
1161
|
* Integer
|
1133
|
-
* [raises an UnsupportedDataType
|
1162
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L259)
|
1134
1163
|
* Float
|
1135
|
-
* [raises an UnsupportedDataType
|
1164
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L268)
|
1136
1165
|
* Boolean
|
1137
|
-
* [raises an UnsupportedDataType
|
1166
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L277)
|
1138
1167
|
* False
|
1139
|
-
* [raises an UnsupportedDataType
|
1168
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L286)
|
1140
1169
|
* if connection fails before success
|
1141
1170
|
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L331)
|
1142
1171
|
* #update
|
@@ -1175,13 +1204,13 @@ _(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/pre
|
|
1175
1204
|
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L239)
|
1176
1205
|
* with unsupported data payload content type
|
1177
1206
|
* Integer
|
1178
|
-
* [raises an UnsupportedDataType
|
1207
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L259)
|
1179
1208
|
* Float
|
1180
|
-
* [raises an UnsupportedDataType
|
1209
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L268)
|
1181
1210
|
* Boolean
|
1182
|
-
* [raises an UnsupportedDataType
|
1211
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L277)
|
1183
1212
|
* False
|
1184
|
-
* [raises an UnsupportedDataType
|
1213
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L286)
|
1185
1214
|
* if connection fails before success
|
1186
1215
|
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L331)
|
1187
1216
|
* #leave
|
@@ -1211,13 +1240,13 @@ _(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/pre
|
|
1211
1240
|
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L239)
|
1212
1241
|
* with unsupported data payload content type
|
1213
1242
|
* Integer
|
1214
|
-
* [raises an UnsupportedDataType
|
1243
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L259)
|
1215
1244
|
* Float
|
1216
|
-
* [raises an UnsupportedDataType
|
1245
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L268)
|
1217
1246
|
* Boolean
|
1218
|
-
* [raises an UnsupportedDataType
|
1247
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L277)
|
1219
1248
|
* False
|
1220
|
-
* [raises an UnsupportedDataType
|
1249
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L286)
|
1221
1250
|
* if connection fails before success
|
1222
1251
|
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L331)
|
1223
1252
|
* :left event
|
@@ -1262,13 +1291,13 @@ _(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/pre
|
|
1262
1291
|
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L239)
|
1263
1292
|
* with unsupported data payload content type
|
1264
1293
|
* Integer
|
1265
|
-
* [raises an UnsupportedDataType
|
1294
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L259)
|
1266
1295
|
* Float
|
1267
|
-
* [raises an UnsupportedDataType
|
1296
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L268)
|
1268
1297
|
* Boolean
|
1269
|
-
* [raises an UnsupportedDataType
|
1298
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L277)
|
1270
1299
|
* False
|
1271
|
-
* [raises an UnsupportedDataType
|
1300
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L286)
|
1272
1301
|
* if connection fails before success
|
1273
1302
|
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L331)
|
1274
1303
|
* it should behave like a presence on behalf of another client method
|
@@ -1336,13 +1365,13 @@ _(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/pre
|
|
1336
1365
|
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L239)
|
1337
1366
|
* with unsupported data payload content type
|
1338
1367
|
* Integer
|
1339
|
-
* [raises an UnsupportedDataType
|
1368
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L259)
|
1340
1369
|
* Float
|
1341
|
-
* [raises an UnsupportedDataType
|
1370
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L268)
|
1342
1371
|
* Boolean
|
1343
|
-
* [raises an UnsupportedDataType
|
1372
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L277)
|
1344
1373
|
* False
|
1345
|
-
* [raises an UnsupportedDataType
|
1374
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L286)
|
1346
1375
|
* if connection fails before success
|
1347
1376
|
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L331)
|
1348
1377
|
* it should behave like a presence on behalf of another client method
|
@@ -1416,13 +1445,13 @@ _(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/pre
|
|
1416
1445
|
* [is encoded and decoded to the same Array](./spec/acceptance/realtime/presence_spec.rb#L239)
|
1417
1446
|
* with unsupported data payload content type
|
1418
1447
|
* Integer
|
1419
|
-
* [raises an UnsupportedDataType
|
1448
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L259)
|
1420
1449
|
* Float
|
1421
|
-
* [raises an UnsupportedDataType
|
1450
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L268)
|
1422
1451
|
* Boolean
|
1423
|
-
* [raises an UnsupportedDataType
|
1452
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L277)
|
1424
1453
|
* False
|
1425
|
-
* [raises an UnsupportedDataType
|
1454
|
+
* [raises an UnsupportedDataType 40013 exception](./spec/acceptance/realtime/presence_spec.rb#L286)
|
1426
1455
|
* if connection fails before success
|
1427
1456
|
* [calls the Deferrable errback if channel is detached](./spec/acceptance/realtime/presence_spec.rb#L331)
|
1428
1457
|
* it should behave like a presence on behalf of another client method
|
@@ -1554,6 +1583,73 @@ _(see [spec/acceptance/realtime/presence_spec.rb](./spec/acceptance/realtime/pre
|
|
1554
1583
|
* channel transitions to the SUSPENDED state
|
1555
1584
|
* [maintains the PresenceMap and only publishes presence event changes since the last attached state (#RTP5f)](./spec/acceptance/realtime/presence_spec.rb#L2762)
|
1556
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)
|
1652
|
+
|
1557
1653
|
### Ably::Realtime::Client#stats
|
1558
1654
|
_(see [spec/acceptance/realtime/stats_spec.rb](./spec/acceptance/realtime/stats_spec.rb))_
|
1559
1655
|
* using JSON protocol
|
@@ -1677,111 +1773,111 @@ _(see [spec/acceptance/rest/auth_spec.rb](./spec/acceptance/rest/auth_spec.rb))_
|
|
1677
1773
|
* [requests a new token if token is expired](./spec/acceptance/rest/auth_spec.rb#L743)
|
1678
1774
|
* [issues a new token every time #authorize is called](./spec/acceptance/rest/auth_spec.rb#L749)
|
1679
1775
|
* with a lambda for the :auth_callback option
|
1680
|
-
* [calls the lambda](./spec/acceptance/rest/auth_spec.rb#
|
1681
|
-
* [uses the token request returned from the callback when requesting a new token](./spec/acceptance/rest/auth_spec.rb#
|
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)
|
1682
1778
|
* for every subsequent #request_token
|
1683
1779
|
* without a :auth_callback lambda
|
1684
|
-
* [calls the originally provided block](./spec/acceptance/rest/auth_spec.rb#
|
1780
|
+
* [calls the originally provided block](./spec/acceptance/rest/auth_spec.rb#L787)
|
1685
1781
|
* with a provided block
|
1686
|
-
* [does not call the originally provided lambda and calls the new #request_token :auth_callback lambda](./spec/acceptance/rest/auth_spec.rb#
|
1782
|
+
* [does not call the originally provided lambda and calls the new #request_token :auth_callback lambda](./spec/acceptance/rest/auth_spec.rb#L794)
|
1687
1783
|
* with an explicit token string that expires
|
1688
1784
|
* and a lambda for the :auth_callback option to provide a means to renew the token
|
1689
|
-
* [calls the lambda once the token has expired and the new token is used](./spec/acceptance/rest/auth_spec.rb#
|
1785
|
+
* [calls the lambda once the token has expired and the new token is used](./spec/acceptance/rest/auth_spec.rb#L821)
|
1690
1786
|
* with an explicit ClientOptions client_id
|
1691
1787
|
* and an incompatible client_id in a TokenDetails object passed to the auth callback
|
1692
|
-
* [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)
|
1693
1789
|
* and an incompatible client_id in a TokenRequest object passed to the auth callback and raises an exception
|
1694
|
-
* [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)
|
1695
1791
|
* and a token string without any retrievable client_id
|
1696
|
-
* [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)
|
1697
1793
|
* #create_token_request
|
1698
|
-
* [returns a TokenRequest object](./spec/acceptance/rest/auth_spec.rb#
|
1699
|
-
* [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#
|
1700
|
-
* [uses the key name from the client](./spec/acceptance/rest/auth_spec.rb#
|
1701
|
-
* [specifies no TTL (#RSA5)](./spec/acceptance/rest/auth_spec.rb#
|
1702
|
-
* [specifies no capability (#RSA6)](./spec/acceptance/rest/auth_spec.rb#
|
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)
|
1703
1799
|
* with a :ttl option below the Token expiry buffer that ensures tokens are renewed 15s before they expire as they are considered expired
|
1704
|
-
* [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)
|
1705
1801
|
* the nonce
|
1706
|
-
* [is unique for every request](./spec/acceptance/rest/auth_spec.rb#
|
1707
|
-
* [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)
|
1708
1804
|
* with token param :ttl
|
1709
|
-
* [overrides default](./spec/acceptance/rest/auth_spec.rb#
|
1805
|
+
* [overrides default](./spec/acceptance/rest/auth_spec.rb#L920)
|
1710
1806
|
* with token param :nonce
|
1711
|
-
* [overrides default](./spec/acceptance/rest/auth_spec.rb#
|
1807
|
+
* [overrides default](./spec/acceptance/rest/auth_spec.rb#L920)
|
1712
1808
|
* with token param :client_id
|
1713
|
-
* [overrides default](./spec/acceptance/rest/auth_spec.rb#
|
1809
|
+
* [overrides default](./spec/acceptance/rest/auth_spec.rb#L920)
|
1714
1810
|
* when specifying capability
|
1715
|
-
* [overrides the default](./spec/acceptance/rest/auth_spec.rb#
|
1716
|
-
* [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)
|
1717
1813
|
* with additional invalid attributes
|
1718
|
-
* [are ignored](./spec/acceptance/rest/auth_spec.rb#
|
1814
|
+
* [are ignored](./spec/acceptance/rest/auth_spec.rb#L945)
|
1719
1815
|
* when required fields are missing
|
1720
|
-
* [should raise an exception if key secret is missing](./spec/acceptance/rest/auth_spec.rb#
|
1721
|
-
* [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)
|
1722
1818
|
* timestamp attribute
|
1723
|
-
* [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)
|
1724
1820
|
* with :query_time auth_option
|
1725
|
-
* [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)
|
1726
1822
|
* with :timestamp option
|
1727
|
-
* [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)
|
1728
1824
|
* signing
|
1729
|
-
* [generates a valid HMAC](./spec/acceptance/rest/auth_spec.rb#
|
1825
|
+
* [generates a valid HMAC](./spec/acceptance/rest/auth_spec.rb#L1011)
|
1730
1826
|
* lexicographic ordering of channels and operations
|
1731
|
-
* [HMAC is lexicographic ordered and thus the HMAC is identical](./spec/acceptance/rest/auth_spec.rb#
|
1732
|
-
* [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)
|
1733
1829
|
* using token authentication
|
1734
1830
|
* with :token option
|
1735
|
-
* [authenticates successfully using the provided :token](./spec/acceptance/rest/auth_spec.rb#
|
1736
|
-
* [disallows publishing on unspecified capability channels](./spec/acceptance/rest/auth_spec.rb#
|
1737
|
-
* [fails if timestamp is invalid](./spec/acceptance/rest/auth_spec.rb#
|
1738
|
-
* [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)
|
1739
1835
|
* and the token expires
|
1740
|
-
* [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)
|
1741
1837
|
* when implicit as a result of using :client_id
|
1742
1838
|
* and requests to the Ably server are mocked
|
1743
|
-
* [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)
|
1744
1840
|
* a token is created
|
1745
|
-
* [before a request is made](./spec/acceptance/rest/auth_spec.rb#
|
1746
|
-
* [when a message is published](./spec/acceptance/rest/auth_spec.rb#
|
1747
|
-
* [with capability and TTL defaults (#TK2a, #TK2b)](./spec/acceptance/rest/auth_spec.rb#
|
1748
|
-
* [#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)
|
1749
1845
|
* when token expires
|
1750
|
-
* [automatically renews the token (#RSA4b)](./spec/acceptance/rest/auth_spec.rb#
|
1751
|
-
* [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)
|
1752
1848
|
* when :client_id is provided in a token
|
1753
|
-
* [#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)
|
1754
1850
|
* #client_id_validated?
|
1755
1851
|
* when using basic auth
|
1756
|
-
* [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)
|
1757
1853
|
* when using a token auth string for a token with a client_id
|
1758
|
-
* [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)
|
1759
1855
|
* when using a token
|
1760
1856
|
* with a client_id
|
1761
|
-
* [is true](./spec/acceptance/rest/auth_spec.rb#
|
1857
|
+
* [is true](./spec/acceptance/rest/auth_spec.rb#L1275)
|
1762
1858
|
* with no client_id (anonymous)
|
1763
|
-
* [is true](./spec/acceptance/rest/auth_spec.rb#
|
1859
|
+
* [is true](./spec/acceptance/rest/auth_spec.rb#L1283)
|
1764
1860
|
* with a wildcard client_id (anonymous)
|
1765
|
-
* [is false](./spec/acceptance/rest/auth_spec.rb#
|
1861
|
+
* [is false](./spec/acceptance/rest/auth_spec.rb#L1291)
|
1766
1862
|
* when using a token request with a client_id
|
1767
|
-
* [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)
|
1768
1864
|
* after authentication
|
1769
|
-
* [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)
|
1770
1866
|
* when using a :key and basic auth
|
1771
|
-
* [#using_token_auth? is false](./spec/acceptance/rest/auth_spec.rb#
|
1772
|
-
* [#key attribute contains the key string](./spec/acceptance/rest/auth_spec.rb#
|
1773
|
-
* [#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)
|
1774
1870
|
* deprecated #authorise
|
1775
|
-
* [logs a deprecation warning (#RSA10l)](./spec/acceptance/rest/auth_spec.rb#
|
1776
|
-
* [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)
|
1777
1873
|
* when using JWT
|
1778
|
-
* [authenticates correctly using the JWT token generated by the echo server](./spec/acceptance/rest/auth_spec.rb#
|
1874
|
+
* [authenticates correctly using the JWT token generated by the echo server](./spec/acceptance/rest/auth_spec.rb#L1349)
|
1779
1875
|
* when the JWT embeds an Ably token
|
1780
|
-
* [authenticates correctly using the embedded token](./spec/acceptance/rest/auth_spec.rb#
|
1876
|
+
* [authenticates correctly using the embedded token](./spec/acceptance/rest/auth_spec.rb#L1356)
|
1781
1877
|
* and the requested token is encrypted
|
1782
|
-
* [authenticates correctly using the embedded token](./spec/acceptance/rest/auth_spec.rb#
|
1878
|
+
* [authenticates correctly using the embedded token](./spec/acceptance/rest/auth_spec.rb#L1363)
|
1783
1879
|
* when the token requested is returned with application/jwt content type
|
1784
|
-
* [authenticates correctly and pulls stats](./spec/acceptance/rest/auth_spec.rb#
|
1880
|
+
* [authenticates correctly and pulls stats](./spec/acceptance/rest/auth_spec.rb#L1374)
|
1785
1881
|
|
1786
1882
|
### Ably::Rest
|
1787
1883
|
_(see [spec/acceptance/rest/base_spec.rb](./spec/acceptance/rest/base_spec.rb))_
|
@@ -1924,162 +2020,168 @@ _(see [spec/acceptance/rest/client_spec.rb](./spec/acceptance/rest/client_spec.r
|
|
1924
2020
|
* #initialize
|
1925
2021
|
* with only an API key
|
1926
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)
|
1927
2025
|
* with an explicit string :token
|
1928
|
-
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#
|
2026
|
+
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#L46)
|
1929
2027
|
* with :use_token_auth set to true
|
1930
|
-
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#
|
2028
|
+
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#L54)
|
1931
2029
|
* with a :client_id configured
|
1932
|
-
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#
|
2030
|
+
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#L62)
|
1933
2031
|
* with a non string :client_id
|
1934
|
-
* [raises an ArgumentError](./spec/acceptance/rest/client_spec.rb#
|
2032
|
+
* [raises an ArgumentError](./spec/acceptance/rest/client_spec.rb#L70)
|
1935
2033
|
* with an invalid wildcard "*" :client_id
|
1936
|
-
* [raises an exception](./spec/acceptance/rest/client_spec.rb#
|
2034
|
+
* [raises an exception](./spec/acceptance/rest/client_spec.rb#L76)
|
1937
2035
|
* with an :auth_callback lambda
|
1938
|
-
* [calls the auth lambda to get a new token](./spec/acceptance/rest/client_spec.rb#
|
1939
|
-
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#
|
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)
|
1940
2038
|
* with :default_token_params
|
1941
|
-
* [overides the default token params (#TO3j11)](./spec/acceptance/rest/client_spec.rb#
|
2039
|
+
* [overides the default token params (#TO3j11)](./spec/acceptance/rest/client_spec.rb#L103)
|
1942
2040
|
* with an :auth_callback lambda (clientId provided in library options instead of as a token_request param)
|
1943
|
-
* [correctly sets the clientId on the token](./spec/acceptance/rest/client_spec.rb#
|
2041
|
+
* [correctly sets the clientId on the token](./spec/acceptance/rest/client_spec.rb#L113)
|
1944
2042
|
* with an auth URL
|
1945
|
-
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#
|
2043
|
+
* [uses token authentication](./spec/acceptance/rest/client_spec.rb#L123)
|
1946
2044
|
* before any REST request
|
1947
|
-
* [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)
|
1948
2046
|
* auth headers
|
1949
2047
|
* with basic auth
|
1950
|
-
* [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)
|
1951
2049
|
* with token auth
|
1952
2050
|
* without specifying protocol
|
1953
|
-
* [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)
|
1954
2052
|
* when setting constructor ClientOption :tls to false
|
1955
|
-
* [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)
|
1956
2054
|
* using tokens
|
1957
2055
|
* when expired
|
1958
|
-
* [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)
|
1959
2057
|
* with a different client_id in the subsequent token
|
1960
|
-
* [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)
|
1961
2059
|
* when token has not expired
|
1962
|
-
* [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)
|
1963
2061
|
* connection transport
|
1964
2062
|
* defaults
|
1965
2063
|
* for default host
|
1966
|
-
* [is configured to timeout connection opening in 4 seconds](./spec/acceptance/rest/client_spec.rb#
|
1967
|
-
* [is configured to timeout connection requests in 10 seconds](./spec/acceptance/rest/client_spec.rb#
|
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)
|
1968
2066
|
* for the fallback hosts
|
1969
|
-
* [is configured to timeout connection opening in 4 seconds](./spec/acceptance/rest/client_spec.rb#
|
1970
|
-
* [is configured to timeout connection requests in 10 seconds](./spec/acceptance/rest/client_spec.rb#
|
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)
|
1971
2069
|
* with custom http_open_timeout and http_request_timeout options
|
1972
2070
|
* for default host
|
1973
|
-
* [is configured to use custom open timeout](./spec/acceptance/rest/client_spec.rb#
|
1974
|
-
* [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)
|
1975
2073
|
* for the fallback hosts
|
1976
|
-
* [is configured to timeout connection opening in 4 seconds](./spec/acceptance/rest/client_spec.rb#
|
1977
|
-
* [is configured to timeout connection requests in 10 seconds](./spec/acceptance/rest/client_spec.rb#
|
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)
|
1978
2076
|
* fallback hosts
|
1979
2077
|
* configured
|
1980
|
-
* [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)
|
1981
2079
|
* when environment is NOT production (#RSC15b)
|
1982
|
-
* [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)
|
1983
2081
|
* when environment is production
|
1984
2082
|
* and connection times out
|
1985
|
-
* [tries fallback hosts 3 times (#RSC15b, #RSC15b)](./spec/acceptance/rest/client_spec.rb#
|
2083
|
+
* [tries fallback hosts 3 times (#RSC15b, #RSC15b)](./spec/acceptance/rest/client_spec.rb#L367)
|
1986
2084
|
* and the total request time exeeds 15 seconds
|
1987
|
-
* [makes no further attempts to any fallback hosts](./spec/acceptance/rest/client_spec.rb#
|
2085
|
+
* [makes no further attempts to any fallback hosts](./spec/acceptance/rest/client_spec.rb#L382)
|
1988
2086
|
* and connection fails
|
1989
|
-
* [tries fallback hosts 3 times](./spec/acceptance/rest/client_spec.rb#
|
2087
|
+
* [tries fallback hosts 3 times](./spec/acceptance/rest/client_spec.rb#L398)
|
1990
2088
|
* and first request to primary endpoint fails
|
1991
|
-
* [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)
|
1992
2090
|
* and basic authentication fails
|
1993
|
-
* [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)
|
1994
2092
|
* and server returns a 50x error
|
1995
|
-
* [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)
|
1996
2094
|
* when environment is production and server returns a 50x error
|
1997
2095
|
* with custom fallback hosts provided
|
1998
|
-
* [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)
|
1999
2097
|
* with an empty array of fallback hosts provided (#RSC15b, #RSC15a, #TO3k6)
|
2000
|
-
* [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)
|
2001
2099
|
* using a local web-server
|
2002
2100
|
* and timing out the primary host
|
2003
2101
|
* POST with request timeout less than max_retry_duration
|
2004
|
-
* [tries the primary host, then both fallback hosts (#RSC15d)](./spec/acceptance/rest/client_spec.rb#
|
2102
|
+
* [tries the primary host, then both fallback hosts (#RSC15d)](./spec/acceptance/rest/client_spec.rb#L607)
|
2005
2103
|
* GET with request timeout less than max_retry_duration
|
2006
|
-
* [tries the primary host, then both fallback hosts (#RSC15d)](./spec/acceptance/rest/client_spec.rb#
|
2104
|
+
* [tries the primary host, then both fallback hosts (#RSC15d)](./spec/acceptance/rest/client_spec.rb#L630)
|
2007
2105
|
* POST with request timeout more than max_retry_duration
|
2008
|
-
* [does not try any fallback hosts (#RSC15d)](./spec/acceptance/rest/client_spec.rb#
|
2106
|
+
* [does not try any fallback hosts (#RSC15d)](./spec/acceptance/rest/client_spec.rb#L653)
|
2009
2107
|
* GET with request timeout more than max_retry_duration
|
2010
|
-
* [does not try any fallback hosts (#RSC15d)](./spec/acceptance/rest/client_spec.rb#
|
2108
|
+
* [does not try any fallback hosts (#RSC15d)](./spec/acceptance/rest/client_spec.rb#L675)
|
2011
2109
|
* and failing the primary host
|
2012
|
-
* [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)
|
2013
2115
|
* when environment is not production and server returns a 50x error
|
2014
2116
|
* with custom fallback hosts provided (#RSC15b, #TO3k6)
|
2015
|
-
* [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)
|
2016
2118
|
* with an empty array of fallback hosts provided (#RSC15b, #TO3k6)
|
2017
|
-
* [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)
|
2018
2120
|
* with fallback_hosts_use_default: true (#RSC15b, #TO3k7)
|
2019
|
-
* [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)
|
2020
2122
|
* with a custom host
|
2021
2123
|
* that does not exist
|
2022
|
-
* [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)
|
2023
2125
|
* fallback hosts
|
2024
|
-
* [are never used](./spec/acceptance/rest/client_spec.rb#
|
2126
|
+
* [are never used](./spec/acceptance/rest/client_spec.rb#L949)
|
2025
2127
|
* that times out
|
2026
|
-
* [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)
|
2027
2129
|
* fallback hosts
|
2028
|
-
* [are never used](./spec/acceptance/rest/client_spec.rb#
|
2130
|
+
* [are never used](./spec/acceptance/rest/client_spec.rb#L977)
|
2029
2131
|
* HTTP configuration options
|
2030
|
-
* [is frozen](./spec/acceptance/rest/client_spec.rb#
|
2132
|
+
* [is frozen](./spec/acceptance/rest/client_spec.rb#L1034)
|
2031
2133
|
* defaults
|
2032
|
-
* [#http_open_timeout is 4s](./spec/acceptance/rest/client_spec.rb#
|
2033
|
-
* [#http_request_timeout is 10s](./spec/acceptance/rest/client_spec.rb#
|
2034
|
-
* [#http_max_retry_count is 3](./spec/acceptance/rest/client_spec.rb#
|
2035
|
-
* [#http_max_retry_duration is 15s](./spec/acceptance/rest/client_spec.rb#
|
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)
|
2036
2138
|
* configured
|
2037
|
-
* [#http_open_timeout uses provided value](./spec/acceptance/rest/client_spec.rb#
|
2038
|
-
* [#http_request_timeout uses provided value](./spec/acceptance/rest/client_spec.rb#
|
2039
|
-
* [#http_max_retry_count uses provided value](./spec/acceptance/rest/client_spec.rb#
|
2040
|
-
* [#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)
|
2041
2143
|
* #auth
|
2042
|
-
* [is provides access to the Auth object](./spec/acceptance/rest/client_spec.rb#
|
2043
|
-
* [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)
|
2044
2146
|
* version headers
|
2045
2147
|
* with variant none
|
2046
|
-
* [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)
|
2047
2149
|
* with variant foo
|
2048
|
-
* [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)
|
2049
2151
|
* #request (#RSC19*)
|
2050
2152
|
* get
|
2051
|
-
* [returns an HttpPaginatedResponse object](./spec/acceptance/rest/client_spec.rb#
|
2153
|
+
* [returns an HttpPaginatedResponse object](./spec/acceptance/rest/client_spec.rb#L1096)
|
2052
2154
|
* 404 request to invalid URL
|
2053
|
-
* [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)
|
2054
2156
|
* paged results
|
2055
|
-
* [provides paging](./spec/acceptance/rest/client_spec.rb#
|
2157
|
+
* [provides paging](./spec/acceptance/rest/client_spec.rb#L1115)
|
2056
2158
|
* request_id generation
|
2057
2159
|
* Timeout error
|
2058
2160
|
* with option add_request_ids: true
|
2059
|
-
* [has an error with the same request_id of the request](./spec/acceptance/rest/client_spec.rb#
|
2161
|
+
* [has an error with the same request_id of the request](./spec/acceptance/rest/client_spec.rb#L1150)
|
2060
2162
|
* with option add_request_ids: true and REST operations with a message body
|
2061
2163
|
* with mocks to inspect the params
|
2062
2164
|
* with a single publish
|
2063
|
-
* [succeeds and sends the request_id as a param](./spec/acceptance/rest/client_spec.rb#
|
2165
|
+
* [succeeds and sends the request_id as a param](./spec/acceptance/rest/client_spec.rb#L1172)
|
2064
2166
|
* with an array publish
|
2065
|
-
* [succeeds and sends the request_id as a param](./spec/acceptance/rest/client_spec.rb#
|
2167
|
+
* [succeeds and sends the request_id as a param](./spec/acceptance/rest/client_spec.rb#L1179)
|
2066
2168
|
* without mocks to ensure the requests are accepted
|
2067
2169
|
* with a single publish
|
2068
|
-
* [succeeds and sends the request_id as a param](./spec/acceptance/rest/client_spec.rb#
|
2170
|
+
* [succeeds and sends the request_id as a param](./spec/acceptance/rest/client_spec.rb#L1188)
|
2069
2171
|
* with an array publish
|
2070
|
-
* [succeeds and sends the request_id as a param](./spec/acceptance/rest/client_spec.rb#
|
2172
|
+
* [succeeds and sends the request_id as a param](./spec/acceptance/rest/client_spec.rb#L1195)
|
2071
2173
|
* option add_request_ids: true and specified fallback hosts
|
2072
|
-
* [request_id is the same across retries](./spec/acceptance/rest/client_spec.rb#
|
2174
|
+
* [request_id is the same across retries](./spec/acceptance/rest/client_spec.rb#L1220)
|
2073
2175
|
* without request_id
|
2074
|
-
* [does not include request_id in ConnectionTimeout error](./spec/acceptance/rest/client_spec.rb#
|
2176
|
+
* [does not include request_id in ConnectionTimeout error](./spec/acceptance/rest/client_spec.rb#L1232)
|
2075
2177
|
* UnauthorizedRequest nonce error
|
2076
|
-
* [includes request_id in UnauthorizedRequest error due to replayed nonce](./spec/acceptance/rest/client_spec.rb#
|
2178
|
+
* [includes request_id in UnauthorizedRequest error due to replayed nonce](./spec/acceptance/rest/client_spec.rb#L1245)
|
2077
2179
|
* failed request logging
|
2078
|
-
* [is absent when requests do not fail](./spec/acceptance/rest/client_spec.rb#
|
2180
|
+
* [is absent when requests do not fail](./spec/acceptance/rest/client_spec.rb#L1262)
|
2079
2181
|
* with the first request failing
|
2080
|
-
* [is present with success message when requests do not actually fail](./spec/acceptance/rest/client_spec.rb#
|
2182
|
+
* [is present with success message when requests do not actually fail](./spec/acceptance/rest/client_spec.rb#L1277)
|
2081
2183
|
* with all requests failing
|
2082
|
-
* [is present when all requests fail](./spec/acceptance/rest/client_spec.rb#
|
2184
|
+
* [is present when all requests fail](./spec/acceptance/rest/client_spec.rb#L1294)
|
2083
2185
|
|
2084
2186
|
### Ably::Models::MessageEncoders
|
2085
2187
|
_(see [spec/acceptance/rest/encoders_spec.rb](./spec/acceptance/rest/encoders_spec.rb))_
|
@@ -2118,85 +2220,113 @@ _(see [spec/acceptance/rest/encoders_spec.rb](./spec/acceptance/rest/encoders_sp
|
|
2118
2220
|
_(see [spec/acceptance/rest/message_spec.rb](./spec/acceptance/rest/message_spec.rb))_
|
2119
2221
|
* using JSON protocol
|
2120
2222
|
* publishing with an ASCII_8BIT message name
|
2121
|
-
* [is converted into UTF_8](./spec/acceptance/rest/message_spec.rb#
|
2223
|
+
* [is converted into UTF_8](./spec/acceptance/rest/message_spec.rb#L19)
|
2122
2224
|
* with supported data payload content type
|
2123
2225
|
* JSON Object (Hash)
|
2124
|
-
* [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)
|
2125
2227
|
* JSON Array
|
2126
|
-
* [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)
|
2127
2229
|
* String
|
2128
|
-
* [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)
|
2129
2231
|
* Binary
|
2130
|
-
* [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)
|
2131
2233
|
* with supported extra payload content type (#RSL1h, #RSL6a2)
|
2132
2234
|
* JSON Object (Hash)
|
2133
|
-
* [is encoded and decoded to the same hash](./spec/acceptance/rest/message_spec.rb#
|
2235
|
+
* [is encoded and decoded to the same hash](./spec/acceptance/rest/message_spec.rb#L71)
|
2134
2236
|
* JSON Array
|
2135
|
-
* [is encoded and decoded to the same deep multi-type object](./spec/acceptance/rest/message_spec.rb#
|
2237
|
+
* [is encoded and decoded to the same deep multi-type object](./spec/acceptance/rest/message_spec.rb#L81)
|
2136
2238
|
* nil
|
2137
|
-
* [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)*
|
2138
2268
|
* with unsupported data payload content type
|
2139
2269
|
* Integer
|
2140
|
-
* [is raises an UnsupportedDataType
|
2270
|
+
* [is raises an UnsupportedDataType 40013 exception](./spec/acceptance/rest/message_spec.rb#L269)
|
2141
2271
|
* Float
|
2142
|
-
* [is raises an UnsupportedDataType
|
2272
|
+
* [is raises an UnsupportedDataType 40013 exception](./spec/acceptance/rest/message_spec.rb#L277)
|
2143
2273
|
* Boolean
|
2144
|
-
* [is raises an UnsupportedDataType
|
2274
|
+
* [is raises an UnsupportedDataType 40013 exception](./spec/acceptance/rest/message_spec.rb#L285)
|
2145
2275
|
* False
|
2146
|
-
* [is raises an UnsupportedDataType
|
2276
|
+
* [is raises an UnsupportedDataType 40013 exception](./spec/acceptance/rest/message_spec.rb#L293)
|
2147
2277
|
* encryption and encoding
|
2148
2278
|
* with #publish and #history
|
2149
2279
|
* with AES-128-CBC using crypto-data-128.json fixtures (#RTL7d)
|
2150
2280
|
* item 0 with encrypted encoding utf-8/cipher+aes-128-cbc/base64
|
2151
2281
|
* behaves like an Ably encrypter and decrypter
|
2152
|
-
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2153
|
-
* [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)
|
2154
2284
|
* item 1 with encrypted encoding cipher+aes-128-cbc/base64
|
2155
2285
|
* behaves like an Ably encrypter and decrypter
|
2156
|
-
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2157
|
-
* [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)
|
2158
2288
|
* item 2 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
|
2159
2289
|
* behaves like an Ably encrypter and decrypter
|
2160
|
-
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2161
|
-
* [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)
|
2162
2292
|
* item 3 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
|
2163
2293
|
* behaves like an Ably encrypter and decrypter
|
2164
|
-
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2165
|
-
* [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)
|
2166
2296
|
* with AES-256-CBC using crypto-data-256.json fixtures (#RTL7d)
|
2167
2297
|
* item 0 with encrypted encoding utf-8/cipher+aes-256-cbc/base64
|
2168
2298
|
* behaves like an Ably encrypter and decrypter
|
2169
|
-
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2170
|
-
* [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)
|
2171
2301
|
* item 1 with encrypted encoding cipher+aes-256-cbc/base64
|
2172
2302
|
* behaves like an Ably encrypter and decrypter
|
2173
|
-
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2174
|
-
* [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)
|
2175
2305
|
* item 2 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
|
2176
2306
|
* behaves like an Ably encrypter and decrypter
|
2177
|
-
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2178
|
-
* [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)
|
2179
2309
|
* item 3 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
|
2180
2310
|
* behaves like an Ably encrypter and decrypter
|
2181
|
-
* [encrypts message automatically when published (#RTL7d)](./spec/acceptance/rest/message_spec.rb#
|
2182
|
-
* [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)
|
2183
2313
|
* when publishing lots of messages
|
2184
|
-
* [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)
|
2185
2315
|
* when retrieving #history with a different protocol
|
2186
|
-
* [delivers a String ASCII-8BIT payload to the receiver](./spec/acceptance/rest/message_spec.rb#
|
2187
|
-
* [delivers a String UTF-8 payload to the receiver](./spec/acceptance/rest/message_spec.rb#
|
2188
|
-
* [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)
|
2189
2319
|
* when publishing on an unencrypted channel and retrieving with #history on an encrypted channel
|
2190
|
-
* [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)
|
2191
2321
|
* when publishing on an encrypted channel and retrieving with #history on an unencrypted channel
|
2192
|
-
* [retrieves the message that remains encrypted with an encrypted encoding attribute (#RTL7e)](./spec/acceptance/rest/message_spec.rb#
|
2193
|
-
* [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)
|
2194
2324
|
* publishing on an encrypted channel and retrieving #history with a different algorithm on another client (#RTL7e)
|
2195
|
-
* [retrieves the message that remains encrypted with an encrypted encoding attribute (#RTL7e)](./spec/acceptance/rest/message_spec.rb#
|
2196
|
-
* [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)
|
2197
2327
|
* publishing on an encrypted channel and subscribing with a different key on another client
|
2198
|
-
* [retrieves the message that remains encrypted with an encrypted encoding attribute](./spec/acceptance/rest/message_spec.rb#
|
2199
|
-
* [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)
|
2200
2330
|
|
2201
2331
|
### Ably::Rest::Presence
|
2202
2332
|
_(see [spec/acceptance/rest/presence_spec.rb](./spec/acceptance/rest/presence_spec.rb))_
|
@@ -2265,6 +2395,97 @@ _(see [spec/acceptance/rest/presence_spec.rb](./spec/acceptance/rest/presence_sp
|
|
2265
2395
|
* [returns the messages still encoded](./spec/acceptance/rest/presence_spec.rb#L440)
|
2266
2396
|
* [logs a cipher error](./spec/acceptance/rest/presence_spec.rb#L444)
|
2267
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)
|
2488
|
+
|
2268
2489
|
### Ably::Rest::Client#stats
|
2269
2490
|
_(see [spec/acceptance/rest/stats_spec.rb](./spec/acceptance/rest/stats_spec.rb))_
|
2270
2491
|
* using JSON protocol
|
@@ -2342,13 +2563,13 @@ _(see [spec/unit/logger_spec.rb](./spec/unit/logger_spec.rb))_
|
|
2342
2563
|
* [uses the language provided Logger by default](./spec/unit/logger_spec.rb#L15)
|
2343
2564
|
* with a custom Logger
|
2344
2565
|
* with an invalid interface
|
2345
|
-
* [raises an exception](./spec/unit/logger_spec.rb#
|
2566
|
+
* [raises an exception](./spec/unit/logger_spec.rb#L122)
|
2346
2567
|
* with a valid interface
|
2347
|
-
* [is used](./spec/unit/logger_spec.rb#
|
2568
|
+
* [is used](./spec/unit/logger_spec.rb#L133)
|
2348
2569
|
* with blocks
|
2349
|
-
* [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)
|
2350
2571
|
* with an exception in the logger block
|
2351
|
-
* [catches the error and continues](./spec/unit/logger_spec.rb#
|
2572
|
+
* [catches the error and continues](./spec/unit/logger_spec.rb#L166)
|
2352
2573
|
|
2353
2574
|
### Ably::Models::AuthDetails
|
2354
2575
|
_(see [spec/unit/models/auth_details_spec.rb](./spec/unit/models/auth_details_spec.rb))_
|
@@ -2478,25 +2699,93 @@ _(see [spec/unit/models/connection_state_change_spec.rb](./spec/unit/models/conn
|
|
2478
2699
|
* invalid attributes
|
2479
2700
|
* [raises an argument error](./spec/unit/models/connection_state_change_spec.rb#L61)
|
2480
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
|
+
|
2481
2756
|
### Ably::Models::ErrorInfo
|
2482
2757
|
_(see [spec/unit/models/error_info_spec.rb](./spec/unit/models/error_info_spec.rb))_
|
2483
|
-
*
|
2484
|
-
*
|
2485
|
-
*
|
2486
|
-
*
|
2487
|
-
|
2488
|
-
*
|
2489
|
-
|
2490
|
-
*
|
2491
|
-
|
2492
|
-
|
2493
|
-
|
2494
|
-
*
|
2495
|
-
|
2496
|
-
|
2497
|
-
|
2498
|
-
|
2499
|
-
|
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)
|
2500
2789
|
|
2501
2790
|
### Ably::Models::HttpPaginatedResponse: #HP1 -> #HP8
|
2502
2791
|
_(see [spec/unit/models/http_paginated_result_spec.rb](./spec/unit/models/http_paginated_result_spec.rb))_
|
@@ -2708,109 +2997,113 @@ _(see [spec/unit/models/message_encoders/utf8_spec.rb](./spec/unit/models/messag
|
|
2708
2997
|
|
2709
2998
|
### Ably::Models::Message
|
2710
2999
|
_(see [spec/unit/models/message_spec.rb](./spec/unit/models/message_spec.rb))_
|
2711
|
-
*
|
2712
|
-
*
|
2713
|
-
*
|
2714
|
-
*
|
2715
|
-
|
2716
|
-
*
|
2717
|
-
|
2718
|
-
*
|
2719
|
-
|
2720
|
-
*
|
2721
|
-
|
2722
|
-
*
|
2723
|
-
|
2724
|
-
*
|
2725
|
-
|
2726
|
-
|
2727
|
-
|
2728
|
-
*
|
2729
|
-
|
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)
|
2730
3023
|
* #timestamp
|
2731
|
-
* [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)
|
2732
3025
|
* #extras (#TM2i)
|
2733
3026
|
* when missing
|
2734
|
-
* [is nil](./spec/unit/models/message_spec.rb#
|
3027
|
+
* [is nil](./spec/unit/models/message_spec.rb#L48)
|
2735
3028
|
* when a string
|
2736
|
-
* [raises an exception](./spec/unit/models/message_spec.rb#
|
3029
|
+
* [raises an exception](./spec/unit/models/message_spec.rb#L55)
|
2737
3030
|
* when a Hash
|
2738
|
-
* [contains a Hash Json object](./spec/unit/models/message_spec.rb#
|
3031
|
+
* [contains a Hash Json object](./spec/unit/models/message_spec.rb#L62)
|
2739
3032
|
* when a Json Array
|
2740
|
-
* [contains a Json Array object](./spec/unit/models/message_spec.rb#
|
3033
|
+
* [contains a Json Array object](./spec/unit/models/message_spec.rb#L69)
|
2741
3034
|
* #connection_id attribute
|
2742
3035
|
* when this model has a connectionId attribute
|
2743
3036
|
* but no protocol message
|
2744
|
-
* [uses the model value](./spec/unit/models/message_spec.rb#
|
3037
|
+
* [uses the model value](./spec/unit/models/message_spec.rb#L84)
|
2745
3038
|
* with a protocol message with a different connectionId
|
2746
|
-
* [uses the model value](./spec/unit/models/message_spec.rb#
|
3039
|
+
* [uses the model value](./spec/unit/models/message_spec.rb#L92)
|
2747
3040
|
* when this model has no connectionId attribute
|
2748
3041
|
* and no protocol message
|
2749
|
-
* [uses the model value](./spec/unit/models/message_spec.rb#
|
3042
|
+
* [uses the model value](./spec/unit/models/message_spec.rb#L102)
|
2750
3043
|
* with a protocol message with a connectionId
|
2751
|
-
* [uses the model value](./spec/unit/models/message_spec.rb#
|
3044
|
+
* [uses the model value](./spec/unit/models/message_spec.rb#L110)
|
2752
3045
|
* initialized with
|
2753
3046
|
* :name
|
2754
3047
|
* as UTF_8 string
|
2755
|
-
* [is permitted](./spec/unit/models/message_spec.rb#
|
2756
|
-
* [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)
|
2757
3050
|
* as SHIFT_JIS string
|
2758
|
-
* [gets converted to UTF-8](./spec/unit/models/message_spec.rb#
|
2759
|
-
* [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)
|
2760
3053
|
* as ASCII_8BIT string
|
2761
|
-
* [gets converted to UTF-8](./spec/unit/models/message_spec.rb#
|
2762
|
-
* [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)
|
2763
3056
|
* as Integer
|
2764
|
-
* [raises an argument error](./spec/unit/models/message_spec.rb#
|
3057
|
+
* [raises an argument error](./spec/unit/models/message_spec.rb#L173)
|
2765
3058
|
* as Nil
|
2766
|
-
* [is permitted](./spec/unit/models/message_spec.rb#
|
3059
|
+
* [is permitted](./spec/unit/models/message_spec.rb#L181)
|
2767
3060
|
* :client_id
|
2768
3061
|
* as UTF_8 string
|
2769
|
-
* [is permitted](./spec/unit/models/message_spec.rb#
|
2770
|
-
* [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)
|
2771
3064
|
* as SHIFT_JIS string
|
2772
|
-
* [gets converted to UTF-8](./spec/unit/models/message_spec.rb#
|
2773
|
-
* [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)
|
2774
3067
|
* as ASCII_8BIT string
|
2775
|
-
* [gets converted to UTF-8](./spec/unit/models/message_spec.rb#
|
2776
|
-
* [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)
|
2777
3070
|
* as Integer
|
2778
|
-
* [raises an argument error](./spec/unit/models/message_spec.rb#
|
3071
|
+
* [raises an argument error](./spec/unit/models/message_spec.rb#L173)
|
2779
3072
|
* as Nil
|
2780
|
-
* [is permitted](./spec/unit/models/message_spec.rb#
|
3073
|
+
* [is permitted](./spec/unit/models/message_spec.rb#L181)
|
2781
3074
|
* :encoding
|
2782
3075
|
* as UTF_8 string
|
2783
|
-
* [is permitted](./spec/unit/models/message_spec.rb#
|
2784
|
-
* [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)
|
2785
3078
|
* as SHIFT_JIS string
|
2786
|
-
* [gets converted to UTF-8](./spec/unit/models/message_spec.rb#
|
2787
|
-
* [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)
|
2788
3081
|
* as ASCII_8BIT string
|
2789
|
-
* [gets converted to UTF-8](./spec/unit/models/message_spec.rb#
|
2790
|
-
* [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)
|
2791
3084
|
* as Integer
|
2792
|
-
* [raises an argument error](./spec/unit/models/message_spec.rb#
|
3085
|
+
* [raises an argument error](./spec/unit/models/message_spec.rb#L173)
|
2793
3086
|
* as Nil
|
2794
|
-
* [is permitted](./spec/unit/models/message_spec.rb#
|
3087
|
+
* [is permitted](./spec/unit/models/message_spec.rb#L181)
|
2795
3088
|
* #from_encoded (#TM3)
|
2796
3089
|
* with no encoding
|
2797
|
-
* [returns a message object](./spec/unit/models/message_spec.rb#
|
3090
|
+
* [returns a message object](./spec/unit/models/message_spec.rb#L437)
|
2798
3091
|
* with a block
|
2799
|
-
* [does not call the block](./spec/unit/models/message_spec.rb#
|
3092
|
+
* [does not call the block](./spec/unit/models/message_spec.rb#L445)
|
2800
3093
|
* with an encoding
|
2801
|
-
* [returns a message object](./spec/unit/models/message_spec.rb#
|
3094
|
+
* [returns a message object](./spec/unit/models/message_spec.rb#L462)
|
2802
3095
|
* with a custom encoding
|
2803
|
-
* [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)
|
2804
3097
|
* with a Cipher encoding
|
2805
|
-
* [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)
|
2806
3099
|
* with invalid Cipher encoding
|
2807
3100
|
* without a block
|
2808
|
-
* [raises an exception](./spec/unit/models/message_spec.rb#
|
3101
|
+
* [raises an exception](./spec/unit/models/message_spec.rb#L514)
|
2809
3102
|
* with a block
|
2810
|
-
* [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)
|
2811
3104
|
* #from_encoded_array (#TM3)
|
2812
3105
|
* with no encoding
|
2813
|
-
* [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)
|
2814
3107
|
|
2815
3108
|
### Ably::Models::PaginatedResult
|
2816
3109
|
_(see [spec/unit/models/paginated_result_spec.rb](./spec/unit/models/paginated_result_spec.rb))_
|
@@ -3061,6 +3354,31 @@ _(see [spec/unit/models/protocol_message_spec.rb](./spec/unit/models/protocol_me
|
|
3061
3354
|
* existing in both #connection_key and #connection_details.connection_key
|
3062
3355
|
* [returns #connection_details.connection_key as #connection_key will be deprecated > 0.8](./spec/unit/models/protocol_message_spec.rb#L385)
|
3063
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
|
+
|
3064
3382
|
### Ably::Models::Stats
|
3065
3383
|
_(see [spec/unit/models/stats_spec.rb](./spec/unit/models/stats_spec.rb))_
|
3066
3384
|
* #all stats
|
@@ -3509,6 +3827,9 @@ _(see [spec/unit/realtime/client_spec.rb](./spec/unit/realtime/client_spec.rb))_
|
|
3509
3827
|
* [#use_tls?](./spec/unit/realtime/client_spec.rb#L23)
|
3510
3828
|
* [#log_level](./spec/unit/realtime/client_spec.rb#L23)
|
3511
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)
|
3512
3833
|
|
3513
3834
|
### Ably::Realtime::Connection
|
3514
3835
|
_(see [spec/unit/realtime/connection_spec.rb](./spec/unit/realtime/connection_spec.rb))_
|
@@ -3535,6 +3856,19 @@ _(see [spec/unit/realtime/presence_spec.rb](./spec/unit/realtime/presence_spec.r
|
|
3535
3856
|
* [with a non-matching action argument has no effect](./spec/unit/realtime/presence_spec.rb#L125)
|
3536
3857
|
* [with no block argument unsubscribes all blocks for the action argument](./spec/unit/realtime/presence_spec.rb#L131)
|
3537
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
|
+
|
3538
3872
|
### Ably::Realtime
|
3539
3873
|
_(see [spec/unit/realtime/realtime_spec.rb](./spec/unit/realtime/realtime_spec.rb))_
|
3540
3874
|
* [constructor returns an Ably::Realtime::Client](./spec/unit/realtime/realtime_spec.rb#L6)
|
@@ -3585,32 +3919,32 @@ _(see [spec/unit/realtime/safe_deferrable_spec.rb](./spec/unit/realtime/safe_def
|
|
3585
3919
|
_(see [spec/unit/rest/channel_spec.rb](./spec/unit/rest/channel_spec.rb))_
|
3586
3920
|
* #initializer
|
3587
3921
|
* as UTF_8 string
|
3588
|
-
* [is permitted](./spec/unit/rest/channel_spec.rb#
|
3589
|
-
* [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)
|
3590
3924
|
* as frozen UTF_8 string
|
3591
|
-
* [is permitted](./spec/unit/rest/channel_spec.rb#
|
3592
|
-
* [remains as UTF-8](./spec/unit/rest/channel_spec.rb#
|
3925
|
+
* [is permitted](./spec/unit/rest/channel_spec.rb#L36)
|
3926
|
+
* [remains as UTF-8](./spec/unit/rest/channel_spec.rb#L40)
|
3593
3927
|
* as SHIFT_JIS string
|
3594
|
-
* [gets converted to UTF-8](./spec/unit/rest/channel_spec.rb#
|
3595
|
-
* [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)
|
3596
3930
|
* as ASCII_8BIT string
|
3597
|
-
* [gets converted to UTF-8](./spec/unit/rest/channel_spec.rb#
|
3598
|
-
* [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)
|
3599
3933
|
* as Integer
|
3600
|
-
* [raises an argument error](./spec/unit/rest/channel_spec.rb#
|
3934
|
+
* [raises an argument error](./spec/unit/rest/channel_spec.rb#L72)
|
3601
3935
|
* as Nil
|
3602
|
-
* [raises an argument error](./spec/unit/rest/channel_spec.rb#
|
3936
|
+
* [raises an argument error](./spec/unit/rest/channel_spec.rb#L80)
|
3603
3937
|
* #publish name argument
|
3604
3938
|
* as UTF_8 string
|
3605
|
-
* [is permitted](./spec/unit/rest/channel_spec.rb#
|
3939
|
+
* [is permitted](./spec/unit/rest/channel_spec.rb#L92)
|
3606
3940
|
* as frozen UTF_8 string
|
3607
|
-
* [is permitted](./spec/unit/rest/channel_spec.rb#
|
3941
|
+
* [is permitted](./spec/unit/rest/channel_spec.rb#L101)
|
3608
3942
|
* as SHIFT_JIS string
|
3609
|
-
* [is permitted](./spec/unit/rest/channel_spec.rb#
|
3943
|
+
* [is permitted](./spec/unit/rest/channel_spec.rb#L109)
|
3610
3944
|
* as ASCII_8BIT string
|
3611
|
-
* [is permitted](./spec/unit/rest/channel_spec.rb#
|
3945
|
+
* [is permitted](./spec/unit/rest/channel_spec.rb#L117)
|
3612
3946
|
* as Integer
|
3613
|
-
* [raises an argument error](./spec/unit/rest/channel_spec.rb#
|
3947
|
+
* [raises an argument error](./spec/unit/rest/channel_spec.rb#L125)
|
3614
3948
|
|
3615
3949
|
### Ably::Rest::Channels
|
3616
3950
|
_(see [spec/unit/rest/channels_spec.rb](./spec/unit/rest/channels_spec.rb))_
|
@@ -3698,17 +4032,38 @@ _(see [spec/unit/rest/client_spec.rb](./spec/unit/rest/client_spec.rb))_
|
|
3698
4032
|
* TLS
|
3699
4033
|
* disabled
|
3700
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)
|
3701
4040
|
* :use_token_auth
|
3702
4041
|
* set to false
|
3703
4042
|
* with a key and :tls => false
|
3704
|
-
* [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)
|
3705
4044
|
* without a key
|
3706
|
-
* [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)
|
3707
4046
|
* set to true
|
3708
4047
|
* without a key or token
|
3709
|
-
* [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)
|
3710
4049
|
* request_id generation
|
3711
|
-
* [includes request_id in URL](./spec/unit/rest/client_spec.rb#
|
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)
|
3712
4067
|
|
3713
4068
|
### Ably::Rest
|
3714
4069
|
_(see [spec/unit/rest/rest_spec.rb](./spec/unit/rest/rest_spec.rb))_
|
@@ -3760,6 +4115,6 @@ _(see [spec/unit/util/pub_sub_spec.rb](./spec/unit/util/pub_sub_spec.rb))_
|
|
3760
4115
|
|
3761
4116
|
## Test summary
|
3762
4117
|
|
3763
|
-
* Passing tests:
|
3764
|
-
* Pending tests:
|
3765
|
-
* Failing tests:
|
4118
|
+
* Passing tests: 2045
|
4119
|
+
* Pending tests: 19
|
4120
|
+
* Failing tests: 2
|