ably 1.1.4 → 1.1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (56) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/check.yml +15 -1
  3. data/CHANGELOG.md +109 -0
  4. data/COPYRIGHT +1 -1
  5. data/README.md +23 -9
  6. data/SPEC.md +289 -228
  7. data/ably.gemspec +14 -9
  8. data/lib/ably/agent.rb +3 -0
  9. data/lib/ably/exceptions.rb +6 -0
  10. data/lib/ably/models/connection_details.rb +8 -0
  11. data/lib/ably/models/delta_extras.rb +29 -0
  12. data/lib/ably/models/error_info.rb +6 -2
  13. data/lib/ably/models/message.rb +25 -0
  14. data/lib/ably/models/presence_message.rb +14 -0
  15. data/lib/ably/models/protocol_message.rb +13 -8
  16. data/lib/ably/modules/ably.rb +11 -1
  17. data/lib/ably/realtime/channel/channel_manager.rb +2 -2
  18. data/lib/ably/realtime/channel/channel_state_machine.rb +5 -1
  19. data/lib/ably/realtime/channel/publisher.rb +6 -0
  20. data/lib/ably/realtime/channel.rb +2 -0
  21. data/lib/ably/realtime/client/incoming_message_dispatcher.rb +14 -6
  22. data/lib/ably/realtime/client.rb +1 -0
  23. data/lib/ably/realtime/connection/connection_manager.rb +13 -4
  24. data/lib/ably/realtime/connection/connection_state_machine.rb +4 -0
  25. data/lib/ably/realtime/connection.rb +2 -2
  26. data/lib/ably/rest/channel.rb +11 -3
  27. data/lib/ably/rest/client.rb +37 -18
  28. data/lib/ably/rest/middleware/fail_if_unsupported_mime_type.rb +4 -1
  29. data/lib/ably/version.rb +1 -13
  30. data/lib/ably.rb +1 -0
  31. data/spec/acceptance/realtime/auth_spec.rb +1 -1
  32. data/spec/acceptance/realtime/channel_history_spec.rb +25 -0
  33. data/spec/acceptance/realtime/channel_spec.rb +220 -1
  34. data/spec/acceptance/realtime/connection_failures_spec.rb +85 -13
  35. data/spec/acceptance/realtime/connection_spec.rb +263 -32
  36. data/spec/acceptance/realtime/presence_history_spec.rb +3 -1
  37. data/spec/acceptance/realtime/presence_spec.rb +31 -159
  38. data/spec/acceptance/rest/base_spec.rb +8 -4
  39. data/spec/acceptance/rest/channel_spec.rb +84 -9
  40. data/spec/acceptance/rest/channels_spec.rb +1 -1
  41. data/spec/acceptance/rest/client_spec.rb +72 -33
  42. data/spec/shared/client_initializer_behaviour.rb +131 -0
  43. data/spec/shared/model_behaviour.rb +1 -1
  44. data/spec/spec_helper.rb +11 -2
  45. data/spec/support/test_app.rb +1 -1
  46. data/spec/unit/models/delta_extras_spec.rb +14 -0
  47. data/spec/unit/models/error_info_spec.rb +17 -1
  48. data/spec/unit/models/message_spec.rb +83 -0
  49. data/spec/unit/models/presence_message_spec.rb +49 -0
  50. data/spec/unit/models/protocol_message_spec.rb +72 -20
  51. data/spec/unit/realtime/channel_spec.rb +3 -2
  52. data/spec/unit/realtime/channels_spec.rb +3 -3
  53. data/spec/unit/realtime/incoming_message_dispatcher_spec.rb +38 -0
  54. data/spec/unit/rest/channel_spec.rb +44 -1
  55. data/spec/unit/rest/client_spec.rb +47 -0
  56. metadata +48 -36
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: df28e1d33dcfce35d2f220e99a4d83b95dda7d050de3fbcd7b05d91b640841ac
4
- data.tar.gz: dc0c2283aa2b1303a7954dc2368bfa43a95795f11993f9ef1954651b2062b8e0
3
+ metadata.gz: ba8f2b01b35fceead7297645f54cb854017e14c8a004882d5b414becc450feef
4
+ data.tar.gz: c116cce13d8ed06a9858e252a81918530d54f15e1a20c4b3ef30e5334408ec1b
5
5
  SHA512:
