ably 1.2.2 → 1.2.4

Sign up to get free protection for your applications and to get access to all the features.
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