lib/jm/syncer.rb
# Push data from `source` to `target`
#
# This SHOULD NOT modify `target`, if it fails.
#
# If a syncer calls other syncers, it may only pass on a subset of the
# options. For instance a syncer might take own options as well as options
# for a wrapped syncer object and only pass on some of the original options
# or it might construct a totally new options object for the wrapped syncer.
#
# The context should always be passed unmodified and is intended for use in
# user-defined hooks, e.g. {SyncerBuilder#write_if}.
#
# It is important, that neither options nor context are modified in-place,
# because a higher-level syncer might reuse these objects.
#
# @param [Object] source Object to read from
# @param [Object] target Object to write to
# @param [Hash] options Additional options
#   The specific options available depend on the {Syncer} subclass.
# @param [Hash] context A hash of values that define a context for the
#   operation. This map could include the requesting user or the query
#   parameters.
# @return [Result] The modified target object


If a syncer calls other syncers, it may only pass on a subset of the
options. For instance a syncer might take own options as well as options
for a wrapped syncer object and only pass on some of the original options
or it might construct a totally new options object for the wrapped syncer.

The context should always be passed unmodified and is intended for use in
user-defined hooks, e.g.

It is important, that neither options nor context are modified in-place,
because a higher-level syncer might reuse these objects.
If a syncer calls other syncers it may only pass on a subset of the options . For instance a syncer might take own options as well as options for a wrapped syncer object and only pass on some of the original options or it might construct a totally new options object for the wrapped syncer . The context should always be passed unmodified and is intended for use in user - defined hooks e . g . It is important that neither options nor context are modified in - place because a higher - level syncer might reuse these objects .
def push(source, target, options = {}, context = {})
      message = "#{self.class.name}#push is not implemented"
      raise NotImplementedError.new(message)
    end
def push ( source , target , options = { } , context = { } ) message = "#{self.class.name}#push is not implemented" raise NotImplementedError . new ( message ) end
Push data from `source` to `target`
This SHOULD NOT modify `target`, if it fails.
Push data from ` source ` to ` target ` This SHOULD NOT modify ` target ` if it fails .
The modified target object
The modified target object
Result
source
target
options
context
context A hash of values that define a context for the operation. This map could include the requesting user or the query parameters.
context A hash of values that define a context for the operation . This map could include the requesting user or the query parameters .