futurism 1.2.0.pre7 → 1.2.0.pre8

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: 63b1ff17b81590446065de7fb4bf679605514bfaac06d59522f42d83fb6e771a
4
- data.tar.gz: 5643e6051b11724edcf0274fb863c5d09a0d9fdfe82fd056c25bbdaaae901b69
3
+ metadata.gz: c1bffa6e39b44603caf5ef679a8785e0df31e1019d57e2aef49208751a4fd7ba
4
+ data.tar.gz: f725d03372fa6919fb633801b884395cfefb88f95944adc22b08889bee97827c
5
5
  SHA512:
6
- metadata.gz: c6803e1178cf5aab943cd1d7dfc7b1cea6a41342484a4e3d77235e8a4486925edbeccce713c95135e6f8b9df500cdad44d414c3208298c39739eb7f11b1e4f28
7
- data.tar.gz: fba50ae48ee6c3100619cd62bc784f7e8e75c74698300fcd9e14dadf13d66987577badae393863e4da7dbe589c2c9016dde2296bbcf045e8193b91f5cde51d34
6
+ metadata.gz: 55a981065cef8d8a62f169b0bb360418b642deaee1fc590ef2460c1e2723a60791df0f11e482c14985bfd40daaa9ff8e4a5d223fd26d204e68e31c7eb1675d2d
7
+ data.tar.gz: 2cdf24b379ca0d654a08981b130b500d2399243d8deeecd59164bc40ff1296f03c64c44606418ff29012dc72b8f546631e79df1af9fca90287340218af2e5a36
data/README.md CHANGED
@@ -21,6 +21,7 @@ Lazy-load Rails partials via CableReady
21
21
  - [Explicit Partial](#explicit-partial)
22
22
  - [HTML Options](#html-options)
23
23
  - [Eager Loading](#eager-loading)
24
+ - [Bypassing](#bypassing)
24
25
  - [Broadcast Partials Individually](#broadcast-partials-individually)
25
26
  - [Contextual Placeholder Arguments](#contextual-placeholder-arguments)
26
27
  - [Events](#events)
@@ -175,6 +176,19 @@ Futurism makes that dead simple:
175
176
  <% end %>
176
177
  ```
177
178
 
179
+ ### Bypassing
180
+
181
+ In some rare cases, e.g. when combined with CableReady's async `updates_for` mechanism, you'll want to bypass futurism entirely and fall back to native `rendering`. You can do this by passing an `unless` option:
182
+
183
+ ```erb
184
+ <%= futurize 'some_tab', unless: bypass_futurism?, extends: :tr do %>
185
+ <div class="placeholder"</td>
186
+ <% end %>
187
+ ```
188
+
189
+ Internally, this works the same as [bypassing futurism in tests](#testing)
190
+
191
+
178
192
  ### Broadcast Partials Individually
179
193
  Futurism's default behavior is to `broadcast` partials as they are generated in batches:
180
194
 
@@ -188,7 +202,7 @@ For collections, however, you can opt into individual broadcasts by specifying `
188
202
  <% end %>
189
203
  ```
190
204
 
191
- ## Contextual Placeholder Arguments
205
+ ### Contextual Placeholder Arguments
192
206
 
193
207
  For individual models or arbitrary collections, you can pass `record` and `index` to the placeholder block as arguments:
194
208
 
@@ -1,7 +1,7 @@
1
1
  module Futurism
2
2
  module Helpers
3
3
  def futurize(records_or_string = nil, extends:, **options, &block)
4
- if Rails.env.test? && Futurism.skip_in_test
4
+ if (Rails.env.test? && Futurism.skip_in_test) || options[:unless]
5
5
  if records_or_string.nil?
6
6
  return render(**options)
7
7
  else
@@ -11,6 +11,9 @@ module Futurism
11
11
 
12
12
  options[:eager] = true unless block_given?
13
13
 
14
+ # cannot serialize a proc
15
+ options.delete(:cached) if options[:cached].is_a?(Proc)
16
+
14
17
  if records_or_string.is_a?(ActiveRecord::Base) || records_or_string.is_a?(ActiveRecord::Relation)
15
18
  futurize_active_record(records_or_string, extends: extends, **options, &block)
16
19
  elsif records_or_string.is_a?(String)
@@ -55,6 +55,7 @@ module Futurism
55
55
  class WrappingFuturismElement
56
56
  include ActionView::Helpers
57
57
  include Futurism::MessageVerifier
58
+ include Futurism::OptionsTransformer
58
59
 
59
60
  attr_reader :extends, :placeholder, :html_options, :data_attributes, :model, :options, :eager, :broadcast_each, :controller
60
61
 
@@ -92,14 +93,7 @@ module Futurism
92
93
  end
93
94
 
94
95
  def transformed_options
95
- require_relative "shims/deep_transform_values" unless options.respond_to? :deep_transform_values
96
-
97
- options.deep_transform_values do |value|
98
- next(value) unless value.respond_to?(:to_global_id)
99
- next(value) if value.is_a?(ActiveRecord::Base) && value.new_record?
100
-
101
- value.to_global_id.to_s
102
- end
96
+ dump_options(options)
103
97
  end
104
98
 
105
99
  private
@@ -1,3 +1,3 @@
1
1
  module Futurism
2
- VERSION = "1.2.0.pre7"
2
+ VERSION = "1.2.0.pre8"
3
3
  end
@@ -1,3 +1,3 @@
1
1
  module Futurism
2
- VERSION = "1.2.0.pre6"
2
+ VERSION = "1.2.0.pre7"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: futurism
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.0.pre7
4
+ version: 1.2.0.pre8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Julian Rubisch
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-11-05 00:00:00.000000000 Z
11
+ date: 2021-11-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler