Sha256: 82839d77f4e8223c60f48ce3bae007555d6c9a05e0b26eea44ef64dc4b45479a

Contents?: true

Size: 1.34 KB

Versions: 10

Compression:

Stored size: 1.34 KB

Contents

require_relative 'manifest_builder/iiif_service'
require_relative 'manifest_builder/canvas_builder'
require_relative 'manifest_builder/canvas_builder_factory'
require_relative 'manifest_builder/child_manifest_builder_factory'
require_relative 'manifest_builder/composite_builder'
require_relative 'manifest_builder/composite_builder_factory'
require_relative 'manifest_builder/deep_canvas_builder_factory'
require_relative 'manifest_builder/image_builder'
require_relative 'manifest_builder/image_service_builder'
require_relative 'manifest_builder/record_property_builder'
require_relative 'manifest_builder/resource_builder'
require_relative 'manifest_builder/sequence_builder'
require_relative 'manifest_builder/structure_builder'

module IIIFManifest
  class ManifestBuilder
    attr_reader :work,
                :builders,
                :top_record_factory
    def initialize(work, builders:, top_record_factory:)
      @work = work
      @builders = builders
      @top_record_factory = top_record_factory
    end

    def apply(collection)
      collection['manifests'] ||= []
      collection['manifests'] << to_h
      collection
    end

    def to_h
      @to_h ||= builders.new(work).apply(top_record)
    end

    private

    def manifest
      @manifest ||= manifest_builder_class
    end

    def top_record
      top_record_factory.new
    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_builder.rb
iiif_manifest-1.6.0 lib/iiif_manifest/manifest_builder.rb
iiif_manifest-1.5.0 lib/iiif_manifest/manifest_builder.rb
iiif_manifest-1.4.0 lib/iiif_manifest/manifest_builder.rb
iiif_manifest-1.3.1 lib/iiif_manifest/manifest_builder.rb
iiif_manifest-1.3.0 lib/iiif_manifest/manifest_builder.rb
iiif_manifest-1.2.0 lib/iiif_manifest/manifest_builder.rb
iiif_manifest-1.1.1 lib/iiif_manifest/manifest_builder.rb
iiif_manifest-1.1.0 lib/iiif_manifest/manifest_builder.rb
iiif_manifest-0.4.0 lib/iiif_manifest/manifest_builder.rb