render_turbo_stream 0.1.43 → 0.1.44
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +3 -3
- data/app/views/render_turbo_stream_partials.html.erb +1 -1
- data/app/views/render_turbo_stream_partials.turbo_stream.erb +3 -3
- data/lib/render_turbo_stream/test/request_helpers.rb +2 -2
- data/lib/render_turbo_stream/version.rb +1 -1
- data/lib/render_turbo_stream.rb +11 -15
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ea0b39e1e5da88d8de2c8d84f287f6ce8ca6012b6ca203266fdf0f647f05a50f
|
4
|
+
data.tar.gz: a488032ebb3f9975e8ca9ec90b5e86238780f85a385efca0e4a01ece52f3440c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f137735dcfc2b7d77147e6cee12e432377f165b57fc7d42fd33274cd7865f99a8c8d58b66340ee3de695ceb3393c6a88584a70347143de211fab80200962a14d
|
7
|
+
data.tar.gz: 44813c9288b2c1d4d206e848969ddcc3a486ef1e3034a13bb66b581a582044dc42dfff8e2c12df573efbf45b9a55ab52d2b5a6e5651837a1b73957b22e89e94f
|
data/README.md
CHANGED
@@ -32,11 +32,11 @@ spec/rails_helper.rb
|
|
32
32
|
|
33
33
|
```ruby
|
34
34
|
RSpec.configure do |config|
|
35
|
-
config.include RenderTurboStream::
|
35
|
+
config.include RenderTurboStream::Test::RequestHelpers, type: :request
|
36
36
|
end
|
37
37
|
```
|
38
38
|
|
39
|
-
Redirection
|
39
|
+
**Redirection**
|
40
40
|
|
41
41
|
For redirection to work, you must follow the installation steps
|
42
42
|
from [turbo_power](https://github.com/marcoroth/turbo_power).
|
@@ -132,8 +132,8 @@ RSpec.describe "Articles", type: :request do
|
|
132
132
|
|
133
133
|
expect(partial_response('flash'){|r|r.inner_html.include?('Article could not be created')}).to eq(true)
|
134
134
|
expect(partial_response('flash'){|r|r.css('div').inner_html.include?('Article could not be created')}).to eq(true)
|
135
|
-
#=> you can use the validators of nokogiri, check: https://nokogiri.org/tutorials/parsing_an_html_xml_document.html
|
136
135
|
#=> if a partial was rendered more than once: at least one response must match
|
136
|
+
#=> you can use the validators of nokogiri, check: https://nokogiri.org/tutorials/parsing_an_html_xml_document.html
|
137
137
|
end
|
138
138
|
|
139
139
|
end
|
@@ -17,21 +17,21 @@
|
|
17
17
|
<% ctl[:action] = :replace %>
|
18
18
|
<% Rails.logger.debug(" • render-turbo-stream REPLACE => #{info}") %>
|
19
19
|
<%= turbo_stream.replace s[:id] do %>
|
20
|
-
<%= render s[:partial], locals: s[:locals] %>
|
20
|
+
<%= render s[:partial], locals: s[:locals].symbolize_keys %>
|
21
21
|
<% end %>
|
22
22
|
|
23
23
|
<% elsif s[:action].to_sym == :prepend %>
|
24
24
|
<% ctl[:action] = :prepend %>
|
25
25
|
<% Rails.logger.debug(" • render-turbo-stream PREPEND => #{info}") %>
|
26
26
|
<%= turbo_stream.prepend s[:id] do %>
|
27
|
-
<%= render s[:partial], locals: s[:locals] %>
|
27
|
+
<%= render s[:partial], locals: s[:locals].symbolize_keys %>
|
28
28
|
<% end %>
|
29
29
|
|
30
30
|
<% elsif s[:action].to_sym == :append %>
|
31
31
|
<% ctl[:action] = :append %>
|
32
32
|
<% Rails.logger.debug(" • render-turbo-stream APPEND => #{info}") %>
|
33
33
|
<%= turbo_stream.prepend s[:id] do %>
|
34
|
-
<%= render s[:partial], locals: s[:locals] %>
|
34
|
+
<%= render s[:partial], locals: s[:locals].symbolize_keys %>
|
35
35
|
<% end %>
|
36
36
|
|
37
37
|
<% else %>
|
@@ -43,8 +43,8 @@ module RenderTurboStream
|
|
43
43
|
end
|
44
44
|
|
45
45
|
|
46
|
-
def
|
47
|
-
RenderTurboStream::Libs.
|
46
|
+
def partial_response_count(partial, id: nil, total: 1, &block)
|
47
|
+
RenderTurboStream::Libs.partial_response_count(response, partial, id, total, &block )
|
48
48
|
end
|
49
49
|
|
50
50
|
end
|
data/lib/render_turbo_stream.rb
CHANGED
@@ -216,7 +216,7 @@ module RenderTurboStream
|
|
216
216
|
else
|
217
217
|
a['id'] == id
|
218
218
|
end
|
219
|
-
partial_matched
|
219
|
+
partial_matched && (id.present? ? id_matched : true)
|
220
220
|
end
|
221
221
|
|
222
222
|
end
|
@@ -233,26 +233,22 @@ module RenderTurboStream
|
|
233
233
|
part.length
|
234
234
|
end
|
235
235
|
|
236
|
-
def self.
|
236
|
+
def self.partial_response_count(response, partial, id, total, &block)
|
237
237
|
responses = select_responses(response, partial, id)
|
238
|
-
if block_given?
|
239
238
|
|
240
|
-
|
241
|
-
|
242
|
-
|
239
|
+
if total && responses.count != total
|
240
|
+
false
|
241
|
+
elsif block_given?
|
242
|
+
res = responses.select do |r|
|
243
243
|
parsed = Nokogiri::HTML(r['html_response'])
|
244
244
|
r = yield parsed
|
245
|
-
|
246
|
-
end
|
247
|
-
|
248
|
-
|
245
|
+
r.present?
|
246
|
+
end.length
|
247
|
+
(res == 0 ? nil : res)
|
249
248
|
else
|
250
|
-
|
251
|
-
responses.length == count
|
252
|
-
else
|
253
|
-
nil
|
254
|
-
end
|
249
|
+
responses.length
|
255
250
|
end
|
251
|
+
|
256
252
|
end
|
257
253
|
|
258
254
|
end
|