Sha256: 90e3a1cdcca0bf6faf5f842c96a1047b54e9bf295b2c95558e208ec6a813b42b

Contents?: true

Size: 862 Bytes

Versions: 5

Compression:

Stored size: 862 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 work.file_set_presenters.empty?
          work = IIIFCollection.new(work)
          collection_manifest_builder.new(work)
        elsif !work.file_set_presenters.empty?
          sammelband_manifest_builder.new(work)
        end
      else
        manifest_builder.new(work)
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
iiif_manifest-0.3.0 lib/iiif_manifest/manifest_factory.rb
iiif_manifest-0.2.0 lib/iiif_manifest/manifest_factory.rb
iiif_manifest-0.1.2 lib/iiif_manifest/manifest_factory.rb
iiif_manifest-0.1.1 lib/iiif_manifest/manifest_factory.rb
iiif_manifest-0.1.0 lib/iiif_manifest/manifest_factory.rb