class PersistentEnum::ActsAsEnum::State
Attributes
by_name[R]
by_name_insensitive[R]
by_ordinal[R]
enum_spec[R]
required_by_ordinal[R]
Public Class Methods
new(enum_spec, enum_values, required_enum_constants)
click to toggle source
# File lib/persistent_enum/acts_as_enum.rb, line 14 def initialize(enum_spec, enum_values, required_enum_constants) @enum_spec = enum_spec enum_values.each do |val| val.attributes.each_value { |attr| attr.freeze } val.freeze end @by_ordinal = enum_values.index_by(&:ordinal).freeze @by_name = enum_values .index_by { |v| v.read_attribute(enum_spec.name_attr) } .with_indifferent_access .freeze @by_name_insensitive = enum_values .index_by { |v| v.read_attribute(enum_spec.name_attr).downcase } .with_indifferent_access .freeze @required_by_ordinal = required_enum_constants .map { |name| by_name.fetch(name) } .index_by(&:ordinal) .freeze @insensitive_lookup = (by_name.size == by_name_insensitive.size) freeze end
Public Instance Methods
insensitive_lookup?()
click to toggle source
# File lib/persistent_enum/acts_as_enum.rb, line 44 def insensitive_lookup? @insensitive_lookup end