Module: ActiveFedora::Versionable

Extended by:
ActiveSupport::Concern
Included in:
Base, File
Defined in:
lib/active_fedora/versionable.rb

Instance Method Summary collapse

Instance Method Details

#create_versionObject



21
22
23
24
25
# File 'lib/active_fedora/versionable.rb', line 21

def create_version
  resp = ActiveFedora.fedora.connection.post(versions_uri, nil)
  @versions = nil
  resp.success?
end

#has_versions?Boolean

Queries Fedora to figure out if there are versions for the resource.

Returns:

  • (Boolean)


28
29
30
31
32
33
34
# File 'lib/active_fedora/versionable.rb', line 28

def has_versions?
  resp = ActiveFedora.fedora.connection.get(versions_uri)
  graph = ::RDF::Graph.new << resp.reader
  graph.query({ predicate: ::RDF::Vocab::LDP.contains }).present?
rescue Ldp::NotFound
  false
end

#versions(reload = false) ⇒ Object

Returns an array of ActiveFedora::VersionsGraph::ResourceVersion objects.



10
11
12
13
14
15
16
17
18
19
# File 'lib/active_fedora/versionable.rb', line 10

def versions(reload = false)
  response = versions_request

  return ActiveFedora::VersionsGraph.new unless response
  if reload
    @versions = ActiveFedora::VersionsGraph.new << versions_request.reader
  else
    @versions ||= ActiveFedora::VersionsGraph.new << versions_request.reader
  end
end