Sha256: fb5d6ce00e8b8d7d6f5c64f758ed3ef0ac7f4aaa606c7ad84558f72352d1ee86

Contents?: true

Size: 988 Bytes

Versions: 10

Compression:

Stored size: 988 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

10 entries across 10 versions & 2 rubygems

Version Path
blacklight-spotlight-3.6.0.beta8 vendor/bundle/ruby/3.2.0/gems/iiif_manifest-1.5.0/lib/iiif_manifest/manifest_factory.rb
iiif_manifest-1.6.0 lib/iiif_manifest/manifest_factory.rb
iiif_manifest-1.5.0 lib/iiif_manifest/manifest_factory.rb
iiif_manifest-1.4.0 lib/iiif_manifest/manifest_factory.rb
iiif_manifest-1.3.1 lib/iiif_manifest/manifest_factory.rb
iiif_manifest-1.3.0 lib/iiif_manifest/manifest_factory.rb
iiif_manifest-1.2.0 lib/iiif_manifest/manifest_factory.rb
iiif_manifest-1.1.1 lib/iiif_manifest/manifest_factory.rb
iiif_manifest-1.1.0 lib/iiif_manifest/manifest_factory.rb
iiif_manifest-0.4.0 lib/iiif_manifest/manifest_factory.rb