Sha256: 40db2dc86157a73b8a9e003d9d79e16b5e6b0eecb729fd070a94519d575d33e6

Contents?: true

Size: 706 Bytes

Versions: 8

Compression:

Stored size: 706 Bytes

Contents

module Futurism
  module OptionsTransformer
    def dump_options(options)
      require_relative "shims/deep_transform_values" unless options.respond_to? :deep_transform_values

      options.deep_transform_values do |value|
        next(value) unless value.respond_to?(:to_global_id)
        next(value) if value.is_a?(ActiveRecord::Base) && value.new_record?

        value.to_global_id.to_s
      end
    end

    def load_options(options)
      require_relative "shims/deep_transform_values" unless options.respond_to? :deep_transform_values

      options.deep_transform_values { |value| value.is_a?(String) && value.start_with?("gid://") ? GlobalID::Locator.locate(value) : value }
    end
  end
end

Version data entries

8 entries across 8 versions & 1 rubygems

Version Path
futurism-1.2.0 lib/futurism/options_transformer.rb
futurism-1.2.0.rc2 lib/futurism/options_transformer.rb
futurism-1.2.0.rc1 lib/futurism/options_transformer.rb
futurism-1.2.0.pre11 lib/futurism/options_transformer.rb
futurism-1.2.0.pre10 lib/futurism/options_transformer.rb
futurism-1.2.0.pre9 lib/futurism/options_transformer.rb
futurism-1.2.0.pre8 lib/futurism/options_transformer.rb
futurism-1.2.0.pre7 lib/futurism/options_transformer.rb