rdf-sesame 2.0.1 → 2.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/VERSION +1 -1
- data/lib/rdf/sesame/repository.rb +40 -7
- data/lib/rdf/sesame/server.rb +2 -0
- data/lib/rdf/sesame/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c2f329d7861b08b851a2eccae110ace25fe424e6
|
4
|
+
data.tar.gz: f457fb5e4db30918ebaf472fa8c574ad7236b932
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24201ab9073a36d5f8d715f42cfb298edae092de72697534220dc637b2aad14008cbe74389c156fbcfa1baae7002ff66769cc1da7ebe12e99a7c064d00cf488d
|
7
|
+
data.tar.gz: f8639b735212b6da34887e18832fadd961ec7290935793c59778907882dcf46b475e03837d031a1f74aec1af57368caea9a004e4276f837c666c0bfdf5986bde
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.0.
|
1
|
+
2.0.2
|
@@ -321,7 +321,9 @@ module RDF::Sesame
|
|
321
321
|
if queryLn == 'sparql' and options[:format].nil? and query =~ /\bconstruct\b/i
|
322
322
|
options[:format] = Server::ACCEPT_NTRIPLES
|
323
323
|
end
|
324
|
+
|
324
325
|
options[:format] = Server::ACCEPT_JSON unless options[:format]
|
326
|
+
options[:parsing] = :full unless options[:parsing]
|
325
327
|
|
326
328
|
parameters = { :query => query, :queryLn => queryLn, :infer => options[:infer] }
|
327
329
|
|
@@ -339,7 +341,12 @@ module RDF::Sesame
|
|
339
341
|
server.get(url, options[:format])
|
340
342
|
end
|
341
343
|
|
342
|
-
results =
|
344
|
+
results = if (options[:parsing] == :full)
|
345
|
+
parse_response(response)
|
346
|
+
else
|
347
|
+
raw_parse_response(response)
|
348
|
+
end
|
349
|
+
|
343
350
|
if block_given?
|
344
351
|
results.each {|s| yield s }
|
345
352
|
else
|
@@ -480,13 +487,41 @@ module RDF::Sesame
|
|
480
487
|
end
|
481
488
|
end
|
482
489
|
|
490
|
+
##
|
491
|
+
# @param [Net::HTTPSuccess] response
|
492
|
+
# @param [Hash{Symbol => Object}] options
|
493
|
+
# @return [Object]
|
494
|
+
def raw_parse_response(response, options = {})
|
495
|
+
case content_type = options[:content_type] || response.content_type
|
496
|
+
when Server::RESULT_BOOL
|
497
|
+
response.body == 'true'
|
498
|
+
when Server::RESULT_JSON, Server::RESULT_RDF_JSON
|
499
|
+
self.class.parse_json(response.body)
|
500
|
+
when Server::RESULT_XML
|
501
|
+
self.class.parse_xml(response.body)
|
502
|
+
else
|
503
|
+
response.body
|
504
|
+
end
|
505
|
+
end
|
506
|
+
|
507
|
+
def self.parse_json(json)
|
508
|
+
require 'json' unless defined?(::JSON)
|
509
|
+
json = JSON.parse(json.to_s) unless json.is_a?(Hash)
|
510
|
+
end
|
511
|
+
|
512
|
+
def self.parse_xml(xml)
|
513
|
+
xml.force_encoding(::Encoding::UTF_8) if xml.respond_to?(:force_encoding)
|
514
|
+
require 'rexml/document' unless defined?(::REXML::Document)
|
515
|
+
xml = REXML::Document.new(xml).root unless xml.is_a?(REXML::Element)
|
516
|
+
xml
|
517
|
+
end
|
518
|
+
|
483
519
|
##
|
484
520
|
# @param [String, Hash] json
|
485
521
|
# @return [<RDF::Query::Solutions>]
|
486
522
|
# @see http://www.w3.org/TR/rdf-sparql-json-res/#results
|
487
523
|
def self.parse_json_bindings(json, nodes = {})
|
488
|
-
|
489
|
-
json = JSON.parse(json.to_s) unless json.is_a?(Hash)
|
524
|
+
json = self.parse_json(json)
|
490
525
|
|
491
526
|
case
|
492
527
|
when json['boolean']
|
@@ -526,9 +561,7 @@ module RDF::Sesame
|
|
526
561
|
# @return [<RDF::Query::Solutions>]
|
527
562
|
# @see http://www.w3.org/TR/rdf-sparql-json-res/#results
|
528
563
|
def self.parse_xml_bindings(xml, nodes = {})
|
529
|
-
xml
|
530
|
-
require 'rexml/document' unless defined?(::REXML::Document)
|
531
|
-
xml = REXML::Document.new(xml).root unless xml.is_a?(REXML::Element)
|
564
|
+
xml = self.parse_xml(xml)
|
532
565
|
|
533
566
|
case
|
534
567
|
when boolean = xml.elements['boolean']
|
@@ -589,7 +622,7 @@ module RDF::Sesame
|
|
589
622
|
if c == 'null' or !c
|
590
623
|
c
|
591
624
|
else
|
592
|
-
RDF::NTriples.serialize(RDF::URI
|
625
|
+
RDF::NTriples.serialize(RDF::URI(c))
|
593
626
|
end
|
594
627
|
end
|
595
628
|
|
data/lib/rdf/sesame/server.rb
CHANGED
@@ -42,6 +42,7 @@ module RDF::Sesame
|
|
42
42
|
class Server
|
43
43
|
include Enumerable
|
44
44
|
|
45
|
+
ACCEPT_RDF_JSON = {'Accept' => 'application/rdf+json'}.freeze
|
45
46
|
ACCEPT_JSON = {'Accept' => 'application/sparql-results+json'}.freeze
|
46
47
|
ACCEPT_NTRIPLES = {'Accept' => 'text/plain'}.freeze
|
47
48
|
ACCEPT_XML = {'Accept' => 'application/sparql-results+xml'}.freeze
|
@@ -60,6 +61,7 @@ module RDF::Sesame
|
|
60
61
|
RESULT_BOOL = 'text/boolean'.freeze
|
61
62
|
RESULT_JSON = 'application/sparql-results+json'.freeze
|
62
63
|
RESULT_XML = 'application/sparql-results+xml'.freeze
|
64
|
+
RESULT_RDF_JSON = 'application/rdf+json'.freeze
|
63
65
|
|
64
66
|
# @return [Connection]
|
65
67
|
attr_reader :connection
|
data/lib/rdf/sesame/version.rb
CHANGED
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: 2.0.
|
4
|
+
version: 2.0.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: 2017-
|
12
|
+
date: 2017-03-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rdf
|
@@ -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.4.5.
|
135
|
+
rubygems_version: 2.4.5.2
|
136
136
|
signing_key:
|
137
137
|
specification_version: 4
|
138
138
|
summary: Sesame 2.0 adapter for RDF.rb.
|