module HumanEnum

[ActiveRecord]: api.rubyonrails.org/v5.2.3/classes/ActiveRecord/Enum.html

Constants

VERSION

Public Instance Methods

enum(definitions) click to toggle source
Calls superclass method
# File lib/human_enum.rb, line 29
def enum(definitions)
  super definitions

  definitions.keys.without(:_prefix, :_suffix).each do |name|
    human_enum name
  end
end
human_enum(enum_name) click to toggle source
# File lib/human_enum.rb, line 51
def human_enum(enum_name)
  send :define_method, "human_#{enum_name}" do
    human_enum_value enum_name
  end

  collection_name = enum_name.to_s.pluralize
  self.class.send :define_method, "human_#{collection_name}" do
    human_enum_value enum_name, nil
  end
end
human_enum_value(enum_name) click to toggle source
# File lib/human_enum.rb, line 22
def human_enum_value(enum_name)
  enum_value = send enum_name
  self.class.human_enum_value(enum_name, enum_value) unless enum_value.nil?
end