class Tripod::Embeds::Many
Public Class Methods
new(klass, predicate, parent)
click to toggle source
# File lib/tripod/embeds/many.rb, line 5 def initialize(klass, predicate, parent) @parent = parent @predicate = predicate nodes = @parent.read_predicate(@predicate) # gets the UUIDs of the associated blank nodes @resources = nodes.map do |node| repository = RDF::Repository.new @parent.repository.query([node, :predicate, :object]) {|statement| repository << statement} klass.new(node: node, repository: repository) end end
Public Instance Methods
<<(resource)
click to toggle source
# File lib/tripod/embeds/many.rb, line 20 def <<(resource) @parent.repository.insert(*resource.to_statements) @parent.append_to_predicate(@predicate, resource.uri) end
delete(resource)
click to toggle source
# File lib/tripod/embeds/many.rb, line 25 def delete(resource) statements = @parent.repository.query([resource.uri, :predicate, :object]).to_a statements << [@parent.uri, RDF::URI.new(@predicate), resource.uri] @parent.repository.delete(*statements) end
each(&block)
click to toggle source
# File lib/tripod/embeds/many.rb, line 16 def each(&block) @resources.each(&block) end