Sha256: 684b23af7364c7f5703145218cb0a161d7061ffd7a6d2e73ba05a9df2fe14e34
Contents?: true
Size: 574 Bytes
Versions: 3
Compression:
Stored size: 574 Bytes
Contents
require 'active_support/inflector' module Enum def self.included(base) base.extend ClassMethods end module ClassMethods def values self.constants.map{|sym| self.const_get(sym)} end def name_for(value) self.constants.detect{|sym| self.const_get(sym) == value} end def from_symbol(sym) safe_constantize("#{self.name}::#{sym.to_s.upcase}") end def safe_constantize(str) begin str.constantize rescue NameError fail "'#{str}' has not been defined as a constant" end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
abstractivator-0.0.19 | lib/abstractivator/enum.rb |
abstractivator-0.0.18 | lib/abstractivator/enum.rb |
abstractivator-0.0.16 | lib/abstractivator/enum.rb |