module StringEnums::ClassMethods
Public Instance Methods
string_enum(pairs)
click to toggle source
rubocop:disable Metrics/MethodLength
# 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 <<-RUBY const_set("#{name.upcase}_#{snake_case_value.upcase}", '#{value}') def #{snake_case_value}? string_enum_check_value?(:#{name}, '#{value}') end def mark_#{snake_case_value} string_enum_write_value(:#{name}, '#{value}') end RUBY end end end