Skip to content

Commit

Permalink
Updates for 3.1 release and Ruby 2.7 calling sequences.
Browse files Browse the repository at this point in the history
  • Loading branch information
gkellogg committed Dec 16, 2019
1 parent 8b2723f commit cc9812c
Show file tree
Hide file tree
Showing 14 changed files with 211 additions and 217 deletions.
12 changes: 3 additions & 9 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,26 +1,20 @@
language: ruby
bundler_args: --without debug
script: "bundle exec rspec spec"
before_install:
- 'gem update --system --conservative || (gem i "rubygems-update:~>2.7" --no-document && update_rubygems)'
- 'gem update bundler --conservative'
env:
- CI=true
gemfile:
- Gemfile
- Gemfile-pure
rvm:
- 2.2.2
- 2.3
- 2.4
- 2.5
- 2.6
- jruby-9
- rbx-3
- 2.7
- jruby
cache: bundler
sudo: false
matrix:
allow_failures:
- rvm: jruby-9
- rvm: rbx-3
- rvm: jruby
dist: trusty
4 changes: 2 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ group :development, :test do
gem "rdf-xsd", git: "https://github.com/ruby-rdf/rdf-xsd", branch: "develop"
gem 'sxp', git: "https://github.com/dryruby/sxp.rb", branch: "develop"
gem "redcarpet", platform: :ruby
gem 'simplecov', require: false, platform: :mri
gem 'coveralls', require: false, platform: :mri
gem 'simplecov', platforms: :mri
gem 'coveralls', '~> 0.8', platforms: :mri
end

group :debug do
Expand Down
4 changes: 2 additions & 2 deletions Gemfile-pure
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,8 @@ group :development, :test do
gem "rdf-xsd", git: "https://github.com/ruby-rdf/rdf-xsd", branch: "develop"
gem 'sxp', git: "https://github.com/dryruby/sxp.rb", branch: "develop"
gem "redcarpet", platform: :ruby
gem 'simplecov', require: false, platform: :mri
gem 'coveralls', require: false, platform: :mri
gem 'simplecov', platforms: :mri
gem 'coveralls', '~> 0.8', platforms: :mri
end

