Module: Enumattr::Ext::Name::ClassMethods

Defined in:
lib/enumattr-ext/name.rb

Instance Method Summary collapse

Instance Method Details

#define_enumattr_class_methods_with_name(enumattr_name) ⇒ Object



16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/enumattr-ext/name.rb', line 16

def define_enumattr_class_methods_with_name(enumattr_name)
  define_enumattr_class_methods_without_name(enumattr_name)

  method_prefix = "#{enumattr_name}_"
  class_eval("    def self.\#{method_prefix}names\n      enumattrs[:\#{enumattr_name}].enums.map(&:name)\n    end\n\n    def self.\#{method_prefix}name(key)\n      enum = enumattrs[:\#{enumattr_name}].enum_by_key(key)\n      enum && enum.name\n    end\n\n    def self.\#{method_prefix}options\n      enumattrs[:\#{enumattr_name}].enums.map do |enum|\n        [ enum.name, enum.value ]\n      end\n    end\n  METHOD\nend\n", __FILE__, __LINE__)

#define_enumattr_instance_methods_with_name(enumattr_name) ⇒ Object



38
39
40
41
42
43
44
45
46
47
48
49
50
# File 'lib/enumattr-ext/name.rb', line 38

def define_enumattr_instance_methods_with_name(enumattr_name)
  define_enumattr_instance_methods_without_name(enumattr_name)

  enums = enumattrs[enumattr_name]
  method_prefix = "#{enumattr_name}_"

  class_eval("    def \#{method_prefix}name\n      enum = \#{method_prefix}enum\n      enum && enum.name\n    end\n  METHOD\nend\n", __FILE__, __LINE__)