Sha256: 7e4e2fc1823df85c30567aad2591d384f6e333e45ee1d1d441b5d70458bb633e

Contents?: true

Size: 964 Bytes

Versions: 4

Compression:

Stored size: 964 Bytes

Contents

module IIIFManifest
  class ManifestBuilder
    class ImageBuilder
      attr_reader :display_image, :iiif_annotation_factory, :resource_builder_factory
      def initialize(display_image, iiif_annotation_factory:, resource_builder_factory:)
        @display_image = display_image
        @iiif_annotation_factory = iiif_annotation_factory
        @resource_builder_factory = resource_builder_factory
        build_resource
      end

      def apply(canvas)
        annotation['on'] = canvas['@id']
        canvas['width'] = annotation.resource['width']
        canvas['height'] = annotation.resource['height']
        canvas.images += [annotation]
      end

      private

        def build_resource
          resource_builder.apply(annotation)
        end

        def resource_builder
          resource_builder_factory.new(display_image)
        end

        def annotation
          @annotation ||= iiif_annotation_factory.new
        end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

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