module Flatter::Mapper::Traits::ClassMethods
Public Instance Methods
mount(*, &block)
click to toggle source
Calls superclass method
# File lib/flatter/mapper/traits.rb, line 26 def mount(*, &block) super.tap{ |f| f.extension = block } end
trait(trait_name, label: name, includes: nil, &block)
click to toggle source
# File lib/flatter/mapper/traits.rb, line 30 def trait(trait_name, label: name, includes: nil, &block) trait_name = "#{trait_name}_trait" mapper_class = Class.new(Flatter::Mapper) mapper_class.label = label mapper_class.class_eval(&block) if block.present? if self.name.present? mapper_class_name = trait_name.camelize const_set(mapper_class_name, mapper_class) end mount trait_name, mapper_class: mapper_class, trait: true, includes: includes end