Module: ActiveModule::Enum::InstanceMethodsDefiner

Included in:
ActiveModule::Enum
Defined in:
lib/active_module/enum/instance_methods_definer.rb

Instance Method Summary collapse

Instance Method Details

#define_instance_methods(attribute_name, mod, value_name, opts, existing) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/active_module/enum/instance_methods_definer.rb', line 6

def define_instance_methods(attribute_name, mod,
                            value_name, opts,
                            existing)
  name = enum_method_name(value_name, opts)
  define_if_new(
    existing[:instance], :"#{name}?"
  ) do
    public_send(attribute_name) == mod
  end
  define_if_new(
    existing[:instance], :"#{name}!"
  ) do
    public_send("#{attribute_name}=", mod)
    save!
  end
end