lib/axiom/relation/operation/deletion.rb
# encoding: utf-8
module Axiom
class Relation
module Operation
# A class representing a deletion from a relation
class Deletion < Relation
include Proxy
# Initialize a Deletion
#
# @param [Array(Relation, Relation)] args
#
# @return [undefined]
#
# @api private
def initialize(*args)
@relation = Algebra::Difference.new(*args)
end
module Methods
# Return a relation that represents a deletion from a relation
#
# @example
# deletion = relation.delete(other)
#
# @param [Enumerable] other
#
# @return [Deletion]
#
# @api public
def delete(other)
Deletion.new(self, coerce(other))
end
end # module Methods
Relation.class_eval { include Methods }
end # class Deletion
end # module Operation
end # class Relation
end # module Axiom