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}"