Module: StringEnums::ClassMethods
- Defined in:
- lib/string_enums.rb
Instance Method Summary collapse
-
#string_enum(pairs) ⇒ Object
rubocop:disable Metrics/MethodLength.
Instance Method Details
#string_enum(pairs) ⇒ Object
rubocop:disable Metrics/MethodLength
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
# File 'lib/string_enums.rb', line 31 def string_enum(pairs) pairs.each do |name, values| values.each do |value| snake_case_value = value.tr(' ', '_') class_eval " const_set(\"\#{name.upcase}_\#{snake_case_value.upcase}\", '\#{value}')\n\n def \#{snake_case_value}?\n string_enum_check_value?(:\#{name}, '\#{value}')\n end\n\n def mark_\#{snake_case_value}\n string_enum_write_value(:\#{name}, '\#{value}')\n end\n RUBY\n end\n end\nend\n" |