Sha256: 495c93e2caec98b91b9082c557d6d9f0265542b766ef2c6b103a9a2ae8f41cc0

Contents?: true

Size: 964 Bytes

Versions: 4

Compression:

Stored size: 964 Bytes

Contents

module IIIFManifest
  module V3
    class ManifestBuilder
      class ImageServiceBuilder
        attr_reader :iiif_endpoint, :iiif_service_factory
        def initialize(iiif_endpoint, iiif_service_factory:)
          @iiif_endpoint = iiif_endpoint
          @iiif_service_factory = iiif_service_factory
        end

        def apply(resource)
          service['id'] = iiif_endpoint.url
          service['profile'] = iiif_endpoint.profile
          service['type'] = determine_type(iiif_endpoint.context)
          resource.service = [service]
        end

        private

          def determine_type(context)
            case context
            when 'http://iiif.io/api/image/1/context.json'
              'ImageService1'
            when 'http://iiif.io/api/image/2/context.json'
              'ImageService2'
            end
          end

          def service
            @service ||= iiif_service_factory.new
          end
      end
    end
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

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