iiif-presentation 1.0.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|