module PersistentEnum::ActsAsEnum
Constants
- LOCK
Public Class Methods
register_acts_as_enum(clazz)
click to toggle source
# File lib/persistent_enum/acts_as_enum.rb, line 197 def register_acts_as_enum(clazz) LOCK.synchronize do @@known_enumerations[clazz.name] = clazz end end
reinitialize_enumerations()
click to toggle source
Reload enumerations from the database: useful if the database contents may have changed (e.g. fixture loading).
# File lib/persistent_enum/acts_as_enum.rb, line 205 def reinitialize_enumerations LOCK.synchronize do @@known_enumerations.each_value do |clazz| clazz.reinitialize_acts_as_enum end end end
rerequire_known_enumerations()
click to toggle source
Ensure that all known_enumerations are loaded by resolving each name constant and reregistering the resulting class. Raises NameError if a previously-encountered type cannot be resolved.
# File lib/persistent_enum/acts_as_enum.rb, line 216 def rerequire_known_enumerations LOCK.synchronize do @@known_enumerations.keys.each do |name| new_clazz = name.safe_constantize unless new_clazz.is_a?(Class) raise NameError.new("Could not resolve ActsAsEnum type '#{name}' after reload") end register_acts_as_enum(new_clazz) end end end
Public Instance Methods
active?()
click to toggle source
Is this enum member still present in the enum declaration?
# File lib/persistent_enum/acts_as_enum.rb, line 189 def active? self.class.active?(self) end
enum_constant()
click to toggle source
# File lib/persistent_enum/acts_as_enum.rb, line 176 def enum_constant read_attribute(self.class.name_attr) end
ordinal()
click to toggle source
# File lib/persistent_enum/acts_as_enum.rb, line 184 def ordinal read_attribute(:id) end
readonly?()
click to toggle source
Enum values should not be mutable: allow creation and modification only before the state has been initialized.
# File lib/persistent_enum/acts_as_enum.rb, line 172 def readonly? !self.class._acts_as_enum_state.nil? end
to_sym()
click to toggle source
# File lib/persistent_enum/acts_as_enum.rb, line 180 def to_sym enum_constant.to_sym end