actioncable 8.0.3 → 8.1.0.beta1
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 +4 -4
- data/CHANGELOG.md +6 -53
- data/lib/action_cable/channel/broadcasting.rb +6 -6
- data/lib/action_cable/channel/streams.rb +3 -3
- data/lib/action_cable/connection/stream_event_loop.rb +1 -0
- data/lib/action_cable/gem_version.rb +3 -3
- data/lib/action_cable/server/broadcasting.rb +6 -4
- data/lib/action_cable/server/worker.rb +1 -1
- data/lib/action_cable/subscription_adapter/base.rb +2 -1
- data/lib/rails/generators/channel/channel_generator.rb +3 -3
- metadata +8 -8
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 23d628c9902e296471a081c1fd0781d562485649067e725dd85f2d13aeb1ab77
|
4
|
+
data.tar.gz: ad44df73a5681b4ecaeeee4d4831107da2da833210c78e9f86ad1bf11195d920
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1197007dc525dbdaece760efafe54b6b5bf7eb4c30f37b4b899aeaf0e0bbf8fe7598b9c391ca0efa2f0b9f4f70703cce154126f09b151e2bbbac0a5c62ee75e1
|
7
|
+
data.tar.gz: 41338ae8f3611fffe437dc6a9f1f215bc1e03b8a0515ad7feaed8a28db96a67d5c7454b845b8e9637a2d61ba2d2aa7143fa3918feaaa9629b167fd63ee6719b0
|
data/CHANGELOG.md
CHANGED
@@ -1,58 +1,11 @@
|
|
1
|
-
## Rails 8.0.
|
1
|
+
## Rails 8.1.0.beta1 (September 04, 2025) ##
|
2
2
|
|
3
|
-
*
|
3
|
+
* Allow passing composite channels to `ActionCable::Channel#stream_for` – e.g. `stream_for [ group, group.owner ]`
|
4
4
|
|
5
|
-
*
|
5
|
+
*hey-leon*
|
6
6
|
|
7
|
-
*
|
7
|
+
* Allow setting nil as subscription connection identifier for Redis.
|
8
8
|
|
9
|
-
*
|
9
|
+
*Nguyen Nguyen*
|
10
10
|
|
11
|
-
|
12
|
-
## Rails 8.0.2.1 (August 13, 2025) ##
|
13
|
-
|
14
|
-
* No changes.
|
15
|
-
|
16
|
-
|
17
|
-
## Rails 8.0.2 (March 12, 2025) ##
|
18
|
-
|
19
|
-
* No changes.
|
20
|
-
|
21
|
-
|
22
|
-
## Rails 8.0.1 (December 13, 2024) ##
|
23
|
-
|
24
|
-
* Ensure the Postgresql adapter always use a dedicated connection even during system tests.
|
25
|
-
|
26
|
-
Fix an issue with the Action Cable Postgresql adapter causing deadlock or various weird
|
27
|
-
pg client error during system tests.
|
28
|
-
|
29
|
-
*Jean Boussier*
|
30
|
-
|
31
|
-
|
32
|
-
## Rails 8.0.0.1 (December 10, 2024) ##
|
33
|
-
|
34
|
-
* No changes.
|
35
|
-
|
36
|
-
|
37
|
-
## Rails 8.0.0 (November 07, 2024) ##
|
38
|
-
|
39
|
-
* No changes.
|
40
|
-
|
41
|
-
|
42
|
-
## Rails 8.0.0.rc2 (October 30, 2024) ##
|
43
|
-
|
44
|
-
* No changes.
|
45
|
-
|
46
|
-
|
47
|
-
## Rails 8.0.0.rc1 (October 19, 2024) ##
|
48
|
-
|
49
|
-
* No changes.
|
50
|
-
|
51
|
-
|
52
|
-
## Rails 8.0.0.beta1 (September 26, 2024) ##
|
53
|
-
|
54
|
-
* Add an `identifier` to the event payload for the ActiveSupport::Notification `transmit_subscription_confirmation.action_cable` and `transmit_subscription_rejection.action_cable`.
|
55
|
-
|
56
|
-
*Keith Schacht*
|
57
|
-
|
58
|
-
Please check [7-2-stable](https://github.com/rails/rails/blob/7-2-stable/actioncable/CHANGELOG.md) for previous changes.
|
11
|
+
Please check [8-0-stable](https://github.com/rails/rails/blob/8-0-stable/actioncable/CHANGELOG.md) for previous changes.
|
@@ -10,19 +10,19 @@ module ActionCable
|
|
10
10
|
extend ActiveSupport::Concern
|
11
11
|
|
12
12
|
module ClassMethods
|
13
|
-
# Broadcast a hash to a unique broadcasting for this `
|
14
|
-
def broadcast_to(
|
15
|
-
ActionCable.server.broadcast(broadcasting_for(
|
13
|
+
# Broadcast a hash to a unique broadcasting for this array of `broadcastables` in this channel.
|
14
|
+
def broadcast_to(broadcastables, message)
|
15
|
+
ActionCable.server.broadcast(broadcasting_for(broadcastables), message)
|
16
16
|
end
|
17
17
|
|
18
18
|
# Returns a unique broadcasting identifier for this `model` in this channel:
|
19
19
|
#
|
20
20
|
# CommentsChannel.broadcasting_for("all") # => "comments:all"
|
21
21
|
#
|
22
|
-
# You can pass
|
22
|
+
# You can pass an array of objects as a target (e.g. Active Record model), and it would
|
23
23
|
# be serialized into a string under the hood.
|
24
|
-
def broadcasting_for(
|
25
|
-
serialize_broadcasting([ channel_name
|
24
|
+
def broadcasting_for(broadcastables)
|
25
|
+
serialize_broadcasting([ channel_name ] + Array(broadcastables))
|
26
26
|
end
|
27
27
|
|
28
28
|
private
|
@@ -108,15 +108,15 @@ module ActionCable
|
|
108
108
|
end
|
109
109
|
end
|
110
110
|
|
111
|
-
# Start streaming the pubsub queue for the `
|
111
|
+
# Start streaming the pubsub queue for the `broadcastables` in this channel. Optionally,
|
112
112
|
# you can pass a `callback` that'll be used instead of the default of just
|
113
113
|
# transmitting the updates straight to the subscriber.
|
114
114
|
#
|
115
115
|
# Pass `coder: ActiveSupport::JSON` to decode messages as JSON before passing to
|
116
116
|
# the callback. Defaults to `coder: nil` which does no decoding, passes raw
|
117
117
|
# messages.
|
118
|
-
def stream_for(
|
119
|
-
stream_from(broadcasting_for(
|
118
|
+
def stream_for(broadcastables, callback = nil, coder: nil, &block)
|
119
|
+
stream_from(broadcasting_for(broadcastables), callback || block, coder: coder)
|
120
120
|
end
|
121
121
|
|
122
122
|
# Unsubscribes streams from the named `broadcasting`.
|
@@ -21,10 +21,12 @@ module ActionCable
|
|
21
21
|
# ActionCable.server.broadcast \
|
22
22
|
# "web_notifications_1", { title: "New things!", body: "All that's fit for print" }
|
23
23
|
#
|
24
|
-
# # Client-side
|
25
|
-
# App.cable.subscriptions.create
|
26
|
-
# received: (data)
|
27
|
-
# new Notification
|
24
|
+
# # Client-side JavaScript, which assumes you've already requested the right to send web notifications:
|
25
|
+
# App.cable.subscriptions.create("WebNotificationsChannel", {
|
26
|
+
# received: function(data) {
|
27
|
+
# new Notification(data['title'], { body: data['body'] })
|
28
|
+
# }
|
29
|
+
# })
|
28
30
|
module Broadcasting
|
29
31
|
# Broadcast a hash directly to a named `broadcasting`. This will later be JSON
|
30
32
|
# encoded.
|
@@ -59,17 +59,17 @@ module Rails
|
|
59
59
|
def create_channel_javascript_file
|
60
60
|
channel_js_path = File.join("app/javascript/channels", class_path, "#{file_name}_channel")
|
61
61
|
js_template "javascript/channel", channel_js_path
|
62
|
-
gsub_file "#{channel_js_path}.js", /\.\/consumer/, "channels/consumer"
|
62
|
+
gsub_file "#{channel_js_path}.js", /\.\/consumer/, "channels/consumer" if using_importmap?
|
63
63
|
end
|
64
64
|
|
65
65
|
def import_channels_in_javascript_entrypoint
|
66
66
|
append_to_file "app/javascript/application.js",
|
67
|
-
|
67
|
+
using_importmap? ? %(import "channels"\n) : %(import "./channels"\n)
|
68
68
|
end
|
69
69
|
|
70
70
|
def import_channel_in_javascript_entrypoint
|
71
71
|
append_to_file "app/javascript/channels/index.js",
|
72
|
-
|
72
|
+
using_importmap? ? %(import "channels/#{file_name}_channel"\n) : %(import "./#{file_name}_channel"\n)
|
73
73
|
end
|
74
74
|
|
75
75
|
def install_javascript_dependencies
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: actioncable
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 8.0.
|
4
|
+
version: 8.1.0.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pratik Naik
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 8.0.
|
19
|
+
version: 8.1.0.beta1
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - '='
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: 8.0.
|
26
|
+
version: 8.1.0.beta1
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: actionpack
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - '='
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 8.0.
|
33
|
+
version: 8.1.0.beta1
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - '='
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 8.0.
|
40
|
+
version: 8.1.0.beta1
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: nio4r
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -153,10 +153,10 @@ licenses:
|
|
153
153
|
- MIT
|
154
154
|
metadata:
|
155
155
|
bug_tracker_uri: https://github.com/rails/rails/issues
|
156
|
-
changelog_uri: https://github.com/rails/rails/blob/v8.0.
|
157
|
-
documentation_uri: https://api.rubyonrails.org/v8.0.
|
156
|
+
changelog_uri: https://github.com/rails/rails/blob/v8.1.0.beta1/actioncable/CHANGELOG.md
|
157
|
+
documentation_uri: https://api.rubyonrails.org/v8.1.0.beta1/
|
158
158
|
mailing_list_uri: https://discuss.rubyonrails.org/c/rubyonrails-talk
|
159
|
-
source_code_uri: https://github.com/rails/rails/tree/v8.0.
|
159
|
+
source_code_uri: https://github.com/rails/rails/tree/v8.1.0.beta1/actioncable
|
160
160
|
rubygems_mfa_required: 'true'
|
161
161
|
rdoc_options: []
|
162
162
|
require_paths:
|