render_turbo_stream 4.0.4 → 4.1.0
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 +12 -9
- data/lib/render_turbo_stream/controller_helpers.rb +4 -4
- data/lib/render_turbo_stream/controller_libs.rb +5 -28
- data/lib/render_turbo_stream/version.rb +1 -1
- 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: 73c62b93b9a7cdfa27dd6c8deb1f2da481988ad5207429336b5251b84c02335c
|
4
|
+
data.tar.gz: b3504b0025f80a163bfaea60b01e5de084d2c140ab88ad7f0d0f5d4839cb6003
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e6f6c351f50641661a33b6e611b0bf20249663146ff43800a0cd77d68e54b27a5bf153a03b574ef06b46cfb4d0613e1430123b07c7097af8a78b37f96a9acc9a
|
7
|
+
data.tar.gz: 2d601fb99cd002a925efa4b23bfad9f27496ecf1ad8a05a8c8c1b6c99d23e89c10a738f1e409f8bf0ba438dd50a62da691587e6d6fd29e55330292d35470bbe6
|
data/README.md
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
2021 DHH annouced a great milestone in web development with [Rails 7, "Fulfilling a Vision"](https://rubyonrails.org/2021/12/15/Rails-7-fulfilling-a-vision).
|
4
4
|
|
5
|
-
|
5
|
+
This gem has a second [README Turbo::StreamsChannel](https://gitlab.com/sedl/renderturbostream/-/blob/main/README-channels.md). Starting point is here. And I recommend that you download my [Quick-and-dirty test project](https://gitlab.com/sedl/renderturbostream_railsapp), set it up, see all the tests succeed, and then read through this README.
|
6
6
|
|
7
7
|
Defining templates like `(create|update).turbo_stream.haml` is a heavy mix of logic and view. This gem separates logic and view so that `*.turbo_stream.*` templates are no longer necessary and the logic can stay on the ruby side.
|
8
8
|
|
@@ -67,15 +67,18 @@ The corresponding partials for flashes could look [like this](https://gitlab.com
|
|
67
67
|
```
|
68
68
|
en:
|
69
69
|
activerecord:
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
70
|
+
render_turbo_stream_success:
|
71
|
+
create: '%<model_name>s successfully created'
|
72
|
+
update: '%<model_name>s successfully updated'
|
73
|
+
destroy: '%<model_name>s successfully destroyed'
|
74
|
+
render_turbo_stream_errors:
|
75
|
+
create: '%<model_name>s could not be created'
|
76
|
+
update: '%<model_name>s could not be updated'
|
77
|
+
destroy: '%<model_name>s could not be destroyed'
|
77
78
|
```
|
78
79
|
|
80
|
+
The last key (e.g. `update`) marks the controller action.
|
81
|
+
|
79
82
|
Model name translations, see: Rails Docs.
|
80
83
|
|
81
84
|
**Turbo power**
|
@@ -167,7 +170,7 @@ If this config is set to true, Turbo::StreamsChannel is installed and a current
|
|
167
170
|
|
168
171
|
If an `if_success_redirect_to` argument is provided and the save action was successful, `turbo_stream_save` would send the partials by channel.
|
169
172
|
|
170
|
-
# Testing
|
173
|
+
# Request Testing
|
171
174
|
|
172
175
|
To test if the whole system works together, including javascript actions, so that finally a part reaches the surface, there is **Capybara** system testing. But it is a good practice to **break tests into smaller pieces**. So, there are helpers for **enabling the much faster request tests that are much easier to maintain**.
|
173
176
|
|
@@ -97,10 +97,10 @@ module RenderTurboStream
|
|
97
97
|
c_libs = RenderTurboStream::ChannelLibs.new(response)
|
98
98
|
c_libs.send_actions_to_channel("authenticated-user-#{helpers.current_user.id}", streams, @render_turbo_stream_evaluate_instance_variables)
|
99
99
|
else
|
100
|
-
flash[:alert] =
|
101
|
-
flash[:notice] =
|
102
|
-
Rails.logger.debug(" • Set flash[:alert] => #{
|
103
|
-
Rails.logger.debug(" • Set flash[:notice] => #{
|
100
|
+
flash[:alert] = flashes[:alerts]
|
101
|
+
flash[:notice] = flashes[:notices]
|
102
|
+
Rails.logger.debug(" • Set flash[:alert] => #{flashes[:alerts]}") if flashes[:alerts].present?
|
103
|
+
Rails.logger.debug(" • Set flash[:notice] => #{flashes[:notices]}") if flashes[:notices].present?
|
104
104
|
end
|
105
105
|
redirect_to if_success_redirect_to
|
106
106
|
|
@@ -18,22 +18,9 @@ module RenderTurboStream
|
|
18
18
|
if @save_action
|
19
19
|
notices = if if_success_notices
|
20
20
|
if_success_notices
|
21
|
-
elsif controller_action.to_sym == :create
|
22
|
-
str = I18n.t(
|
23
|
-
'activerecord.success.successfully_created',
|
24
|
-
default: '%<model_name>s successfully created'
|
25
|
-
)
|
26
|
-
[format(str, model_name: model_name)]
|
27
|
-
elsif controller_action.to_sym == :update
|
28
|
-
str = I18n.t(
|
29
|
-
'activerecord.success.successfully_updated',
|
30
|
-
default: '%<model_name>s successfully updated'
|
31
|
-
)
|
32
|
-
[format(str, model_name: model_name)]
|
33
21
|
else
|
34
22
|
str = I18n.t(
|
35
|
-
"activerecord.
|
36
|
-
default: '%<model_name>s successfully updated'
|
23
|
+
"activerecord.render_turbo_stream_success.#{controller_action}"
|
37
24
|
)
|
38
25
|
[format(str, model_name: model_name)]
|
39
26
|
end
|
@@ -41,22 +28,9 @@ module RenderTurboStream
|
|
41
28
|
else
|
42
29
|
alerts = if if_error_alerts
|
43
30
|
if_error_alerts
|
44
|
-
elsif controller_action.to_sym == :create
|
45
|
-
str = I18n.t(
|
46
|
-
'activerecord.errors.messages.could_not_create',
|
47
|
-
default: '%<model_name>s could not be created'
|
48
|
-
)
|
49
|
-
[format(str, model_name: model_name)]
|
50
|
-
elsif controller_action.to_sym == :update
|
51
|
-
str = I18n.t(
|
52
|
-
'activerecord.errors.messages.could_not_update',
|
53
|
-
default: '%<model_name>s could not be updated'
|
54
|
-
)
|
55
|
-
[format(str, model_name: model_name)]
|
56
31
|
else
|
57
32
|
str = I18n.t(
|
58
|
-
"activerecord.
|
59
|
-
default: '%<model_name>s could not be updated'
|
33
|
+
"activerecord.render_turbo_stream_errors.#{controller_action}"
|
60
34
|
)
|
61
35
|
[format(str, model_name: model_name)]
|
62
36
|
end
|
@@ -151,6 +125,9 @@ module RenderTurboStream
|
|
151
125
|
if a.is_a?(Hash) && a.key?(:target_id)
|
152
126
|
a = a.merge(target: "##{a[:target_id]}")
|
153
127
|
a.delete(:target_id)
|
128
|
+
unless a.key?(:action)
|
129
|
+
a[:action] = :replace
|
130
|
+
end
|
154
131
|
a
|
155
132
|
else
|
156
133
|
a
|
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: 4.0
|
4
|
+
version: 4.1.0
|
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-17 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -24,12 +24,12 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 7.0.3
|
27
|
-
description:
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
can be
|
32
|
-
with system and request tests is
|
27
|
+
description: This gem brings a set of helpers that allow a unified workflow for TurboStream
|
28
|
+
and TurboStreams::Channel and a testing strategy. To avoid a heavy view and logic
|
29
|
+
mix inside *.turbo_stream.* templates, this allows to completely separate view and
|
30
|
+
logic and control all templates and partials directly from the controller. Javascript
|
31
|
+
actions can also be executed directly from the controller. A demo project with all
|
32
|
+
this built in along with system and request tests, is linked in the README.
|
33
33
|
email:
|
34
34
|
- christian@sedlmair.ch
|
35
35
|
executables: []
|