File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -368,12 +368,22 @@ def query_pattern(pattern, &block)
368368 cs = @data . has_key? ( graph_name ) ? { graph_name => @data [ graph_name ] } : @data . dup
369369 cs . each do |c , ss |
370370 next unless graph_name . nil? || graph_name == false && !c || graph_name . eql? ( c )
371- ss = ss . has_key? ( subject ) ? { subject => ss [ subject ] } : ss . dup
371+ ss = if ss . has_key? ( subject )
372+ { subject => ss [ subject ] }
373+ elsif subject . nil? || subject . is_a? ( RDF ::Query ::Variable )
374+ ss . dup
375+ else
376+ [ ]
377+ end
372378 ss . each do |s , ps |
373- next unless subject . nil? || subject . eql? ( s )
374- ps = ps . has_key? ( predicate ) ? { predicate => ps [ predicate ] } : ps . dup
379+ ps = if ps . has_key? ( predicate )
380+ { predicate => ps [ predicate ] }
381+ elsif predicate . nil? || predicate . is_a? ( RDF ::Query ::Variable )
382+ ps . dup
383+ else
384+ [ ]
385+ end
375386 ps . each do |p , os |
376- next unless predicate . nil? || predicate . eql? ( p )
377387 os = os . dup # TODO: is this really needed?
378388 os . each do |o |
379389 next unless object . nil? || object . eql? ( o )
You can’t perform that action at this time.
0 commit comments