Module: SimplerEnum::ClassMethods

Defined in:
lib/simpler_enum.rb

Instance Method Summary collapse

Instance Method Details

#simpler_enum(single_size_hash) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
23
24
# File 'lib/simpler_enum.rb', line 11

def simpler_enum(single_size_hash)
  fail ArgumentError if single_size_hash.size != 1

  name, enum_values = single_size_hash.first

  define_read_enum_values_method_to_class!(name.to_s.pluralize, enum_values)
  define_read_enum_value_method_to_instance!(name)
  define_write_enum_value_method_to_instance!(name)

  enum_values.each do |key, _|
    define_query_enum_state_method_to_instance!(name, key)
    define_change_enum_state_method_to_instance!(name, key)
  end
end