Class: Tripod::Embeds::Many
- Inherits:
-
Object
- Object
- Tripod::Embeds::Many
- Includes:
- Enumerable
- Defined in:
- lib/tripod/embeds/many.rb
Instance Method Summary collapse
- #<<(resource) ⇒ Object
- #delete(resource) ⇒ Object
- #each(&block) ⇒ Object
-
#initialize(klass, predicate, parent) ⇒ Many
constructor
A new instance of Many.
Constructor Details
#initialize(klass, predicate, parent) ⇒ Many
Returns a new instance of Many.
5 6 7 8 9 10 11 12 13 14 |
# 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 |
Instance Method Details
#<<(resource) ⇒ Object
20 21 22 23 |
# 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) ⇒ Object
25 26 27 28 29 |
# 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) ⇒ Object
16 17 18 |
# File 'lib/tripod/embeds/many.rb', line 16 def each(&block) @resources.each(&block) end |