Sha256: a3458ef3c93c35e30ba4b356d8df65be433e2a95503d834e9fa70d9cbc3e2b75
Contents?: true
Size: 1.1 KB
Versions: 3
Compression:
Stored size: 1.1 KB
Contents
module Spira module Utils ## # Rename the subject of a Spira object to something else # @param [RDF::Resource] new_subject # @param [RDF::Repository] repository # @return [Spira::Base] A new instance using this subject def rename!(new_subject, repository = nil) repository ||= Spira.repository repository.rename!(subject, new_subject) self.class.for(new_subject) end end end module RDF class Repository ## # Rename a resource in the Repository to the new given subject. # # @param [RDF::Resource] old_subject # @param [RDF::Resource] new_subject # @return [self] def rename!(old_subject, new_subject) transaction(mutable: true) do |tx| query({subject: old_subject}) do |statement| tx.insert RDF::Statement.new(new_subject, statement.predicate, statement.object) tx.delete(statement) end query({object: old_subject}) do |statement| tx.insert RDF::Statement.new(statement.subject, statement.predicate, new_subject) tx.delete(statement) end end end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
spira-3.3.0 | lib/spira/utils.rb |
spira-3.2.0 | lib/spira/utils.rb |
spira-3.1.1 | lib/spira/utils.rb |