render_turbo_stream 3.0.3 → 3.0.5
Sign up to get free protection for your applications and to get access to all the features.
- 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
|