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