ably 1.2.2 → 1.2.4

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.
Files changed (70) hide show
  1. checksums.yaml +4 -4
  2. data/.ably/capabilities.yaml +112 -0
  3. data/.github/workflows/check.yml +13 -3
  4. data/.github/workflows/docs.yml +36 -0
  5. data/.github/workflows/features.yml +14 -0
  6. data/.rspec_parallel +3 -0
  7. data/CHANGELOG.md +26 -0
  8. data/INTRO.md +14 -0
  9. data/README.md +2 -0
  10. data/lib/ably/auth.rb +26 -23
  11. data/lib/ably/models/auth_details.rb +9 -6
  12. data/lib/ably/models/channel_details.rb +15 -5
  13. data/lib/ably/models/channel_metrics.rb +31 -8
  14. data/lib/ably/models/channel_occupancy.rb +10 -3
  15. data/lib/ably/models/channel_options.rb +26 -3
  16. data/lib/ably/models/channel_state_change.rb +45 -15
  17. data/lib/ably/models/channel_status.rb +14 -4
  18. data/lib/ably/models/cipher_params.rb +36 -13
  19. data/lib/ably/models/connection_details.rb +91 -10
  20. data/lib/ably/models/connection_state_change.rb +54 -15
  21. data/lib/ably/models/delta_extras.rb +6 -7
  22. data/lib/ably/models/device_details.rb +60 -21
  23. data/lib/ably/models/device_push_details.rb +27 -19
  24. data/lib/ably/models/error_info.rb +59 -17
  25. data/lib/ably/models/http_paginated_response.rb +27 -5
  26. data/lib/ably/models/idiomatic_ruby_wrapper.rb +3 -2
  27. data/lib/ably/models/message.rb +64 -24
  28. data/lib/ably/models/message_encoders/base.rb +6 -0
  29. data/lib/ably/models/paginated_result.rb +29 -14
  30. data/lib/ably/models/presence_message.rb +72 -22
  31. data/lib/ably/models/protocol_message.rb +0 -4
  32. data/lib/ably/models/push_channel_subscription.rb +40 -15
  33. data/lib/ably/models/stats.rb +76 -40
  34. data/lib/ably/models/stats_types.rb +16 -40
  35. data/lib/ably/models/token_details.rb +34 -12
  36. data/lib/ably/models/token_request.rb +63 -2
  37. data/lib/ably/modules/async_wrapper.rb +1 -0
  38. data/lib/ably/modules/enum.rb +2 -0
  39. data/lib/ably/modules/event_emitter.rb +14 -1
  40. data/lib/ably/modules/model_common.rb +5 -0
  41. data/lib/ably/modules/state_emitter.rb +2 -0
  42. data/lib/ably/modules/state_machine.rb +4 -0
  43. data/lib/ably/realtime/channel/channel_properties.rb +9 -2
  44. data/lib/ably/realtime/channel/publisher.rb +2 -0
  45. data/lib/ably/realtime/channel/push_channel.rb +17 -10
  46. data/lib/ably/realtime/channel.rb +79 -42
  47. data/lib/ably/realtime/channels.rb +4 -3
  48. data/lib/ably/realtime/client/incoming_message_dispatcher.rb +6 -14
  49. data/lib/ably/realtime/client.rb +53 -32
  50. data/lib/ably/realtime/connection/connection_manager.rb +4 -0
  51. data/lib/ably/realtime/connection/websocket_transport.rb +4 -2
  52. data/lib/ably/realtime/connection.rb +94 -55
  53. data/lib/ably/realtime/presence.rb +61 -36
  54. data/lib/ably/realtime/push/admin.rb +16 -2
  55. data/lib/ably/realtime/push.rb +15 -3
  56. data/lib/ably/rest/channel/push_channel.rb +0 -3
  57. data/lib/ably/rest/channel.rb +29 -21
  58. data/lib/ably/rest/channels.rb +6 -3
  59. data/lib/ably/rest/client.rb +41 -35
  60. data/lib/ably/rest/presence.rb +27 -12
  61. data/lib/ably/rest/push/admin.rb +4 -0
  62. data/lib/ably/rest/push/device_registrations.rb +13 -2
  63. data/lib/ably/rest/push.rb +2 -0
  64. data/lib/ably/util/crypto.rb +14 -10
  65. data/lib/ably/version.rb +1 -1
  66. data/spec/acceptance/realtime/connection_spec.rb +0 -15
  67. data/spec/acceptance/realtime/message_spec.rb +3 -3
  68. data/spec/unit/models/protocol_message_spec.rb +0 -26
  69. data/spec/unit/realtime/incoming_message_dispatcher_spec.rb +0 -38
  70. metadata +8 -17
@@ -400,32 +400,6 @@ describe Ably::Models::ProtocolMessage do
400
400
  end
401
401
  end
402
402
 
