Module: DBViewCTI::Model::CTI::AssociationValidations::ClassMethods

Defined in:
lib/db_view_cti/model/cti/association_validations.rb

Instance Method Summary collapse

Instance Method Details

#cti_validation_unless_procObject



46
47
48
49
50
# File 'lib/db_view_cti/model/cti/association_validations.rb', line 46

def cti_validation_unless_proc
  @cti_validation_unless_proc ||= Proc.new do |object| 
    object.respond_to?(:cti_disable_validations) && object.cti_disable_validations
  end
end

#validate(*args, &block) ⇒ Object

redefine validate to always add :unless proc so we can disable the validations for an object by setting the cti_disable_validations accessor to true



29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/db_view_cti/model/cti/association_validations.rb', line 29

def validate(*args, &block)
  # we specifically don't want to disable balidations belonging to associations. Based on the naming
  # rails uses, we return immediately in such cases (there must be a cleaner way to do this...)
  return super if args.first && args.first.to_s =~ /^validate_associated_records_for_/
  # rest of implementation insipred by the validate implementation in rails
  options = args.extract_options!.dup
  return super if options[:cti_no_disable]
  if options.key?(:unless)
    options[:unless] = Array(options[:unless])
    options[:unless].unshift( cti_validation_unless_proc )
  else
    options[:unless] = cti_validation_unless_proc
  end
  args << options
  return super(*args, &block)
end