rdf-sesame 1.1.0 → 1.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e40256223226ea6aca7ac314a678ebe951af0782
4
- data.tar.gz: 9f1e93a0eb52901a3881c50fd93f9a03c27ad715
3
+ metadata.gz: 04a330d11664f4d2e8ad1899cccb73672c52909f
4
+ data.tar.gz: a5f1dc2b3688aa21efaac913008b1500d875e2f5
5
5
  SHA512:
6
- metadata.gz: a92457e1ba0067058fa2c23480c66d692adfdba488cabcfb2a5bb4c1025acc8835fe56ee38e56f8b0d47d743656d7bde37f58a398fdfe64a091326c9a7bd1eef
7
- data.tar.gz: 3fcf0943353f42ef7981ca80416e93c7014a8412123cd9eb2bf8de2028f138055f9aed76488be131e92e8e95d8b40a7bc8ae47ccb4d3807668b1733b0afb6df0
6
+ metadata.gz: dfc6872515ac83c03eb27ea10feca2aa7bb67cfc06022da8f6cec9dd44422f09dc65ac0f18af86ba04792bff9336c7cbbf2c7ca60e72847f5910a80b9692f47b
7
+ data.tar.gz: 88bc76971e06250090f68d5cee02dfdceb7bcec6077541d1080f133cca4a082fa2804342f7fc884d02c75da643fc55f02bb0926daecd626ccc4c9825db5ad3fe
data/AUTHORS CHANGED
@@ -1 +1,2 @@
1
1
  * Arto Bendiken <arto.bendiken@gmail.com>
2
+ * Aymeric Brisse <aymeric.brisse@gmail.com>
data/README CHANGED
@@ -36,7 +36,7 @@ Caveats
36
36
 
37
37
  * Sesame rewrites blank node identifiers on inserted statements. For
38
38
  example, if you supply a `_:foobar` identifier, it becomes something like
39
- `_:node156oo6equx12769` as soon as you insert it into a Sesame repository.
39
+ `_:node156oo6equx12769` as soon as you insert it into a Sesame repository.
40
40
  This means that you can't construct and insert a statement containing a
41
41
  blank node term and then expect to successfully be able check for its
42
42
  existence using the `Repository#has_statement?` method. This is also the
@@ -46,8 +46,8 @@ Caveats
46
46
  Dependencies
47
47
  ------------
48
48
 
