Class methods that provide preparation of options passed to the
versioned
method.
The prepare_versioned_options
method has three purposes:
Populate the provided options with default values where needed
Prepare options for use with the has_many
association
Save user-configurable options in a class-level variable
Options are given priority in the following order:
Those passed directly to the versioned
method
Those specified in an initializer configure
block
Default values specified in prepare_versioned_options
The method is overridden in feature modules that require specific options
outside the standard has_many
associations.
# File lib/vestal_versions/options.rb, line 24 def prepare_versioned_options(options) options.symbolize_keys! options.reverse_merge!(Configuration.options) options.reverse_merge!( :class_name => 'VestalVersions::Version', :dependent => :delete_all ) options.reverse_merge!( :order => "#{options[:class_name].constantize.table_name}.number ASC" ) class_inheritable_accessor :vestal_versions_options self.vestal_versions_options = options.dup options.merge!( :as => :versioned, :extend => Array(options[:extend]).unshift(Versions) ) end