ably-rest 0.7.0 → 0.7.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6e369e71c63f1c8046d4cf548085a51bc5724e1c
4
- data.tar.gz: ed9af5f08c66fc9264ef4c5a4ecaf328830cad70
3
+ metadata.gz: 85a727f923a067f8d9391c50c1dde992fc866162
4
+ data.tar.gz: 9886c7bba136da444d531e11bc23b33e99d83e0d
5
5
  SHA512:
6
- metadata.gz: 22c713b328a6b75a528a356bc1380f2b51bf8c326b3c543842d3140f2c913cc86937c5896629d5bb4905e96ad97858a069d8afe789ee891dd04a510f9d281fc7
7
- data.tar.gz: 1c89eab1dd7cc6e7864cc480d17e653e0f2ad6f6081b0366748fbe1bea03f7f5abd29d5341a750dcda3405ffd3a0fe00ea3963bc06bbdbf1d076b33dfee8788b
6
+ metadata.gz: 4cd6a4f599a2def5ec886cf679bb01d8cc0357ee0ae4bd28369456a3c77497f4ad1b6b988e9b558c130b0a8f5ee1a61f28826f276f1450d52b151753633d01ed
7
+ data.tar.gz: 0a51a727f2533c3f2c11ce8e0c60c47e0e31ad344e510e7f0caac03e92733d199337b207d400398c06d55ebda1ce875f4ad5024f6d7a5a38ab5d667b4a675290
data/.travis.yml CHANGED
@@ -2,7 +2,4 @@ language: ruby
2
2
  rvm:
3
3
  - 1.9.3
4
4
  - 2.0.0
5
- - 2.1.1
6
- - jruby-18mode # JRuby in 1.8 mode
7
- - jruby-19mode # JRuby in 1.9 mode
8
- - rbx-2.4.1
5
+ - 2.2.0
data/Rakefile CHANGED
@@ -1,14 +1,34 @@
1
- require "bundler/gem_tasks"
1
+ require 'rubygems'
2
+ require 'bundler/setup'
3
+ require 'bundler/gem_tasks'
4
+ require 'json'
2
5
 
3
- require "yard"
6
+ require 'yard'
4
7
  YARD::Rake::YardocTask.new
5
8
 
6
9
  begin
7
10
  require 'rspec/core/rake_task'
8
11
 
9
- RSpec::Core::RakeTask.new(:spec)
12
+ rspec_task = RSpec::Core::RakeTask.new(:spec)
10
13
 
11
14
  task :default => :spec
15
+
16
+ namespace :doc do
17
+ desc 'Generate Markdown Specification from the RSpec public API tests'
18
+ task :spec do
19
+ ENV['TEST_LIMIT_PROTOCOLS'] = JSON.dump({ msgpack: 'JSON and MsgPack' })
20
+
21
+ rspec_task.rspec_opts = %w(
22
+ --require ./lib/submodules/ably-ruby/spec/support/markdown_spec_formatter
23
+ --order defined
24
+ --tag ~api_private
25
+ --format documentation
26
+ --format Ably::RSpec::MarkdownSpecFormatter
27
+ ).join(' ')
28
+
29
+ Rake::Task[:spec].invoke
30
+ end
31
+ end
12
32
  rescue LoadError
13
- # no rspec available
33
+ # RSpec not available
14
34
  end