49
- * [RDF.rb](http://rubygems.org/gems/rdf) (>= 0.3.0)
50
- * [JSON](http://rubygems.org/gems/json_pure) (>= 1.4.2)
49
+ * [RDF.rb](http://rubygems.org/gems/rdf) (~> 1.1)
50
+ * [JSON](http://rubygems.org/gems/json_pure) (~> 1.8)
51
51
 
52
52
  Installation
53
53
  ------------
@@ -62,12 +62,12 @@ Download
62
62
 
63
63
  To get a local working copy of the development repository, do:
64
64
 
65
- % git clone git://github.com/bendiken/rdf-sesame.git
65
+ % git clone git://github.com/ruby-rdf/rdf-sesame.git
66
66
 
67
67
  Alternatively, download the latest development version as a tarball as
68
68
  follows:
69
69
 
70
- % wget http://github.com/bendiken/rdf-sesame/tarball/master
70
+ % wget https://github.com/ruby-rdf/rdf-sesame/tarball/master
71
71
 
72
72
  Mailing List
73
73
  ------------
@@ -78,11 +78,11 @@ Author
78
78
  ------
79
79
 
80
80
  * [Arto Bendiken](http://github.com/bendiken) - <http://ar.to/>
81
+ * [Aymeric Brisse](http://github.com/abrisse)
81
82
 
82
83
  Contributors
83
84
  ------------
84
85
 
85
- * [Aymeric Brisse](http://github.com/abrisse)
86
86
  * [Slava Kravchenko](http://github.com/cordawyn)
87
87
 
88
88
  License
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.1.0
1
+ 1.1.1
@@ -44,6 +44,9 @@ module RDF::Sesame
44
44
  # @return [String,Array]
45
45
  attr_reader :context
46
46
 
47
+ # Maximum length for GET query
48
+ MAX_LENGTH_GET_QUERY = 2500
49
+
47
50
  ##
48
51
  # Initializes this `Repository` instance.
49
52
  #
@@ -279,12 +282,14 @@ module RDF::Sesame
279
282
  end
280
283
 
281
284
  ##
282
- # Returns all statements of the given query.
285
+ # Returns all statements of the given query when the query
286
+ # is a READ query. Execute a WRITE query and returns the
287
+ # status of the query.
283
288
  #
284
289
  # @private
285
290
  # @param [String, #to_s] query
286
291
  # @param [String, #to_s] queryLn
287
- # @return [RDF::Enumerator]
292
+ # @return [RDF::Enumerator, Boolean]
288
293
  def raw_query(query, queryLn = 'sparql', options={}, &block)
289
294
  options = { infer: true }.merge(options)
290
295
 
@@ -295,21 +300,34 @@ module RDF::Sesame
295
300
  end
296
301
  end
297
302
 
303
+ ##
304
+ # Returns all statements of the given query.
305
+ #
306
+ # @private
307
+ # @param [String, #to_s] query
308
+ # @param [String, #to_s] queryLn
309
+ # @return [RDF::Enumerator]
298
310
  def read_query(query, queryLn, options)
299
311
  if queryLn == 'sparql' and options[:format].nil? and query =~ /\bconstruct\b/i
300
312
  options[:format] = Server::ACCEPT_NTRIPLES
301
313
  end
302
-
303
314
  options[:format] = Server::ACCEPT_JSON unless options[:format]
304
315
 
305
- params = Addressable::URI.form_encode({ :query => query, :queryLn => queryLn, :infer => options[:infer] }).gsub("+", "%20").to_s
306
- url = Addressable::URI.parse(path)
307
- unless url.normalize.query.nil?
308
- url.query = [url.query, params].compact.join('&')
316
+ parameters = { :query => query, :queryLn => queryLn, :infer => options[:infer] }
317
+
318
+ response = if query.size > MAX_LENGTH_GET_QUERY
319
+ headers = Server::CONTENT_TYPE_X_FORM.merge(options[:format])
320
+ server.post(path, Addressable::URI.form_encode(parameters), headers)
309
321
  else
310
- url.query = [url.query, params].compact.join('?')
322
+ params = Addressable::URI.form_encode(parameters).gsub("+", "%20").to_s
323
+ url = Addressable::URI.parse(path)
324
+ unless url.normalize.query.nil?
325
+ url.query = [url.query, params].compact.join('&')
326
+ else
327
+ url.query = [url.query, params].compact.join('?')
328
+ end
329
+ server.get(url, options[:format])
311
330
  end
312
- response = server.get(url, options[:format])
313
331
 
314
332
  results = parse_response(response)
315
333
  if block_given?
@@ -319,10 +337,19 @@ module RDF::Sesame
319
337
  end
320
338
  end
321
339
 
340
+ ##
341
+ # Execute a WRITE query against the repository.
342
+ # Returns true if the query was succesful.
343
+ #
344
+ # @private
345
+ # @param [String, #to_s] query
346
+ # @param [String, #to_s] queryLn
347
+ # @param [Hash] options
348
+ # @return [Boolean]
322
349
  def write_query(query, queryLn, options)
323
350
  parameters = {}
324
351
  parameters[:update] = query
325
- response = server.post(path(:statements), Addressable::URI.form_encode(parameters), 'Content-Type' => 'application/x-www-form-urlencoded')
352
+ response = server.post(path(:statements), Addressable::URI.form_encode(parameters), Server::CONTENT_TYPE_X_FORM)
326
353
  response.code == "204"
327
354
  end
328
355
 
@@ -391,7 +418,7 @@ module RDF::Sesame
391
418
  # @see http://www.openrdf.org/doc/sesame2/system/ch08.html#d0e304
392
419
  def insert_statements(statements)
393
420
  data = statements_to_text_plain(statements)
394
- response = server.post(path(:statements, statements_options), data, 'Content-Type' => 'text/plain')
421
+ response = server.post(path(:statements, statements_options), data, Server::CONTENT_TYPE_TEXT)
395
422
  response.code == "204"
396
423
  end
397
424
 
@@ -54,6 +54,9 @@ module RDF::Sesame
54
54
  ACCEPT_BINARY = {'Accept' => 'application/x-binary-rdf'}.freeze
55
55
  ACCEPT_BINARY_TABLE = {'Accept' => 'application/x-binary-rdf-results-table'}.freeze
56
56
 
57
+ CONTENT_TYPE_TEXT = {'Content-Type' => 'text/plain'}.freeze
58
+ CONTENT_TYPE_X_FORM = {'Content-Type' => 'application/x-www-form-urlencoded' }.freeze
59
+
57
60
  RESULT_BOOL = 'text/boolean'.freeze
58
61
  RESULT_JSON = 'application/sparql-results+json'.freeze
59
62
  RESULT_XML = 'application/sparql-results+xml'.freeze
metadata CHANGED
@@ -1,15 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdf-sesame
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arto Bendiken
8
- - Slava Kravchenko
8
+ - Aymeric Brisse
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-09-24 00:00:00.000000000 Z
12
+ date: 2014-11-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json_pure
@@ -132,7 +132,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
132
132
  version: '0'
133
133
  requirements: []
134
134
  rubyforge_project: rdf
135
- rubygems_version: 2.2.2
135
+ rubygems_version: 2.4.4
136
136
  signing_key:
137
137
  specification_version: 4
138
138
  summary: Sesame 2.0 adapter for RDF.rb.