rdf-sesame 3.0.1 → 3.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: f05b6d47318fbb72fc0b23fc39ecbc284a77bcc7
4
- data.tar.gz: 4fdfc60cdc422cfe0b419eed3150beb29881e646
2
+ SHA256:
3
+ metadata.gz: a61133a0a5d9d38168002df45bbd53101d5a6c66c72968bf0e05f2e44bd416c7
4
+ data.tar.gz: b26ed3787876b38d4542c5529a2bee1f3cc4d579a0da27ccc709ad70623fc087
5
5
  SHA512:
6
- metadata.gz: ed8b957c75380bef0b2be6c38974785321b00da5c9e4c41729b8928b0db733792ae66ec53725fcd8242017232810638e0e0c3df322e185932d8cece16169a0cb
7
- data.tar.gz: fcb03b4f168c3f3a1db2b33eb72779c0ff7e1c8708a6a1653a89fbd153c21e5ec7723dd4c7b1d97601def697f119c5757270fe012e8350896b1e868dbe1c6ad1
6
+ metadata.gz: a345ec1c99201380cdf65d323257bda9d0d642006aa782c2cf5881729b024e191ba0e37b2e79bbdccac0245da5a76796b14c7f13571683c5916232e5d221ecac
7
+ data.tar.gz: c559209cf90f38b8a73de13a938754c60d5d3d164c6bdf63b29e5838b0ded1de508e414e2322bb051dbbe6bd764a027a45bb5bcace381fa992378815a4de161d
data/VERSION CHANGED
@@ -1 +1 @@
1
- 3.0.1
1
+ 3.1.2
@@ -325,12 +325,10 @@ module RDF::Sesame
325
325
  request.body = data.to_s
326
326
  request.basic_auth @user, @pass unless @user.nil? || @pass.nil?
327
327
  response = http.request(request)
328
- http.request(request) do |response|
329
- if block_given?
330
- yield response
331
- else
332
- response
333
- end
328
+ if block_given?
329
+ yield response
330
+ else
331
+ response
334
332
  end
335
333
  end
336
334
  end
@@ -291,6 +291,27 @@ module RDF::Sesame
291
291
  raw_query(query, 'sparql', options, &block)
292
292
  end
293
293
 
294
+ # Run a raw SPARQL query.
295
+ #
296
+ # @overload sparql_query(query) {|solution| ... }
297
+ # @yield solution
298
+ # @yieldparam [RDF::Query::Solution] solution
299
+ # @yieldreturn [void]
300
+ # @return [void]
301
+ #
302
+ # @overload sparql_query(pattern)
303
+ # @return [Enumerator<RDF::Query::Solution>]
304
+ #
305
+ # @param [String] query The query to run.
306
+ # @param [Hash{Symbol => Object}] options
307
+ # The query options (see build_query).
308
+ # @return [void]
309
+ #
310
+ # @see #build_query
311
+ def sparql_query(query, options={}, &block)
312
+ raw_query(query, 'sparql', options, &block)
313
+ end
314
+
294
315
  ##
295
316
  # Returns all statements of the given query when the query
296
317
  # is a READ query. Execute a WRITE query and returns the
@@ -325,21 +346,13 @@ module RDF::Sesame
325
346
  options[:format] = Server::ACCEPT_JSON unless options[:format]
326
347
  options[:parsing] = :full unless options[:parsing]
327
348
 
328
- parameters = { :query => query, :queryLn => queryLn, :infer => options[:infer] }
349
+ parameters = { :queryLn => queryLn, :infer => options[:infer] }
329
350
 
330
- response = if query.size > MAX_LENGTH_GET_QUERY
331
- headers = Server::CONTENT_TYPE_X_FORM.merge(options[:format])
332
- server.post(path, Addressable::URI.form_encode(parameters), headers)
333
- else
334
- params = Addressable::URI.form_encode(parameters).gsub("+", "%20").to_s
335
- url = Addressable::URI.parse(path)
336
- unless url.normalize.query.nil?
337
- url.query = [url.query, params].compact.join('&')
338
- else
339
- url.query = [url.query, params].compact.join('?')
340
- end
341
- server.get(url, options[:format])
342
- end
351
+ response = server.post(
352
+ encode_url_parameters(path, parameters),
353
+ query,
354
+ Server::CONTENT_TYPE_SPARQL_QUERY.merge(options[:format])
355
+ )
343
356
 
