turbo-rails 1.0.0 → 1.0.1

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.
@@ -9,7 +9,7 @@
9
9
  # helper modules like <tt>Turbo::Streams::StreamName</tt>:
10
10
  #
11
11
  # class CustomChannel < ActionCable::Channel::Base
12
- # extend Turbo::Stream::Broadcasts, Turbo::Streams::StreamName
12
+ # extend Turbo::Streams::Broadcasts, Turbo::Streams::StreamName
13
13
  # include Turbo::Streams::StreamName::ClassMethods
14
14
  #
15
15
  # def subscribed
@@ -45,8 +45,9 @@
45
45
  # within a real-time path, like a controller or model, since all those updates require a rendering step, which can slow down
46
46
  # execution. You don't need to do this for remove, since only the dom id for the model is used.
47
47
  #
48
- # In addition to the four basic actions, you can also use <tt>broadcast_render_later</tt> or
49
- # <tt>broadcast_render_later_to</tt> to render a turbo stream template with multiple actions.
48
+ # In addition to the four basic actions, you can also use <tt>broadcast_render</tt>,
49
+ # <tt>broadcast_render_to</tt> <tt>broadcast_render_later</tt>, and <tt>broadcast_render_later_to</tt>
50
+ # to render a turbo stream template with multiple actions.
50
51
  module Turbo::Broadcastable
51
52
  extend ActiveSupport::Concern
52
53
 
@@ -275,9 +276,7 @@ module Turbo::Broadcastable
275
276
  broadcast_action_later_to self, action: action, target: target, **rendering
276
277
  end
277
278
 
278
-
279
- # Render a turbo stream template asynchronously with this broadcastable model passed as the local variable using a
280
- # <tt>Turbo::Streams::BroadcastJob</tt>. Example:
279
+ # Render a turbo stream template with this broadcastable model passed as the local variable. Example:
281
280
  #
282
281
  # # Template: entries/_entry.turbo_stream.erb
283
282
  # <%= turbo_stream.remove entry %>
@@ -289,7 +288,26 @@ module Turbo::Broadcastable
289
288
  # <turbo-stream action="remove" target="entry_5"></turbo-stream>
290
289
  # <turbo-stream action="append" target="entries"><template><div id="entry_5">My Entry</div></template></turbo-stream>
291
290
  #
292
- # ...to the stream named "entry:5"
291
+ # ...to the stream named "entry:5".
292
+ #
293
+ # Note that rendering inline via this method will cause template rendering to happen synchronously. That is usually not
294
+ # desireable for model callbacks, certainly not if those callbacks are inside of a transaction. Most of the time you should
295
+ # be using `broadcast_render_later`, unless you specifically know why synchronous rendering is needed.
296
+ def broadcast_render(**rendering)
297
+ broadcast_render_to self, **rendering
298
+ end
299
+
300
+ # Same as <tt>broadcast_render</tt> but run with the added option of naming the stream using the passed
301
+ # <tt>streamables</tt>.
302
+ #
303
+ # Note that rendering inline via this method will cause template rendering to happen synchronously. That is usually not
304
+ # desireable for model callbacks, certainly not if those callbacks are inside of a transaction. Most of the time you should
305
+ # be using `broadcast_render_later_to`, unless you specifically know why synchronous rendering is needed.
306
+ def broadcast_render_to(*streamables, **rendering)
307
+ Turbo::StreamsChannel.broadcast_render_to(*streamables, **broadcast_rendering_with_defaults(rendering))
308
+ end
309
+
310
+ # Same as <tt>broadcast_action_to</tt> but run asynchronously via a <tt>Turbo::Streams::BroadcastJob</tt>.
293
311
  def broadcast_render_later(**rendering)
294
312
  broadcast_render_later_to self, **rendering
295
313
  end
data/lib/turbo/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Turbo
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: turbo-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sam Stephenson
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2021-12-14 00:00:00.000000000 Z
13
+ date: 2022-01-16 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: actionpack