diff --git a/lib/iiif_manifest/v3/manifest_builder/canvas_builder.rb b/lib/iiif_manifest/v3/manifest_builder/canvas_builder.rb index 38cf69a..70e5592 100644 --- a/lib/iiif_manifest/v3/manifest_builder/canvas_builder.rb +++ b/lib/iiif_manifest/v3/manifest_builder/canvas_builder.rb @@ -30,7 +30,7 @@ def canvas def path path = "#{parent.manifest_url}/canvas/#{record.id}" - path << "##{record.media_fragment}" if record.respond_to?(:media_fragment) + path << "##{record.media_fragment}" if record.respond_to?(:media_fragment) && record.media_fragment.present? path end diff --git a/spec/lib/iiif_manifest/v3/manifest_builder/canvas_builder_spec.rb b/spec/lib/iiif_manifest/v3/manifest_builder/canvas_builder_spec.rb index 2c8bcb0..48b216c 100644 --- a/spec/lib/iiif_manifest/v3/manifest_builder/canvas_builder_spec.rb +++ b/spec/lib/iiif_manifest/v3/manifest_builder/canvas_builder_spec.rb @@ -33,6 +33,15 @@ it 'returns a canvas url' do expect(builder.path).to eq 'http://test.host/books/book-77/manifest/canvas/test-22#xywh=160,120,320,240' end + + context 'and is blank' do + before do + allow(record).to receive(:media_fragment).and_return(nil) + end + it 'returns a canvas url' do + expect(builder.path).to eq 'http://test.host/books/book-77/manifest/canvas/test-22' + end + end end end end