Module: Enumattr::Ext::Name::ClassMethods
- Defined in:
- lib/enumattr-ext/name.rb
Instance Method Summary collapse
- #define_enumattr_class_methods_with_name(enumattr_name) ⇒ Object
- #define_enumattr_instance_methods_with_name(enumattr_name) ⇒ Object
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__) |