Module: Futurism::OptionsTransformer

Included in:
Helpers::WrappingFuturismElement, Resolver::Resources
Defined in:
lib/futurism/options_transformer.rb

Instance Method Summary collapse

Instance Method Details

#dump_options(options) ⇒ Object



3
4
5
6
7
8
9
10
11
12
# File 'lib/futurism/options_transformer.rb', line 3

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

#load_options(options) ⇒ Object



14
15
16
17
18
# File 'lib/futurism/options_transformer.rb', line 14

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