Module: ActiveFedora::Persistence
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/active_fedora/persistence.rb
Overview
Active Fedora Persistence
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
-
#delete(opts = {}) ⇒ Object
Deletes an object from Fedora and deletes the indexed record from Solr.
-
#destroy(*opts) ⇒ Object
Delete the object from Fedora and Solr.
-
#destroyed? ⇒ Boolean
Returns true if this object has been destroyed, otherwise returns false.
- #eradicate ⇒ Object
- #new_record? ⇒ Boolean
- #persisted? ⇒ Boolean
-
#save(*options) ⇒ Boolean
Saves a Base object, and any dirty attached files, then updates the Solr index for this object, unless option :update_index=>false is present.
- #save!(*args) ⇒ Object
-
#update(attributes) ⇒ Object
(also: #update_attributes)
Pushes the object and all of its new or dirty attached files into Fedora.
Instance Method Details
#delete(opts = {}) ⇒ Object
Deletes an object from Fedora and deletes the indexed record from Solr. Delete does not run any callbacks, so consider using destroy instead.
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/active_fedora/persistence.rb', line 46 def delete(opts = {}) return self if new_record? @destroyed = true id = self.id ## cache so it's still available after delete # Clear out the ETag @ldp_source = build_ldp_resource(id) begin @ldp_source.delete rescue Ldp::NotFound raise ObjectNotFoundError, "Unable to find #{id} in the repository" end ActiveFedora::SolrService.delete(id) if ENABLE_SOLR_UPDATES if opts[:eradicate] self.class.eradicate(id) end freeze end |
#destroy(*opts) ⇒ Object
Delete the object from Fedora and Solr. Run any before/after/around callbacks for destroy
70 71 72 73 |
# File 'lib/active_fedora/persistence.rb', line 70 def destroy(*opts) raise ReadOnlyRecord if readonly? delete(*opts) end |
#destroyed? ⇒ Boolean
Returns true if this object has been destroyed, otherwise returns false.
15 16 17 |
# File 'lib/active_fedora/persistence.rb', line 15 def destroyed? @destroyed end |
#eradicate ⇒ Object
75 76 77 |
# File 'lib/active_fedora/persistence.rb', line 75 def eradicate self.class.eradicate(self.id) end |
#new_record? ⇒ Boolean
6 7 8 |
# File 'lib/active_fedora/persistence.rb', line 6 def new_record? @ldp_source.new? end |
#persisted? ⇒ Boolean
10 11 12 |
# File 'lib/active_fedora/persistence.rb', line 10 def persisted? !(destroyed? || new_record?) end |
#save(*options) ⇒ Boolean
Saves a Base object, and any dirty attached files, then updates the Solr index for this object, unless option :update_index=>false is present. Indexing is also controlled by the ‘create_needs_index?’ and ‘update_needs_index?’ methods.
26 27 28 |
# File 'lib/active_fedora/persistence.rb', line 26 def save(*) create_or_update(*) end |
#save!(*args) ⇒ Object
30 31 32 |
# File 'lib/active_fedora/persistence.rb', line 30 def save!(*args) create_or_update(*args) end |
#update(attributes) ⇒ Object Also known as: update_attributes
Pushes the object and all of its new or dirty attached files into Fedora
35 36 37 38 |
# File 'lib/active_fedora/persistence.rb', line 35 def update(attributes) self.attributes=attributes save end |