Repository URL to install this package:
|
Version:
0.3.6 ▾
|
# frozen_string_literal: true
require 'set'
require 'datasync/exceptions'
require 'datasync/sync_operation'
require 'datasync/mapper'
module Datasync
# Implicit mapper handles sync between a source and destination, linking on a common field
class ImplicitMapper < Mapper
# Specialized SyncOperation which knows how to handle linking / unlinking
class ImplicitSyncOp < SyncOperation
def link(source_id, target_id); end
def unlink(source_id, target_id); end
def configure_classifier(classifier)
classifier.assume_source_exists!
classifier.assume_target_exists!
end
def links
(source_ids & target_ids).map do |common_id|
{
source_id: common_id,
target_id: common_id
}
end
end
end
def sync_class
ImplicitSyncOp
end
end
end