group :debug do
Expand Down
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ sparql = SPARQL::Client.new("http://dbpedia.org/sparql", headers: {'User-Agent'

```ruby
require 'sparql/client'
sparql = SPARQL::Client.new("http://dbpedia.org/sparql", { :graph => "http://dbpedia.org" })
sparql = SPARQL::Client.new("http://dbpedia.org/sparql", { graph: "http://dbpedia.org" })
```


Expand Down Expand Up @@ -123,11 +123,11 @@ sparql.delete_data(data)

## Dependencies

* [Ruby](http://ruby-lang.org/) (>= 2.2.2)
* [RDF.rb](http://rubygems.org/gems/rdf) (~> 3.0)
* [Net::HTTP::Persistent](http://rubygems.org/gems/net-http-persistent) (~> 3.0)
* Soft dependency on [SPARQL](http://rubygems.org/gems/sparql) (~> 3.0)
* Soft dependency on [Nokogiri](http://rubygems.org/gems/nokogiri) (>= 1.8)
* [Ruby](http://ruby-lang.org/) (>= 2.4)
* [RDF.rb](http://rubygems.org/gems/rdf) (~> 3.1)
* [Net::HTTP::Persistent](http://rubygems.org/gems/net-http-persistent) (~> 3.1)
* Soft dependency on [SPARQL](http://rubygems.org/gems/sparql) (~> 3.1)
* Soft dependency on [Nokogiri](http://rubygems.org/gems/nokogiri) (>= 1.10)

## Installation

Expand Down
2 changes: 1 addition & 1 deletion VERSION
Original file line number Diff line number Diff line change
@@ -1 +1 @@
3.0.1
3.1.0
74 changes: 37 additions & 37 deletions lib/sparql/client.rb
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ class ServerError < StandardError; end
#
# Defaults `User-Agent` header, unless one is specified.
# @option options [Hash] :read_timeout
def initialize(url, options = {}, &block)
def initialize(url, **options, &block)
case url
when RDF::Queryable
@url, @options = url, options.dup
Expand Down Expand Up @@ -128,35 +128,35 @@ def close
#
# @param (see Query.ask)
# @return [Query]
def ask(*args)
call_query_method(:ask, *args)
def ask(*args, **options)
call_query_method(:ask, *args, **options)
end

##
# Executes a tuple `SELECT` query.
#
# @param (see Query.select)
# @return [Query]
def select(*args)
call_query_method(:select, *args)
def select(*args, **options)
call_query_method(:select, *args, **options)
end

##
# Executes a `DESCRIBE` query.
#
# @param (see Query.describe)
# @return [Query]
def describe(*args)
call_query_method(:describe, *args)
def describe(*args, **options)
call_query_method(:describe, *args, **options)
end

##
# Executes a graph `CONSTRUCT` query.
#
# @param (see Query.construct)
# @return [Query]
def construct(*args)
call_query_method(:construct, *args)
def construct(*args, **options)
call_query_method(:construct, *args, **options)
end

##
Expand All @@ -179,15 +179,15 @@ def construct(*args)
# client.insert_data(data)
#
# @example Inserting data into a named graph
# client.insert_data(data, :graph => "http://example.org/")
# client.insert_data(data, graph: "http://example.org/")
#
# @param [RDF::Enumerable] data
# @param [Hash{Symbol => Object}] options
# @option options [RDF::URI, String] :graph
# @return [void] `self`
# @see http://www.w3.org/TR/sparql11-update/#insertData
def insert_data(data, options = {})
self.update(Update::InsertData.new(data, options))
def insert_data(data, **options)
self.update(Update::InsertData.new(data, **options))
end

##
Expand All @@ -200,15 +200,15 @@ def insert_data(data, options = {})
# client.delete_data(data)
#
# @example Deleting data from a named graph
# client.delete_data(data, :graph => "http://example.org/")
# client.delete_data(data, graph: "http://example.org/")
#
# @param [RDF::Enumerable] data
# @param [Hash{Symbol => Object}] options
# @option options [RDF::URI, String] :graph
# @return [void] `self`
# @see http://www.w3.org/TR/sparql11-update/#deleteData
def delete_data(data, options = {})
self.update(Update::DeleteData.new(data, options))
def delete_data(data, **options)
self.update(Update::DeleteData.new(data, **options))
end

##
Expand All @@ -223,8 +223,8 @@ def delete_data(data, options = {})
# @option options [RDF::URI, String] :graph
# @return [void] `self`
# @see http://www.w3.org/TR/sparql11-update/#deleteInsert
def delete_insert(delete_graph, insert_graph = nil, where_graph = nil, options = {})
self.update(Update::DeleteInsert.new(delete_graph, insert_graph, where_graph, options))
def delete_insert(delete_graph, insert_graph = nil, where_graph = nil, **options)
self.update(Update::DeleteInsert.new(delete_graph, insert_graph, where_graph, **options))
end

##
Expand All @@ -240,8 +240,8 @@ def delete_insert(delete_graph, insert_graph = nil, where_graph = nil, options =
# @option options [Boolean] :silent
# @return [void] `self`
# @see http://www.w3.org/TR/sparql11-update/#clear
def clear_graph(graph_uri, options = {})
self.clear(:graph, graph_uri, options)
def clear_graph(graph_uri, **options)
self.clear(:graph, graph_uri, **options)
end

##
Expand All @@ -267,7 +267,7 @@ def clear_graph(graph_uri, options = {})
# @option options [Boolean] :silent
# @return [void] `self`
#
# @overload clear(what, *arguments, options = {})
# @overload clear(what, *arguments, **options)
# @param [Symbol, #to_sym] what
# @param [Array] arguments splat of other arguments to {Update::Clear}.
# @param [Hash{Symbol => Object}] options
Expand All @@ -281,9 +281,9 @@ def clear(what, *arguments)

##
# @private
def call_query_method(meth, *args)
def call_query_method(meth, *args, **options)
client = self
result = Query.send(meth, *args)
result = Query.send(meth, *args, **options)
(class << result; self; end).send(:define_method, :execute) do
client.query(self)
end
Expand All @@ -308,20 +308,20 @@ def nodes
# @return [Array<RDF::Query::Solution>]
# @raise [IOError] if connection is closed
# @see http://www.w3.org/TR/sparql11-protocol/#query-operation
def query(query, options = {})
def query(query, **options)
@op = :query
@alt_endpoint = options[:endpoint]
case @url
when RDF::Queryable
require 'sparql' unless defined?(::SPARQL::Grammar)
begin
SPARQL.execute(query, @url, options)
SPARQL.execute(query, @url, **options)
rescue SPARQL::MalformedQuery
$stderr.puts "error running #{query}: #{$!}"
raise
end
else
parse_response(response(query, options), options)
parse_response(response(query, **options), **options)
end
end

Expand All @@ -336,15 +336,15 @@ def query(query, options = {})
# @return [void] `self`
# @raise [IOError] if connection is closed
# @see http://www.w3.org/TR/sparql11-protocol/#update-operation
def update(query, options = {})
def update(query, **options)
@op = :update
@alt_endpoint = options[:endpoint]
case @url
when RDF::Queryable
require 'sparql' unless defined?(::SPARQL::Grammar)
SPARQL.execute(query, @url, options.merge(update: true))
SPARQL.execute(query, @url, update: true, **options)
else
response(query, options)
response(query, **options)
end
self
end
Expand All @@ -359,7 +359,7 @@ def update(query, options = {})
# @option options [Hash] :headers
# @return [String]
# @raise [IOError] if connection is closed
def response(query, options = {})
def response(query, **options)
headers = options[:headers] || @headers
headers['Accept'] = options[:content_type] if options[:content_type]
request(query, headers) do |response|
Expand All @@ -380,7 +380,7 @@ def response(query, options = {})
# @param [Net::HTTPSuccess] response
# @param [Hash{Symbol => Object}] options
# @return [Object]
def parse_response(response, options = {})
def parse_response(response, **options)
case options[:content_type] || response.content_type
when NilClass
response.body
Expand All @@ -395,7 +395,7 @@ def parse_response(response, options = {})
when RESULT_TSV
self.class.parse_tsv_bindings(response.body, nodes)
else
parse_rdf_serialization(response, options)
parse_rdf_serialization(response, **options)
end
end

Expand Down Expand Up @@ -432,9 +432,9 @@ def self.parse_json_value(value, nodes = {})
when :uri
RDF::URI.new(value['value'])
when :literal
RDF::Literal.new(value['value'], :datatype => value['datatype'], :language => value['xml:lang'])
RDF::Literal.new(value['value'], datatype: value['datatype'], language: value['xml:lang'])
when :'typed-literal'
RDF::Literal.new(value['value'], :datatype => value['datatype'])
RDF::Literal.new(value['value'], datatype: value['datatype'])
else nil
end
end
Expand Down Expand Up @@ -550,7 +550,7 @@ def self.parse_xml_value(value, nodes = {})
when :literal
lang = value.respond_to?(:attr) ? value.attr('xml:lang') : value.attributes['xml:lang']
datatype = value.respond_to?(:attr) ? value.attr('datatype') : value.attributes['datatype']
RDF::Literal.new(value.text, :language => lang, :datatype => datatype)
RDF::Literal.new(value.text, language: lang, datatype: datatype)
else nil
end
end
Expand All @@ -559,8 +559,8 @@ def self.parse_xml_value(value, nodes = {})
# @param [Net::HTTPSuccess] response
# @param [Hash{Symbol => Object}] options
# @return [RDF::Enumerable]
def parse_rdf_serialization(response, options = {})
options = {:content_type => response.content_type} unless options[:content_type]
def parse_rdf_serialization(response, **options)
options = {content_type: response.content_type} unless options[:content_type]
if reader = RDF::Reader.for(options)
reader.new(response.body)
else
Expand Down Expand Up @@ -750,7 +750,7 @@ def request_method(query)
# @see http://www.w3.org/TR/sparql11-protocol/#query-via-get
def make_get_request(query, headers = {})
url = self.url.dup
url.query_values = (url.query_values || {}).merge(:query => query.to_s)
url.query_values = (url.query_values || {}).merge(query: query.to_s)
set_url_default_graph url unless @options[:graph].nil?
request = Net::HTTP::Get.new(url.request_uri, self.headers.merge(headers))
request
Expand Down
Loading

0 comments on commit cc9812c

Please sign in to comment.