render_turbo_stream 4.3.9 → 4.3.11

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b7267e8e4cbcb083f89379501417b50ee9452f573e9df2ca3db731d89b314307
4
- data.tar.gz: 33c771a46e9c0cb0210b2cf0253fbfb6629652ba549857309c2c448a1872816d
3
+ metadata.gz: 1632f986315bf12186e902f24959cd243b541ba1cf6055e88d53ea2019564855
4
+ data.tar.gz: 398cbcba033712aab8d7bf1022b40c5c47cb55820026e11387db4aa5d53c137f
5
5
  SHA512:
6
- metadata.gz: 2e548748b5db6f7bd0ebdec11f2c56a1c2828fb3c711162a76d5ca9b978c057118604a4a8d8ce7bb42565ce00f9123770ada2aa619e73f80f3152e5a365c5421
7
- data.tar.gz: df6c1bcd7dc3b140ab73506ba8d94a43d62514192734b6024b3439c90fe8b0b7582af1dde2bb494a3e0e24314ad3e102e00387bc3fed49f3fc7fb954e22472ee
6
+ metadata.gz: b2d46b22f8505bc1c6a5b7cd1c388e848dc90a7353e6cf86cfdb3c9a776bedd85be3f01cc25349b99b784d3aadbb682a8f23dc70d0a8a861db02131a6b1950d3
7
+ data.tar.gz: 73bec9e074afbf69bcd3765fd8100cb6721897bd70dd2d9488f079bf0daf39f2c54feb7f8cc881bbd45b4eddb7678d86cce767bfab583c53a92b97bc41ee3ae1
data/README.md CHANGED
@@ -193,6 +193,7 @@ The target ID for turbo has to be unique for sure, and it has to be nice, becaus
193
193
  ```ruby
194
194
  # target_id(virtual_view_path, object)
195
195
  target_id('customers/_form', Customer.new) #=> 'new-customer-form'
196
+ target_id('form', Customer.new) #=> 'new-customer-form'
196
197
  ```
197
198
 
198
199
  View-helper: Assuming we are inside `customers/_my_form`:
@@ -206,7 +207,8 @@ target_id(Customer.first) #=> 'customer-1-my-form'
206
207
  target_id( [Customer.first, Article.last, 'hello'] ) #=> 'customer-1-article-7-hello-my-form'
207
208
  target_id('hi-joe') #=> 'hi-joe'
208
209
 
209
- target_id_css('hi-joe') #=> '#hi-joe'
210
+ target_id_css('hi-joe') #=> '#hi-joe'
211
+ #=> is available for system tests, example for capybara: «within target_id_css('articles/_form', @article) do ..
210
212
  ```
211
213
 
212
214
  Why include the filename in a html-id? Because for turbo its likely to have multiple cases for the same object on the same page, for example: _form, _show, _password. These can all be the same customer.
@@ -238,6 +240,10 @@ In order to avoid this kind of tedious coding, the gem has a kind of fallback bu
238
240
  3. If all that not is found it raises a exception
239
241
  4. wraps the partial within the `turbo_stream.*` and sends this to the front.
240
242
 
243
+ **Debugging**
244
+
245
+ If a save action fails, `turbo_stream_save` and `turbo_channel_save` are logging the output from `Model.errors.full_messages` to the console, at log-level `:debug`.
246
+
241
247
  # Request Testing
242
248
 
243
249
  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**.
@@ -183,6 +183,10 @@ module RenderTurboStream
183
183
  raise libs.action_errors(turbo_actions).join(', ')
184
184
  end
185
185
 
186
+ unless save_action
187
+ RenderTurboStream::Libs.debug_save_errors(object, flash_controller_action_name)
188
+ end
189
+
186
190
  # xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
187
191
  #== RENDER TO CHANNEL
188
192
  # xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@@ -197,7 +201,7 @@ module RenderTurboStream
197
201
  end
198
202
 
199
203
  if save_action && if_success_redirect_to.present?
200
- response.status = 302
204
+ response.status = 303
201
205
  redirect_to if_success_redirect_to
202
206
  end
203
207
 
@@ -67,6 +67,7 @@ module RenderTurboStream
67
67
 
68
68
  unless save_action
69
69
  response.status = 422
70
+ RenderTurboStream::Libs.debug_save_errors(object, flash_controller_action_name)
70
71
  end
71
72
 
72
73
  # xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
@@ -76,7 +77,7 @@ module RenderTurboStream
76
77
  allow_channel = (Rails.configuration.x.render_turbo_stream.allow_channel_to_me_for_turbo_stream_save rescue false) && (helpers.current_user.id.present? rescue false)
77
78
 
78
79
  if save_action && if_success_turbo_redirect_to.present?
79
- response.status = 302
80
+ response.status = 303
80
81
  flash[:alert] = flashes[:alerts]
81
82
  flash[:notice] = flashes[:notices]
82
83
  Rails.logger.debug(" • Successful saved && Redirect by «turbo_redirect_to»")
@@ -84,5 +84,16 @@ module RenderTurboStream
84
84
  end
85
85
  end
86
86
 
87
+ def self.debug_save_errors(object, controller_action_name)
88
+ if object.id.present?
89
+ Rails.logger.debug(" • #{controller_action_name} #{object.class}:#{object.id} FAILED:")
90
+ else
91
+ Rails.logger.debug(" • #{controller_action_name} #{object.class} FAILED:")
92
+ end
93
+ object.errors.full_messages.each do |e|
94
+ Rails.logger.debug(" => #{e}")
95
+ end
96
+ end
97
+
87
98
  end
88
99
  end
@@ -1,3 +1,3 @@
1
1
  module RenderTurboStream
2
- VERSION = "4.3.9"
2
+ VERSION = "4.3.11"
3
3
  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: 4.3.9
4
+ version: 4.3.11
5
5
  platform: ruby
6
6
  authors:
7
7
  - christian
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-26 00:00:00.000000000 Z
11
+ date: 2023-08-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails