module ActiveFedora::Persistence::ClassMethods
Public Instance Methods
create(attributes = nil, &block)
click to toggle source
Creates an object (or multiple objects) and saves it to the repository, if validations pass. The resulting object is returned whether the object was saved successfully to the repository or not.
The attributes
parameter can be either be a Hash or an Array of Hashes. These Hashes describe the attributes on the objects that are to be created.
Examples¶ ↑
# Create a single new object User.create(:first_name => 'Jamie') # Create an Array of new objects User.create([{ :first_name => 'Jamie' }, { :first_name => 'Jeremy' }]) # Create a single object and pass it into a block to set other attributes. User.create(:first_name => 'Jamie') do |u| u.is_admin = false end # Creating an Array of new objects using a block, where the block is executed for each object: User.create([{ :first_name => 'Jamie' }, { :first_name => 'Jeremy' }]) do |u| u.is_admin = false end
# File lib/active_fedora/persistence.rb, line 138 def create(attributes = nil, &block) if attributes.is_a?(Array) attributes.collect { |attr| create(attr, &block) } else object = new(attributes, &block) object.save object end end
eradicate(uri)
click to toggle source
Removes an object’s tombstone so another object with the same uri may be created. NOTE: this is in violation of the linked data platform and is only here as a convience method. It shouldn’t be used in the general course of repository operations.
# File lib/active_fedora/persistence.rb, line 151 def eradicate(uri) gone?(uri) ? delete_tombstone(uri) : false end
gone?(uri)
click to toggle source
Allows the user to find out if an id has been used in the system and then been deleted @param uri id in fedora that may or may not have been deleted
# File lib/active_fedora/persistence.rb, line 157 def gone?(uri) ActiveFedora::Base.find(uri) false rescue Ldp::Gone true rescue ActiveFedora::ObjectNotFoundError false end
Private Instance Methods
delete_tombstone(uri)
click to toggle source
# File lib/active_fedora/persistence.rb, line 168 def delete_tombstone(uri) tombstone = ActiveFedora::Base.id_to_uri(uri) + "/fcr:tombstone" ActiveFedora.fedora.connection.delete(tombstone) true end