view_component_reflex 1.2.0 → 1.3.0

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: 4ed2f845769bba6d5142bef6d6fc601b44841080c49ee47abc0036801f62b145
4
- data.tar.gz: 73e625d1948e5b477def8e098a4a4d55b9a02763c575e1d4bdd4c734e0f208b0
3
+ metadata.gz: 30533287ce1445add7dba2ebed5013ed80e792de560fa9c930f3e13dcbd612d7
4
+ data.tar.gz: bf84f573e602b373855848b2fbe61245967e4f16e7a420b03c1b6414aa1c8c73
5
5
  SHA512:
6
- metadata.gz: 76c5b53b3acb0fa68084b762ad14fddbaa0aee1d0b9bbe67f33910f088e7b60062bf5dcf61c7703932b2cfa228f4bccfc768e6b9ab64253397e3483efd50cfb5
7
- data.tar.gz: 077a34955920288651b183d77971d30eb4fbfeabe45aaa799d78f2ea242cb46f328d23223508d053e53210c00e9aeb570e9d234b571aba3005e57b6448afd5fc
6
+ metadata.gz: 47dc5ab24c0711778b07b8460207b1e532c944173d4df2cc8fe33447868b96a9043ad972b5a9672a0ea09ad323199b7cfa15327634199d3218e69e6c797f4196
7
+ data.tar.gz: d9dbc21f77baf9c73c20352a5163c8af52317a0138393d4128cc34bb60e903227e62e28e0f0e0ad92f4fa10d4206f79d295c74582774b93fefffd14801fe5c44
data/README.md CHANGED
@@ -59,6 +59,16 @@ end
59
59
  If a new parameter is passed to the component during rendering, it is used instead of what's in state.
60
60
  If you're storing instances in state, you can use this to properly compare them.
61
61
 
62
+ ### omitted_from_state
63
+ Return an array of instance variables you want to omit from state. Useful if you have an object
64
+ that isn't serializable as an instance variable, like a form.
65
+
66
+ ```
67
+ def omitted_from_state
68
+ [:@form]
69
+ end
70
+ ```
71
+
62
72
 
63
73
  ## Custom State Adapters
64
74
 
@@ -62,7 +62,7 @@ module ViewComponentReflex
62
62
  return @component if @component
63
63
  @component = component_class.allocate
64
64
  reflex = self
65
- exposed_methods = [:params, :request, :element, :refresh!, :refresh_all!, :stimulus_controller]
65
+ exposed_methods = [:params, :request, :element, :refresh!, :refresh_all!, :stimulus_controller, :session]
66
66
  exposed_methods.each do |meth|
67
67
  @component.define_singleton_method(meth) do |*a|
68
68
  reflex.send(meth, *a)
@@ -129,6 +129,10 @@ module ViewComponentReflex
129
129
  initial_param != new_param
130
130
  end
131
131
 
132
+ def omitted_from_state
133
+ []
134
+ end
135
+
132
136
  def key
133
137
  # initialize session state
134
138
  if !stimulus_reflex? || session[@key].nil?
@@ -141,7 +145,7 @@ module ViewComponentReflex
141
145
  :@helpers, :@controller, :@request, :@content
142
146
  ]
143
147
  instance_variables.reject { |k| blacklist.include?(k) }.each do |k|
144
- new_state[k] = instance_variable_get(k)
148
+ new_state[k] = instance_variable_get(k) unless omitted_from_state.include?(k)
145
149
  end
146
150
  ViewComponentReflex::Engine.state_adapter.store_state(request, @key, new_state)
147
151
  ViewComponentReflex::Engine.state_adapter.store_state(request, "#{@key}_initial", new_state)
@@ -1,3 +1,3 @@
1
1
  module ViewComponentReflex
2
- VERSION = '1.2.0'
2
+ VERSION = '1.3.0'
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: view_component_reflex
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Joshua LeBlanc
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-06-20 00:00:00.000000000 Z
11
+ date: 2020-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails