rdf-sesame 3.0.1 → 3.1.2

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
- 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.