module VestalVersions::Conditions::ClassMethods

Class methods on ActiveRecord::Base to prepare the :if and :unless options.

Public Instance Methods

prepare_versioned_options_with_conditions(options) click to toggle source

After the original prepare_versioned_options method cleans the given options, this alias also extracts the :if and :unless options, chaning them into arrays and converting any symbols to procs. Procs are called with the ActiveRecord model instance as the sole argument.

If all of the :if conditions are met and none of the :unless conditions are unmet, than version creation will proceed, assuming all other conditions are also met.

# File lib/vestal_versions/conditions.rb, line 28
def prepare_versioned_options_with_conditions(options)
  result = prepare_versioned_options_without_conditions(options)

  self.vestal_versions_options[:if] = Array(options.delete(:if)).map(&:to_proc)
  self.vestal_versions_options[:unless] = Array(options.delete(:unless)).map(&:to_proc)

  result
end