render_turbo_stream 0.1.17 → 0.1.18
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 +1 -1
- data/lib/render_turbo_stream/test_helpers.rb +16 -1
- data/lib/render_turbo_stream/version.rb +1 -1
- data/lib/render_turbo_stream.rb +11 -1
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fd4172769edde2afebf684b4a53c6497e255b1acf0e03b5ca8fe2ba93b64437d
|
4
|
+
data.tar.gz: 1c99586db62a402be30535c39bf3d60b279fdb269000b2b362b49e1fa935308d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 510284ee5f2b48df8161f0dc7a4552b5f9785b8c6d49a6b71dcdd98f37804bd22874a63e2f8f2f3b4967454fedfed8d3e2eb98bbfb85645a7e4cf83f4311c4d8
|
7
|
+
data.tar.gz: e0336ad09c42899b3c1b9d6d717cd1ec7b6a5781df932bf52956b643304170418dabd2334f4b99509e0059fa37f7a81f6a6672e22b9705890d400cd02a812eb0
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@ Defining templates like `(create|update).turbo_stream.haml` annoyed me.
|
|
4
4
|
|
5
5
|
Working consistently with turbo_stream means shooting lots of partials from the backend to the frontend, which always needs the same attributes: ID, partial, and maybe some locals. This gem serializes that: Partials can be controlled directly from the controller.
|
6
6
|
|
7
|
-
It sets the status, generates a flash message, handles redirection, pushes it all to the front and
|
7
|
+
It sets the status, generates a flash message, handles redirection, pushes it all to the front and comes with predefined helpers for enabling request-specs.
|
8
8
|
|
9
9
|
## Installation
|
10
10
|
|
@@ -1,6 +1,6 @@
|
|
1
1
|
module RenderTurboStream
|
2
2
|
module TestHelpers
|
3
|
-
def
|
3
|
+
def rendered_ids
|
4
4
|
e = Nokogiri::HTML(response.body).search('#check-json').first
|
5
5
|
JSON.parse(e.inner_html).keys
|
6
6
|
end
|
@@ -9,6 +9,21 @@ module RenderTurboStream
|
|
9
9
|
JSON.parse(e.inner_html)
|
10
10
|
end
|
11
11
|
|
12
|
+
# returns all partials that would be streamed to a given ID
|
13
|
+
# note: if more than one partial by turbo_stream.replace are streamed to same ID, render_turbo_stream, in test mode already throws a error
|
14
|
+
def rendered_partials_where_id(id)
|
15
|
+
partials = Nokogiri::HTML(response.body).search('#rendered-partials').first
|
16
|
+
JSON.parse(e.inner_html)
|
17
|
+
partials.select{|p| p[id] == id }
|
18
|
+
end
|
19
|
+
|
20
|
+
# returns the first partial that would be streamed to a given ID
|
21
|
+
def rendered_partials_find_id(id)
|
22
|
+
partials = Nokogiri::HTML(response.body).search('#rendered-partials').first
|
23
|
+
JSON.parse(e.inner_html)
|
24
|
+
partials.select{|p| p[id] == id }.first
|
25
|
+
end
|
26
|
+
|
12
27
|
def rendered_partials_count
|
13
28
|
rendered_partials.length
|
14
29
|
end
|
data/lib/render_turbo_stream.rb
CHANGED
@@ -150,13 +150,23 @@ module RenderTurboStream
|
|
150
150
|
if request.format.to_sym == :turbo_stream
|
151
151
|
render template: 'render_turbo_stream_partials', locals: { streams: ary }, layout: false
|
152
152
|
else
|
153
|
+
if Rails.env.test?
|
154
|
+
check_ids = {}
|
155
|
+
ary.each do |a|
|
156
|
+
if a[:action] == 'replace'
|
157
|
+
check_ids[a[:id]] ||= 0
|
158
|
+
check_ids[a[:id]] += 1
|
159
|
+
throw "More than one partial rendered to ID «#{a[:id]}» by replace" if check_ids[a[:id]] >= 2
|
160
|
+
end
|
161
|
+
end
|
162
|
+
end
|
153
163
|
check = {}
|
154
164
|
ary.each do |a|
|
155
165
|
b = a.dup
|
156
166
|
b.delete(:id)
|
157
167
|
check[a[:id]] = b
|
158
168
|
end
|
159
|
-
#render json: check
|
169
|
+
# render json: check
|
160
170
|
render template: 'render_turbo_stream_partials', locals: { check: check, streams: ary }, layout: false, formats: :html
|
161
171
|
end
|
162
172
|
end
|
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: 0.1.
|
4
|
+
version: 0.1.18
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- christian
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-04-
|
11
|
+
date: 2023-04-18 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -24,10 +24,10 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 7.0.4.3
|
27
|
-
description:
|
28
|
-
gem handles translated flash messages, sets status, and renders partials by turbo-stream.
|
29
|
-
|
30
|
-
|
27
|
+
description: |-
|
28
|
+
Writing views like (create|update).turbo_stream.haml annoyed me. This gem handles translated flash messages, sets status, and renders partials by turbo-stream. You can control them directly from the controller. It also handles redirection: turbo_power is included.
|
29
|
+
|
30
|
+
Comes with predefined helpers for enabling request-specs.
|
31
31
|
email:
|
32
32
|
- christian@sedlmair.ch
|
33
33
|
executables: []
|