Class: Schema::ModelNormalizer

Inherits:
Object
  • Object
show all
Defined in:
lib/schema/model_normalizer.rb

Overview

Normalize all attributes of a model

Instance Method Summary collapse

Constructor Details

#initializeModelNormalizer

Returns a new instance of ModelNormalizer.



6
7
8
# File 'lib/schema/model_normalizer.rb', line 6

def initialize
  @attribute_normalizers = {}
end

Instance Method Details

#add(attribute, method, options = {}) ⇒ Object



10
11
12
13
# File 'lib/schema/model_normalizer.rb', line 10

def add(attribute, method, options = {})
  @attribute_normalizers[attribute] ||= AttributeNormalizer.new
  @attribute_normalizers[attribute].add(method, options)
end

#normalize(model) ⇒ Object



15
16
17
18
19
20
# File 'lib/schema/model_normalizer.rb', line 15

def normalize(model)
  @attribute_normalizers.each do |attribute, attribute_normalizer|
    attribute_normalizer.normalize_model_attribute(model, attribute)
  end
  model
end