ably 1.2.2 → 1.2.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.ably/capabilities.yaml +112 -0
- data/.github/workflows/check.yml +13 -3
- data/.github/workflows/docs.yml +36 -0
- data/.github/workflows/features.yml +14 -0
- data/.rspec_parallel +3 -0
- data/CHANGELOG.md +26 -0
- data/INTRO.md +14 -0
- data/README.md +2 -0
- data/lib/ably/auth.rb +26 -23
- data/lib/ably/models/auth_details.rb +9 -6
- data/lib/ably/models/channel_details.rb +15 -5
- data/lib/ably/models/channel_metrics.rb +31 -8
- data/lib/ably/models/channel_occupancy.rb +10 -3
- data/lib/ably/models/channel_options.rb +26 -3
- data/lib/ably/models/channel_state_change.rb +45 -15
- data/lib/ably/models/channel_status.rb +14 -4
- data/lib/ably/models/cipher_params.rb +36 -13
- data/lib/ably/models/connection_details.rb +91 -10
- data/lib/ably/models/connection_state_change.rb +54 -15
- data/lib/ably/models/delta_extras.rb +6 -7
- data/lib/ably/models/device_details.rb +60 -21
- data/lib/ably/models/device_push_details.rb +27 -19
- data/lib/ably/models/error_info.rb +59 -17
- data/lib/ably/models/http_paginated_response.rb +27 -5
- data/lib/ably/models/idiomatic_ruby_wrapper.rb +3 -2
- data/lib/ably/models/message.rb +64 -24
- data/lib/ably/models/message_encoders/base.rb +6 -0
- data/lib/ably/models/paginated_result.rb +29 -14
- data/lib/ably/models/presence_message.rb +72 -22
- data/lib/ably/models/protocol_message.rb +0 -4
- data/lib/ably/models/push_channel_subscription.rb +40 -15
- data/lib/ably/models/stats.rb +76 -40
- data/lib/ably/models/stats_types.rb +16 -40
- data/lib/ably/models/token_details.rb +34 -12
- data/lib/ably/models/token_request.rb +63 -2
- data/lib/ably/modules/async_wrapper.rb +1 -0
- data/lib/ably/modules/enum.rb +2 -0
- data/lib/ably/modules/event_emitter.rb +14 -1
- data/lib/ably/modules/model_common.rb +5 -0
- data/lib/ably/modules/state_emitter.rb +2 -0
- data/lib/ably/modules/state_machine.rb +4 -0
- data/lib/ably/realtime/channel/channel_properties.rb +9 -2
- data/lib/ably/realtime/channel/publisher.rb +2 -0
- data/lib/ably/realtime/channel/push_channel.rb +17 -10
- data/lib/ably/realtime/channel.rb +79 -42
- data/lib/ably/realtime/channels.rb +4 -3
- data/lib/ably/realtime/client/incoming_message_dispatcher.rb +6 -14
- data/lib/ably/realtime/client.rb +53 -32
- data/lib/ably/realtime/connection/connection_manager.rb +4 -0
- data/lib/ably/realtime/connection/websocket_transport.rb +4 -2
- data/lib/ably/realtime/connection.rb +94 -55
- data/lib/ably/realtime/presence.rb +61 -36
- data/lib/ably/realtime/push/admin.rb +16 -2
- data/lib/ably/realtime/push.rb +15 -3
- data/lib/ably/rest/channel/push_channel.rb +0 -3
- data/lib/ably/rest/channel.rb +29 -21
- data/lib/ably/rest/channels.rb +6 -3
- data/lib/ably/rest/client.rb +41 -35
- data/lib/ably/rest/presence.rb +27 -12
- data/lib/ably/rest/push/admin.rb +4 -0
- data/lib/ably/rest/push/device_registrations.rb +13 -2
- data/lib/ably/rest/push.rb +2 -0
- data/lib/ably/util/crypto.rb +14 -10
- data/lib/ably/version.rb +1 -1
- data/spec/acceptance/realtime/connection_spec.rb +0 -15
- data/spec/acceptance/realtime/message_spec.rb +3 -3
- data/spec/unit/models/protocol_message_spec.rb +0 -26
- data/spec/unit/realtime/incoming_message_dispatcher_spec.rb +0 -38
- 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.
|
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:
|
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.
|
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
|