Sha256: 59c62b676aa07adfe9857884ae49ae4c58ac9cb8a60a74e4ca088ae06ffd960e
Contents?: true
Size: 1.59 KB
Versions: 1
Compression:
Stored size: 1.59 KB
Contents
module IIIFManifest module V3 class ManifestBuilder class BodyBuilder attr_reader :display_content, :iiif_body_factory, :image_service_builder_factory def initialize(display_content, iiif_body_factory:, image_service_builder_factory:) @display_content = display_content @iiif_body_factory = iiif_body_factory @image_service_builder_factory = image_service_builder_factory end def apply(annotation) build_body image_service_builder.apply(body) if iiif_endpoint annotation.body = body end private def build_body body['id'] = display_content.url body['type'] = body_type body['height'] = display_content.height if display_content.try(:height).present? body['width'] = display_content.width if display_content.try(:width).present? body['duration'] = display_content.duration if display_content.try(:duration).present? body['format'] = display_content.format if display_content.try(:format).present? body['label'] = ManifestBuilder.language_map(display_content.label) if display_content.try(:label).present? end def body @body ||= iiif_body_factory.new end def body_type display_content.try(:type) || 'Image' end def iiif_endpoint display_content.try(:iiif_endpoint) end def image_service_builder image_service_builder_factory.new(iiif_endpoint) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
iiif_manifest-0.5.0 | lib/iiif_manifest/v3/manifest_builder/body_builder.rb |