Module: TPRecordOptimistic

Extended by:
ActiveSupport::Concern
Includes:
SQLErrorParse
Defined in:
lib/tp_record_optimistic.rb,
lib/tp_record_optimistic/version.rb

Defined Under Namespace

Classes: Engine

Constant Summary collapse

VERSION =
'0.2.1'

Instance Method Summary collapse

Methods included from SQLErrorParse

#unique_errors

Instance Method Details

#save(*args) ⇒ Object Also known as: old_save



20
21
22
# File 'lib/tp_record_optimistic.rb', line 20

def save(*args)
  super(*args)
end

#save!(*args) ⇒ Object Also known as: old_save!



35
36
37
# File 'lib/tp_record_optimistic.rb', line 35

def save!(*args)
  super(*args)
end

#save_optimistic(*args) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/tp_record_optimistic.rb', line 26

def save_optimistic(*args)
  old_save(*args)
rescue ActiveRecord::RecordNotUnique => e
  unique_errors(e.to_s).each do |field|
    errors.add(field, :Unique, message: "UNIQUE constraint failed #{field}")
  end
  return false
end

#save_optimistic!(*args) ⇒ Object



41
42
43
44
45
46
# File 'lib/tp_record_optimistic.rb', line 41

def save_optimistic!(*args)
  old_save!(*args)
rescue ActiveRecord::RecordNotUnique => e
  errors.add('all', e.to_s)
  raise ActiveRecord::RecordInvalid, self
end