Class: IIIFManifest::V3::ManifestBuilder::CanvasBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/iiif_manifest/v3/manifest_builder/canvas_builder.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(record, parent, iiif_canvas_factory:, content_builder:, choice_builder:, iiif_annotation_page_factory:) ⇒ CanvasBuilder

Returns a new instance of CanvasBuilder.



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/iiif_manifest/v3/manifest_builder/canvas_builder.rb', line 8

def initialize(record,
               parent,
               iiif_canvas_factory:,
               content_builder:,
               choice_builder:,
               iiif_annotation_page_factory:)
  @record = record
  @parent = parent
  @iiif_canvas_factory = iiif_canvas_factory
  @content_builder = content_builder
  @choice_builder = choice_builder
  @iiif_annotation_page_factory = iiif_annotation_page_factory
  apply_record_properties
  # Presentation 2.x approach
  attach_image if display_image
  # Presentation 3.0 approach
  attach_content if display_content
end

Instance Attribute Details

#choice_builderObject (readonly)

Returns the value of attribute choice_builder.



5
6
7
# File 'lib/iiif_manifest/v3/manifest_builder/canvas_builder.rb', line 5

def choice_builder
  @choice_builder
end

#content_builderObject (readonly)

Returns the value of attribute content_builder.



5
6
7
# File 'lib/iiif_manifest/v3/manifest_builder/canvas_builder.rb', line 5

def content_builder
  @content_builder
end

#iiif_annotation_page_factoryObject (readonly)

Returns the value of attribute iiif_annotation_page_factory.



5
6
7
# File 'lib/iiif_manifest/v3/manifest_builder/canvas_builder.rb', line 5

def iiif_annotation_page_factory
  @iiif_annotation_page_factory
end

#iiif_canvas_factoryObject (readonly)

Returns the value of attribute iiif_canvas_factory.



5
6
7
# File 'lib/iiif_manifest/v3/manifest_builder/canvas_builder.rb', line 5

def iiif_canvas_factory
  @iiif_canvas_factory
end

#parentObject (readonly)

Returns the value of attribute parent.



5
6
7
# File 'lib/iiif_manifest/v3/manifest_builder/canvas_builder.rb', line 5

def parent
  @parent
end

#recordObject (readonly)

Returns the value of attribute record.



5
6
7
# File 'lib/iiif_manifest/v3/manifest_builder/canvas_builder.rb', line 5

def record
  @record
end

Instance Method Details

#apply(items) ⇒ Object



37
38
39
40
# File 'lib/iiif_manifest/v3/manifest_builder/canvas_builder.rb', line 37

def apply(items)
  return items if canvas.items.blank?
  items << canvas
end

#canvasObject



27
28
29
# File 'lib/iiif_manifest/v3/manifest_builder/canvas_builder.rb', line 27

def canvas
  @canvas ||= iiif_canvas_factory.new
end

#pathObject



31
32
33
34
35
# File 'lib/iiif_manifest/v3/manifest_builder/canvas_builder.rb', line 31

def path
  path = "#{parent.manifest_url}/canvas/#{record.id}"
  path << "##{record.media_fragment}" if record.respond_to?(:media_fragment) && record.media_fragment.present?
  path
end