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