From 6ec714c9120ff56ca0968bc22a83194274a368c1 Mon Sep 17 00:00:00 2001 From: Karim Bogtob Date: Thu, 19 May 2016 15:21:32 +0200 Subject: [PATCH 1/2] Make the RDF::Repository have only one context at a time. --- lib/rdf/sesame/repository.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/rdf/sesame/repository.rb b/lib/rdf/sesame/repository.rb index 06968c0..f13a8b1 100644 --- a/lib/rdf/sesame/repository.rb +++ b/lib/rdf/sesame/repository.rb @@ -41,7 +41,7 @@ class Repository < RDF::Repository # @return [String] attr_reader :writeble - # @return [String,Array] + # @return [String] attr_reader :context # Maximum length for GET query @@ -358,7 +358,7 @@ def write_query(query, queryLn, options) # @param context the context(s) to use def set_context(*context) options||={} - @context = serialize_context(context) + @context = Array(serialize_context(context)).first end ## From 6fb13b250c04d96f7fdcee67a0b895c9a55da12c Mon Sep 17 00:00:00 2001 From: Karim Bogtob Date: Thu, 19 May 2016 15:24:14 +0200 Subject: [PATCH 2/2] Make the delete operation symetric to the insert operation. The delete operation now initialize the context of statements with the context uri when a context is set on the RDF Repository. --- lib/rdf/sesame/repository.rb | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lib/rdf/sesame/repository.rb b/lib/rdf/sesame/repository.rb index f13a8b1..36f427d 100644 --- a/lib/rdf/sesame/repository.rb +++ b/lib/rdf/sesame/repository.rb @@ -44,6 +44,9 @@ class Repository < RDF::Repository # @return [String] attr_reader :context + # @return [RDF::URI] + attr_reader :context_uri + # Maximum length for GET query MAX_LENGTH_GET_QUERY = 2500 @@ -359,6 +362,12 @@ def write_query(query, queryLn, options) def set_context(*context) options||={} @context = Array(serialize_context(context)).first + @context_uri = if context + uri = context[1..-2] + uri && !uri.empty? ? RDF::URI.new(uri) : nil + else + nil + end end ## @@ -427,6 +436,7 @@ def insert_statements(statements) # @see RDF::Mutable#delete # @see http://www.openrdf.org/doc/sesame2/system/ch08.html#d0e304 def delete_statement(statement) + statement.context = context_uri if context_uri response = server.delete(path(:statements, statement)) response.code == "204" end