Skip to content

Commit

Permalink
Merge remote-tracking branch 'mikaa123/query_solutions_instead_of_array'
Browse files Browse the repository at this point in the history
  • Loading branch information
gkellogg committed Mar 20, 2012
2 parents 980306f + 6442b7a commit 2ec2ec5
Showing 1 changed file with 6 additions and 4 deletions.
10 changes: 6 additions & 4 deletions lib/sparql/client.rb
Expand Up @@ -155,7 +155,7 @@ def parse_response(response, options = {})

##
# @param [String, Hash] json
# @return [Enumerable<RDF::Query::Solution>]
# @return [<RDF::Query::Solutions>]
# @see http://www.w3.org/TR/rdf-sparql-json-res/#results
def self.parse_json_bindings(json, nodes = {})
require 'json' unless defined?(::JSON)
Expand All @@ -165,12 +165,13 @@ def self.parse_json_bindings(json, nodes = {})
when json['boolean']
json['boolean']
when json['results']
json['results']['bindings'].map do |row|
solutions = json['results']['bindings'].map do |row|
row = row.inject({}) do |cols, (name, value)|
cols.merge(name.to_sym => parse_json_value(value))
end
RDF::Query::Solution.new(row)
end
RDF::Query::Solutions.new(solutions)
end
end

Expand All @@ -194,7 +195,7 @@ def self.parse_json_value(value, nodes = {})

##
# @param [String, REXML::Element] xml
# @return [Enumerable<RDF::Query::Solution>]
# @return [<RDF::Query::Solutions>]
# @see http://www.w3.org/TR/rdf-sparql-json-res/#results
def self.parse_xml_bindings(xml, nodes = {})
xml.force_encoding(::Encoding::UTF_8) if xml.respond_to?(:force_encoding)
Expand All @@ -205,7 +206,7 @@ def self.parse_xml_bindings(xml, nodes = {})
when boolean = xml.elements['boolean']
boolean.text == 'true'
when results = xml.elements['results']
results.elements.map do |result|
solutions = results.elements.map do |result|
row = {}
result.elements.each do |binding|
name = binding.attributes['name'].to_sym
Expand All @@ -214,6 +215,7 @@ def self.parse_xml_bindings(xml, nodes = {})
end
RDF::Query::Solution.new(row)
end
RDF::Query::Solutions.new(solutions)
end
end

Expand Down

0 comments on commit 2ec2ec5

Please sign in to comment.