Method: Exposant::Model::ClassMethods#exposant

Defined in:
lib/exposant/model.rb

#exposant(obj, variant = nil, type = nil) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/exposant/model.rb', line 34

def exposant(obj, variant = nil, type = nil)
  obj.extend(ExposantMethods)
  obj.model_klass = self

  if type.present? && type != :exposant
    raise 'Type must be a symbol' unless type.is_a?(Symbol)

    obj.singleton_class.class_eval do
      define_method type do |var = nil|
        exposant(var, type)
      end
    end
  end

  obj.exposant(variant, type)
end