Sha256: a22ef9d2ef2a5ab934795ee6fad8b268ea3eac5af3f35a922e596c82dd18d8b2

Contents?: true

Size: 994 Bytes

Versions: 4

Compression:

Stored size: 994 Bytes

Contents

module IIIFManifest
  class ManifestFactory
    class << self
      def new(work, manifest_service_locator: ManifestServiceLocator)
        super(manifest_service_locator).new(work)
      end
    end

    delegate :collection_manifest_builder, :manifest_builder, :sammelband_manifest_builder,
             to: :manifest_service_locator
    attr_reader :manifest_service_locator

    def initialize(manifest_service_locator)
      @manifest_service_locator = manifest_service_locator
    end

    def new(work)
      if !work.work_presenters.empty?
        if sammelband?(work) || !work.file_set_presenters.empty?
          sammelband_manifest_builder.new(work)
        elsif work.file_set_presenters.empty?
          work = IIIFCollection.new(work)
          collection_manifest_builder.new(work)
        end
      else
        manifest_builder.new(work)
      end
    end

    private

      def sammelband?(work)
        work.respond_to?(:sammelband?) && work.sammelband?
      end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
iiif_manifest-1.0.1 lib/iiif_manifest/manifest_factory.rb
iiif_manifest-1.0.0 lib/iiif_manifest/manifest_factory.rb
iiif_manifest-0.6.0 lib/iiif_manifest/manifest_factory.rb
iiif_manifest-0.5.0 lib/iiif_manifest/manifest_factory.rb