344
357
  results = if (options[:parsing] == :full)
345
358
  parse_response(response)
@@ -364,10 +377,14 @@ module RDF::Sesame
364
377
  # @param [Hash] options
365
378
  # @return [Boolean]
366
379
  def write_query(query, queryLn, options)
367
- parameters = {}
368
- parameters[:update] = query
369
- parameters[:infer] = options[:infer]
370
- response = server.post(path(:statements), Addressable::URI.form_encode(parameters), Server::CONTENT_TYPE_X_FORM)
380
+ parameters = { infer: options[:infer] }
381
+
382
+ response = server.post(
383
+ encode_url_parameters(path(:statements), parameters),
384
+ query,
385
+ Server::CONTENT_TYPE_SPARQL_UPDATE
386
+ )
387
+
371
388
  response.code == "204"
372
389
  end
373
390
 
@@ -549,9 +566,9 @@ module RDF::Sesame
549
566
  when :uri
550
567
  RDF::URI.new(value['value'])
551
568
  when :literal
552
- RDF::Literal.new(value['value'], :language => value['xml:lang'])
553
- when :'typed-literal'
554
- RDF::Literal.new(value['value'], :datatype => value['datatype'])
569
+ RDF::Literal.new(value['value'],
570
+ language: value['xml:lang'],
571
+ datatype: value['datatype'])
555
572
  else nil
556
573
  end
557
574
  end
@@ -642,6 +659,22 @@ module RDF::Sesame
642
659
  options
643
660
  end
644
661
 
662
+ # @private
663
+ #
664
+ # Encode in the URL parameters
665
+ def encode_url_parameters(path, parameters)
666
+ params = Addressable::URI.form_encode(parameters).gsub("+", "%20").to_s
667
+ url = Addressable::URI.parse(path)
668
+
669
+ unless url.normalize.query.nil?
670
+ url.query = [url.query, params].compact.join('&')
671
+ else
672
+ url.query = [url.query, params].compact.join('?')
673
+ end
674
+
675
+ url
676
+ end
677
+
645
678
  # @private
646
679
  #
647
680
  # Fetch the graph names from SESAME API
@@ -57,6 +57,8 @@ module RDF::Sesame
57
57
 
58
58
  CONTENT_TYPE_TEXT = {'Content-Type' => 'text/plain'}.freeze
59
59
  CONTENT_TYPE_X_FORM = {'Content-Type' => 'application/x-www-form-urlencoded' }.freeze
60
+ CONTENT_TYPE_SPARQL_QUERY = {'Content-Type' => 'application/sparql-query'}.freeze
61
+ CONTENT_TYPE_SPARQL_UPDATE = {'Content-Type' => 'application/sparql-update'}.freeze
60
62
 
61
63
  RESULT_BOOL = 'text/boolean'.freeze
62
64
  RESULT_JSON = 'application/sparql-results+json'.freeze
@@ -1,11 +1,10 @@
1
1
  module RDF; module Sesame
2
2
  module VERSION
3
3
  MAJOR = 3
4
- MINOR = 0
5
- TINY = 1
6
- EXTRA = nil
4
+ MINOR = 1
5
+ TINY = 2
7
6
 
8
- STRING = [MAJOR, MINOR, TINY, EXTRA].compact.join('.')
7
+ STRING = [MAJOR, MINOR, TINY].compact.join('.')
9
8
 
10
9
  ##
11
10
  # @return [String]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rdf-sesame
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.0.1
4
+ version: 3.1.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Arto Bendiken
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2018-07-17 00:00:00.000000000 Z
12
+ date: 2022-03-10 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rdf
@@ -131,8 +131,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
131
131
  - !ruby/object:Gem::Version
132
132
  version: '0'
133
133
  requirements: []
134
- rubyforge_project: rdf
135
- rubygems_version: 2.6.14.1
134
+ rubygems_version: 3.0.3
136
135
  signing_key:
137
136
  specification_version: 4
138
137
  summary: Sesame 2.0 adapter for RDF.rb.