Sha256: 98cea7187d78fec04be30c981e8b62ad65c3a6e36de83e477cc8d005a126874c
Contents?: true
Size: 1.14 KB
Versions: 1
Compression:
Stored size: 1.14 KB
Contents
# frozen_string_literal: true require 'active_record' unless defined? ActiveRecord # require 'active_model' unless defined? ActiveModel module TPRecordOptimistic extend ActiveSupport::Concern def save(*args) super(*args) end alias old_save save def save_optimistic(*args) old_save(*args) rescue ActiveRecord::RecordNotUnique => e errors.add('all', e.to_s) return false end def save!(*args) super(*args) end alias old_save! save! def save_optimistic!(*args) old_save!(*args) rescue ActiveRecord::RecordNotUnique => e errors.add('all', e.to_s) raise ActiveRecord::RecordInvalid, self end # def optimistic_unique # alias_method :save, :save_optimistic # end end ActiveSupport.on_load(:active_record) do class ActiveRecord::Base def self.acts_as_unique include TPRecordOptimistic alias_method :save, :save_optimistic alias_method :save!, :save_optimistic! end end end # class UniqueOptimistic < ActiveModel::Validator # def validate(record) # record.class_eval do # include TPRecordOptimistic # record.send(:optimistic_unique) # end # end # end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
tp_record_optimistic-0.2.0 | lib/tp_record_optimistic.rb |