Skip to content

Commit 1153ee5

Browse files
doriantaylorgkellogg
authored andcommitted
this looks like it ought to do it; now to add tests
1 parent 28307eb commit 1153ee5

2 files changed

Lines changed: 14 additions & 1 deletion

File tree

lib/rdf/changeset.rb

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -156,6 +156,12 @@ def delete_statement(statement)
156156
self.deletes << statement
157157
end
158158

159+
# This simply returns its argument as an array in order to trick
160+
# {RDF::Mutable#delete} into working.
161+
def query stmt
162+
[stmt]
163+
end
164+
159165
undef_method :load, :update, :clear
160166
end # Changeset
161167
end # RDF

lib/rdf/repository.rb

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -340,7 +340,14 @@ def each_statement(&block)
340340
# @see Mutable#apply_changeset
341341
def apply_changeset(changeset)
342342
data = @data
343-
changeset.deletes.each { |del| data = delete_from(data, del) }
343+
changeset.deletes.each do |del|
344+
if del.constant?
345+
data = delete_from(data, del)
346+
else
347+
# we need this condition to handle wildcard statements
348+
query_pattern(del) { |stmt| data = delete_from(data, stmt) }
349+
end
350+
end
344351
changeset.inserts.each { |ins| data = insert_to(data, ins) }
345352
@data = data
346353
end

0 commit comments

Comments
 (0)