iiif_manifest 1.5.0 → 1.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a7ea1cecc789123d7b703170f21175f9c1ba0bffb42b304b6f2a6aa60915fa87
|
4
|
+
data.tar.gz: ebfd7b8387200042de0803680797421573e00b6fba6d48c8d30e57ad34b43ca7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3fc57f1933acddeed084c7b70931e425c815f0268fb83b23a38a921b248ca38e6a2f614c02251a9207da1a7ecbbaa8f50febe66c8994718798ad227ced072ba0
|
7
|
+
data.tar.gz: c7068077352a0ee38a3b43aef1d3317e118cb57796c01953e143d1f8395d890847cf830804f292ff7daef1aa5ffcdb969d0c318f4d6dc5e4628a6f8c4fd04642
|
data/README.md
CHANGED
@@ -126,6 +126,7 @@ In Presentation 3.0, additionally it **_may_** implement;
|
|
126
126
|
- `#part_of` to contain an array of hashes for parent resources to be offered at each leaf node. Items must contain "id" and "type" properties. Items should contain "label".
|
127
127
|
- `#homepage` to contain an array of hashes for homepage resources to be offered at each leaf node. Items must contain "id", "type", and "label" properties. Items should contain a "format" property and may contain a "language" property.
|
128
128
|
- `#placeholder_content` to contain an instance of `IIIFManifest::V3::DisplayContent` for [`placeholderCanvas`](https://iiif.io/api/presentation/3.0/#placeholdercanvas) at each leaf node
|
129
|
+
- `#service` to contain an array of hashes for services. Each must contain "id" and "type" and may contain any other arbitrary properties.
|
129
130
|
|
130
131
|
```ruby
|
131
132
|
class Page
|
@@ -146,7 +147,7 @@ In Presentation 3.0, additionally it **_may_** implement;
|
|
146
147
|
)
|
147
148
|
end
|
148
149
|
|
149
|
-
# --------------------------------------- Presentation 3.0
|
150
|
+
# --------------------------------------- Presentation 3.0 ---------------------------------------
|
150
151
|
def sequence_rendering
|
151
152
|
[{"@id" => "http://test.host/display_image/id/download", "format" => "application/pdf", "label" => "Download"}]
|
152
153
|
end
|
@@ -170,7 +171,17 @@ In Presentation 3.0, additionally it **_may_** implement;
|
|
170
171
|
type: "Image",
|
171
172
|
format: "image/jpeg")
|
172
173
|
end
|
173
|
-
|
174
|
+
|
175
|
+
def service
|
176
|
+
[
|
177
|
+
{
|
178
|
+
"@context" => "http://iiif.io/api/annext/services/example/context.json",
|
179
|
+
"@id" => "https://example.org/service",
|
180
|
+
"profile" => "https://example.org/docs/service"
|
181
|
+
}
|
182
|
+
]
|
183
|
+
end
|
184
|
+
# --------------------------------------- Presentation 3.0 ---------------------------------------
|
174
185
|
|
175
186
|
private
|
176
187
|
|
@@ -80,9 +80,16 @@ module IIIFManifest
|
|
80
80
|
apply_canvas_attributes(canvas)
|
81
81
|
apply_annotation_content_to(canvas)
|
82
82
|
apply_thumbnail_to(canvas)
|
83
|
+
apply_dimensions(canvas)
|
83
84
|
end
|
84
85
|
# rubocop:enable Metrics/AbcSize
|
85
86
|
|
87
|
+
def apply_dimensions(canvas)
|
88
|
+
return unless !display_content && placeholder_content
|
89
|
+
canvas['width'] = placeholder_content.width if placeholder_content.width.present?
|
90
|
+
canvas['height'] = placeholder_content.height if placeholder_content.height.present?
|
91
|
+
end
|
92
|
+
|
86
93
|
def apply_annotation_content_to(canvas)
|
87
94
|
return if annotation_content.blank?
|
88
95
|
|
@@ -108,6 +115,7 @@ module IIIFManifest
|
|
108
115
|
canvas.summary = ManifestBuilder.language_map(record.description) if record.respond_to?(:description) &&
|
109
116
|
record.description.present?
|
110
117
|
canvas.homepage = populate(:homepage) if populate(:homepage).present?
|
118
|
+
canvas.service = populate(:service) if populate(:service).present?
|
111
119
|
end
|
112
120
|
# rubocop:enable Metrics/CyclomaticComplexity, Metrics/PerceivedComplexity
|
113
121
|
|
@@ -182,6 +182,14 @@ module IIIFManifest
|
|
182
182
|
def homepage=(homepage)
|
183
183
|
inner_hash['homepage'] = homepage
|
184
184
|
end
|
185
|
+
|
186
|
+
def service
|
187
|
+
inner_hash['service'] || []
|
188
|
+
end
|
189
|
+
|
190
|
+
def service=(service)
|
191
|
+
inner_hash['service'] = service
|
192
|
+
end
|
185
193
|
end
|
186
194
|
|
187
195
|
class Range < IIIFService
|
@@ -235,7 +243,8 @@ module IIIFManifest
|
|
235
243
|
|
236
244
|
def initial_attributes
|
237
245
|
{
|
238
|
-
'type' => 'AnnotationPage'
|
246
|
+
'type' => 'AnnotationPage',
|
247
|
+
'items' => []
|
239
248
|
}
|
240
249
|
end
|
241
250
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iiif_manifest
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Coyne
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: exe
|
11
11
|
cert_chain: []
|
12
|
-
date: 2024-
|
12
|
+
date: 2024-07-17 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activesupport
|