futurism 1.2.0.pre6 → 1.2.0.pre7
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 +4 -4
- data/lib/futurism/helpers.rb +2 -8
- data/lib/futurism/options_transformer.rb +20 -0
- data/lib/futurism/options_transformer.rb~ +0 -0
- data/lib/futurism/resolver/resources.rb +6 -6
- data/lib/futurism/version.rb +1 -1
- data/lib/futurism/version.rb~ +1 -1
- data/lib/futurism.rb +1 -0
- data/lib/futurism.rb~ +6 -2
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 63b1ff17b81590446065de7fb4bf679605514bfaac06d59522f42d83fb6e771a
|
4
|
+
data.tar.gz: 5643e6051b11724edcf0274fb863c5d09a0d9fdfe82fd056c25bbdaaae901b69
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c6803e1178cf5aab943cd1d7dfc7b1cea6a41342484a4e3d77235e8a4486925edbeccce713c95135e6f8b9df500cdad44d414c3208298c39739eb7f11b1e4f28
|
7
|
+
data.tar.gz: fba50ae48ee6c3100619cd62bc784f7e8e75c74698300fcd9e14dadf13d66987577badae393863e4da7dbe589c2c9016dde2296bbcf045e8193b91f5cde51d34
|
data/lib/futurism/helpers.rb
CHANGED
@@ -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
|
-
|
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
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Futurism
|
2
|
+
module OptionsTransformer
|
3
|
+
def dump_options(options)
|
4
|
+
require_relative "shims/deep_transform_values" unless options.respond_to? :deep_transform_values
|
5
|
+
|
6
|
+
options.deep_transform_values do |value|
|
7
|
+
next(value) unless value.respond_to?(:to_global_id)
|
8
|
+
next(value) if value.is_a?(ActiveRecord::Base) && value.new_record?
|
9
|
+
|
10
|
+
value.to_global_id.to_s
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def load_options(options)
|
15
|
+
require_relative "shims/deep_transform_values" unless options.respond_to? :deep_transform_values
|
16
|
+
|
17
|
+
options.deep_transform_values { |value| value.is_a?(String) && value.start_with?("gid://") ? GlobalID::Locator.locate(value) : value }
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
File without changes
|
@@ -2,6 +2,7 @@ module Futurism
|
|
2
2
|
module Resolver
|
3
3
|
class Resources
|
4
4
|
include Futurism::MessageVerifier
|
5
|
+
include Futurism::OptionsTransformer
|
5
6
|
|
6
7
|
# resource definitions are an array of [signed_params, sgid, signed_controller, url, broadcast_each]
|
7
8
|
def initialize(resource_definitions:, connection:, params:)
|
@@ -20,11 +21,11 @@ module Futurism
|
|
20
21
|
end
|
21
22
|
|
22
23
|
@resources_without_sgids.each do |resource_definition|
|
23
|
-
|
24
|
+
options = options_from_resource(resource_definition)
|
24
25
|
renderer = renderer_for(resource_definition: resource_definition)
|
25
26
|
html =
|
26
27
|
begin
|
27
|
-
renderer.render(
|
28
|
+
renderer.render(options)
|
28
29
|
rescue => exception
|
29
30
|
error_renderer.render(exception)
|
30
31
|
end
|
@@ -91,10 +92,9 @@ module Futurism
|
|
91
92
|
GlobalID::Locator.locate_many_signed @resources_with_sgids.map(&:sgid)
|
92
93
|
end
|
93
94
|
|
94
|
-
def
|
95
|
-
message_verifier
|
96
|
-
.verify(resource_definition.signed_params)
|
97
|
-
.deep_transform_values { |value| value.is_a?(String) && value.start_with?("gid://") ? GlobalID::Locator.locate(value) : value }
|
95
|
+
def options_from_resource(resource_definition)
|
96
|
+
load_options(message_verifier
|
97
|
+
.verify(resource_definition.signed_params))
|
98
98
|
end
|
99
99
|
end
|
100
100
|
end
|
data/lib/futurism/version.rb
CHANGED
data/lib/futurism/version.rb~
CHANGED
data/lib/futurism.rb
CHANGED
@@ -3,6 +3,7 @@ require "action_cable"
|
|
3
3
|
require "cable_ready"
|
4
4
|
require "futurism/engine"
|
5
5
|
require "futurism/message_verifier"
|
6
|
+
require "futurism/options_transformer"
|
6
7
|
require "futurism/resolver/resources"
|
7
8
|
require "futurism/resolver/controller"
|
8
9
|
require "futurism/resolver/controller/renderer"
|
data/lib/futurism.rb~
CHANGED
@@ -3,6 +3,7 @@ require "action_cable"
|
|
3
3
|
require "cable_ready"
|
4
4
|
require "futurism/engine"
|
5
5
|
require "futurism/message_verifier"
|
6
|
+
require "futurism/resolver/resources"
|
6
7
|
require "futurism/resolver/controller"
|
7
8
|
require "futurism/resolver/controller/renderer"
|
8
9
|
require "futurism/channel"
|
@@ -20,7 +21,10 @@ module Futurism
|
|
20
21
|
(@@default_controller || "::ApplicationController").to_s.constantize
|
21
22
|
end
|
22
23
|
|
23
|
-
ActiveSupport.on_load(:action_view)
|
24
|
+
ActiveSupport.on_load(:action_view) do
|
24
25
|
include Futurism::Helpers
|
25
|
-
|
26
|
+
end
|
27
|
+
|
28
|
+
mattr_accessor :logger
|
29
|
+
self.logger ||= Rails.logger ? Rails.logger.new : Logger.new($stdout)
|
26
30
|
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.
|
4
|
+
version: 1.2.0.pre7
|
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
|
+
date: 2021-11-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -156,6 +156,8 @@ files:
|
|
156
156
|
- lib/futurism/helpers.rb
|
157
157
|
- lib/futurism/helpers.rb~
|
158
158
|
- lib/futurism/message_verifier.rb
|
159
|
+
- lib/futurism/options_transformer.rb
|
160
|
+
- lib/futurism/options_transformer.rb~
|
159
161
|
- lib/futurism/resolver/controller.rb
|
160
162
|
- lib/futurism/resolver/controller.rb~
|
161
163
|
- lib/futurism/resolver/controller/renderer.rb
|