6
- metadata.gz: 1e5eb2adc93ac58817fcf56a5cfe8696d0edab6277dac0dd4fd2b9bc8948964a6e13a5630238c1bcccd16b2e037ba425bb98de3c839069febb709373dd22f588
7
- data.tar.gz: a4fd0c86492a52d7981b30d6049fe9be0d49bc276f09882e93cccc0a42daebe8916b16b5adce9581217dadc7937bce3b54e3fcba1b005ed3beaf8ac09e421f77
6
+ metadata.gz: e0761591d9f838201f208c3d44d8068ad77c87591e737083cab548e77a104a6d7bd2da2cc360e01ad661c33f3af09220813ad19fe7d93f6759a7a88de82180d9
7
+ data.tar.gz: ca14639736fc07b1d00323df0073b37e0e2f51d6a2681bf868173708aafd45a89fbc872d4c16c600a41ebea9488c336a5422bdddbf8b80daa912ce9ef231945c
@@ -10,7 +10,7 @@ jobs:
10
10
  continue-on-error: true
11
11
  strategy:
12
12
  matrix:
13
- ruby: [ '2.5', '2.6', '2.7' ]
13
+ ruby: [ '2.5', '2.6', '2.7', '3.0' ]
14
14
  protocol: [ 'json', 'msgpack' ]
15
15
  steps:
16
16
  - uses: actions/checkout@v2
@@ -25,3 +25,17 @@ jobs:
25
25
  PARALLEL_TEST_PROCESSORS: 2
26
26
  PROTOCOL: ${{ matrix.protocol }}
27
27
  run: ./spec/run_parallel_tests
28
+ - uses: coverallsapp/github-action@1.1.3
29
+ with:
30
+ github-token: ${{ secrets.GITHUB_TOKEN }}
31
+ flag-name: run-ruby_${{ matrix.ruby }}-${{ matrix.protocol }}_protocol
32
+ parallel: true
33
+ finish:
34
+ needs: check
35
+ runs-on: ubuntu-latest
36
+ steps:
37
+ - name: Coveralls Finished
38
+ uses: coverallsapp/github-action@1.1.3
39
+ with:
40
+ github-token: ${{ secrets.github_token }}
41
+ parallel-finished: true
data/CHANGELOG.md CHANGED
@@ -1,5 +1,114 @@
1
1
  # Change Log
2
2
 
