Sha256: 968612ccfa423441d95fb9b0f5c620e60d072d5a0970c03e3068a73813a0f646
Contents?: true
Size: 1.34 KB
Versions: 11
Compression:
Stored size: 1.34 KB
Contents
module ActiveFedora class VersionsGraph < ::RDF::Graph def all opts={} if opts[:include_auto_save] fedora_versions else fedora_versions.reject { |v| v.label.match("auto") } end end def first all.first end def last all.last end def with_label label all.each do |version| return version if version.label == label end end def resources query(predicate: ActiveFedora::RDF::Fcrepo4.hasVersion) end private class ResourceVersion attr_accessor :uri, :label, :created end 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) return version end def label_query statement query(subject: statement.object).query(predicate: ActiveFedora::RDF::Fcrepo4.hasVersionLabel).first.object.to_s end def created_query statement query(subject: statement.object).query(predicate: ActiveFedora::RDF::Fcrepo4.created).first.object.to_s end def fedora_versions list = resources.map { |statement| version_from_resource(statement) } list.sort_by(&:created) end end end
Version data entries
11 entries across 11 versions & 1 rubygems