Class: ActiveRecord::VirtualEnumerations::Config
- Inherits:
-
Object
- Object
- ActiveRecord::VirtualEnumerations::Config
- Defined in:
- lib/active_record/virtual_enumerations.rb
Overview
Config class for VirtualEnumerations
Instance Method Summary collapse
-
#[](arg) ⇒ Object
Proxies lookups to @enumeration_defs.
-
#define(*args, &block) ⇒ Object
Creates definition(s) for one or more enums.
-
#initialize ⇒ Config
constructor
:nodoc:.
Constructor Details
#initialize ⇒ Config
:nodoc:
146 147 148 |
# File 'lib/active_record/virtual_enumerations.rb', line 146 def initialize # :nodoc: @enumeration_defs = {} end |
Instance Method Details
#[](arg) ⇒ Object
Proxies lookups to @enumeration_defs
176 177 178 |
# File 'lib/active_record/virtual_enumerations.rb', line 176 def [](arg) @enumeration_defs[arg] end |
#define(*args, &block) ⇒ Object
Creates definition(s) for one or more enums.
151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 |
# File 'lib/active_record/virtual_enumerations.rb', line 151 def define(*args, &block) = args. args.compact! args.flatten! args.each do |class_name| camel_name = class_name.to_s.camelize if camel_name.blank? raise ArgumentError, "ActiveRecord::VirtualEnumerations.define - invalid class_name argument (#{class_name.inspect})" end if @enumeration_defs[camel_name.to_sym] raise ArgumentError, "ActiveRecord::VirtualEnumerations.define - class_name already defined (#{camel_name})" end .assert_valid_keys(:table_name, :extends, :conditions, :order, :on_lookup_failure, :name_column, :alias_name) enum_def = .clone enum_def[:extends] = if superclass = enum_def[:extends] superclass.to_s.camelize else "ActiveRecord::Base" end enum_def[:customizations_block] = block @enumeration_defs[camel_name.to_sym] = enum_def end end |