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
         |