def set_operation(operation, other)
      assert_valid_other(other)
      query = self.class.new(@repository, @model, other.to_relative_hash)
      query.instance_variable_set(:@conditions, other_conditions(other, operation))
      query
    end
def set_operation(operation, other)
      assert_valid_other(other)
      query = self.class.new(@repository, @model, other.to_relative_hash)
      query.instance_variable_set(:@conditions, other_conditions(other, operation))
      query
    end
Apply a set operation on self and another query

 @param [Symbol] operation
   the set operation to apply
 @param [Query] other
   the other query to apply the set operation on

 @return [Query]
   the query that was created for the set operation

 @api private