lib/sparql/algebra/expression.rb in sparql-3.0.2 vs lib/sparql/algebra/expression.rb in sparql-3.1.0
- old
+ new
@@ -17,11 +17,11 @@
#
# @yield [expression]
# @yieldparam [SPARQL::Algebra::Expression] expression
# @yieldreturn [void] ignored
# @return [Expression]
- def self.parse(sse, options = {}, &block)
+ def self.parse(sse, **options, &block)
begin
require 'sxp' # @see http://rubygems.org/gems/sxp
rescue LoadError
abort "SPARQL::Algebra::Expression.parse requires the SXP gem (hint: `gem install sxp')."
end
@@ -36,11 +36,11 @@
debug(options) {"base_uri: #{options[:base_uri]}"}
Operator.base_uri = options.delete(:base_uri) if options.has_key?(:base_uri)
Operator.prefixes = sxp.prefixes || {}
- expression = self.new(sxp_result, options)
+ expression = self.new(sxp_result, **options)
yield(expression) if block_given?
expression
end
@@ -55,12 +55,12 @@
#
# @yield [expression]
# @yieldparam [SPARQL::Algebra::Expression] expression
# @yieldreturn [void] ignored
# @return [Expression]
- def self.open(filename, options = {}, &block)
- RDF::Util::File.open_file(filename, options) do |file|
+ def self.open(filename, **options, &block)
+ RDF::Util::File.open_file(filename, **options) do |file|
options[:base_uri] ||= filename
Expression.parse(file, options, &block)
end
end
@@ -85,19 +85,19 @@
# a SPARQL S-Expression (SSE) form
# @param [Hash{Symbol => Object}] options
# any additional options (see {Operator#initialize})
# @return [Expression]
# @raise [TypeError] if any of the operands is invalid
- def self.new(sse, options = {})
+ def self.new(sse, **options)
raise ArgumentError, "invalid SPARQL::Algebra::Expression form: #{sse.inspect}" unless sse.is_a?(Array)
operator = Operator.for(sse.first, sse.length - 1)
unless operator
return case sse.first
when Array
debug(options) {"Map array elements #{sse}"}
- sse.map {|s| self.new(s, options.merge(depth: options[:depth].to_i + 1))}
+ sse.map {|s| self.new(s, depth: options[:depth].to_i + 1, **options)}
else
debug(options) {"No operator found for #{sse.first}"}
sse.map do |s|
s.is_a?(Array) ?
self.new(s, depth: options[:depth].to_i + 1) :
@@ -108,10 +108,10 @@
operands = sse[1..-1].map do |operand|
debug(options) {"Operator=#{operator.inspect}, Operand=#{operand.inspect}"}
case operand
when Array
- self.new(operand, options.merge(depth: options[:depth].to_i + 1))
+ self.new(operand, depth: options[:depth].to_i + 1, **options)
when Operator, Variable, RDF::Term, RDF::Query, Symbol
operand
when TrueClass, FalseClass, Numeric, String, DateTime, Date, Time
RDF::Literal(operand)
else raise TypeError, "invalid SPARQL::Algebra::Expression operand: #{operand.inspect}"