Class: ActiveRecord::VirtualEnumerations::Config
- Inherits:
-
Object
- Object
- ActiveRecord::VirtualEnumerations::Config
- Defined in:
- lib/active_record/virtual_enumerations.rb
Instance Method Summary collapse
- #[](arg) ⇒ Object
- #define(arg, options = {}, &synth_block) ⇒ Object
-
#initialize ⇒ Config
constructor
A new instance of Config.
Constructor Details
#initialize ⇒ Config
Returns a new instance of Config.
35 36 37 |
# File 'lib/active_record/virtual_enumerations.rb', line 35 def initialize @enumeration_defs = {} end |
Instance Method Details
#[](arg) ⇒ Object
52 53 54 |
# File 'lib/active_record/virtual_enumerations.rb', line 52 def [](arg) @enumeration_defs[arg] end |
#define(arg, options = {}, &synth_block) ⇒ Object
39 40 41 42 43 44 45 46 47 48 49 50 |
# File 'lib/active_record/virtual_enumerations.rb', line 39 def define(arg, = {}, &synth_block) (arg.is_a?(Array) ? arg : [arg]).each do |class_name| camel_name = class_name.to_s.camelize raise ArgumentError, "ActiveRecord::VirtualEnumerations.define - invalid class_name argument (#{class_name.inspect})" if camel_name.blank? raise ArgumentError, "ActiveRecord::VirtualEnumerations.define - class_name already defined (#{camel_name})" if @enumeration_defs[camel_name.to_sym] .assert_valid_keys(:table_name, :extends, :conditions, :order, :on_lookup_failure) enum_def = .clone enum_def[:extends] ||= "ActiveRecord::Base" enum_def[:post_synth_block] = synth_block @enumeration_defs[camel_name.to_sym] = enum_def end end |