Class: RoadForest::SourceRigor::ResourcePattern
- Inherits:
-
RDF::Query::Pattern
- Object
- RDF::Query::Pattern
- RoadForest::SourceRigor::ResourcePattern
- Defined in:
- lib/roadforest/source-rigor/resource-pattern.rb
Instance Attribute Summary collapse
-
#context_roles ⇒ Object
Returns the value of attribute context_roles.
-
#source_rigor ⇒ Object
Returns the value of attribute source_rigor.
Class Method Summary collapse
Instance Method Summary collapse
Instance Attribute Details
#context_roles ⇒ Object
Returns the value of attribute context_roles.
35 36 37 |
# File 'lib/roadforest/source-rigor/resource-pattern.rb', line 35 def context_roles @context_roles end |
#source_rigor ⇒ Object
Returns the value of attribute source_rigor.
35 36 37 |
# File 'lib/roadforest/source-rigor/resource-pattern.rb', line 35 def source_rigor @source_rigor end |
Class Method Details
.from(pattern, options) {|pattern| ... } ⇒ Object
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
# File 'lib/roadforest/source-rigor/resource-pattern.rb', line 8 def self.from(pattern, ) pattern = case pattern when self pattern when ::RDF::Query::Pattern ||= {} self.new(pattern.subject, pattern.predicate, pattern.object, .merge(:context => pattern.context)) when Array, ::RDF::Statement ||= {} self.new(pattern[0], pattern[1], pattern[2], .merge(:context => pattern[3])) when Hash ||= {} self.new(.merge(pattern)) else raise ArgumentError, "expected RoadForest::SourceRigor::ResourcePattern, RDF::Query::Pattern, RDF::Statement, Hash, or Array, but got #{pattern.inspect}" end unless .nil? pattern.context_roles = [:context_roles] pattern.source_rigor = [:source_rigor] end yield pattern if block_given? pattern end |
Instance Method Details
#context ⇒ Object
57 58 59 |
# 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) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 |
# 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 |