39
40
41
42
43
44
45
46
47
48
49
50
|
# File 'lib/active_record/virtual_enumerations.rb', line 39
def define(arg, options = {}, &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]
options.assert_valid_keys(:table_name, :extends, :conditions, :order, :on_lookup_failure)
enum_def = options.clone
enum_def[:extends] ||= "ActiveRecord::Base"
enum_def[:post_synth_block] = synth_block
@enumeration_defs[camel_name.to_sym] = enum_def
end
end
|