403
- context '#has_correct_message_size? (#TO3l8)' do
404
- context 'on presence' do
405
- it 'should return true when a message has correct size' do
406
- protocol_message = new_protocol_message(presence: [{ action: 1, data: 'x' * 100 }])
407
- expect(protocol_message.has_correct_message_size?).to eq(true)
408
- end
409
-
410
- it 'should return false when a message has not correct size' do
411
- protocol_message = new_protocol_message(presence: [{ action: 1, data: 'x' * 65537 }])
412
- expect(protocol_message.has_correct_message_size?).to eq(false)
413
- end
414
- end
415
-
416
- context 'on message' do
417
- it 'should return true when a message has correct size' do
418
- protocol_message = new_protocol_message(messages: [{ name: 'x' * 100 }])
419
- expect(protocol_message.has_correct_message_size?).to eq(true)
420
- end
421
-
422
- it 'should return false when a message has not correct size' do
423
- protocol_message = new_protocol_message(messages: [{ name: 'x' * 65537 }])
424
- expect(protocol_message.has_correct_message_size?).to eq(false)
425
- end
426
- end
427
- end
428
-
429
403
  context '#connection_details (#TR4o)' do
430
404
  let(:connection_details) { protocol_message.connection_details }
431
405
 
@@ -32,43 +32,5 @@ describe Ably::Realtime::Client::IncomingMessageDispatcher, :api_private do
32
32
  expect(subject).to receive_message_chain(:logger, :warn)
33
33
  msgbus.publish :protocol_message, Ably::Models::ProtocolMessage.new(:action => :attached, channel: 'unknown')
34
34
  end
35
-
36
- context 'TO3l8' do
37
- context 'on action presence' do
38
- let(:presence) { 101.times.map { { data: 'x' * 655 } } }
39
-
40
- let(:protocol_message) do
41
- Ably::Models::ProtocolMessage.new(action: :presence, channel: 'default', presence: presence, connection_serial: 123123123)
42
- end
43
-
44
- it 'should raise a protocol error when message size exceeded 65536 bytes' do
45
- allow(connection).to receive(:serial).and_return(12312312)
46
- allow(subject).to receive(:update_connection_recovery_info)
47
- allow(subject).to receive_message_chain(:logger, :debug)
48
- allow(subject).to receive_message_chain(:logger, :warn)
49
- expect(subject).to receive_message_chain(:logger, :fatal)
50
-
51
- msgbus.publish :protocol_message, protocol_message
52
- end
53
- end
54
-
55
- context 'on action message' do
56
- let(:messages) { 101.times.map { { data: 'x' * 655 } } }
57
-
58
- let(:protocol_message) do
59
- Ably::Models::ProtocolMessage.new(action: :message, channel: 'default', messages: messages, connection_serial: 123123123)
60
- end
61
-
62
- it 'should raise a protocol error when message size exceeded 65536 bytes' do
63
- allow(connection).to receive(:serial).and_return(12312312)
64
- allow(subject).to receive(:update_connection_recovery_info)
65
- allow(subject).to receive_message_chain(:logger, :debug)
66
- allow(subject).to receive_message_chain(:logger, :warn)
67
- expect(subject).to receive_message_chain(:logger, :fatal)
68
-
69
- msgbus.publish :protocol_message, protocol_message
70
- end
71
- end
72
- end
73
35
  end
74
36
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ably
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.2
4
+ version: 1.2.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lewis Marshall
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2022-06-08 00:00:00.000000000 Z
12
+ date: 2023-06-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: eventmachine
@@ -347,20 +347,6 @@ dependencies:
347
347
  - - "~>"
348
348
  - !ruby/object:Gem::Version
349
349
  version: 3.8.0
350
- - !ruby/object:Gem::Dependency
351
- name: webrick
352
- requirement: !ruby/object:Gem::Requirement
353
- requirements:
354
- - - "~>"
355
- - !ruby/object:Gem::Version
356
- version: 1.7.0
357
- type: :development
358
- prerelease: false
359
- version_requirements: !ruby/object:Gem::Requirement
360
- requirements:
361
- - - "~>"
362
- - !ruby/object:Gem::Version
363
- version: 1.7.0
364
350
  description: A Ruby client library for ably.io realtime messaging
365
351
  email:
366
352
  - lewis@lmars.net
@@ -369,14 +355,19 @@ executables: []
369
355
  extensions: []
370
356
  extra_rdoc_files: []
371
357
  files:
358
+ - ".ably/capabilities.yaml"
372
359
  - ".editorconfig"
373
360
  - ".github/workflows/check.yml"
361
+ - ".github/workflows/docs.yml"
362
+ - ".github/workflows/features.yml"
374
363
  - ".gitignore"
375
364
  - ".gitmodules"
376
365
  - ".rspec"
366
+ - ".rspec_parallel"
377
367
  - CHANGELOG.md
378
368
  - COPYRIGHT
379
369
  - Gemfile
370
+ - INTRO.md
380
371
  - LICENSE
381
372
  - MAINTAINERS.md
382
373
  - README.md
@@ -601,7 +592,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
601
592
  - !ruby/object:Gem::Version
602
593
  version: '0'
603
594
  requirements: []
604
- rubygems_version: 3.3.14
595
+ rubygems_version: 3.1.6
605
596
  signing_key:
606
597
  specification_version: 4
607
598
  summary: A Ruby client library for ably.io realtime messaging implemented using EventMachine