Module: ClassyEnum::Collection::ClassMethods

Defined in:
lib/classy_enum/collection.rb

Instance Method Summary collapse

Instance Method Details

#allObject

Returns an array of all instantiated enums

Example

# Create an Enum with some elements
class Priority < ClassyEnum::Base
end

class Priority::Low < Priority; end
class Priority::Medium < Priority; end
class Priority::High < Priority; end

Priority.all # => [Priority::Low.new, Priority::Medium.new, Priority::High.new]


54
55
56
# File 'lib/classy_enum/collection.rb', line 54

def all
  enum_options.map(&:new)
end

#inherited(klass) ⇒ Object



30
31
32
33
34
35
36
37
38
39
40
# File 'lib/classy_enum/collection.rb', line 30

def inherited(klass)
  if self == ClassyEnum::Base
    klass.class_attribute :enum_options
    klass.enum_options = []
  else
    enum_options << klass
    klass.instance_variable_set('@index', enum_options.size)
  end

  super
end

#select_optionsObject

Returns a 2D array for Rails select helper options. Also used internally for Formtastic support

Example

# Create an Enum with some elements
class Priority < ClassyEnum::Base
end

class Priority::Low < Priority; end
class Priority::ReallyHigh < Priority; end

Priority.select_options # => [["Low", "low"], ["Really High", "really_high"]]


70
71
72
# File 'lib/classy_enum/collection.rb', line 70

def select_options
  all.map {|e| [e.to_s.titleize, e.to_s] }
end