From 513dd2cfdb98c01bce9759b29c48aa8b691f53d4 Mon Sep 17 00:00:00 2001 From: Vladimir Dementyev Date: Tue, 22 Jan 2019 15:06:16 -0500 Subject: Add note about broadcast_to/broadcasting_for to change log --- actioncable/CHANGELOG.md | 19 +++++++++++++++++++ actioncable/lib/action_cable/channel/broadcasting.rb | 7 ++++++- 2 files changed, 25 insertions(+), 1 deletion(-) (limited to 'actioncable') diff --git a/actioncable/CHANGELOG.md b/actioncable/CHANGELOG.md index 4109dd6138..7f3177b64e 100644 --- a/actioncable/CHANGELOG.md +++ b/actioncable/CHANGELOG.md @@ -1,3 +1,22 @@ +* Add `Channel::Base#broadcast_to`. + + You can now call `broadcast_to` within a channel action, which equals to + the `self.class.broadcast_to`. + + *Vladimir Dementyev* + +* Make `Channel::Base.broadcasting_for` a public API. + + You can use `.broadcasting_for` to generate a unique stream identifier within + a channel for the specified target (e.g. Active Record model): + + ```ruby + ChatChannel.broadcasting_for(model) # => "chat:" + ``` + + *Vladimir Dementyev* + + ## Rails 6.0.0.beta1 (January 18, 2019) ## * Merge [`action-cable-testing`](https://github.com/palkan/action-cable-testing) to Rails. diff --git a/actioncable/lib/action_cable/channel/broadcasting.rb b/actioncable/lib/action_cable/channel/broadcasting.rb index 6c7aec49e3..9f702e425e 100644 --- a/actioncable/lib/action_cable/channel/broadcasting.rb +++ b/actioncable/lib/action_cable/channel/broadcasting.rb @@ -15,7 +15,12 @@ module ActionCable ActionCable.server.broadcast(broadcasting_for(model), message) end - # Returns a unique broadcasting identifier for this model in this channel. + # Returns a unique broadcasting identifier for this model in this channel: + # + # CommentsChannel.broadcasting_for("all") # => "comments:all" + # + # You can pass any object as a target (e.g. Active Record model), and it + # would be serialized into a string under the hood. def broadcasting_for(model) serialize_broadcasting([ channel_name, model ]) end -- cgit v1.2.3