def pull_object(id)
      local_object = @factory.with_remote_id(id)
      if local_object
        # FIXME What if there's no local object and we still want to set some
        # contexts?
        @service.set_contexts(local_object.contexts)
      else
        local_object = @factory.new
      end
      local_object.before_pull(self) if local_object.respond_to?(:before_pull)
      object_hash = @service.show(object_name, id)
      @service.clear_contexts
      local_object._remote_id = object_hash.delete('id')
      fields = configuration.synchronizable_for_pull
      fields.each do |key|
        value = object_hash[key.to_s]
        local_object.send("#{key}=", value)
      end
      local_object.after_pull(self) if local_object.respond_to?(:after_pull)
      local_object.save
    end
def pull_object(id)
      local_object = @factory.with_remote_id(id)
      if local_object
        # FIXME What if there's no local object and we still want to set some
        # contexts?
        @service.set_contexts(local_object.contexts)
      else
        local_object = @factory.new
      end
      local_object.before_pull(self) if local_object.respond_to?(:before_pull)
      object_hash = @service.show(object_name, id)
      @service.clear_contexts
      local_object._remote_id = object_hash.delete('id')
      fields = configuration.synchronizable_for_pull
      fields.each do |key|
        value = object_hash[key.to_s]
        local_object.send("#{key}=", value)
      end
      local_object.after_pull(self) if local_object.respond_to?(:after_pull)
      local_object.save
    end
Pulls object from remote service
 @param [Integer] Remote ID of object.
 @return [Boolean] Result of pulling