iiif-presentation 1.0.0 → 1.2.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 +4 -4
- data/.github/workflows/ruby.yml +35 -0
- data/.gitignore +1 -0
- data/Gemfile +2 -0
- data/README.md +22 -2
- data/VERSION +1 -1
- data/iiif-presentation.gemspec +1 -1
- data/lib/iiif/hash_behaviours.rb +1 -1
- data/lib/iiif/presentation/canvas.rb +4 -0
- data/lib/iiif/presentation/service.rb +12 -0
- data/lib/iiif/presentation.rb +5 -4
- data/lib/iiif/service.rb +40 -105
- data/lib/iiif/v3/abstract_resource.rb +491 -0
- data/lib/iiif/v3/presentation/annotation.rb +74 -0
- data/lib/iiif/v3/presentation/annotation_collection.rb +38 -0
- data/lib/iiif/v3/presentation/annotation_page.rb +53 -0
- data/lib/iiif/v3/presentation/canvas.rb +82 -0
- data/lib/iiif/v3/presentation/choice.rb +51 -0
- data/lib/iiif/v3/presentation/collection.rb +52 -0
- data/lib/iiif/v3/presentation/image_resource.rb +110 -0
- data/lib/iiif/v3/presentation/manifest.rb +82 -0
- data/lib/iiif/v3/presentation/range.rb +39 -0
- data/lib/iiif/v3/presentation/resource.rb +30 -0
- data/lib/iiif/v3/presentation/sequence.rb +66 -0
- data/lib/iiif/v3/presentation/service.rb +51 -0
- data/lib/iiif/v3/presentation.rb +36 -0
- data/spec/fixtures/v3/manifests/complete_from_spec.json +195 -0
- data/spec/fixtures/v3/manifests/minimal.json +49 -0
- data/spec/fixtures/v3/manifests/service_only.json +14 -0
- data/spec/fixtures/vcr_cassettes/pul_loris_cassette.json +1 -1
- data/spec/fixtures/vcr_cassettes/pul_loris_cassette_v3.json +1 -0
- data/spec/integration/iiif/presentation/image_resource_spec.rb +0 -1
- data/spec/integration/iiif/service_spec.rb +17 -32
- data/spec/integration/iiif/v3/abstract_resource_spec.rb +202 -0
- data/spec/integration/iiif/v3/presentation/image_resource_spec.rb +118 -0
- data/spec/spec_helper.rb +6 -0
- data/spec/unit/iiif/presentation/canvas_spec.rb +0 -1
- data/spec/unit/iiif/presentation/manifest_spec.rb +1 -1
- data/spec/unit/iiif/v3/abstract_resource_define_methods_for_spec.rb +78 -0
- data/spec/unit/iiif/v3/abstract_resource_spec.rb +293 -0
- data/spec/unit/iiif/v3/presentation/annotation_collection_spec.rb +36 -0
- data/spec/unit/iiif/v3/presentation/annotation_page_spec.rb +131 -0
- data/spec/unit/iiif/v3/presentation/annotation_spec.rb +389 -0
- data/spec/unit/iiif/v3/presentation/canvas_spec.rb +337 -0
- data/spec/unit/iiif/v3/presentation/choice_spec.rb +120 -0
- data/spec/unit/iiif/v3/presentation/collection_spec.rb +55 -0
- data/spec/unit/iiif/v3/presentation/image_resource_spec.rb +189 -0
- data/spec/unit/iiif/v3/presentation/manifest_spec.rb +370 -0
- data/spec/unit/iiif/v3/presentation/range_spec.rb +54 -0
- data/spec/unit/iiif/v3/presentation/resource_spec.rb +174 -0
- data/spec/unit/iiif/v3/presentation/sequence_spec.rb +222 -0
- data/spec/unit/iiif/v3/presentation/service_spec.rb +220 -0
- data/spec/unit/iiif/v3/presentation/shared_examples/abstract_resource_only_keys.rb +41 -0
- data/spec/unit/iiif/v3/presentation/shared_examples/any_type_keys.rb +31 -0
- data/spec/unit/iiif/v3/presentation/shared_examples/array_only_keys.rb +40 -0
- data/spec/unit/iiif/v3/presentation/shared_examples/hash_only_keys.rb +40 -0
- data/spec/unit/iiif/v3/presentation/shared_examples/int_only_keys.rb +45 -0
- data/spec/unit/iiif/v3/presentation/shared_examples/numeric_only_keys.rb +45 -0
- data/spec/unit/iiif/v3/presentation/shared_examples/string_only_keys.rb +26 -0
- data/spec/unit/iiif/v3/presentation/shared_examples/uri_only_keys.rb +31 -0
- metadata +82 -11
- data/.travis.yml +0 -11
@@ -0,0 +1,31 @@
|
|
1
|
+
shared_examples 'it has the appropriate methods for any-type keys v3' do
|
2
|
+
|
3
|
+
described_class.new.any_type_keys.each do |prop|
|
4
|
+
describe "##{prop}=" do
|
5
|
+
it "sets self['#{prop}']" do
|
6
|
+
subject.send("#{prop}=", fixed_values[prop])
|
7
|
+
expect(subject[prop]).to eq fixed_values[prop]
|
8
|
+
end
|
9
|
+
if prop.camelize(:lower) != prop
|
10
|
+
it "is aliased as ##{prop.camelize(:lower)}=" do
|
11
|
+
subject.send("#{prop.camelize(:lower)}=", fixed_values[prop])
|
12
|
+
expect(subject[prop]).to eq fixed_values[prop]
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
16
|
+
|
17
|
+
describe "##{prop}" do
|
18
|
+
it "gets self[#{prop}]" do
|
19
|
+
subject.send("[]=", prop, fixed_values[prop])
|
20
|
+
expect(subject.send("#{prop}")).to eq fixed_values[prop]
|
21
|
+
end
|
22
|
+
if prop.camelize(:lower) != prop
|
23
|
+
it "is aliased as ##{prop.camelize(:lower)}" do
|
24
|
+
subject.send("[]=", prop, fixed_values[prop])
|
25
|
+
expect(subject.send("#{prop.camelize(:lower)}")).to eq fixed_values[prop]
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
shared_examples 'it has the appropriate methods for array-only keys v3' do
|
2
|
+
|
3
|
+
described_class.new.array_only_keys.each do |prop|
|
4
|
+
|
5
|
+
describe "#{prop}=" do
|
6
|
+
it "sets #{prop}" do
|
7
|
+
ex = [{'label' => 'XYZ'}]
|
8
|
+
subject.send("#{prop}=", ex)
|
9
|
+
expect(subject[prop]).to eq ex
|
10
|
+
end
|
11
|
+
if prop.camelize(:lower) != prop
|
12
|
+
it "is aliased as ##{prop.camelize(:lower)}=" do
|
13
|
+
ex = [{'label' => 'XYZ'}]
|
14
|
+
subject.send("#{prop.camelize(:lower)}=", ex)
|
15
|
+
expect(subject[prop]).to eq ex
|
16
|
+
end
|
17
|
+
end
|
18
|
+
it 'raises an exception when attempting to set it to something other than an Array' do
|
19
|
+
expect { subject.send("#{prop}=", 'Foo') }.to raise_error IIIF::V3::Presentation::IllegalValueError
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "#{prop}" do
|
24
|
+
it "gets #{prop}" do
|
25
|
+
ex = [{'label' => 'XYZ'}]
|
26
|
+
subject[prop] = ex
|
27
|
+
expect(subject.send(prop)).to eq ex
|
28
|
+
end
|
29
|
+
if prop.camelize(:lower) != prop
|
30
|
+
it "is aliased as ##{prop.camelize(:lower)}" do
|
31
|
+
ex = [{'label' => 'XYZ'}]
|
32
|
+
subject[prop] = ex
|
33
|
+
expect(subject.send("#{prop.camelize(:lower)}")).to eq ex
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
shared_examples 'it has the appropriate methods for hash-only keys v3' do
|
2
|
+
|
3
|
+
described_class.new.hash_only_keys.each do |prop|
|
4
|
+
|
5
|
+
describe "#{prop}=" do
|
6
|
+
it "sets #{prop}" do
|
7
|
+
ex = {'label' => 'XYZ', 'fooBar' => 'bar'}
|
8
|
+
subject.send("#{prop}=", ex)
|
9
|
+
expect(subject[prop]).to eq ex
|
10
|
+
end
|
11
|
+
if prop.camelize(:lower) != prop
|
12
|
+
it "is aliased as ##{prop.camelize(:lower)}=" do
|
13
|
+
ex = {'label' => 'XYZ'}
|
14
|
+
subject.send("#{prop.camelize(:lower)}=", ex)
|
15
|
+
expect(subject[prop]).to eq ex
|
16
|
+
end
|
17
|
+
end
|
18
|
+
it 'raises an exception when attempting to set it to something other than a Hash' do
|
19
|
+
expect { subject.send("#{prop}=", ['Foo']) }.to raise_error IIIF::V3::Presentation::IllegalValueError
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
describe "#{prop}" do
|
24
|
+
it "gets #{prop}" do
|
25
|
+
ex = {'label' => 'XYZ', 'fooBar' => 'bar'}
|
26
|
+
subject[prop] = ex
|
27
|
+
expect(subject.send(prop)).to eq ex
|
28
|
+
end
|
29
|
+
if prop.camelize(:lower) != prop
|
30
|
+
it "is aliased as ##{prop.camelize(:lower)}" do
|
31
|
+
ex = {'fooBar' => 'bar'}
|
32
|
+
subject[prop] = ex
|
33
|
+
expect(subject.send("#{prop.camelize(:lower)}")).to eq ex
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
end
|
39
|
+
|
40
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
shared_examples 'it has the appropriate methods for integer-only keys v3' do
|
2
|
+
|
3
|
+
described_class.new.int_only_keys.each do |prop|
|
4
|
+
|
5
|
+
describe "#{prop}=" do
|
6
|
+
before(:all) do
|
7
|
+
@ex = 7200
|
8
|
+
end
|
9
|
+
it "sets #{prop}" do
|
10
|
+
subject.send("#{prop}=", @ex)
|
11
|
+
expect(subject[prop]).to eq @ex
|
12
|
+
end
|
13
|
+
if prop.camelize(:lower) != prop
|
14
|
+
it "is aliased as ##{prop.camelize(:lower)}=" do
|
15
|
+
subject.send("#{prop.camelize(:lower)}=", @ex)
|
16
|
+
expect(subject[prop]).to eq @ex
|
17
|
+
end
|
18
|
+
end
|
19
|
+
it 'raises an exception when attempting to set it to something other than an Integer' do
|
20
|
+
expect { subject.send("#{prop}=", 'Foo') }.to raise_error IIIF::V3::Presentation::IllegalValueError
|
21
|
+
end
|
22
|
+
it 'raises an exception when attempting to set it to a negative number' do
|
23
|
+
expect { subject.send("#{prop}=", -1) }.to raise_error IIIF::V3::Presentation::IllegalValueError
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "#{prop}" do
|
28
|
+
before(:all) do
|
29
|
+
@ex = 7200
|
30
|
+
end
|
31
|
+
it "gets #{prop}" do
|
32
|
+
subject[prop] = @ex
|
33
|
+
expect(subject.send(prop)).to eq @ex
|
34
|
+
end
|
35
|
+
if prop.camelize(:lower) != prop
|
36
|
+
it "is aliased as ##{prop.camelize(:lower)}" do
|
37
|
+
subject[prop] = @ex
|
38
|
+
expect(subject.send("#{prop.camelize(:lower)}")).to eq @ex
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
shared_examples 'it has the appropriate methods for numeric-only keys v3' do
|
2
|
+
|
3
|
+
described_class.new.numeric_only_keys.each do |prop|
|
4
|
+
|
5
|
+
describe "#{prop}=" do
|
6
|
+
before(:all) do
|
7
|
+
@ex = 7200.0
|
8
|
+
end
|
9
|
+
it "sets #{prop}" do
|
10
|
+
subject.send("#{prop}=", @ex)
|
11
|
+
expect(subject[prop]).to eq @ex
|
12
|
+
end
|
13
|
+
if prop.camelize(:lower) != prop
|
14
|
+
it "is aliased as ##{prop.camelize(:lower)}=" do
|
15
|
+
subject.send("#{prop.camelize(:lower)}=", @ex)
|
16
|
+
expect(subject[prop]).to eq @ex
|
17
|
+
end
|
18
|
+
end
|
19
|
+
it 'raises an exception when attempting to set it to something other than an Integer' do
|
20
|
+
expect { subject.send("#{prop}=", 'Foo') }.to raise_error IIIF::V3::Presentation::IllegalValueError
|
21
|
+
end
|
22
|
+
it 'raises an exception when attempting to set it to a negative number' do
|
23
|
+
expect { subject.send("#{prop}=", -1.0) }.to raise_error IIIF::V3::Presentation::IllegalValueError
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
describe "#{prop}" do
|
28
|
+
before(:all) do
|
29
|
+
@ex = 7200.0
|
30
|
+
end
|
31
|
+
it "gets #{prop}" do
|
32
|
+
subject[prop] = @ex
|
33
|
+
expect(subject.send(prop)).to eq @ex
|
34
|
+
end
|
35
|
+
if prop.camelize(:lower) != prop
|
36
|
+
it "is aliased as ##{prop.camelize(:lower)}" do
|
37
|
+
subject[prop] = @ex
|
38
|
+
expect(subject.send("#{prop.camelize(:lower)}")).to eq @ex
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
42
|
+
|
43
|
+
end
|
44
|
+
|
45
|
+
end
|
@@ -0,0 +1,26 @@
|
|
1
|
+
shared_examples 'it has the appropriate methods for string-only keys v3' do
|
2
|
+
|
3
|
+
described_class.new.string_only_keys.each do |prop|
|
4
|
+
|
5
|
+
describe "#{prop}=" do
|
6
|
+
it "sets #{prop}" do
|
7
|
+
ex = 'foo'
|
8
|
+
subject.send("#{prop}=", ex)
|
9
|
+
expect(subject[prop]).to eq ex
|
10
|
+
end
|
11
|
+
it 'raises an exception when attempting to set it to something other than a String' do
|
12
|
+
expect { subject.send("#{prop}=", ['Foo']) }.to raise_error IIIF::V3::Presentation::IllegalValueError
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
describe "#{prop}" do
|
17
|
+
it "gets #{prop}" do
|
18
|
+
ex = 'bar'
|
19
|
+
subject[prop] = ex
|
20
|
+
expect(subject.send(prop)).to eq ex
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
25
|
+
|
26
|
+
end
|
@@ -0,0 +1,31 @@
|
|
1
|
+
shared_examples 'it has the appropriate methods for uri-only keys v3' do
|
2
|
+
|
3
|
+
described_class.new.uri_only_keys.each do |prop|
|
4
|
+
|
5
|
+
describe "#{prop}=" do
|
6
|
+
it "sets #{prop}" do
|
7
|
+
ex = 'http://example.org/foo'
|
8
|
+
subject.send("#{prop}=", ex)
|
9
|
+
expect(subject[prop]).to eq ex
|
10
|
+
end
|
11
|
+
it 'raises an exception when attempting to set it to something other than a String' do
|
12
|
+
expect { subject.send("#{prop}=", ['Foo']) }.to raise_error IIIF::V3::Presentation::IllegalValueError
|
13
|
+
expect { subject.send("#{prop}=", nil) }.to raise_error IIIF::V3::Presentation::IllegalValueError
|
14
|
+
end
|
15
|
+
it 'raises an exception when attempting to set it to something other than a parseable URI' do
|
16
|
+
expect { subject.send("#{prop}=", 'Not a URI') }.to raise_error IIIF::V3::Presentation::IllegalValueError
|
17
|
+
expect { subject.send("#{prop}=", '') }.to raise_error IIIF::V3::Presentation::IllegalValueError
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
describe "#{prop}" do
|
22
|
+
it "gets #{prop}" do
|
23
|
+
ex = 'bar'
|
24
|
+
subject[prop] = ex
|
25
|
+
expect(subject.send(prop)).to eq ex
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
end
|
30
|
+
|
31
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: iiif-presentation
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jon Stroop
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-10-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -140,16 +140,16 @@ dependencies:
|
|
140
140
|
name: faraday
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- - "
|
143
|
+
- - "~>"
|
144
144
|
- !ruby/object:Gem::Version
|
145
|
-
version: '
|
145
|
+
version: '2.7'
|
146
146
|
type: :runtime
|
147
147
|
prerelease: false
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
149
149
|
requirements:
|
150
|
-
- - "
|
150
|
+
- - "~>"
|
151
151
|
- !ruby/object:Gem::Version
|
152
|
-
version: '
|
152
|
+
version: '2.7'
|
153
153
|
description: API for working with IIIF Presentation manifests.
|
154
154
|
email:
|
155
155
|
- jpstroop@gmail.com
|
@@ -157,9 +157,9 @@ executables: []
|
|
157
157
|
extensions: []
|
158
158
|
extra_rdoc_files: []
|
159
159
|
files:
|
160
|
+
- ".github/workflows/ruby.yml"
|
160
161
|
- ".gitignore"
|
161
162
|
- ".rspec"
|
162
|
-
- ".travis.yml"
|
163
163
|
- Gemfile
|
164
164
|
- LICENSE
|
165
165
|
- README.md
|
@@ -180,13 +180,34 @@ files:
|
|
180
180
|
- lib/iiif/presentation/range.rb
|
181
181
|
- lib/iiif/presentation/resource.rb
|
182
182
|
- lib/iiif/presentation/sequence.rb
|
183
|
+
- lib/iiif/presentation/service.rb
|
183
184
|
- lib/iiif/service.rb
|
185
|
+
- lib/iiif/v3/abstract_resource.rb
|
186
|
+
- lib/iiif/v3/presentation.rb
|
187
|
+
- lib/iiif/v3/presentation/annotation.rb
|
188
|
+
- lib/iiif/v3/presentation/annotation_collection.rb
|
189
|
+
- lib/iiif/v3/presentation/annotation_page.rb
|
190
|
+
- lib/iiif/v3/presentation/canvas.rb
|
191
|
+
- lib/iiif/v3/presentation/choice.rb
|
192
|
+
- lib/iiif/v3/presentation/collection.rb
|
193
|
+
- lib/iiif/v3/presentation/image_resource.rb
|
194
|
+
- lib/iiif/v3/presentation/manifest.rb
|
195
|
+
- lib/iiif/v3/presentation/range.rb
|
196
|
+
- lib/iiif/v3/presentation/resource.rb
|
197
|
+
- lib/iiif/v3/presentation/sequence.rb
|
198
|
+
- lib/iiif/v3/presentation/service.rb
|
184
199
|
- spec/fixtures/manifests/complete_from_spec.json
|
185
200
|
- spec/fixtures/manifests/minimal.json
|
186
201
|
- spec/fixtures/manifests/service_only.json
|
202
|
+
- spec/fixtures/v3/manifests/complete_from_spec.json
|
203
|
+
- spec/fixtures/v3/manifests/minimal.json
|
204
|
+
- spec/fixtures/v3/manifests/service_only.json
|
187
205
|
- spec/fixtures/vcr_cassettes/pul_loris_cassette.json
|
206
|
+
- spec/fixtures/vcr_cassettes/pul_loris_cassette_v3.json
|
188
207
|
- spec/integration/iiif/presentation/image_resource_spec.rb
|
189
208
|
- spec/integration/iiif/service_spec.rb
|
209
|
+
- spec/integration/iiif/v3/abstract_resource_spec.rb
|
210
|
+
- spec/integration/iiif/v3/presentation/image_resource_spec.rb
|
190
211
|
- spec/spec_helper.rb
|
191
212
|
- spec/unit/iiif/hash_behaviours_spec.rb
|
192
213
|
- spec/unit/iiif/ordered_hash_spec.rb
|
@@ -207,11 +228,33 @@ files:
|
|
207
228
|
- spec/unit/iiif/presentation/shared_examples/int_only_keys.rb
|
208
229
|
- spec/unit/iiif/presentation/shared_examples/string_only_keys.rb
|
209
230
|
- spec/unit/iiif/service_spec.rb
|
231
|
+
- spec/unit/iiif/v3/abstract_resource_define_methods_for_spec.rb
|
232
|
+
- spec/unit/iiif/v3/abstract_resource_spec.rb
|
233
|
+
- spec/unit/iiif/v3/presentation/annotation_collection_spec.rb
|
234
|
+
- spec/unit/iiif/v3/presentation/annotation_page_spec.rb
|
235
|
+
- spec/unit/iiif/v3/presentation/annotation_spec.rb
|
236
|
+
- spec/unit/iiif/v3/presentation/canvas_spec.rb
|
237
|
+
- spec/unit/iiif/v3/presentation/choice_spec.rb
|
238
|
+
- spec/unit/iiif/v3/presentation/collection_spec.rb
|
239
|
+
- spec/unit/iiif/v3/presentation/image_resource_spec.rb
|
240
|
+
- spec/unit/iiif/v3/presentation/manifest_spec.rb
|
241
|
+
- spec/unit/iiif/v3/presentation/range_spec.rb
|
242
|
+
- spec/unit/iiif/v3/presentation/resource_spec.rb
|
243
|
+
- spec/unit/iiif/v3/presentation/sequence_spec.rb
|
244
|
+
- spec/unit/iiif/v3/presentation/service_spec.rb
|
245
|
+
- spec/unit/iiif/v3/presentation/shared_examples/abstract_resource_only_keys.rb
|
246
|
+
- spec/unit/iiif/v3/presentation/shared_examples/any_type_keys.rb
|
247
|
+
- spec/unit/iiif/v3/presentation/shared_examples/array_only_keys.rb
|
248
|
+
- spec/unit/iiif/v3/presentation/shared_examples/hash_only_keys.rb
|
249
|
+
- spec/unit/iiif/v3/presentation/shared_examples/int_only_keys.rb
|
250
|
+
- spec/unit/iiif/v3/presentation/shared_examples/numeric_only_keys.rb
|
251
|
+
- spec/unit/iiif/v3/presentation/shared_examples/string_only_keys.rb
|
252
|
+
- spec/unit/iiif/v3/presentation/shared_examples/uri_only_keys.rb
|
210
253
|
homepage: https://github.com/iiif/osullivan
|
211
254
|
licenses:
|
212
255
|
- Simplified BSD
|
213
256
|
metadata: {}
|
214
|
-
post_install_message:
|
257
|
+
post_install_message:
|
215
258
|
rdoc_options: []
|
216
259
|
require_paths:
|
217
260
|
- lib
|
@@ -226,17 +269,23 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
226
269
|
- !ruby/object:Gem::Version
|
227
270
|
version: '0'
|
228
271
|
requirements: []
|
229
|
-
rubygems_version: 3.
|
230
|
-
signing_key:
|
272
|
+
rubygems_version: 3.4.20
|
273
|
+
signing_key:
|
231
274
|
specification_version: 4
|
232
275
|
summary: API for working with IIIF Presentation manifests.
|
233
276
|
test_files:
|
234
277
|
- spec/fixtures/manifests/complete_from_spec.json
|
235
278
|
- spec/fixtures/manifests/minimal.json
|
236
279
|
- spec/fixtures/manifests/service_only.json
|
280
|
+
- spec/fixtures/v3/manifests/complete_from_spec.json
|
281
|
+
- spec/fixtures/v3/manifests/minimal.json
|
282
|
+
- spec/fixtures/v3/manifests/service_only.json
|
237
283
|
- spec/fixtures/vcr_cassettes/pul_loris_cassette.json
|
284
|
+
- spec/fixtures/vcr_cassettes/pul_loris_cassette_v3.json
|
238
285
|
- spec/integration/iiif/presentation/image_resource_spec.rb
|
239
286
|
- spec/integration/iiif/service_spec.rb
|
287
|
+
- spec/integration/iiif/v3/abstract_resource_spec.rb
|
288
|
+
- spec/integration/iiif/v3/presentation/image_resource_spec.rb
|
240
289
|
- spec/spec_helper.rb
|
241
290
|
- spec/unit/iiif/hash_behaviours_spec.rb
|
242
291
|
- spec/unit/iiif/ordered_hash_spec.rb
|
@@ -257,3 +306,25 @@ test_files:
|
|
257
306
|
- spec/unit/iiif/presentation/shared_examples/int_only_keys.rb
|
258
307
|
- spec/unit/iiif/presentation/shared_examples/string_only_keys.rb
|
259
308
|
- spec/unit/iiif/service_spec.rb
|
309
|
+
- spec/unit/iiif/v3/abstract_resource_define_methods_for_spec.rb
|
310
|
+
- spec/unit/iiif/v3/abstract_resource_spec.rb
|
311
|
+
- spec/unit/iiif/v3/presentation/annotation_collection_spec.rb
|
312
|
+
- spec/unit/iiif/v3/presentation/annotation_page_spec.rb
|
313
|
+
- spec/unit/iiif/v3/presentation/annotation_spec.rb
|
314
|
+
- spec/unit/iiif/v3/presentation/canvas_spec.rb
|
315
|
+
- spec/unit/iiif/v3/presentation/choice_spec.rb
|
316
|
+
- spec/unit/iiif/v3/presentation/collection_spec.rb
|
317
|
+
- spec/unit/iiif/v3/presentation/image_resource_spec.rb
|
318
|
+
- spec/unit/iiif/v3/presentation/manifest_spec.rb
|
319
|
+
- spec/unit/iiif/v3/presentation/range_spec.rb
|
320
|
+
- spec/unit/iiif/v3/presentation/resource_spec.rb
|
321
|
+
- spec/unit/iiif/v3/presentation/sequence_spec.rb
|
322
|
+
- spec/unit/iiif/v3/presentation/service_spec.rb
|
323
|
+
- spec/unit/iiif/v3/presentation/shared_examples/abstract_resource_only_keys.rb
|
324
|
+
- spec/unit/iiif/v3/presentation/shared_examples/any_type_keys.rb
|
325
|
+
- spec/unit/iiif/v3/presentation/shared_examples/array_only_keys.rb
|
326
|
+
- spec/unit/iiif/v3/presentation/shared_examples/hash_only_keys.rb
|
327
|
+
- spec/unit/iiif/v3/presentation/shared_examples/int_only_keys.rb
|
328
|
+
- spec/unit/iiif/v3/presentation/shared_examples/numeric_only_keys.rb
|
329
|
+
- spec/unit/iiif/v3/presentation/shared_examples/string_only_keys.rb
|
330
|
+
- spec/unit/iiif/v3/presentation/shared_examples/uri_only_keys.rb
|