Module: Normalizr::Concern::ClassMethods

Defined in:
lib/normalizr/concern.rb

Instance Method Summary collapse

Instance Method Details

#normalize(*args, &block) ⇒ Object Also known as: normalize_attribute, normalize_attributes



8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'lib/normalizr/concern.rb', line 8

def normalize(*args, &block)
  options = Normalizr::OptionsParser.new(args, block)

  prepend Module.new {
    options.attributes.each do |method|
      define_method :"#{method}=" do |value|
        value = Normalizr.normalize(value, *options.before)
        value = Normalizr.normalize(value, *options.after) if options.after.any?
        super(value)
      end
    end
  }
end