Module: Representable::Deprecation::NormalizeOptions

Defined in:
lib/representable/deprecations.rb

Instance Method Summary collapse

Instance Method Details

#normalize_options(options) ⇒ Object



4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/representable/deprecations.rb', line 4

def normalize_options(options)

  unless options.any?
    options[:user_options] = {}
    return options
  end

  options      = options.dup

  user_option_keys = options.keys - [:doc, :exclude, :include, :wrap, :user_options, * representable_attrs.keys.map(&:to_sym)]
  if user_option_keys.any?
    user_options = {}
    warn "[Representable] Mixing user and representable options is deprecated. Please provide your options via :user_options."
    user_option_keys.each { |key| user_options[key] = options.delete(key) }
    options[:user_options] = user_options
  end

  options # {user_options: {..}, include: [], wrap: "song", artist: {..}}
end