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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: da571baa70cde46b6b14ba89a0a03f03077c0793b10859635fbdaf63b6a3cfe9
4
- data.tar.gz: 3693163b941c92eb9c2c7db6039b466bfeb89ab964653ab1c96ef76c41f035f9
3
+ metadata.gz: fd4172769edde2afebf684b4a53c6497e255b1acf0e03b5ca8fe2ba93b64437d
4
+ data.tar.gz: 1c99586db62a402be30535c39bf3d60b279fdb269000b2b362b49e1fa935308d
5
5
  SHA512:
6
- metadata.gz: 36c87925c827b81a718e0d97cf302f31530541f359474d31a4ad3dc76012f3bd6d075d27b9f0d1d006033011d2096184264169988b87403de20080058b1877e8
7
- data.tar.gz: bad186cba162fea280c24dfc14b9438b8bf60ce913fc97cb3571c0a0ac5de9432aa8bd1e58d86b8cb9991774a027fc7c61c64d97fa94127481124792e8e25d5d
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 prepares a response for request-specs.
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 streamed_ids
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
@@ -1,3 +1,3 @@
1
1
  module RenderTurboStream
2
- VERSION = "0.1.17"
2
+ VERSION = "0.1.18"
3
3
  end
@@ -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.17
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-17 00:00:00.000000000 Z
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: 'Writing views like (create|update).turbo_stream.haml annoyed me. This
28
- gem handles translated flash messages, sets status, and renders partials by turbo-stream.
29
- You can control them directly from the controller. It also handles redirection:
30
- turbo_power is included.'
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: []