Module: Schemad::Normalizer::ClassMethods
- Defined in:
- lib/schemad/normalizer.rb
Instance Method Summary collapse
- #include_fields(*fields) ⇒ Object
- #inherited(subclass) ⇒ Object
- #normalize(name, args = {}, &block) ⇒ Object
- #normalizer_method_name(field) ⇒ Object
Instance Method Details
#include_fields(*fields) ⇒ Object
26 27 28 |
# File 'lib/schemad/normalizer.rb', line 26 def include_fields(*fields) @allowed_attributes.concat fields end |
#inherited(subclass) ⇒ Object
18 19 20 21 22 23 24 |
# File 'lib/schemad/normalizer.rb', line 18 def inherited(subclass) default_normalizers = inherited_var(:@normalizers, {}) subclass.instance_variable_set(:@normalizers, default_normalizers) default_allowed = inherited_var(:@allowed_attributes, []) subclass.instance_variable_set(:@allowed_attributes, default_allowed) end |
#normalize(name, args = {}, &block) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
# File 'lib/schemad/normalizer.rb', line 30 def normalize(name, args={}, &block) lookup = args[:key] || name method_name = normalizer_method_name(name) @normalizers[lookup] = name @allowed_attributes << lookup define_method method_name do |data| value = find_value lookup, data return value unless block_given? yield value end end |
#normalizer_method_name(field) ⇒ Object
45 46 47 |
# File 'lib/schemad/normalizer.rb', line 45 def normalizer_method_name(field) "normalize_#{field}".to_sym end |