3
+ ## [v1.1.8](https://github.com/ably/ably-ruby/tree/v1.1.8)
4
+
5
+ [Full Changelog](https://github.com/ably/ably-ruby/compare/v1.1.7...v1.1.8)
6
+
7
+ **Fixed bugs:**
8
+
9
+ - Lib apparently closing the socket after each request [\#211](https://github.com/ably/ably-ruby/issues/211)
10
+
11
+ **Closed issues:**
12
+
13
+ - Resolve config.around\(\) issue and upgrade rspec [\#313](https://github.com/ably/ably-ruby/issues/313)
14
+ - Write spec tests for RTL21 [\#308](https://github.com/ably/ably-ruby/issues/308)
15
+ - Write spec tests for RTL20 [\#307](https://github.com/ably/ably-ruby/issues/307)
16
+ - Write spec tests for RTL19, RTL19a, b, c [\#306](https://github.com/ably/ably-ruby/issues/306)
17
+ - Write spec tests for RTL18, RTL18a, b, c [\#305](https://github.com/ably/ably-ruby/issues/305)
18
+ - Add support for RTL20 [\#295](https://github.com/ably/ably-ruby/issues/295)
19
+ - Add support for RTL19, RTL19a, b, c [\#294](https://github.com/ably/ably-ruby/issues/294)
20
+ - Add support for RTL18, RTL18a, b, c [\#293](https://github.com/ably/ably-ruby/issues/293)
21
+ - Write spec tests for RSL6b, RLS7 \(Channels\) [\#284](https://github.com/ably/ably-ruby/issues/284)
22
+ - Write spec tests for RSC15e, d, f \(Host Fallback \)
23
+ [\#280](https://github.com/ably/ably-ruby/issues/280)
24
+ - Write spec tests for RSC7a, RSC7c \(RestClient\)
25
+ [\#279](https://github.com/ably/ably-ruby/issues/279)
26
+ - Add support for DataTypes ChannelOptions TB2c, d [\#278](https://github.com/ably/ably-ruby/issues/278)
27
+ - Add support for DataTypes TokenParams AO2g [\#277](https://github.com/ably/ably-ruby/issues/277)
28
+ - Add support for DataTypes ClientOptions TO3j10 [\#276](https://github.com/ably/ably-ruby/issues/276)
29
+ - Add support for DataTypes ErrorInfo TI1 [\#275](https://github.com/ably/ably-ruby/issues/275)
30
+ - Add support for DataTypes ProtocolMessage TR3f, TR4i, q [\#274](https://github.com/ably/ably-ruby/issues/274)
31
+ - Add support for TM2i \(DataTypes Message\) [\#273](https://github.com/ably/ably-ruby/issues/273)
32
+ - Add support for PC1, PC2, PC3, PC3a \(Plugins\) [\#272](https://github.com/ably/ably-ruby/issues/272)
33
+ - Add support for RSL6b, RLS7 \(Channels\) [\#271](https://github.com/ably/ably-ruby/issues/271)
34
+ - Add support for RSL1a, b, h, k1, k2, l, l1 \(Channels\) [\#270](https://github.com/ably/ably-ruby/issues/270)
35
+ - Add support for RSC15e, d, f \(Host Fallback \)
36
+ [\#267](https://github.com/ably/ably-ruby/issues/267)
37
+ - Update client options support to 1.1 spec level \(logExceptionReportingUrl\) [\#246](https://github.com/ably/ably-ruby/issues/246)
38
+ - Confirm status of remaining realtime spec items for 1.0 [\#244](https://github.com/ably/ably-ruby/issues/244)
39
+
40
+ **Merged pull requests:**
41
+
42
+ - Allowing ConnectionDetails\#max\_message\_size [\#342](https://github.com/ably/ably-ruby/pull/342) ([lukaszsliwa](https://github.com/lukaszsliwa))
43
+ - Add specs for RTL17 [\#335](https://github.com/ably/ably-ruby/pull/335) ([TheSmartnik](https://github.com/TheSmartnik))
44
+ - Add spec for RTP5b [\#332](https://github.com/ably/ably-ruby/pull/332) ([TheSmartnik](https://github.com/TheSmartnik))
45
+ - Update specs with comments to docs seciton for RSN3a/RSN3c [\#331](https://github.com/ably/ably-ruby/pull/331) ([TheSmartnik](https://github.com/TheSmartnik))
46
+ - Fix after suite hook in specs [\#329](https://github.com/ably/ably-ruby/pull/329) ([TheSmartnik](https://github.com/TheSmartnik))
47
+ - Add specs for RTN15h2 [\#328](https://github.com/ably/ably-ruby/pull/328) ([TheSmartnik](https://github.com/TheSmartnik))
48
+ - Add specs for RTN12f [\#327](https://github.com/ably/ably-ruby/pull/327) ([TheSmartnik](https://github.com/TheSmartnik))
49
+ - Added Channel\#set\_options and Channel\#options= aliases [\#326](https://github.com/ably/ably-ruby/pull/326) ([lukaszsliwa](https://github.com/lukaszsliwa))
50
+ - Added DeltaExtras class and Message\#delta\_extras method. \(TM2i\) [\#325](https://github.com/ably/ably-ruby/pull/325) ([lukaszsliwa](https://github.com/lukaszsliwa))
51
+ - When connection disconnectes and can't renew token it fails \(RTN15h1\) [\#324](https://github.com/ably/ably-ruby/pull/324) ([TheSmartnik](https://github.com/TheSmartnik))
52
+ - RTN-13c Add spec that channels do not reattach when connection isn't connected [\#323](https://github.com/ably/ably-ruby/pull/323) ([TheSmartnik](https://github.com/TheSmartnik))
53
+ - Add support for DataTypes ProtocolMessage: has\_attach\_resume\_flag? [\#322](https://github.com/ably/ably-ruby/pull/322) ([lukaszsliwa](https://github.com/lukaszsliwa))
54
+ - Added request\_id and cause attributes to the ErrorInfo class TI1, RSC7c [\#321](https://github.com/ably/ably-ruby/pull/321) ([lukaszsliwa](https://github.com/lukaszsliwa))
55
+ - Add spec for RTN12d [\#318](https://github.com/ably/ably-ruby/pull/318) ([TheSmartnik](https://github.com/TheSmartnik))
56
+ - Change behavior when reconnecting from failed state \(RTN11d\) [\#316](https://github.com/ably/ably-ruby/pull/316) ([TheSmartnik](https://github.com/TheSmartnik))
57
+ - Remove deprecated ProtocolMessage\#connection\_key TR4e [\#315](https://github.com/ably/ably-ruby/pull/315) ([TheSmartnik](https://github.com/TheSmartnik))
58
+ - Upgrade rspec to 3.10 [\#314](https://github.com/ably/ably-ruby/pull/314) ([lukaszsliwa](https://github.com/lukaszsliwa))
59
+ - Add a spec for \#RTN11c [\#257](https://github.com/ably/ably-ruby/pull/257) ([TheSmartnik](https://github.com/TheSmartnik))
60
+
61
+
62
+ ## [v1.1.7](https://github.com/ably/ably-ruby/tree/v1.1.7)
63
+
64
+ [Full Changelog](https://github.com/ably/ably-ruby/compare/v1.1.6...v1.1.7)
65
+
66
+ **Implemented enhancements:**
67
+
68
+ - Implement RSC7d \(Ably-Agent header\) [\#230](https://github.com/ably/ably-ruby/issues/230)
69
+ - Support Ruby 3.x [\#220](https://github.com/ably/ably-ruby/issues/220)
70
+
71
+ **Closed issues:**
72
+
73
+ - Create code snippets for homepage \(ruby\) [\#249](https://github.com/ably/ably-ruby/issues/249)
74
+ - Update client options support to 1.1 spec level \(maxMessageSize\) [\#247](https://github.com/ably/ably-ruby/issues/247)
75
+ - Update client options support to 1.1 spec level \(maxFrameSize\) [\#245](https://github.com/ably/ably-ruby/issues/245)
76
+
77
+ **Merged pull requests:**
78
+
79
+ - Enabled TLS hostname validation CVE-2020-13482 [\#263](https://github.com/ably/ably-ruby/pull/263) ([lukaszsliwa](https://github.com/lukaszsliwa))
80
+ - Ruby 3.0 support [\#260](https://github.com/ably/ably-ruby/pull/260) ([lukaszsliwa](https://github.com/lukaszsliwa))
81
+ - TO3l9 Max frame size [\#259](https://github.com/ably/ably-ruby/pull/259) ([lukaszsliwa](https://github.com/lukaszsliwa))
82
+ - Update client options support to 1.1 spec level \(maxMessageSize\) [\#252](https://github.com/ably/ably-ruby/pull/252) ([lukaszsliwa](https://github.com/lukaszsliwa))
83
+ - Update ably-common to latest main [\#251](https://github.com/ably/ably-ruby/pull/251) ([owenpearson](https://github.com/owenpearson))
84
+ - Implement RSC7d \(Ably-Agent header\) [\#248](https://github.com/ably/ably-ruby/pull/248) ([lukaszsliwa](https://github.com/lukaszsliwa))
85
+ - Upgrade statesman to ~\> 8.0 [\#237](https://github.com/ably/ably-ruby/pull/237) ([darkhelmet](https://github.com/darkhelmet))
86
+ - Update attach\_serial before emiting UPDATE event [\#228](https://github.com/ably/ably-ruby/pull/228) ([TheSmartnik](https://github.com/TheSmartnik))
87
+
88
+ ## [v1.1.6](https://github.com/ably/ably-ruby/tree/v1.1.6)
89
+
90
+ [Full Changelog](https://github.com/ably/ably-ruby/compare/v1.1.5...v1.1.6)
91
+
92
+ This release will have no effect for users of the realtime `ably-ruby` client, however for users of `ably-ruby-rest` it will update the `faraday` dependency to 1.x (this change was already made for `ably-ruby` in `v1.1.5`).
93
+
94
+ **Merged pull requests:**
95
+
96
+ - Document libcurl requirement [\#243](https://github.com/ably/ably-ruby/pull/243) ([owenpearson](https://github.com/owenpearson))
97
+ - Fix broken markdown hyperlink in readme [\#242](https://github.com/ably/ably-ruby/pull/242) ([owenpearson](https://github.com/owenpearson))
98
+ - Update README with new Ably links [\#239](https://github.com/ably/ably-ruby/pull/239) ([mattheworiordan](https://github.com/mattheworiordan))
99
+ - Fix documentation for Channel\#publish [\#183](https://github.com/ably/ably-ruby/pull/183) ([zreisman](https://github.com/zreisman))
100
+
101
+ ## [v1.1.5](https://github.com/ably/ably-ruby/tree/v1.1.5)
102
+
103
+ Please note: this library now depends on `libcurl` as a system dependency. On most systems this is already installed but in rare cases where it isn't (for example debian-slim Docker images such as ruby-slim) you will need to install it yourself. On debian you can install it with the command `sudo apt-get install libcurl4`.
104
+
105
+ [Full Changelog](https://github.com/ably/ably-ruby/compare/v1.1.4...v.1.1.5)
106
+
107
+ **Implemented enhancements:**
108
+
109
+ - Upgrade to support HTTP/2 [\#192](https://github.com/ably/ably-ruby/issues/192), fixed in [\#197](https://github.com/ably/ably-ruby/pull/197) ([mattheworiordan](https://github.com/mattheworiordan))
110
+ - Default fallback hosts for custom environments [\#232](https://github.com/ably/ably-ruby/issues/232), fixed in [\#196](https://github.com/ably/ably-ruby/pull/196) ([mattheworiordan](https://github.com/mattheworiordan), [owenpearson](https://github.com/owenpearson), [lmars](https://github.com/lmars))
111
+
3
112
  ## [v1.1.4](https://github.com/ably/ably-ruby/tree/v1.1.4)
4
113
 
5
114
  [Full Changelog](https://github.com/ably/ably-ruby/compare/v1.1.3...v1.1.4)
data/COPYRIGHT CHANGED
@@ -1 +1 @@
1
- Copyright 2015-2021 Ably Real-time Ltd (ably.com)
1
+ Copyright 2015-2022 Ably Real-time Ltd (ably.com)
data/README.md CHANGED
@@ -1,21 +1,25 @@
1
- # [Ably](https://www.ably.io)
1
+ # [Ably](https://ably.com)
2
2
 
3
3
  [![Gem Version](https://img.shields.io/gem/v/ably?style=flat)](https://img.shields.io/gem/v/ably?style=flat)
4
4
  [![Coverage Status](https://coveralls.io/repos/ably/ably-ruby/badge.svg)](https://coveralls.io/r/ably/ably-ruby)
5
5
 
6
- A Ruby client library for [ably.io](https://www.ably.io), the realtime messaging service. This library currently targets the [Ably 1.1 client library specification](https://www.ably.io/documentation/client-lib-development-guide/features/). You can jump to the '[Known Limitations](#known-limitations)' section to see the features this client library does not yet support or [view our client library SDKs feature support matrix](https://www.ably.io/download/sdk-feature-support-matrix) to see the list of all the available features.
6
+ _[Ably](https://ably.com) is the platform that powers synchronized digital experiences in realtime. Whether attending an event in a virtual venue, receiving realtime financial information, or monitoring live car performance data – consumers simply expect realtime digital experiences as standard. Ably provides a suite of APIs to build, extend, and deliver powerful digital experiences in realtime for more than 250 million devices across 80 countries each month. Organizations like Bloomberg, HubSpot, Verizon, and Hopin depend on Ably’s platform to offload the growing complexity of business-critical realtime data synchronization at global scale. For more information, see the [Ably documentation](https://ably.com/documentation)._
7
+
8
+ This is a Ruby client library for Ably. The library currently targets the [Ably 1.1 client library specification](https://ably.com/documentation/client-lib-development-guide/features/). You can see the complete list of features this client library supports in [our client library SDKs feature support matrix](https://ably.com/download/sdk-feature-support-matrix).
7
9
 
8
10
  ## Supported platforms
9
11
 
10
- This SDK supports Ruby 1.9.3+.
12
+ This SDK supports Ruby 1.9.3+. For eventmachine and Ruby 3.0 note please visit [Ruby 3.0 support](#ruby-30-support) section.
13
+
14
+ As of v1.1.5 this library requires `libcurl` as a system dependency. On most systems this is already installed but in rare cases where it isn't (for example debian-slim Docker images such as ruby-slim) you will need to install it yourself. On debian you can install it with the command `sudo apt-get install libcurl4`.
11
15
 
12
16
  We regression-test the SDK against a selection of Ruby versions (which we update over time, but usually consists of mainstream and widely used versions). Please refer to [.github/workflows/check.yml](./.github/workflows/check.yml) for the set of versions that currently undergo CI testing.
13
17
 
14
- If you find any compatibility issues, please [do raise an issue](https://github.com/ably/ably-ruby/issues/new) in this repository or [contact Ably customer support](https://support.ably.io/) for advice.
18
+ If you find any compatibility issues, please [do raise an issue](https://github.com/ably/ably-ruby/issues/new) in this repository or [contact Ably customer support](https://ably.com/support/) for advice.
15
19
 
16
20
  ## Documentation
17
21
 
18
- Visit https://www.ably.io/documentation for a complete API reference and more examples.
22
+ Visit https://ably.com/documentation for a complete API reference and code examples.
19
23
 
20
24
  ## Installation
21
25
 
@@ -35,7 +39,7 @@ Or install it yourself as:
35
39
 
36
40
  ### Using with Rails or Sinatra
37
41
 
38
- This `ably` gem provides both a [Realtime](http://www.ably.io/documentation/realtime/usage) and [REST](http://www.ably.io/documentation/rest/usage) version of the Ably library. Realtime depends on EventMachine to provide an asynchronous evented framework to run the library in, whereas the REST library depends only on synchronous libraries such as Faraday.
42
+ This `ably` gem provides both a [Realtime](https://ably.com/documentation/realtime/usage) and [REST](https://ably.com/documentation/rest/usage) version of the Ably library. Realtime depends on EventMachine to provide an asynchronous evented framework to run the library in, whereas the REST library depends only on synchronous libraries such as Faraday.
39
43
 
40
44
  If you are using Ably within your Rails or Sinatra apps, more often than not, you probably want to use the REST only version of the library that has no dependency on EventMachine and provides a synchronous API that you will be used to using within Rails and Sinatra. [See the REST only Ruby version of the Ably library](https://github.com/ably/ably-ruby-rest).
41
45
 
@@ -61,7 +65,7 @@ client = Ably::Realtime.new(key: 'xxxxx')
61
65
  client = Ably::Realtime.new(token: 'xxxxx')
62
66
  ```
63
67
 
64
- If you do not have an API key, [sign up for a free API key now](https://www.ably.io/signup)
68
+ If you do not have an API key, [sign up for a free API key now](https://ably.com/signup)
65
69
 
66
70
  ### Connection
67
71
 
@@ -187,7 +191,7 @@ channel.publish "name (not encrypted)", "sensitive data (encrypted before being
187
191
 
188
192
  ### Introduction
189
193
 
190
- Unlike the Realtime API, all calls are synchronous and are not run within an [EventMachine](https://github.com/eventmachine/eventmachine) [reactor](https://github.com/eventmachine/eventmachine/wiki/General-Introduction).
194
+ Unlike the Realtime API, all calls are synchronous and are not run within [EventMachine](https://github.com/eventmachine/eventmachine).
191
195
 
192
196
  All examples assume a client and/or channel has been created as follows:
193
197
 
@@ -285,6 +289,16 @@ stats_page.next # retrieves the next page => #<Ably::Models::PaginatedResult ...
285
289
  client.time #=> 2013-12-12 14:23:34 +0000
286
290
  ```
287
291
 
292
+ ## Ruby 3.0 support
293
+
294
+ If you cannot install ably realtime gem because of eventmachine openssl problems, please try to set your `openssl-dir`, i.e.:
295
+
296
+ ```ruby
297
+ gem install eventmachine -- --with-openssl-dir=/usr/local/opt/openssl@1.1
298
+ ```
299
+
300
+ More about eventmachine and ruby 3.0 support here https://github.com/eventmachine/eventmachine/issues/932
301
+
288
302
  ## Dependencies
289
303
 
290
304
  If you only need to use the REST features of this library and do not want EventMachine as a dependency, then you should consider using the [Ably Ruby REST gem](https://rubygems.org/gems/ably-rest).
@@ -295,7 +309,7 @@ If you only need to use the REST features of this library and do not want EventM
295
309
 
296
310
  ## Support, feedback and troubleshooting
297
311
 
298
- Please visit http://support.ably.io/ for access to our knowledgebase and to ask for any assistance.
312
+ Please visit https://ably.com/support for access to our knowledgebase and to ask for any assistance.
299
313
 
300
314
  You can also view the [community reported Github issues](https://github.com/ably/ably-ruby/issues).
301
315