class ActiveRecord::VirtualEnumerations::Config
Config
class for VirtualEnumerations
Public Instance Methods
[](arg)
click to toggle source
Proxies lookups to @enumeration_defs
# File lib/active_record/virtual_enumerations.rb, line 174 def [](arg) @enumeration_defs[arg] end
define(*args, &block)
click to toggle source
Creates definition(s) for one or more enums.
# File lib/active_record/virtual_enumerations.rb, line 149 def define(*args, &block) options = args.extract_options! 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 options.assert_valid_keys(:table_name, :extends, :conditions, :order, :on_lookup_failure, :name_column, :alias_name) enum_def = options.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