module Enum::ClassMethods

Public Instance Methods

from(x) click to toggle source
# File lib/abstractivator/enum.rb, line 43
def from(x)
  if x.is_a?(Enum)
    x
  else
    values.find{|v| v.value == x}
  end
end
from_symbol(sym) click to toggle source
# File lib/abstractivator/enum.rb, line 39
def from_symbol(sym)
  safe_constantize("#{name}::#{sym.to_s.upcase}")
end
name_for(value) click to toggle source
# File lib/abstractivator/enum.rb, line 35
def name_for(value)
  constants.detect{|sym| const_get(sym) == value}
end
values() click to toggle source
# File lib/abstractivator/enum.rb, line 31
def values
  constants.map{|sym| const_get(sym)}.reject{|x| x == Enum::ClassMethods}
end

Private Instance Methods

safe_constantize(str) click to toggle source
# File lib/abstractivator/enum.rb, line 53
def safe_constantize(str)
  begin
    str.constantize
  rescue NameError
    fail "'#{str}' has not been defined as a constant"
  end
end