Module: Flatter::Mapper::Traits::ClassMethods

Defined in:
lib/flatter/mapper/traits.rb

Instance Method Summary collapse

Instance Method Details

#mount(&block) ⇒ Object



30
31
32
# File 'lib/flatter/mapper/traits.rb', line 30

def mount(*, &block)
  super.tap{ |f| f.extension = block }
end

#trait(name, &block) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
# File 'lib/flatter/mapper/traits.rb', line 34

def trait(name, &block)
  trait_name   = "#{name}_trait"
  mapper_class = Class.new(Flatter::Mapper, &block)

  if self.name.present?
    mapper_class_name = trait_name.camelize
    const_set(mapper_class_name, mapper_class)

    mount trait_name, mapper_class_name: "#{self.name}::#{mapper_class_name}", trait: true
  else
    mount trait_name, mapper_class: mapper_class, trait: true
  end
end