class ActiveFedora::VersionsGraph

Public Instance Methods

all(opts = {}) click to toggle source
# File lib/active_fedora/versions_graph.rb, line 3
def all(opts = {})
  versions = fedora_versions
  versions.reject! { |version| version.label =~ /auto/ } unless opts[:include_auto_save]
  versions.sort_by { |version| DateTime.parse(version.created) }
rescue ArgumentError, NoMethodError
  raise ActiveFedora::VersionLacksCreateDate
end
resources() click to toggle source
# File lib/active_fedora/versions_graph.rb, line 21
def resources
  query({ predicate: ::RDF::Vocab::Fcrepo4.hasVersion })
end
with_label(label) click to toggle source
# File lib/active_fedora/versions_graph.rb, line 15
def with_label(label)
  all.each do |version|
    return version if version.label == label
  end
end

Private Instance Methods

created_query(statement) click to toggle source
# File lib/active_fedora/versions_graph.rb, line 43
def created_query(statement)
  query({ subject: statement.object }).query({ predicate: ::RDF::Vocab::Fcrepo4.created }).first.object.to_s
end
fedora_versions() click to toggle source
# File lib/active_fedora/versions_graph.rb, line 47
def fedora_versions
  resources.map { |statement| version_from_resource(statement) }
end
label_query(statement) click to toggle source
# File lib/active_fedora/versions_graph.rb, line 39
def label_query(statement)
  query({ subject: statement.object }).query({ predicate: ::RDF::Vocab::Fcrepo4.hasVersionLabel }).first.object.to_s
end
version_from_resource(statement) click to toggle source
# File lib/active_fedora/versions_graph.rb, line 31
def version_from_resource(statement)
  version = ResourceVersion.new
  version.uri = statement.object.to_s.gsub(/\/fcr:metadata$/, "")
  version.label = label_query(statement)
  version.created = created_query(statement)
  version
end