data/SPEC.md ADDED
@@ -0,0 +1,858 @@
1
+ # Ably REST Client Library 0.7.1 Specification
2
+
3
+ ### Ably::Auth
4
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb))_
5
+ * using JSON and MsgPack protocol
6
+ * [has immutable options](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L54)
7
+ * #request_token
8
+ * [returns the requested token](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L62)
9
+ * with option :client_id
10
+ * [overrides default and uses camelCase notation for all attributes](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L93)
11
+ * with option :capability
12
+ * [overrides default and uses camelCase notation for all attributes](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L93)
13
+ * with option :nonce
14
+ * [overrides default and uses camelCase notation for all attributes](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L93)
15
+ * with option :timestamp
16
+ * [overrides default and uses camelCase notation for all attributes](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L93)
17
+ * with option :ttl
18
+ * [overrides default and uses camelCase notation for all attributes](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L93)
19
+ * with :key_id & :key_secret options
20
+ * [key_id is used in request and signing uses key_secret](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L122)
21
+ * with :query_time option
22
+ * [queries the server for the time](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L130)
23
+ * without :query_time option
24
+ * [does not query the server for the time](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L139)
25
+ * with :auth_url option
26
+ * when response is valid
27
+ * [requests a token from :auth_url using an HTTP GET request](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L186)
28
+ * with :query_params
29
+ * [requests a token from :auth_url with the :query_params](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L194)
30
+ * with :headers
31
+ * [requests a token from :auth_url with the HTTP headers set](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L202)
32
+ * with POST
33
+ * [requests a token from :auth_url using an HTTP POST instead of the default GET](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L210)
34
+ * when response is invalid
35
+ * 500
36
+ * [raises ServerError](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L223)
37
+ * XML
38
+ * [raises InvalidResponseBody](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L234)
39
+ * with token_request_block
40
+ * [calls the block when authenticating to obtain the request token](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L252)
41
+ * [uses the token request from the block when requesting a new token](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L257)
42
+ * before #authorise has been called
43
+ * [has no current_token](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L264)
44
+ * #authorise
45
+ * [updates the persisted auth options thare are then used for subsequent authorise requests](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L311)
46
+ * when called for the first time since the client has been instantiated
47
+ * [passes all options to #request_token](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L275)
48
+ * [returns a valid token](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L280)
49
+ * [issues a new token if option :force => true](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L284)
50
+ * with previous authorisation
51
+ * [does not request a token if current_token has not expired](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L295)
52
+ * [requests a new token if token is expired](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L300)
53
+ * [issues a new token if option :force => true](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L306)
54
+ * with token_request_block
55
+ * [calls the block](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L327)
56
+ * [uses the token request returned from the block when requesting a new token](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L331)
57
+ * for every subsequent #request_token
58
+ * without a provided block
59
+ * [calls the originally provided block](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L337)
60
+ * with a provided block
61
+ * [does not call the originally provided block and calls the new #request_token block](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L344)
62
+ * #create_token_request
63
+ * [uses the key ID from the client](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L360)
64
+ * [uses the default TTL](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L364)
65
+ * [uses the default capability](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L368)
66
+ * the nonce
67
+ * [is unique for every request](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L373)
68
+ * [is at least 16 characters](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L378)
69
+ * with option :ttl
70
+ * [overrides default](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L389)
71
+ * with option :capability
72
+ * [overrides default](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L389)
73
+ * with option :nonce
74
+ * [overrides default](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L389)
75
+ * with option :timestamp
76
+ * [overrides default](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L389)
77
+ * with option :client_id
78
+ * [overrides default](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L389)
79
+ * with additional invalid attributes
80
+ * [are ignored](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L397)
81
+ * when required fields are missing
82
+ * [should raise an exception if key secret is missing](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L408)
83
+ * [should raise an exception if key id is missing](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L412)
84
+ * with :query_time option
85
+ * [queries the server for the timestamp](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L421)
86
+ * with :timestamp option
87
+ * [uses the provided timestamp in the token request](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L431)
88
+ * signing
89
+ * [generates a valid HMAC](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L448)
90
+ * using token authentication
91
+ * with :token_id option
92
+ * [authenticates successfully using the provided :token_id](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L471)
93
+ * [disallows publishing on unspecified capability channels](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L475)
94
+ * [fails if timestamp is invalid](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L483)
95
+ * [cannot be renewed automatically](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L491)
96
+ * when implicit as a result of using :client id
97
+ * and requests to the Ably server are mocked
98
+ * [will send a token request to the server](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L521)
99
+ * a token is created
100
+ * [before a request is made](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L530)
101
+ * [when a message is published](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L534)
102
+ * [with capability and TTL defaults](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L538)
103
+ * when using an :api_key and basic auth
104
+ * [#using_token_auth? is false](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L553)
105
+ * [#using_basic_auth? is true](./lib/submodules/ably-ruby/spec/acceptance/rest/auth_spec.rb#L557)
106
+
107
+ ### Ably::Rest
108
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/base_spec.rb](./lib/submodules/ably-ruby/spec/acceptance/rest/base_spec.rb))_
109
+ * transport protocol
110
+ * when protocol is not defined it defaults to :msgpack
111
+ * [uses MsgPack](./lib/submodules/ably-ruby/spec/acceptance/rest/base_spec.rb#L27)
112
+ * when option {:protocol=>:json} is used
113
+ * [uses JSON](./lib/submodules/ably-ruby/spec/acceptance/rest/base_spec.rb#L43)
114
+ * when option {:use_binary_protocol=>false} is used
115
+ * [uses JSON](./lib/submodules/ably-ruby/spec/acceptance/rest/base_spec.rb#L43)
116
+ * when option {:protocol=>:msgpack} is used
117
+ * [uses MsgPack](./lib/submodules/ably-ruby/spec/acceptance/rest/base_spec.rb#L60)
118
+ * when option {:use_binary_protocol=>true} is used
119
+ * [uses MsgPack](./lib/submodules/ably-ruby/spec/acceptance/rest/base_spec.rb#L60)
120
+ * using JSON and MsgPack protocol
121
+ * failed requests
122
+ * due to invalid Auth
123
+ * [should raise an InvalidRequest exception with a valid error message and code](./lib/submodules/ably-ruby/spec/acceptance/rest/base_spec.rb#L75)
124
+ * server error with JSON error response body
125
+ * [should raise a ServerError exception](./lib/submodules/ably-ruby/spec/acceptance/rest/base_spec.rb#L94)
126
+ * 500 server error without a valid JSON response body
127
+ * [should raise a ServerError exception](./lib/submodules/ably-ruby/spec/acceptance/rest/base_spec.rb#L105)
128
+ * token authentication failures
129
+ * when auth#token_renewable?
130
+ * [should automatically reissue a token](./lib/submodules/ably-ruby/spec/acceptance/rest/base_spec.rb#L143)
131
+ * when NOT auth#token_renewable?
132
+ * [should raise an InvalidToken exception](./lib/submodules/ably-ruby/spec/acceptance/rest/base_spec.rb#L156)
133
+
134
+ ### Ably::Rest::Channel
135
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/channel_spec.rb](./lib/submodules/ably-ruby/spec/acceptance/rest/channel_spec.rb))_
136
+ * using JSON and MsgPack protocol
137
+ * #publish
138
+ * [should publish the message adn return true indicating success](./lib/submodules/ably-ruby/spec/acceptance/rest/channel_spec.rb#L17)
139
+ * #history
140
+ * [should return the current message history for the channel](./lib/submodules/ably-ruby/spec/acceptance/rest/channel_spec.rb#L39)
141
+ * [should return paged history using the PaginatedResource model](./lib/submodules/ably-ruby/spec/acceptance/rest/channel_spec.rb#L67)
142
+ * message timestamps
143
+ * [should all be after the messages were published](./lib/submodules/ably-ruby/spec/acceptance/rest/channel_spec.rb#L52)
144
+ * message IDs
145
+ * [should be unique](./lib/submodules/ably-ruby/spec/acceptance/rest/channel_spec.rb#L60)
146
+ * #history option
147
+ * :start
148
+ * with milliseconds since epoch value
149
+ * [uses this value in the history request](./lib/submodules/ably-ruby/spec/acceptance/rest/channel_spec.rb#L116)
150
+ * with a Time object value
151
+ * [converts the value to milliseconds since epoch in the hisotry request](./lib/submodules/ably-ruby/spec/acceptance/rest/channel_spec.rb#L126)
152
+ * :end
153
+ * with milliseconds since epoch value
154
+ * [uses this value in the history request](./lib/submodules/ably-ruby/spec/acceptance/rest/channel_spec.rb#L116)
155
+ * with a Time object value
156
+ * [converts the value to milliseconds since epoch in the hisotry request](./lib/submodules/ably-ruby/spec/acceptance/rest/channel_spec.rb#L126)
157
+
158
+ ### Ably::Rest::Channels
159
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/channels_spec.rb](./lib/submodules/ably-ruby/spec/acceptance/rest/channels_spec.rb))_
160
+ * using JSON and MsgPack protocol
161
+ * using shortcut method #channel on the client object
162
+ * behaves like a channel
163
+ * [returns a channel object](./lib/submodules/ably-ruby/spec/acceptance/rest/channels_spec.rb#L6)
164
+ * [returns channel object and passes the provided options](./lib/submodules/ably-ruby/spec/acceptance/rest/channels_spec.rb#L11)
165
+ * using #get method on client#channels
166
+ * behaves like a channel
167
+ * [returns a channel object](./lib/submodules/ably-ruby/spec/acceptance/rest/channels_spec.rb#L6)
168
+ * [returns channel object and passes the provided options](./lib/submodules/ably-ruby/spec/acceptance/rest/channels_spec.rb#L11)
169
+ * using undocumented array accessor [] method on client#channels
170
+ * behaves like a channel
171
+ * [returns a channel object](./lib/submodules/ably-ruby/spec/acceptance/rest/channels_spec.rb#L6)
172
+ * [returns channel object and passes the provided options](./lib/submodules/ably-ruby/spec/acceptance/rest/channels_spec.rb#L11)
173
+
174
+ ### Ably::Rest::Client
175
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb](./lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb))_
176
+ * using JSON and MsgPack protocol
177
+ * #initialize
178
+ * with an auth block
179
+ * [calls the block to get a new token](./lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb#L20)
180
+ * with an auth URL
181
+ * [sends an HTTP request to the provided URL to get a new token](./lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb#L34)
182
+ * using tokens
183
+ * when expired
184
+ * [creates a new token automatically when the old token expires](./lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb#L55)
185
+ * when token has not expired
186
+ * [reuses the existing token for every request](./lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb#L69)
187
+ * connection transport
188
+ * for default host
189
+ * [is configured to timeout connection opening in 4 seconds](./lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb#L85)
190
+ * [is configured to timeout connection requests in 15 seconds](./lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb#L89)
191
+ * for the fallback hosts
192
+ * [is configured to timeout connection opening in 4 seconds](./lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb#L95)
193
+ * [is configured to timeout connection requests in 15 seconds](./lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb#L99)
194
+ * fallback hosts
195
+ * configured
196
+ * [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](./lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb#L112)
197
+ * when environment is NOT production
198
+ * [does not retry failed requests with fallback hosts when there is a connection error](./lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb#L129)
199
+ * when environment is production
200
+ * and connection times out
201
+ * [tries fallback hosts 3 times](./lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb#L169)
202
+ * and the total request time exeeds 10 seconds
203
+ * [makes no further attempts to any fallback hosts](./lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb#L184)
204
+ * and connection fails
205
+ * [tries fallback hosts 3 times](./lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb#L200)
206
+ * with a custom host
207
+ * that does not exist
208
+ * [fails immediately and raises a Faraday Error](./lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb#L216)
209
+ * fallback hosts
210
+ * [are never used](./lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb#L237)
211
+ * that times out
212
+ * [fails immediately and raises a Faraday Error](./lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb#L252)
213
+ * fallback hosts
214
+ * [are never used](./lib/submodules/ably-ruby/spec/acceptance/rest/client_spec.rb#L265)
215
+
216
+ ### Ably::Models::MessageEncoders
217
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/encoders_spec.rb](./lib/submodules/ably-ruby/spec/acceptance/rest/encoders_spec.rb))_
218
+ * with binary transport protocol
219
+ * without encryption
220
+ * with UTF-8 data
221
+ * [does not apply any encoding](./lib/submodules/ably-ruby/spec/acceptance/rest/encoders_spec.rb#L41)
222
+ * with binary data
223
+ * [does not apply any encoding](./lib/submodules/ably-ruby/spec/acceptance/rest/encoders_spec.rb#L52)
224
+ * with JSON data
225
+ * [stringifies the JSON and sets the json encoding type](./lib/submodules/ably-ruby/spec/acceptance/rest/encoders_spec.rb#L63)
226
+ * with encryption
227
+ * with UTF-8 data
228
+ * [applies utf-8 and cipher encoding](./lib/submodules/ably-ruby/spec/acceptance/rest/encoders_spec.rb#L78)
229
+ * with binary data
230
+ * [applies cipher encoding](./lib/submodules/ably-ruby/spec/acceptance/rest/encoders_spec.rb#L89)
231
+ * with JSON data
232
+ * [applies json, utf-8 and cipher encoding](./lib/submodules/ably-ruby/spec/acceptance/rest/encoders_spec.rb#L100)
233
+ * with text transport protocol
234
+ * without encryption
235
+ * with UTF-8 data
236
+ * [does not apply any encoding](./lib/submodules/ably-ruby/spec/acceptance/rest/encoders_spec.rb#L117)
237
+ * with binary data
238
+ * [applies a base64 encoding](./lib/submodules/ably-ruby/spec/acceptance/rest/encoders_spec.rb#L128)
239
+ * with JSON data
240
+ * [stringifies the JSON and sets the json encoding type](./lib/submodules/ably-ruby/spec/acceptance/rest/encoders_spec.rb#L139)
241
+ * with encryption
242
+ * with UTF-8 data
243
+ * [applies utf-8, cipher and base64 encodings](./lib/submodules/ably-ruby/spec/acceptance/rest/encoders_spec.rb#L154)
244
+ * with binary data
245
+ * [applies cipher and base64 encoding](./lib/submodules/ably-ruby/spec/acceptance/rest/encoders_spec.rb#L165)
246
+ * with JSON data
247
+ * [applies json, utf-8, cipher and base64 encoding](./lib/submodules/ably-ruby/spec/acceptance/rest/encoders_spec.rb#L176)
248
+
249
+ ### Ably::Rest::Channel messages
250
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb))_
251
+ * using JSON and MsgPack protocol
252
+ * publishing with an ASCII_8BIT message name
253
+ * [is converted into UTF_8](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L18)
254
+ * encryption and encoding
255
+ * with #publish and #history
256
+ * with AES-128-CBC using crypto-data-128.json fixtures
257
+ * item 0 with encrypted encoding utf-8/cipher+aes-128-cbc/base64
258
+ * behaves like an Ably encrypter and decrypter
259
+ * [encrypts message automatically when published](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L65)
260
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L80)
261
+ * item 1 with encrypted encoding cipher+aes-128-cbc/base64
262
+ * behaves like an Ably encrypter and decrypter
263
+ * [encrypts message automatically when published](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L65)
264
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L80)
265
+ * item 2 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
266
+ * behaves like an Ably encrypter and decrypter
267
+ * [encrypts message automatically when published](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L65)
268
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L80)
269
+ * item 3 with encrypted encoding json/utf-8/cipher+aes-128-cbc/base64
270
+ * behaves like an Ably encrypter and decrypter
271
+ * [encrypts message automatically when published](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L65)
272
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L80)
273
+ * with AES-256-CBC using crypto-data-256.json fixtures
274
+ * item 0 with encrypted encoding utf-8/cipher+aes-256-cbc/base64
275
+ * behaves like an Ably encrypter and decrypter
276
+ * [encrypts message automatically when published](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L65)
277
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L80)
278
+ * item 1 with encrypted encoding cipher+aes-256-cbc/base64
279
+ * behaves like an Ably encrypter and decrypter
280
+ * [encrypts message automatically when published](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L65)
281
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L80)
282
+ * item 2 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
283
+ * behaves like an Ably encrypter and decrypter
284
+ * [encrypts message automatically when published](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L65)
285
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L80)
286
+ * item 3 with encrypted encoding json/utf-8/cipher+aes-256-cbc/base64
287
+ * behaves like an Ably encrypter and decrypter
288
+ * [encrypts message automatically when published](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L65)
289
+ * [sends and retrieves messages that are encrypted & decrypted by the Ably library](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L80)
290
+ * when publishing lots of messages
291
+ * [encrypts on #publish and decrypts on #history](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L113)
292
+ * when retrieving #history with a different protocol
293
+ * [delivers a String ASCII-8BIT payload to the receiver](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L140)
294
+ * [delivers a String UTF-8 payload to the receiver](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L140)
295
+ * [delivers a Hash payload to the receiver](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L140)
296
+ * when publishing on an unencrypted channel and retrieving with #history on an encrypted channel
297
+ * [does not attempt to decrypt the message](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L156)
298
+ * when publishing on an encrypted channel and retrieving with #history on an unencrypted channel
299
+ * [retrieves the message that remains encrypted with an encrypted encoding attribute](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L177)
300
+ * [logs a Cipher exception](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L183)
301
+ * publishing on an encrypted channel and retrieving #history with a different algorithm on another client
302
+ * [retrieves the message that remains encrypted with an encrypted encoding attribute](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L204)
303
+ * [logs a Cipher exception](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L210)
304
+ * publishing on an encrypted channel and subscribing with a different key on another client
305
+ * [retrieves the message that remains encrypted with an encrypted encoding attribute](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L231)
306
+ * [logs a Cipher exception](./lib/submodules/ably-ruby/spec/acceptance/rest/message_spec.rb#L237)
307
+
308
+ ### Ably::Rest::Presence
309
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb](./lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb))_
310
+ * using JSON and MsgPack protocol
311
+ * tested against presence fixture data set up in test app
312
+ * #get
313
+ * [returns current members on the channel with their action set to :present](./lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb#L31)
314
+ * with :limit option
315
+ * [returns a paged response limiting number of members per page](./lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb#L45)
316
+ * #history
317
+ * [returns recent presence activity](./lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb#L58)
318
+ * with options
319
+ * direction: :forwards
320
+ * [returns recent presence activity forwards with most recent history last](./lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb#L74)
321
+ * direction: :backwards
322
+ * [returns recent presence activity backwards with most recent history first](./lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb#L89)
323
+ * #history
324
+ * with time range options
325
+ * :start
326
+ * with milliseconds since epoch value
327
+ * [uses this value in the history request](./lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb#L134)
328
+ * with Time object value
329
+ * [converts the value to milliseconds since epoch in the hisotry request](./lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb#L144)
330
+ * :end
331
+ * with milliseconds since epoch value
332
+ * [uses this value in the history request](./lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb#L134)
333
+ * with Time object value
334
+ * [converts the value to milliseconds since epoch in the hisotry request](./lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb#L144)
335
+ * decoding
336
+ * valid decodeable content
337
+ * #get
338
+ * [automaticaly decodes presence messages](./lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb#L202)
339
+ * #history
340
+ * [automaticaly decodes presence messages](./lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb#L219)
341
+ * invalid data
342
+ * #get
343
+ * [returns the messages still encoded](./lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb#L250)
344
+ * [logs a cipher error](./lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb#L254)
345
+ * #history
346
+ * [returns the messages still encoded](./lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb#L274)
347
+ * [logs a cipher error](./lib/submodules/ably-ruby/spec/acceptance/rest/presence_spec.rb#L278)
348
+
349
+ ### Ably::Rest::Client#stats
350
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/stats_spec.rb](./lib/submodules/ably-ruby/spec/acceptance/rest/stats_spec.rb))_
351
+ * using JSON and MsgPack protocol
352
+ * fetching application stats
353
+ * by minute
354
+ * [should return all the stats for the application](./lib/submodules/ably-ruby/spec/acceptance/rest/stats_spec.rb#L49)
355
+ * by hour
356
+ * [should return all the stats for the application](./lib/submodules/ably-ruby/spec/acceptance/rest/stats_spec.rb#L49)
357
+ * by day
358
+ * [should return all the stats for the application](./lib/submodules/ably-ruby/spec/acceptance/rest/stats_spec.rb#L49)
359
+ * by month
360
+ * [should return all the stats for the application](./lib/submodules/ably-ruby/spec/acceptance/rest/stats_spec.rb#L49)
361
+
362
+ ### Ably::Rest::Client#time
363
+ _(see [lib/submodules/ably-ruby/spec/acceptance/rest/time_spec.rb](./lib/submodules/ably-ruby/spec/acceptance/rest/time_spec.rb))_
364
+ * using JSON and MsgPack protocol
365
+ * fetching the service time
366
+ * [should return the service time as a Time object](./lib/submodules/ably-ruby/spec/acceptance/rest/time_spec.rb#L10)
367
+
368
+ ### Ably::Auth
369
+ _(see [lib/submodules/ably-ruby/spec/unit/auth_spec.rb](./lib/submodules/ably-ruby/spec/unit/auth_spec.rb))_
370
+ * client_id option
371
+ * with nil value
372
+ * [is permitted](./lib/submodules/ably-ruby/spec/unit/auth_spec.rb#L19)
373
+ * as UTF_8 string
374
+ * [is permitted](./lib/submodules/ably-ruby/spec/unit/auth_spec.rb#L27)
375
+ * [remains as UTF-8](./lib/submodules/ably-ruby/spec/unit/auth_spec.rb#L31)
376
+ * as SHIFT_JIS string
377
+ * [gets converted to UTF-8](./lib/submodules/ably-ruby/spec/unit/auth_spec.rb#L39)
378
+ * [is compatible with original encoding](./lib/submodules/ably-ruby/spec/unit/auth_spec.rb#L43)
379
+ * as ASCII_8BIT string
380
+ * [gets converted to UTF-8](./lib/submodules/ably-ruby/spec/unit/auth_spec.rb#L51)
381
+ * [is compatible with original encoding](./lib/submodules/ably-ruby/spec/unit/auth_spec.rb#L55)
382
+ * as Integer
383
+ * [raises an argument error](./lib/submodules/ably-ruby/spec/unit/auth_spec.rb#L63)
384
+
385
+ ### Ably::Logger
386
+ _(see [lib/submodules/ably-ruby/spec/unit/logger_spec.rb](./lib/submodules/ably-ruby/spec/unit/logger_spec.rb))_
387
+ * [uses the language provided Logger by default](./lib/submodules/ably-ruby/spec/unit/logger_spec.rb#L15)
388
+ * with a custom Logger
389
+ * with an invalid interface
390
+ * [raises an exception](./lib/submodules/ably-ruby/spec/unit/logger_spec.rb#L116)
391
+ * with a valid interface
392
+ * [is used](./lib/submodules/ably-ruby/spec/unit/logger_spec.rb#L135)
393
+
394
+ ### Ably::Models::ErrorInfo
395
+ _(see [lib/submodules/ably-ruby/spec/unit/models/error_info_spec.rb](./lib/submodules/ably-ruby/spec/unit/models/error_info_spec.rb))_
396
+ * behaves like a model
397
+ * attributes
398
+ * #code
399
+ * [retrieves attribute :code](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L15)
400
+ * #status_code
401
+ * [retrieves attribute :status_code](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L15)
402
+ * #message
403
+ * [retrieves attribute :message](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L15)
404
+ * #==
405
+ * [is true when attributes are the same](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L41)
406
+ * [is false when attributes are not the same](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L46)
407
+ * [is false when class type differs](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L50)
408
+ * is immutable
409
+ * [prevents changes](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L76)
410
+ * [dups options](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L80)
411
+ * #status
412
+ * [is an alias for #status_code](./lib/submodules/ably-ruby/spec/unit/models/error_info_spec.rb#L13)
413
+
414
+ ### Ably::Models::Message
415
+ _(see [lib/submodules/ably-ruby/spec/unit/models/message_spec.rb](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb))_
416
+ * behaves like a model
417
+ * attributes
418
+ * #name
419
+ * [retrieves attribute :name](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L15)
420
+ * #client_id
421
+ * [retrieves attribute :client_id](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L15)
422
+ * #data
423
+ * [retrieves attribute :data](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L15)
424
+ * #encoding
425
+ * [retrieves attribute :encoding](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L15)
426
+ * #==
427
+ * [is true when attributes are the same](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L41)
428
+ * [is false when attributes are not the same](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L46)
429
+ * [is false when class type differs](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L50)
430
+ * is immutable
431
+ * [prevents changes](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L76)
432
+ * [dups options](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L80)
433
+ * #timestamp
434
+ * [retrieves attribute :timestamp as Time object from ProtocolMessage](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L21)
435
+ * #connection_id attribute
436
+ * when this model has a connectionId attribute
437
+ * but no protocol message
438
+ * [uses the model value](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L36)
439
+ * with a protocol message with a different connectionId
440
+ * [uses the model value](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L44)
441
+ * when this model has no connectionId attribute
442
+ * and no protocol message
443
+ * [uses the model value](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L54)
444
+ * with a protocol message with a connectionId
445
+ * [uses the model value](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L62)
446
+ * initialized with
447
+ * :name
448
+ * as UTF_8 string
449
+ * [is permitted](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L89)
450
+ * [remains as UTF-8](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L93)
451
+ * as SHIFT_JIS string
452
+ * [gets converted to UTF-8](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L101)
453
+ * [is compatible with original encoding](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L105)
454
+ * as ASCII_8BIT string
455
+ * [gets converted to UTF-8](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L113)
456
+ * [is compatible with original encoding](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L117)
457
+ * as Integer
458
+ * [raises an argument error](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L125)
459
+ * as Nil
460
+ * [is permitted](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L133)
461
+ * :client_id
462
+ * as UTF_8 string
463
+ * [is permitted](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L89)
464
+ * [remains as UTF-8](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L93)
465
+ * as SHIFT_JIS string
466
+ * [gets converted to UTF-8](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L101)
467
+ * [is compatible with original encoding](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L105)
468
+ * as ASCII_8BIT string
469
+ * [gets converted to UTF-8](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L113)
470
+ * [is compatible with original encoding](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L117)
471
+ * as Integer
472
+ * [raises an argument error](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L125)
473
+ * as Nil
474
+ * [is permitted](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L133)
475
+ * :encoding
476
+ * as UTF_8 string
477
+ * [is permitted](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L89)
478
+ * [remains as UTF-8](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L93)
479
+ * as SHIFT_JIS string
480
+ * [gets converted to UTF-8](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L101)
481
+ * [is compatible with original encoding](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L105)
482
+ * as ASCII_8BIT string
483
+ * [gets converted to UTF-8](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L113)
484
+ * [is compatible with original encoding](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L117)
485
+ * as Integer
486
+ * [raises an argument error](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L125)
487
+ * as Nil
488
+ * [is permitted](./lib/submodules/ably-ruby/spec/unit/models/message_spec.rb#L133)
489
+
490
+ ### Ably::Models::PaginatedResource
491
+ _(see [lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb))_
492
+ * [returns correct length from body](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L30)
493
+ * [supports alias methods for length](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L34)
494
+ * [is Enumerable](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L39)
495
+ * [is iterable](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L43)
496
+ * [provides [] accessor method](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L61)
497
+ * [#first gets the first item in page](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L67)
498
+ * [#last gets the last item in page](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L71)
499
+ * #each
500
+ * [returns an enumerator](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L48)
501
+ * [yields each item](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L52)
502
+ * with non paged http response
503
+ * [is the first page](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L175)
504
+ * [is the last page](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L179)
505
+ * [does not support pagination](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L183)
506
+ * [raises an exception when accessing next page](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L187)
507
+ * [raises an exception when accessing first page](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L191)
508
+ * with paged http response
509
+ * [is the first page](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L209)
510
+ * [is not the last page](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L213)
511
+ * [supports pagination](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L217)
512
+ * accessing next page
513
+ * [returns another PaginatedResource](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L245)
514
+ * [retrieves the next page of results](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L249)
515
+ * [is not the first page](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L254)
516
+ * [is the last page](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L258)
517
+ * [raises an exception if trying to access the last page when it is the last page](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L262)
518
+ * and then first page
519
+ * [returns a PaginatedResource](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L273)
520
+ * [retrieves the first page of results](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L277)
521
+ * [is the first page](./lib/submodules/ably-ruby/spec/unit/models/paginated_resource_spec.rb#L281)
522
+
523
+ ### Ably::Models::PresenceMessage
524
+ _(see [lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb))_
525
+ * behaves like a model
526
+ * attributes
527
+ * #client_id
528
+ * [retrieves attribute :client_id](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L15)
529
+ * #data
530
+ * [retrieves attribute :data](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L15)
531
+ * #encoding
532
+ * [retrieves attribute :encoding](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L15)
533
+ * #==
534
+ * [is true when attributes are the same](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L41)
535
+ * [is false when attributes are not the same](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L46)
536
+ * [is false when class type differs](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L50)
537
+ * is immutable
538
+ * [prevents changes](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L76)
539
+ * [dups options](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L80)
540
+ * #connection_id attribute
541
+ * when this model has a connectionId attribute
542
+ * but no protocol message
543
+ * [uses the model value](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L25)
544
+ * with a protocol message with a different connectionId
545
+ * [uses the model value](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L33)
546
+ * when this model has no connectionId attribute
547
+ * and no protocol message
548
+ * [uses the model value](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L43)
549
+ * with a protocol message with a connectionId
550
+ * [uses the model value](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L51)
551
+ * #member_key attribute
552
+ * [is string in format connection_id:client_id](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L61)
553
+ * with the same client id across multiple connections
554
+ * [is unique](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L69)
555
+ * with a single connection and different client_ids
556
+ * [is unique](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L78)
557
+ * #timestamp
558
+ * [retrieves attribute :timestamp as a Time object from ProtocolMessage](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L86)
559
+ * initialized with
560
+ * :client_id
561
+ * as UTF_8 string
562
+ * [is permitted](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L138)
563
+ * [remains as UTF-8](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L142)
564
+ * as SHIFT_JIS string
565
+ * [gets converted to UTF-8](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L150)
566
+ * [is compatible with original encoding](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L154)
567
+ * as ASCII_8BIT string
568
+ * [gets converted to UTF-8](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L162)
569
+ * [is compatible with original encoding](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L166)
570
+ * as Integer
571
+ * [raises an argument error](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L174)
572
+ * as Nil
573
+ * [is permitted](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L182)
574
+ * :connection_id
575
+ * as UTF_8 string
576
+ * [is permitted](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L138)
577
+ * [remains as UTF-8](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L142)
578
+ * as SHIFT_JIS string
579
+ * [gets converted to UTF-8](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L150)
580
+ * [is compatible with original encoding](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L154)
581
+ * as ASCII_8BIT string
582
+ * [gets converted to UTF-8](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L162)
583
+ * [is compatible with original encoding](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L166)
584
+ * as Integer
585
+ * [raises an argument error](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L174)
586
+ * as Nil
587
+ * [is permitted](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L182)
588
+ * :encoding
589
+ * as UTF_8 string
590
+ * [is permitted](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L138)
591
+ * [remains as UTF-8](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L142)
592
+ * as SHIFT_JIS string
593
+ * [gets converted to UTF-8](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L150)
594
+ * [is compatible with original encoding](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L154)
595
+ * as ASCII_8BIT string
596
+ * [gets converted to UTF-8](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L162)
597
+ * [is compatible with original encoding](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L166)
598
+ * as Integer
599
+ * [raises an argument error](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L174)
600
+ * as Nil
601
+ * [is permitted](./lib/submodules/ably-ruby/spec/unit/models/presence_message_spec.rb#L182)
602
+
603
+ ### Ably::Models::ProtocolMessage
604
+ _(see [lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb))_
605
+ * behaves like a model
606
+ * attributes
607
+ * #id
608
+ * [retrieves attribute :id](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L15)
609
+ * #channel
610
+ * [retrieves attribute :channel](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L15)
611
+ * #channel_serial
612
+ * [retrieves attribute :channel_serial](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L15)
613
+ * #connection_id
614
+ * [retrieves attribute :connection_id](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L15)
615
+ * #==
616
+ * [is true when attributes are the same](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L41)
617
+ * [is false when attributes are not the same](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L46)
618
+ * [is false when class type differs](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L50)
619
+ * is immutable
620
+ * [prevents changes](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L76)
621
+ * [dups options](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L80)
622
+ * attributes
623
+ * #timestamp
624
+ * [retrieves attribute :timestamp as Time object](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L74)
625
+ * #count
626
+ * when missing
627
+ * [is 1](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L83)
628
+ * when non numeric
629
+ * [is 1](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L90)
630
+ * when greater than 1
631
+ * [is the value of count](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L97)
632
+ * #message_serial
633
+ * [converts :msg_serial to an Integer](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L105)
634
+ * #has_message_serial?
635
+ * without msg_serial
636
+ * [returns false](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L115)
637
+ * with msg_serial
638
+ * [returns true](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L123)
639
+ * #connection_serial
640
+ * [converts :connection_serial to an Integer](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L131)
641
+ * #flags
642
+ * when nil
643
+ * [is zero](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L141)
644
+ * when numeric
645
+ * [is an Integer](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L149)
646
+ * when has_presence
647
+ * [#has_presence_flag? is true](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L157)
648
+ * when has another future flag
649
+ * [#has_presence_flag? is false](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L165)
650
+ * #has_connection_serial?
651
+ * without connection_serial
652
+ * [returns false](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L175)
653
+ * with connection_serial
654
+ * [returns true](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L183)
655
+ * #serial
656
+ * with underlying msg_serial
657
+ * [converts :msg_serial to an Integer](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L192)
658
+ * with underlying connection_serial
659
+ * [converts :connection_serial to an Integer](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L200)
660
+ * with underlying connection_serial and msg_serial
661
+ * [prefers connection_serial and converts :connection_serial to an Integer](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L208)
662
+ * #has_serial?
663
+ * without msg_serial or connection_serial
664
+ * [returns false](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L219)
665
+ * with msg_serial
666
+ * [returns true](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L227)
667
+ * with connection_serial
668
+ * [returns true](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L235)
669
+ * #error
670
+ * with no error attribute
671
+ * [returns nil](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L245)
672
+ * with nil error
673
+ * [returns nil](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L253)
674
+ * with error
675
+ * [returns a valid ErrorInfo object](./lib/submodules/ably-ruby/spec/unit/models/protocol_message_spec.rb#L261)
676
+
677
+ ### Ably::Models::Token
678
+ _(see [lib/submodules/ably-ruby/spec/unit/models/token_spec.rb](./lib/submodules/ably-ruby/spec/unit/models/token_spec.rb))_
679
+ * behaves like a model
680
+ * attributes
681
+ * #id
682
+ * [retrieves attribute :id](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L15)
683
+ * #capability
684
+ * [retrieves attribute :capability](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L15)
685
+ * #client_id
686
+ * [retrieves attribute :client_id](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L15)
687
+ * #nonce
688
+ * [retrieves attribute :nonce](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L15)
689
+ * #==
690
+ * [is true when attributes are the same](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L41)
691
+ * [is false when attributes are not the same](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L46)
692
+ * [is false when class type differs](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L50)
693
+ * is immutable
694
+ * [prevents changes](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L76)
695
+ * [dups options](./lib/submodules/ably-ruby/spec/shared/model_behaviour.rb#L80)
696
+ * defaults
697
+ * [should default TTL to 1 hour](./lib/submodules/ably-ruby/spec/unit/models/token_spec.rb#L14)
698
+ * [should default capability to all](./lib/submodules/ably-ruby/spec/unit/models/token_spec.rb#L18)
699
+ * [should only have defaults for :ttl and :capability](./lib/submodules/ably-ruby/spec/unit/models/token_spec.rb#L22)
700
+ * attributes
701
+ * #key_id
702
+ * [retrieves attribute :key](./lib/submodules/ably-ruby/spec/unit/models/token_spec.rb#L32)
703
+ * #issued_at
704
+ * [retrieves attribute :issued_at as Time](./lib/submodules/ably-ruby/spec/unit/models/token_spec.rb#L42)
705
+ * #expires_at
706
+ * [retrieves attribute :expires as Time](./lib/submodules/ably-ruby/spec/unit/models/token_spec.rb#L42)
707
+ * #expired?
708
+ * once grace period buffer has passed
709
+ * [is true](./lib/submodules/ably-ruby/spec/unit/models/token_spec.rb#L55)
710
+ * within grace period buffer
711
+ * [is false](./lib/submodules/ably-ruby/spec/unit/models/token_spec.rb#L63)
712
+ * ==
713
+ * [is true when attributes are the same](./lib/submodules/ably-ruby/spec/unit/models/token_spec.rb#L73)
714
+ * [is false when attributes are not the same](./lib/submodules/ably-ruby/spec/unit/models/token_spec.rb#L78)
715
+ * [is false when class type differs](./lib/submodules/ably-ruby/spec/unit/models/token_spec.rb#L82)
716
+
717
+ ### Ably::Rest::Channels
718
+ _(see [lib/submodules/ably-ruby/spec/unit/rest/channel_spec.rb](./lib/submodules/ably-ruby/spec/unit/rest/channel_spec.rb))_
719
+ * #initializer
720
+ * as UTF_8 string
721
+ * [is permitted](./lib/submodules/ably-ruby/spec/unit/rest/channel_spec.rb#L16)
722
+ * [remains as UTF-8](./lib/submodules/ably-ruby/spec/unit/rest/channel_spec.rb#L20)
723
+ * as SHIFT_JIS string
724
+ * [gets converted to UTF-8](./lib/submodules/ably-ruby/spec/unit/rest/channel_spec.rb#L28)
725
+ * [is compatible with original encoding](./lib/submodules/ably-ruby/spec/unit/rest/channel_spec.rb#L32)
726
+ * as ASCII_8BIT string
727
+ * [gets converted to UTF-8](./lib/submodules/ably-ruby/spec/unit/rest/channel_spec.rb#L40)
728
+ * [is compatible with original encoding](./lib/submodules/ably-ruby/spec/unit/rest/channel_spec.rb#L44)
729
+ * as Integer
730
+ * [raises an argument error](./lib/submodules/ably-ruby/spec/unit/rest/channel_spec.rb#L52)
731
+ * as Nil
732
+ * [raises an argument error](./lib/submodules/ably-ruby/spec/unit/rest/channel_spec.rb#L60)
733
+ * #publish name argument
734
+ * as UTF_8 string
735
+ * [is permitted](./lib/submodules/ably-ruby/spec/unit/rest/channel_spec.rb#L72)
736
+ * as SHIFT_JIS string
737
+ * [is permitted](./lib/submodules/ably-ruby/spec/unit/rest/channel_spec.rb#L80)
738
+ * as ASCII_8BIT string
739
+ * [is permitted](./lib/submodules/ably-ruby/spec/unit/rest/channel_spec.rb#L88)
740
+ * as Integer
741
+ * [raises an argument error](./lib/submodules/ably-ruby/spec/unit/rest/channel_spec.rb#L96)
742
+ * as Nil
743
+ * [raises an argument error](./lib/submodules/ably-ruby/spec/unit/rest/channel_spec.rb#L104)
744
+
745
+ ### Ably::Rest::Channels
746
+ _(see [lib/submodules/ably-ruby/spec/unit/rest/channels_spec.rb](./lib/submodules/ably-ruby/spec/unit/rest/channels_spec.rb))_
747
+ * creating channels
748
+ * [#get creates a channel](./lib/submodules/ably-ruby/spec/unit/rest/channels_spec.rb#L12)
749
+ * [#get will reuse the channel object](./lib/submodules/ably-ruby/spec/unit/rest/channels_spec.rb#L17)
750
+ * [[] creates a channel](./lib/submodules/ably-ruby/spec/unit/rest/channels_spec.rb#L23)
751
+ * #fetch
752
+ * [retrieves a channel if it exists](./lib/submodules/ably-ruby/spec/unit/rest/channels_spec.rb#L30)
753
+ * [calls the block if channel is missing](./lib/submodules/ably-ruby/spec/unit/rest/channels_spec.rb#L35)
754
+ * destroying channels
755
+ * [#release releases the channel resoures](./lib/submodules/ably-ruby/spec/unit/rest/channels_spec.rb#L43)
756
+ * is Enumerable
757
+ * [allows enumeration](./lib/submodules/ably-ruby/spec/unit/rest/channels_spec.rb#L59)
758
+ * [provides #length](./lib/submodules/ably-ruby/spec/unit/rest/channels_spec.rb#L75)
759
+ * #each
760
+ * [returns an enumerator](./lib/submodules/ably-ruby/spec/unit/rest/channels_spec.rb#L64)
761
+ * [yields each channel](./lib/submodules/ably-ruby/spec/unit/rest/channels_spec.rb#L68)
762
+
763
+ ### Ably::Rest::Client
764
+ _(see [lib/submodules/ably-ruby/spec/unit/rest/client_spec.rb](./lib/submodules/ably-ruby/spec/unit/rest/client_spec.rb))_
765
+ * behaves like a client initializer
766
+ * with invalid arguments
767
+ * empty hash
768
+ * [raises an exception](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L28)
769
+ * nil
770
+ * [raises an exception](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L36)
771
+ * api_key: "invalid"
772
+ * [raises an exception](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L44)
773
+ * api_key: "invalid:asdad"
774
+ * [raises an exception](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L52)
775
+ * api_key and key_id
776
+ * [raises an exception](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L60)
777
+ * api_key and key_secret
778
+ * [raises an exception](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L68)
779
+ * client_id as only option
780
+ * [requires a valid key](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L76)
781
+ * with valid arguments
782
+ * api_key only
783
+ * [connects to the Ably service](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L87)
784
+ * key_id and key_secret
785
+ * [constructs an api_key](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L95)
786
+ * with a string key instead of options hash
787
+ * [sets the api_key](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L103)
788
+ * [sets the key_id](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L107)
789
+ * [sets the key_secret](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L111)
790
+ * with token
791
+ * [sets the token_id](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L119)
792
+ * endpoint
793
+ * [defaults to production](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L125)
794
+ * with environment option
795
+ * [uses an alternate endpoint](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L132)
796
+ * tls
797
+ * [defaults to TLS](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L151)
798
+ * set to false
799
+ * [uses plain text](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L142)
800
+ * [uses HTTP](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L146)
801
+ * logger
802
+ * default
803
+ * [uses Ruby Logger](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L158)
804
+ * [specifies Logger::ERROR log level](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L162)
805
+ * with log_level :none
806
+ * [silences all logging with a NilLogger](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L170)
807
+ * with custom logger and log_level
808
+ * [uses the custom logger](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L188)
809
+ * [sets the custom log level](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L192)
810
+ * delegators
811
+ * [delegates :client_id to .auth](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L202)
812
+ * [delegates :auth_options to .auth](./lib/submodules/ably-ruby/spec/shared/client_initializer_behaviour.rb#L207)
813
+ * initializer options
814
+ * TLS
815
+ * disabled
816
+ * [fails for any operation with basic auth and attempting to send an API key over a non-secure connection](./lib/submodules/ably-ruby/spec/unit/rest/client_spec.rb#L17)
817
+ * :use_token_auth
818
+ * set to false
819
+ * with an api_key with :tls => false
820
+ * [fails for any operation with basic auth and attempting to send an API key over a non-secure connection](./lib/submodules/ably-ruby/spec/unit/rest/client_spec.rb#L28)
821
+ * without an api_key
822
+ * [fails as an api_key is required if not using token auth](./lib/submodules/ably-ruby/spec/unit/rest/client_spec.rb#L36)
823
+ * set to true
824
+ * without an api_key or token_id
825
+ * [fails as an api_key is required to issue tokens](./lib/submodules/ably-ruby/spec/unit/rest/client_spec.rb#L46)
826
+
827
+ ### Ably::Rest
828
+ _(see [lib/submodules/ably-ruby/spec/unit/rest/rest_spec.rb](./lib/submodules/ably-ruby/spec/unit/rest/rest_spec.rb))_
829
+ * [constructor returns an Ably::Rest::Client](./lib/submodules/ably-ruby/spec/unit/rest/rest_spec.rb#L7)
830
+
831
+ ### Ably::Util::Crypto
832
+ _(see [lib/submodules/ably-ruby/spec/unit/util/crypto_spec.rb](./lib/submodules/ably-ruby/spec/unit/util/crypto_spec.rb))_
833
+ * defaults
834
+ * [match other client libraries](./lib/submodules/ably-ruby/spec/unit/util/crypto_spec.rb#L18)
835
+ * encrypts & decrypt
836
+ * [#encrypt encrypts a string](./lib/submodules/ably-ruby/spec/unit/util/crypto_spec.rb#L28)
837
+ * [#decrypt decrypts a string](./lib/submodules/ably-ruby/spec/unit/util/crypto_spec.rb#L33)
838
+ * encrypting an empty string
839
+ * [raises an ArgumentError](./lib/submodules/ably-ruby/spec/unit/util/crypto_spec.rb#L42)
840
+ * using shared client lib fixture data
841
+ * with AES-128-CBC
842
+ * behaves like an Ably encrypter and decrypter
843
+ * text payload
844
+ * [encrypts exactly the same binary data as other client libraries](./lib/submodules/ably-ruby/spec/unit/util/crypto_spec.rb#L65)
845
+ * [decrypts exactly the same binary data as other client libraries](./lib/submodules/ably-ruby/spec/unit/util/crypto_spec.rb#L69)
846
+ * with AES-256-CBC
847
+ * behaves like an Ably encrypter and decrypter
848
+ * text payload
849
+ * [encrypts exactly the same binary data as other client libraries](./lib/submodules/ably-ruby/spec/unit/util/crypto_spec.rb#L65)
850
+ * [decrypts exactly the same binary data as other client libraries](./lib/submodules/ably-ruby/spec/unit/util/crypto_spec.rb#L69)
851
+
852
+ -------
853
+
854
+ ## Test summary
855
+
856
+ * Passing tests: 394
857
+ * Pending tests: 0
858
+ * Failing tests: 0
data/lib/ably-rest.rb CHANGED
@@ -1,4 +1,4 @@
1
- $:.unshift File.expand_path(File.dirname(__FILE__), 'submodules/ably-ruby/lib')
1
+ $:.unshift File.expand_path('submodules/ably-ruby/lib', File.dirname(__FILE__))
2
2
 
3
3
  %w(modules util).each do |namespace|
4
4
  ignore_modules = /^async|event_machine|state_machine/
data/spec/spec_helper.rb CHANGED
@@ -1,9 +1,8 @@
1
- # This file was generated by the `rspec --init` command. Conventionally, all
2
- # specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
3
- # Require this file using `require "spec_helper"` to ensure that it is only
4
- # loaded once.
5
- #
6
- # See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
1
+ # Output the message to the console
2
+ # Useful for debugging as clearly visible, and name is not used anywhere else in library as opposed to debug or puts
3
+ def console(message)
4
+ puts "\033[31m[#{Time.now.strftime('%H:%M:%S.%L')}]\033[0m \033[33m#{message}\033[0m"
5
+ end
7
6
 
8
7
  require 'webmock/rspec'
9
8
 
@@ -1,3 +1,3 @@
1
1
  require 'spec_helper'
2
2
 
3
- require_tests_from 'unit/modules', ignore_file_macher: /^(async|event_machine)/
3
+ require_tests_from 'unit/modules', ignore_file_macher: /^(async|event_machine|state_emitter|event_emitter)/
@@ -1,3 +1,3 @@
1
1
  require 'spec_helper'
2
2
 
3
- require_tests_from 'unit/util'
3
+ require_tests_from 'unit/util', ignore_file_macher: /^(pub_sub)/
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ably-rest
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.7.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matthew O'Riordan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-12 00:00:00.000000000 Z
11
+ date: 2015-01-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
@@ -152,6 +152,7 @@ files:
152
152
  - LICENSE.txt
153
153
  - README.md
154
154
  - Rakefile
155
+ - SPEC.md
155
156
  - ably-rest.gemspec
156
157
  - lib/ably-rest.rb
157
158
  - lib/ably-rest/modules/eventmachine_deferrable.rb