lib/renum/enumerated_value.rb in renum-1.0.2 vs lib/renum/enumerated_value.rb in renum-1.2.0

- old
+ new

@@ -1,16 +1,22 @@ require 'forwardable' module Renum + + # This is the superclass of all enumeration classes. + # An enumeration class is Enumerable over its values and also delegates [] + # to the values array. + # Values are also comparable, sorting into the order in which they're declared. class EnumeratedValue class << self include Enumerable extend Forwardable def_delegators :values, :each, :[] + # Returns an array of values in the order they're declared. def values @values ||= [] end end @@ -23,13 +29,17 @@ @name = name.to_s @index = self.class.values.size self.class.values << self end + # Returns the fully qualified constant referring to this value. + # Don't override this if you're using Renum with the constantize_attribute + # plugin, which relies on this behavior. def to_s "#{self.class}::#{name}" end + # Sorts enumerated values into the order in which they're declared. def <=> other index <=> other.index end end \ No newline at end of file