Sha256: 9bd7154f50bf353be8382daed00191b3fe6327c902ebe180957fe0d19692a7c5

Contents?: true

Size: 868 Bytes

Versions: 4

Compression:

Stored size: 868 Bytes

Contents

module IIIFManifest
  class ManifestBuilder
    class ResourceBuilder
      attr_reader :display_image
      def initialize(display_image)
        @display_image = display_image
      end

      def apply(annotation)
        resource['@id'] = display_image.url
        resource['@type'] = 'dctypes:Image'
        resource['height'] = display_image.height
        resource['width'] = display_image.width
        resource['format'] = display_image.format
        image_service_builder.apply(resource) if iiif_endpoint
        annotation.resource = resource
      end

      private

        def resource
          @resource ||= IIIF::Presentation::Resource.new
        end

        def iiif_endpoint
          display_image.try(:iiif_endpoint)
        end

        def image_service_builder
          ImageServiceBuilder.new(iiif_endpoint)
        end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
iiif_manifest-0.2.0 lib/iiif_manifest/manifest_builder/resource_builder.rb
iiif_manifest-0.1.2 lib/iiif_manifest/manifest_builder/resource_builder.rb
iiif_manifest-0.1.1 lib/iiif_manifest/manifest_builder/resource_builder.rb
iiif_manifest-0.1.0 lib/iiif_manifest/manifest_builder/resource_builder.rb