Sha256: f67c080bcfdc50eef60d2adcaef9ef7e917c0747b89b12c1b911101e9c55d55f

Contents?: true

Size: 752 Bytes

Versions: 1

Compression:

Stored size: 752 Bytes

Contents

module Dedupe
  module Orm
    module ActiveRecord
      extend ActiveSupport::Concern
      
      included do
        scope :excluding, lambda { |instance|
          where('id <> ?', instance.id.to_i)
        }
      end
      
      module InstanceMethods
        include Errors
        
        def duplicates
          klass, scope_name = self.class, self.class.dedupe_scope_name
          raise MissingScope unless klass.respond_to? scope_name 
          result_set = klass.send scope_name, self 
          raise InvalidScope unless result_set.is_a? ::ActiveRecord::Relation
          result_set.excluding self 
        end
        
        def duplicate?
          self.duplicates.present?
        end
        
      end
      
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
dedupe-0.0.0 lib/dedupe/orm/active_record.rb