Module: ActiveFedora::Versionable
- Extended by:
- ActiveSupport::Concern, Deprecation
- Defined in:
- lib/active_fedora/versionable.rb
Defined Under Namespace
Modules: ClassMethods
Instance Method Summary collapse
- #create_version ⇒ Object
-
#has_versions? ⇒ Boolean
Queries Fedora to figure out if there are versions for the resource.
- #model_type ⇒ Object
- #restore_version(label) ⇒ Object
-
#versions(reload = false) ⇒ Object
Returns an array of ActiveFedora::VersionsGraph::ResourceVersion objects.
Instance Method Details
#create_version ⇒ Object
35 36 37 38 39 |
# File 'lib/active_fedora/versionable.rb', line 35 def create_version resp = ActiveFedora.fedora.connection.post(versions_uri, nil, {slug: version_name}) @versions = nil resp.success? end |
#has_versions? ⇒ Boolean
Queries Fedora to figure out if there are versions for the resource.
42 43 44 45 46 47 |
# File 'lib/active_fedora/versionable.rb', line 42 def has_versions? ActiveFedora.fedora.connection.head(versions_uri) true rescue Ldp::NotFound false end |
#model_type ⇒ Object
17 18 19 20 21 22 23 |
# File 'lib/active_fedora/versionable.rb', line 17 def model_type if self.respond_to?(:metadata) .ldp_source.graph.query(predicate: ::RDF.type).objects else resource.query(subject: resource.rdf_subject, predicate: ::RDF.type).objects end end |
#restore_version(label) ⇒ Object
49 50 51 52 53 54 55 |
# File 'lib/active_fedora/versionable.rb', line 49 def restore_version label resp = ActiveFedora.fedora.connection.patch(versions.with_label(label).uri, nil) @versions = nil reload refresh_attributes if self.respond_to?("refresh_attributes") resp.success? end |
#versions(reload = false) ⇒ Object
Returns an array of ActiveFedora::VersionsGraph::ResourceVersion objects. Excludes auto-snapshot versions from Fedora.
27 28 29 30 31 32 33 |
# File 'lib/active_fedora/versionable.rb', line 27 def versions(reload=false) if reload @versions = ActiveFedora::VersionsGraph.new << ::RDF::Reader.for(:ttl).new(versions_request) else @versions ||= ActiveFedora::VersionsGraph.new << ::RDF::Reader.for(:ttl).new(versions_request) end end |