class RoadForest::SourceRigor::ResourcePattern
Attributes
context_roles[RW]
source_rigor[RW]
Public Class Methods
from(pattern, options) { |pattern| ... }
click to toggle source
# File lib/roadforest/source-rigor/resource-pattern.rb, line 8 def self.from(pattern, options) pattern = case pattern when self pattern when ::RDF::Query::Pattern options ||= {} self.new(pattern.subject, pattern.predicate, pattern.object, options.merge(:context => pattern.context)) when Array, ::RDF::Statement options ||= {} self.new(pattern[0], pattern[1], pattern[2], options.merge(:context => pattern[3])) when Hash options ||= {} self.new(options.merge(pattern)) else raise ArgumentError, "expected RoadForest::SourceRigor::ResourcePattern, RDF::Query::Pattern, RDF::Statement, Hash, or Array, but got #{pattern.inspect}" end unless options.nil? pattern.context_roles = options[:context_roles] pattern.source_rigor = options[:source_rigor] end yield pattern if block_given? pattern end
Public Instance Methods
context()
click to toggle source
# File lib/roadforest/source-rigor/resource-pattern.rb, line 57 def context @context ||= ::RDF::Query::Variable.new(:context) end
execute(queryable, bindings = nil, query_context_roles = nil, &block)
click to toggle source
Calls superclass method
# File lib/roadforest/source-rigor/resource-pattern.rb, line 37 def execute(queryable, bindings = nil, query_context_roles = nil, &block) unless queryable.is_a? RoadForest::SourceRigor::GraphStore return super(queryable, bindings || {}, &block) end investigation = Investigation.new investigation.queryable = queryable investigation.context_roles = (query_context_roles || {}).merge(context_roles) investigation.source_rigor = source_rigor results = investigation.result do |results| super(queryable, bindings || {}) do |statement| results << statement end end results.each(&block) if block_given? results end