render_turbo_stream 3.0.3 → 3.0.5
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/README.md +15 -12
- data/lib/render_turbo_stream/controller_helpers.rb +2 -2
- data/lib/render_turbo_stream/version.rb +1 -1
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c984de11f7923f03531f0b53b0a4224bd3c56520f75bc4e92e16292c9e2a9e86
|
4
|
+
data.tar.gz: 184129722f704f61599a022f3ef6bb7306c3b7d1f74a5770a666cac9835e5839
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5983031570c67f03c85ae84341d51bfd6cbb76f2f1e5b1543f2434cc6d133edbcdbd25205c6162b55bdacaa7531c79a411f397c65695598b76096e1395c54182
|
7
|
+
data.tar.gz: e672f2427971215dada8b1b3b6047a6331e0c0e39f7c1b5166f2fe2992e35cbc03dc94fb7d39abcc2f1091d20f650d3b0ad6b2720fa4f66b4476810b2865785f
|
data/README.md
CHANGED
@@ -2,13 +2,11 @@
|
|
2
2
|
|
3
3
|
DHH made a milestone in web development with [Rails 7, "Fulfilling a Vision"](https://rubyonrails.org/2021/12/15/Rails-7-fulfilling-a-vision). This gem is my contribution to that bold new step. The goal is to have a complete rails like workflow.
|
4
4
|
|
5
|
-
Defining templates like `(create|update).turbo_stream.haml` annoyed me. Because it is a heavy mix of logic and view. Working consistently with turbo_stream or Turbo Streams Channel means shooting a lot of partials from the backend to the frontend.
|
5
|
+
Defining templates like `(create|update).turbo_stream.haml` annoyed me. Because it is a heavy mix of logic and view. Working consistently with turbo_stream or Turbo Streams Channel means shooting a lot of partials from the backend to the frontend. And there are many ways and tedious details to handle redirects since Turbo! This can all be streamlined.
|
6
6
|
|
7
7
|
Execute [turbo_power](https://github.com/marcoroth/turbo_power) commands such as adding a css class to an html element, pushing a state to the browser history, or running custom javascript actions through Turbo Stream can be written in pure ruby code. No need for embeds like `.html.erb`.
|
8
8
|
|
9
|
-
Logic to
|
10
|
-
|
11
|
-
This gem is in a early state.
|
9
|
+
Logic to Ruby, views to views, and the space in between for the gem! And all this together with a testing strategy for the Ruby side.
|
12
10
|
|
13
11
|
An overview of how we design a rails-7 application with turbo
|
14
12
|
is [published on dev.to](https://dev.to/chmich/rails-7-vite-wrapping-up-1pia).
|
@@ -53,22 +51,27 @@ Required Configurations for Flash Partial
|
|
53
51
|
config.x.render_turbo_stream.flash_partial = 'layouts/flash'
|
54
52
|
config.x.render_turbo_stream.flash_id = 'flash-box'
|
55
53
|
config.x.render_turbo_stream.flash_action = 'prepend'
|
56
|
-
config.x.render_turbo_stream.
|
54
|
+
config.x.render_turbo_stream.allow_channel_for_turbo_stream_save = true
|
57
55
|
```
|
58
56
|
|
57
|
+
For the latter you have to setup channels, see below.
|
58
|
+
|
59
59
|
The corresponding partials for flashes could look [like this](https://gitlab.com/sedl/renderturbostream/-/wikis/Flashes-example)
|
60
60
|
|
61
61
|
**Translations**
|
62
62
|
|
63
63
|
```
|
64
|
-
|
65
|
-
activerecord
|
66
|
-
|
67
|
-
|
64
|
+
en:
|
65
|
+
activerecord:
|
66
|
+
success:
|
67
|
+
successfully_created: '%<model_name>s successfully created'
|
68
|
+
successfully_updated: '%<model_name>s successfully updated'
|
69
|
+
errors:
|
70
|
+
messages:
|
71
|
+
could_not_create: '%<model_name>s could not be created'
|
72
|
+
could_not_update: '%<model_name>s could not be updated'
|
68
73
|
```
|
69
74
|
|
70
|
-
example value: `"%<model_name>s successfully created"`
|
71
|
-
|
72
75
|
Model name translations, see: Rails Docs.
|
73
76
|
|
74
77
|
**Turbo power**
|
@@ -158,7 +161,7 @@ Suppose you have a CRUD controller that should do all its actions inside a turbo
|
|
158
161
|
There are two workarounds:
|
159
162
|
|
160
163
|
```ruby
|
161
|
-
config.x.render_turbo_stream.
|
164
|
+
config.x.render_turbo_stream.allow_channel_for_turbo_stream_save = true
|
162
165
|
```
|
163
166
|
|
164
167
|
With this config, the `turbo_stream_save` method will send flash messages through `Turbo::StreamsChannel` (if installed as described above) to a channel to the currently logged in user in parallel with the redirect.
|
@@ -2,7 +2,7 @@ module RenderTurboStream
|
|
2
2
|
module ControllerHelpers
|
3
3
|
|
4
4
|
# Handles translated flash messages as defined in translations and configs.
|
5
|
-
# If :redirect_on_success_to and channel set up and
|
5
|
+
# If :redirect_on_success_to and channel set up and allow_channel_for_turbo_stream_save are configured, sends flash message by channel_to_me.
|
6
6
|
# you can add more stream actions to the same response
|
7
7
|
|
8
8
|
def turbo_stream_save(
|
@@ -155,7 +155,7 @@ module RenderTurboStream
|
|
155
155
|
])
|
156
156
|
elsif save_action && redirect_on_success_to.present?
|
157
157
|
response.status = 302
|
158
|
-
if (Rails.configuration.x.render_turbo_stream.
|
158
|
+
if (Rails.configuration.x.render_turbo_stream.allow_channel_for_turbo_stream_save rescue false) && (helpers.current_user.id.present? rescue false)
|
159
159
|
streams.each do |s|
|
160
160
|
next unless s.is_a?(Hash)
|
161
161
|
Rails.logger.debug(" • Send by Cable => «#{s}»")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: render_turbo_stream
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- christian
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-05-
|
11
|
+
date: 2023-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 7.0.
|
19
|
+
version: 7.0.3
|
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: 7.0.
|
26
|
+
version: 7.0.3
|
27
27
|
description: Handles translated flash messages, sets status and renders partials via
|
28
28
|
Turbo Stream or Turbo::StreamsChannel directly from the controller. No need to write
|
29
29
|
*.turbo_stream.* templates. Together with the turbo_power gem or custom turbo_stream
|