iiif-presentation 1.1.0 → 1.3.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 +2 -2
- data/.gitignore +1 -0
- data/Gemfile +2 -0
- data/README.md +22 -1
- data/VERSION +1 -1
- data/iiif-presentation.gemspec +2 -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 +38 -103
- 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/nav_place.rb +109 -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 +37 -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/nav_place_spec.rb +80 -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 +93 -5
@@ -0,0 +1,41 @@
|
|
1
|
+
shared_examples 'it has the appropriate methods for abstract_resource_only_keys v3' do
|
2
|
+
|
3
|
+
described_class.new.abstract_resource_only_keys.each do |entry|
|
4
|
+
|
5
|
+
describe "#{entry[:key]}=" do
|
6
|
+
it "sets #{entry[:key]}" do
|
7
|
+
@ex = entry[:type].new
|
8
|
+
subject.send("#{entry[:key]}=", @ex)
|
9
|
+
expect(subject[entry[:key]]).to eq @ex
|
10
|
+
end
|
11
|
+
if entry[:key].camelize(:lower) != entry[:key]
|
12
|
+
it "is aliased as ##{entry[:key].camelize(:lower)}=" do
|
13
|
+
@ex = entry[:type].new
|
14
|
+
subject.send("#{entry[:key].camelize(:lower)}=", @ex)
|
15
|
+
expect(subject[entry[:key]]).to eq @ex
|
16
|
+
end
|
17
|
+
end
|
18
|
+
it "raises an exception when attempting to set it to something other than an #{entry[:type]}" do
|
19
|
+
e = IIIF::V3::Presentation::IllegalValueError
|
20
|
+
expect { subject.send("#{entry[:key]}=", 'Foo') }.to raise_error e
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
describe "#{entry[:key]}" do
|
25
|
+
it "gets #{entry[:key]}" do
|
26
|
+
@ex = entry[:type].new
|
27
|
+
subject[entry[:key]] = @ex
|
28
|
+
expect(subject.send(entry[:key])).to eq @ex
|
29
|
+
end
|
30
|
+
if entry[:key].camelize(:lower) != entry[:key]
|
31
|
+
it "is aliased as ##{entry[:key].camelize(:lower)}" do
|
32
|
+
@ex = entry[:type].new
|
33
|
+
subject[entry[:key]] = @ex
|
34
|
+
expect(subject.send("#{entry[:key].camelize(:lower)}")).to eq @ex
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
end
|
40
|
+
|
41
|
+
end
|
@@ -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.3.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jon Stroop
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-01
|
11
|
+
date: 2023-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -138,18 +138,32 @@ dependencies:
|
|
138
138
|
version: 3.2.18
|
139
139
|
- !ruby/object:Gem::Dependency
|
140
140
|
name: faraday
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - "~>"
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '2.7'
|
146
|
+
type: :runtime
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - "~>"
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '2.7'
|
153
|
+
- !ruby/object:Gem::Dependency
|
154
|
+
name: geo_coord
|
141
155
|
requirement: !ruby/object:Gem::Requirement
|
142
156
|
requirements:
|
143
157
|
- - ">="
|
144
158
|
- !ruby/object:Gem::Version
|
145
|
-
version: '0
|
159
|
+
version: '0'
|
146
160
|
type: :runtime
|
147
161
|
prerelease: false
|
148
162
|
version_requirements: !ruby/object:Gem::Requirement
|
149
163
|
requirements:
|
150
164
|
- - ">="
|
151
165
|
- !ruby/object:Gem::Version
|
152
|
-
version: '0
|
166
|
+
version: '0'
|
153
167
|
description: API for working with IIIF Presentation manifests.
|
154
168
|
email:
|
155
169
|
- jpstroop@gmail.com
|
@@ -180,13 +194,35 @@ files:
|
|
180
194
|
- lib/iiif/presentation/range.rb
|
181
195
|
- lib/iiif/presentation/resource.rb
|
182
196
|
- lib/iiif/presentation/sequence.rb
|
197
|
+
- lib/iiif/presentation/service.rb
|
183
198
|
- lib/iiif/service.rb
|
199
|
+
- lib/iiif/v3/abstract_resource.rb
|
200
|
+
- lib/iiif/v3/presentation.rb
|
201
|
+
- lib/iiif/v3/presentation/annotation.rb
|
202
|
+
- lib/iiif/v3/presentation/annotation_collection.rb
|
203
|
+
- lib/iiif/v3/presentation/annotation_page.rb
|
204
|
+
- lib/iiif/v3/presentation/canvas.rb
|
205
|
+
- lib/iiif/v3/presentation/choice.rb
|
206
|
+
- lib/iiif/v3/presentation/collection.rb
|
207
|
+
- lib/iiif/v3/presentation/image_resource.rb
|
208
|
+
- lib/iiif/v3/presentation/manifest.rb
|
209
|
+
- lib/iiif/v3/presentation/nav_place.rb
|
210
|
+
- lib/iiif/v3/presentation/range.rb
|
211
|
+
- lib/iiif/v3/presentation/resource.rb
|
212
|
+
- lib/iiif/v3/presentation/sequence.rb
|
213
|
+
- lib/iiif/v3/presentation/service.rb
|
184
214
|
- spec/fixtures/manifests/complete_from_spec.json
|
185
215
|
- spec/fixtures/manifests/minimal.json
|
186
216
|
- spec/fixtures/manifests/service_only.json
|
217
|
+
- spec/fixtures/v3/manifests/complete_from_spec.json
|
218
|
+
- spec/fixtures/v3/manifests/minimal.json
|
219
|
+
- spec/fixtures/v3/manifests/service_only.json
|
187
220
|
- spec/fixtures/vcr_cassettes/pul_loris_cassette.json
|
221
|
+
- spec/fixtures/vcr_cassettes/pul_loris_cassette_v3.json
|
188
222
|
- spec/integration/iiif/presentation/image_resource_spec.rb
|
189
223
|
- spec/integration/iiif/service_spec.rb
|
224
|
+
- spec/integration/iiif/v3/abstract_resource_spec.rb
|
225
|
+
- spec/integration/iiif/v3/presentation/image_resource_spec.rb
|
190
226
|
- spec/spec_helper.rb
|
191
227
|
- spec/unit/iiif/hash_behaviours_spec.rb
|
192
228
|
- spec/unit/iiif/ordered_hash_spec.rb
|
@@ -207,6 +243,29 @@ files:
|
|
207
243
|
- spec/unit/iiif/presentation/shared_examples/int_only_keys.rb
|
208
244
|
- spec/unit/iiif/presentation/shared_examples/string_only_keys.rb
|
209
245
|
- spec/unit/iiif/service_spec.rb
|
246
|
+
- spec/unit/iiif/v3/abstract_resource_define_methods_for_spec.rb
|
247
|
+
- spec/unit/iiif/v3/abstract_resource_spec.rb
|
248
|
+
- spec/unit/iiif/v3/presentation/annotation_collection_spec.rb
|
249
|
+
- spec/unit/iiif/v3/presentation/annotation_page_spec.rb
|
250
|
+
- spec/unit/iiif/v3/presentation/annotation_spec.rb
|
251
|
+
- spec/unit/iiif/v3/presentation/canvas_spec.rb
|
252
|
+
- spec/unit/iiif/v3/presentation/choice_spec.rb
|
253
|
+
- spec/unit/iiif/v3/presentation/collection_spec.rb
|
254
|
+
- spec/unit/iiif/v3/presentation/image_resource_spec.rb
|
255
|
+
- spec/unit/iiif/v3/presentation/manifest_spec.rb
|
256
|
+
- spec/unit/iiif/v3/presentation/nav_place_spec.rb
|
257
|
+
- spec/unit/iiif/v3/presentation/range_spec.rb
|
258
|
+
- spec/unit/iiif/v3/presentation/resource_spec.rb
|
259
|
+
- spec/unit/iiif/v3/presentation/sequence_spec.rb
|
260
|
+
- spec/unit/iiif/v3/presentation/service_spec.rb
|
261
|
+
- spec/unit/iiif/v3/presentation/shared_examples/abstract_resource_only_keys.rb
|
262
|
+
- spec/unit/iiif/v3/presentation/shared_examples/any_type_keys.rb
|
263
|
+
- spec/unit/iiif/v3/presentation/shared_examples/array_only_keys.rb
|
264
|
+
- spec/unit/iiif/v3/presentation/shared_examples/hash_only_keys.rb
|
265
|
+
- spec/unit/iiif/v3/presentation/shared_examples/int_only_keys.rb
|
266
|
+
- spec/unit/iiif/v3/presentation/shared_examples/numeric_only_keys.rb
|
267
|
+
- spec/unit/iiif/v3/presentation/shared_examples/string_only_keys.rb
|
268
|
+
- spec/unit/iiif/v3/presentation/shared_examples/uri_only_keys.rb
|
210
269
|
homepage: https://github.com/iiif/osullivan
|
211
270
|
licenses:
|
212
271
|
- Simplified BSD
|
@@ -226,7 +285,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
226
285
|
- !ruby/object:Gem::Version
|
227
286
|
version: '0'
|
228
287
|
requirements: []
|
229
|
-
rubygems_version: 3.
|
288
|
+
rubygems_version: 3.4.21
|
230
289
|
signing_key:
|
231
290
|
specification_version: 4
|
232
291
|
summary: API for working with IIIF Presentation manifests.
|
@@ -234,9 +293,15 @@ test_files:
|
|
234
293
|
- spec/fixtures/manifests/complete_from_spec.json
|
235
294
|
- spec/fixtures/manifests/minimal.json
|
236
295
|
- spec/fixtures/manifests/service_only.json
|
296
|
+
- spec/fixtures/v3/manifests/complete_from_spec.json
|
297
|
+
- spec/fixtures/v3/manifests/minimal.json
|
298
|
+
- spec/fixtures/v3/manifests/service_only.json
|
237
299
|
- spec/fixtures/vcr_cassettes/pul_loris_cassette.json
|
300
|
+
- spec/fixtures/vcr_cassettes/pul_loris_cassette_v3.json
|
238
301
|
- spec/integration/iiif/presentation/image_resource_spec.rb
|
239
302
|
- spec/integration/iiif/service_spec.rb
|
303
|
+
- spec/integration/iiif/v3/abstract_resource_spec.rb
|
304
|
+
- spec/integration/iiif/v3/presentation/image_resource_spec.rb
|
240
305
|
- spec/spec_helper.rb
|
241
306
|
- spec/unit/iiif/hash_behaviours_spec.rb
|
242
307
|
- spec/unit/iiif/ordered_hash_spec.rb
|
@@ -257,3 +322,26 @@ test_files:
|
|
257
322
|
- spec/unit/iiif/presentation/shared_examples/int_only_keys.rb
|
258
323
|
- spec/unit/iiif/presentation/shared_examples/string_only_keys.rb
|
259
324
|
- spec/unit/iiif/service_spec.rb
|
325
|
+
- spec/unit/iiif/v3/abstract_resource_define_methods_for_spec.rb
|
326
|
+
- spec/unit/iiif/v3/abstract_resource_spec.rb
|
327
|
+
- spec/unit/iiif/v3/presentation/annotation_collection_spec.rb
|
328
|
+
- spec/unit/iiif/v3/presentation/annotation_page_spec.rb
|
329
|
+
- spec/unit/iiif/v3/presentation/annotation_spec.rb
|
330
|
+
- spec/unit/iiif/v3/presentation/canvas_spec.rb
|
331
|
+
- spec/unit/iiif/v3/presentation/choice_spec.rb
|
332
|
+
- spec/unit/iiif/v3/presentation/collection_spec.rb
|
333
|
+
- spec/unit/iiif/v3/presentation/image_resource_spec.rb
|
334
|
+
- spec/unit/iiif/v3/presentation/manifest_spec.rb
|
335
|
+
- spec/unit/iiif/v3/presentation/nav_place_spec.rb
|
336
|
+
- spec/unit/iiif/v3/presentation/range_spec.rb
|
337
|
+
- spec/unit/iiif/v3/presentation/resource_spec.rb
|
338
|
+
- spec/unit/iiif/v3/presentation/sequence_spec.rb
|
339
|
+
- spec/unit/iiif/v3/presentation/service_spec.rb
|
340
|
+
- spec/unit/iiif/v3/presentation/shared_examples/abstract_resource_only_keys.rb
|
341
|
+
- spec/unit/iiif/v3/presentation/shared_examples/any_type_keys.rb
|
342
|
+
- spec/unit/iiif/v3/presentation/shared_examples/array_only_keys.rb
|
343
|
+
- spec/unit/iiif/v3/presentation/shared_examples/hash_only_keys.rb
|
344
|
+
- spec/unit/iiif/v3/presentation/shared_examples/int_only_keys.rb
|
345
|
+
- spec/unit/iiif/v3/presentation/shared_examples/numeric_only_keys.rb
|
346
|
+
- spec/unit/iiif/v3/presentation/shared_examples/string_only_keys.rb
|
347
|
+
- spec/unit/iiif/v3/presentation/shared_examples/uri_only_keys.rb
|