Sha256: fe1a5f26fb75258272807ae52adb1636126a8dc3506c5d5b6d086ee71e10f602
Contents?: true
Size: 1.09 KB
Versions: 6
Compression:
Stored size: 1.09 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
6 entries across 6 versions & 1 rubygems
Version | Path |
---|---|
spira-3.1.0 | lib/spira/utils.rb |
spira-3.0.0 | lib/spira/utils.rb |
spira-2.1.0 | lib/spira/utils.rb |
spira-2.0.2 | lib/spira/utils.rb |
spira-2.0.1 | lib/spira/utils.rb |
spira-2.0.0 | lib/spira/utils.rb |