module ScopedEnum::ClassMethods

Public Class Methods

extended(base) click to toggle source
# File lib/scoped_enum.rb, line 10
def self.extended(base)
  base.class_attribute(:defined_enum_scopes)
  base.defined_enum_scopes = HashWithIndifferentAccess.new
end

Public Instance Methods

scoped_enum(enum_name, enum_entries, scopes = {}) { |scope_creator| ... } click to toggle source
# File lib/scoped_enum.rb, line 15
def scoped_enum(enum_name, enum_entries, scopes = {})
  enum(enum_name => enum_entries)
  scopes = HashWithIndifferentAccess.new_from_hash_copying_default(scopes)

  scope_creator = ScopeCreator.new(self, enum_name)
  scopes.each do |scope_name, scope_enum_keys|
    scope_creator.scope scope_name, scope_enum_keys
  end

  yield scope_creator if block_given?
  scope_creator.generate_enum_scopes_method
end