cocina-models 0.54.0 → 0.55.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/lib/cocina/generator/generator.rb +2 -0
- data/lib/cocina/generator/vocab.rb +30 -13
- data/lib/cocina/models/contributor.rb +1 -0
- data/lib/cocina/models/descriptive_parallel_contributor.rb +19 -0
- data/lib/cocina/models/file_set.rb +16 -1
- data/lib/cocina/models/request_file_set.rb +16 -1
- data/lib/cocina/models/version.rb +1 -1
- data/lib/cocina/models/vocab.rb +66 -4
- data/openapi.yml +74 -2
- metadata +7 -6
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: fbed8aec9255570088565182862681d94908cb165e5f6be489ad103052a5f708
|
|
4
|
+
data.tar.gz: 526b172620cbe31ea3ca59871d0ed0a816bec3c01726214fd3634bf54ec24eba
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6a555879230729f246d468589fb3e5ec261cebc36ae17d1282b663ef1b0ff0a5bd4afc9e9ee9688978da98bf20e7f709f989a6b46934a103ad0fabe40ee2353a
|
|
7
|
+
data.tar.gz: 332f3a59c67779ccb81340a352baa9894e9c3c76cbf5ff2bed383b501c5ff9ec7fb6e1d80aa3610b9a3ee289448a6b93e59e50345bd97b7f9279acf684191db3
|
|
@@ -33,23 +33,40 @@ module Cocina
|
|
|
33
33
|
|
|
34
34
|
attr_reader :schemas
|
|
35
35
|
|
|
36
|
-
|
|
36
|
+
BASE = 'http://cocina.sul.stanford.edu/models/'
|
|
37
|
+
|
|
37
38
|
def vocabs
|
|
38
|
-
schemas.values.map
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
.uniq
|
|
44
|
-
.sort
|
|
45
|
-
.filter { |vocab| vocab.start_with?('http://cocina.sul.stanford.edu/models') }
|
|
39
|
+
type_properties = schemas.values.map { |schema| schema.properties['type'] }.compact
|
|
40
|
+
type_properties.map(&:enum).flat_map(&:to_a)
|
|
41
|
+
.filter { |vocab| vocab.start_with?(BASE) }
|
|
42
|
+
.uniq
|
|
43
|
+
.sort
|
|
46
44
|
end
|
|
47
|
-
# rubocop:enable Style/MultilineBlockChain
|
|
48
45
|
|
|
49
46
|
def vocab_methods
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
47
|
+
names = vocabs.each_with_object({}) do |vocab, object|
|
|
48
|
+
# Note special handling of 3d
|
|
49
|
+
namespaced = vocab.delete_prefix(BASE).delete_suffix('.jsonld')
|
|
50
|
+
.gsub('-', '_').gsub('3d', 'three_dimensional')
|
|
51
|
+
namespace, name = namespaced.include?('/') ? namespaced.split('/') : [:root, namespaced]
|
|
52
|
+
object[namespace] ||= {}
|
|
53
|
+
object[namespace][name] = vocab
|
|
54
|
+
end
|
|
55
|
+
draw_namespaced_methods(names)
|
|
56
|
+
end
|
|
57
|
+
|
|
58
|
+
def draw_namespaced_methods(names)
|
|
59
|
+
names.flat_map do |namespace, methods|
|
|
60
|
+
[].tap do |items|
|
|
61
|
+
items << "class #{namespace.capitalize}" unless namespace == :root
|
|
62
|
+
items << draw_ruby_methods(methods)
|
|
63
|
+
items << 'end' unless namespace == :root
|
|
64
|
+
end
|
|
65
|
+
end.join("\n")
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
def draw_ruby_methods(methods)
|
|
69
|
+
methods.map do |name, vocab|
|
|
53
70
|
<<~RUBY
|
|
54
71
|
def self.#{name}
|
|
55
72
|
"#{vocab}"
|
|
@@ -13,6 +13,7 @@ module Cocina
|
|
|
13
13
|
attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
|
14
14
|
# URL or other pointer to the location of the contributor information.
|
|
15
15
|
attribute :valueAt, Types::Strict::String.meta(omittable: true)
|
|
16
|
+
attribute :parallelContributor, Types::Strict::Array.of(DescriptiveParallelContributor).meta(omittable: true)
|
|
16
17
|
end
|
|
17
18
|
end
|
|
18
19
|
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
module Cocina
|
|
4
|
+
module Models
|
|
5
|
+
class DescriptiveParallelContributor < Struct
|
|
6
|
+
attribute :name, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
|
7
|
+
# Entity type of the contributor (person, organization, etc.).
|
|
8
|
+
attribute :type, Types::Strict::String.meta(omittable: true)
|
|
9
|
+
# Status of the contributor relative to other parallel contributors (e.g. the primary author among a group of contributors).
|
|
10
|
+
attribute :status, Types::Strict::String.meta(omittable: true)
|
|
11
|
+
attribute :role, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
|
12
|
+
attribute :identifier, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
|
13
|
+
attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
|
14
|
+
# URL or other pointer to the location of the contributor information.
|
|
15
|
+
attribute :valueAt, Types::Strict::String.meta(omittable: true)
|
|
16
|
+
attribute :valueLanguage, DescriptiveValueLanguage.optional.meta(omittable: true)
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
end
|
|
@@ -5,7 +5,22 @@ module Cocina
|
|
|
5
5
|
class FileSet < Struct
|
|
6
6
|
include Checkable
|
|
7
7
|
|
|
8
|
-
TYPES = ['http://cocina.sul.stanford.edu/models/
|
|
8
|
+
TYPES = ['http://cocina.sul.stanford.edu/models/resources/audio.jsonld',
|
|
9
|
+
'http://cocina.sul.stanford.edu/models/resources/attachment.jsonld',
|
|
10
|
+
'http://cocina.sul.stanford.edu/models/resources/document.jsonld',
|
|
11
|
+
'http://cocina.sul.stanford.edu/models/resources/file.jsonld',
|
|
12
|
+
'http://cocina.sul.stanford.edu/models/resources/image.jsonld',
|
|
13
|
+
'http://cocina.sul.stanford.edu/models/resources/main-augmented.jsonld',
|
|
14
|
+
'http://cocina.sul.stanford.edu/models/resources/main-original.jsonld',
|
|
15
|
+
'http://cocina.sul.stanford.edu/models/resources/media.jsonld',
|
|
16
|
+
'http://cocina.sul.stanford.edu/models/resources/object.jsonld',
|
|
17
|
+
'http://cocina.sul.stanford.edu/models/resources/page.jsonld',
|
|
18
|
+
'http://cocina.sul.stanford.edu/models/resources/permissions.jsonld',
|
|
19
|
+
'http://cocina.sul.stanford.edu/models/resources/preview.jsonld',
|
|
20
|
+
'http://cocina.sul.stanford.edu/models/resources/supplement.jsonld',
|
|
21
|
+
'http://cocina.sul.stanford.edu/models/resources/3d.jsonld',
|
|
22
|
+
'http://cocina.sul.stanford.edu/models/resources/thumb.jsonld',
|
|
23
|
+
'http://cocina.sul.stanford.edu/models/resources/video.jsonld'].freeze
|
|
9
24
|
|
|
10
25
|
# The content type of the Fileset.
|
|
11
26
|
attribute :type, Types::Strict::String.enum(*FileSet::TYPES)
|
|
@@ -5,7 +5,22 @@ module Cocina
|
|
|
5
5
|
class RequestFileSet < Struct
|
|
6
6
|
include Checkable
|
|
7
7
|
|
|
8
|
-
TYPES = ['http://cocina.sul.stanford.edu/models/
|
|
8
|
+
TYPES = ['http://cocina.sul.stanford.edu/models/resources/audio.jsonld',
|
|
9
|
+
'http://cocina.sul.stanford.edu/models/resources/attachment.jsonld',
|
|
10
|
+
'http://cocina.sul.stanford.edu/models/resources/document.jsonld',
|
|
11
|
+
'http://cocina.sul.stanford.edu/models/resources/file.jsonld',
|
|
12
|
+
'http://cocina.sul.stanford.edu/models/resources/image.jsonld',
|
|
13
|
+
'http://cocina.sul.stanford.edu/models/resources/main-augmented.jsonld',
|
|
14
|
+
'http://cocina.sul.stanford.edu/models/resources/main-original.jsonld',
|
|
15
|
+
'http://cocina.sul.stanford.edu/models/resources/media.jsonld',
|
|
16
|
+
'http://cocina.sul.stanford.edu/models/resources/object.jsonld',
|
|
17
|
+
'http://cocina.sul.stanford.edu/models/resources/page.jsonld',
|
|
18
|
+
'http://cocina.sul.stanford.edu/models/resources/permissions.jsonld',
|
|
19
|
+
'http://cocina.sul.stanford.edu/models/resources/preview.jsonld',
|
|
20
|
+
'http://cocina.sul.stanford.edu/models/resources/supplement.jsonld',
|
|
21
|
+
'http://cocina.sul.stanford.edu/models/resources/3d.jsonld',
|
|
22
|
+
'http://cocina.sul.stanford.edu/models/resources/thumb.jsonld',
|
|
23
|
+
'http://cocina.sul.stanford.edu/models/resources/video.jsonld'].freeze
|
|
9
24
|
|
|
10
25
|
attribute :type, Types::Strict::String.enum(*RequestFileSet::TYPES)
|
|
11
26
|
attribute :label, Types::Strict::String
|
data/lib/cocina/models/vocab.rb
CHANGED
|
@@ -40,10 +40,6 @@ module Cocina
|
|
|
40
40
|
'http://cocina.sul.stanford.edu/models/file.jsonld'
|
|
41
41
|
end
|
|
42
42
|
|
|
43
|
-
def self.fileset
|
|
44
|
-
'http://cocina.sul.stanford.edu/models/fileset.jsonld'
|
|
45
|
-
end
|
|
46
|
-
|
|
47
43
|
def self.geo
|
|
48
44
|
'http://cocina.sul.stanford.edu/models/geo.jsonld'
|
|
49
45
|
end
|
|
@@ -95,6 +91,72 @@ module Cocina
|
|
|
95
91
|
def self.webarchive_seed
|
|
96
92
|
'http://cocina.sul.stanford.edu/models/webarchive-seed.jsonld'
|
|
97
93
|
end
|
|
94
|
+
|
|
95
|
+
class Resources
|
|
96
|
+
def self.three_dimensional
|
|
97
|
+
'http://cocina.sul.stanford.edu/models/resources/3d.jsonld'
|
|
98
|
+
end
|
|
99
|
+
|
|
100
|
+
def self.attachment
|
|
101
|
+
'http://cocina.sul.stanford.edu/models/resources/attachment.jsonld'
|
|
102
|
+
end
|
|
103
|
+
|
|
104
|
+
def self.audio
|
|
105
|
+
'http://cocina.sul.stanford.edu/models/resources/audio.jsonld'
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
def self.document
|
|
109
|
+
'http://cocina.sul.stanford.edu/models/resources/document.jsonld'
|
|
110
|
+
end
|
|
111
|
+
|
|
112
|
+
def self.file
|
|
113
|
+
'http://cocina.sul.stanford.edu/models/resources/file.jsonld'
|
|
114
|
+
end
|
|
115
|
+
|
|
116
|
+
def self.image
|
|
117
|
+
'http://cocina.sul.stanford.edu/models/resources/image.jsonld'
|
|
118
|
+
end
|
|
119
|
+
|
|
120
|
+
def self.main_augmented
|
|
121
|
+
'http://cocina.sul.stanford.edu/models/resources/main-augmented.jsonld'
|
|
122
|
+
end
|
|
123
|
+
|
|
124
|
+
def self.main_original
|
|
125
|
+
'http://cocina.sul.stanford.edu/models/resources/main-original.jsonld'
|
|
126
|
+
end
|
|
127
|
+
|
|
128
|
+
def self.media
|
|
129
|
+
'http://cocina.sul.stanford.edu/models/resources/media.jsonld'
|
|
130
|
+
end
|
|
131
|
+
|
|
132
|
+
def self.object
|
|
133
|
+
'http://cocina.sul.stanford.edu/models/resources/object.jsonld'
|
|
134
|
+
end
|
|
135
|
+
|
|
136
|
+
def self.page
|
|
137
|
+
'http://cocina.sul.stanford.edu/models/resources/page.jsonld'
|
|
138
|
+
end
|
|
139
|
+
|
|
140
|
+
def self.permissions
|
|
141
|
+
'http://cocina.sul.stanford.edu/models/resources/permissions.jsonld'
|
|
142
|
+
end
|
|
143
|
+
|
|
144
|
+
def self.preview
|
|
145
|
+
'http://cocina.sul.stanford.edu/models/resources/preview.jsonld'
|
|
146
|
+
end
|
|
147
|
+
|
|
148
|
+
def self.supplement
|
|
149
|
+
'http://cocina.sul.stanford.edu/models/resources/supplement.jsonld'
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
def self.thumb
|
|
153
|
+
'http://cocina.sul.stanford.edu/models/resources/thumb.jsonld'
|
|
154
|
+
end
|
|
155
|
+
|
|
156
|
+
def self.video
|
|
157
|
+
'http://cocina.sul.stanford.edu/models/resources/video.jsonld'
|
|
158
|
+
end
|
|
159
|
+
end
|
|
98
160
|
end
|
|
99
161
|
end
|
|
100
162
|
end
|
data/openapi.yml
CHANGED
|
@@ -347,6 +347,11 @@ components:
|
|
|
347
347
|
valueAt:
|
|
348
348
|
description: URL or other pointer to the location of the contributor information.
|
|
349
349
|
type: string
|
|
350
|
+
parallelContributor:
|
|
351
|
+
description: For multiple representations of information about the same contributor (e.g. in different languages).
|
|
352
|
+
type: array
|
|
353
|
+
items:
|
|
354
|
+
$ref: "#/components/schemas/DescriptiveParallelContributor"
|
|
350
355
|
Description:
|
|
351
356
|
type: object
|
|
352
357
|
additionalProperties: false
|
|
@@ -581,6 +586,43 @@ components:
|
|
|
581
586
|
type: array
|
|
582
587
|
items:
|
|
583
588
|
$ref: "#/components/schemas/DescriptiveValue"
|
|
589
|
+
DescriptiveParallelContributor:
|
|
590
|
+
description: Value model for multiple representations of information about the same contributor (e.g. in different languages).
|
|
591
|
+
type: object
|
|
592
|
+
additionalProperties: false
|
|
593
|
+
properties:
|
|
594
|
+
name:
|
|
595
|
+
description: Names associated with a contributor.
|
|
596
|
+
type: array
|
|
597
|
+
items:
|
|
598
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
|
599
|
+
type:
|
|
600
|
+
description: Entity type of the contributor (person, organization, etc.).
|
|
601
|
+
type: string
|
|
602
|
+
status:
|
|
603
|
+
description: Status of the contributor relative to other parallel contributors (e.g. the primary author among a group of contributors).
|
|
604
|
+
type: string
|
|
605
|
+
role:
|
|
606
|
+
description: Relationships of the contributor to the resource or to an event in its history.
|
|
607
|
+
type: array
|
|
608
|
+
items:
|
|
609
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
|
610
|
+
identifier:
|
|
611
|
+
description: Identifiers and URIs associated with the contributor entity.
|
|
612
|
+
type: array
|
|
613
|
+
items:
|
|
614
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
|
615
|
+
note:
|
|
616
|
+
description: Other information associated with the contributor.
|
|
617
|
+
type: array
|
|
618
|
+
items:
|
|
619
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
|
620
|
+
valueAt:
|
|
621
|
+
description: URL or other pointer to the location of the contributor information.
|
|
622
|
+
type: string
|
|
623
|
+
valueLanguage:
|
|
624
|
+
# description: Language of the descriptive element value
|
|
625
|
+
$ref: "#/components/schemas/DescriptiveValueLanguage"
|
|
584
626
|
DescriptiveParallelEvent:
|
|
585
627
|
description: Value model for multiple representations of information about the same event (e.g. in different languages).
|
|
586
628
|
type: object
|
|
@@ -981,7 +1023,22 @@ components:
|
|
|
981
1023
|
description: The content type of the Fileset.
|
|
982
1024
|
type: string
|
|
983
1025
|
enum:
|
|
984
|
-
- 'http://cocina.sul.stanford.edu/models/
|
|
1026
|
+
- 'http://cocina.sul.stanford.edu/models/resources/audio.jsonld'
|
|
1027
|
+
- 'http://cocina.sul.stanford.edu/models/resources/attachment.jsonld'
|
|
1028
|
+
- 'http://cocina.sul.stanford.edu/models/resources/document.jsonld'
|
|
1029
|
+
- 'http://cocina.sul.stanford.edu/models/resources/file.jsonld'
|
|
1030
|
+
- 'http://cocina.sul.stanford.edu/models/resources/image.jsonld'
|
|
1031
|
+
- 'http://cocina.sul.stanford.edu/models/resources/main-augmented.jsonld'
|
|
1032
|
+
- 'http://cocina.sul.stanford.edu/models/resources/main-original.jsonld'
|
|
1033
|
+
- 'http://cocina.sul.stanford.edu/models/resources/media.jsonld'
|
|
1034
|
+
- 'http://cocina.sul.stanford.edu/models/resources/object.jsonld'
|
|
1035
|
+
- 'http://cocina.sul.stanford.edu/models/resources/page.jsonld'
|
|
1036
|
+
- 'http://cocina.sul.stanford.edu/models/resources/permissions.jsonld'
|
|
1037
|
+
- 'http://cocina.sul.stanford.edu/models/resources/preview.jsonld'
|
|
1038
|
+
- 'http://cocina.sul.stanford.edu/models/resources/supplement.jsonld'
|
|
1039
|
+
- 'http://cocina.sul.stanford.edu/models/resources/3d.jsonld'
|
|
1040
|
+
- 'http://cocina.sul.stanford.edu/models/resources/thumb.jsonld'
|
|
1041
|
+
- 'http://cocina.sul.stanford.edu/models/resources/video.jsonld'
|
|
985
1042
|
externalIdentifier:
|
|
986
1043
|
type: string
|
|
987
1044
|
label:
|
|
@@ -1398,7 +1455,22 @@ components:
|
|
|
1398
1455
|
type:
|
|
1399
1456
|
type: string
|
|
1400
1457
|
enum:
|
|
1401
|
-
- 'http://cocina.sul.stanford.edu/models/
|
|
1458
|
+
- 'http://cocina.sul.stanford.edu/models/resources/audio.jsonld'
|
|
1459
|
+
- 'http://cocina.sul.stanford.edu/models/resources/attachment.jsonld'
|
|
1460
|
+
- 'http://cocina.sul.stanford.edu/models/resources/document.jsonld'
|
|
1461
|
+
- 'http://cocina.sul.stanford.edu/models/resources/file.jsonld'
|
|
1462
|
+
- 'http://cocina.sul.stanford.edu/models/resources/image.jsonld'
|
|
1463
|
+
- 'http://cocina.sul.stanford.edu/models/resources/main-augmented.jsonld'
|
|
1464
|
+
- 'http://cocina.sul.stanford.edu/models/resources/main-original.jsonld'
|
|
1465
|
+
- 'http://cocina.sul.stanford.edu/models/resources/media.jsonld'
|
|
1466
|
+
- 'http://cocina.sul.stanford.edu/models/resources/object.jsonld'
|
|
1467
|
+
- 'http://cocina.sul.stanford.edu/models/resources/page.jsonld'
|
|
1468
|
+
- 'http://cocina.sul.stanford.edu/models/resources/permissions.jsonld'
|
|
1469
|
+
- 'http://cocina.sul.stanford.edu/models/resources/preview.jsonld'
|
|
1470
|
+
- 'http://cocina.sul.stanford.edu/models/resources/supplement.jsonld'
|
|
1471
|
+
- 'http://cocina.sul.stanford.edu/models/resources/3d.jsonld'
|
|
1472
|
+
- 'http://cocina.sul.stanford.edu/models/resources/thumb.jsonld'
|
|
1473
|
+
- 'http://cocina.sul.stanford.edu/models/resources/video.jsonld'
|
|
1402
1474
|
label:
|
|
1403
1475
|
type: string
|
|
1404
1476
|
version:
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: cocina-models
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.55.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Justin Coyne
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2021-03-
|
|
11
|
+
date: 2021-03-12 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: activesupport
|
|
@@ -271,6 +271,7 @@ files:
|
|
|
271
271
|
- lib/cocina/models/descriptive_basic_value.rb
|
|
272
272
|
- lib/cocina/models/descriptive_geographic_metadata.rb
|
|
273
273
|
- lib/cocina/models/descriptive_grouped_value.rb
|
|
274
|
+
- lib/cocina/models/descriptive_parallel_contributor.rb
|
|
274
275
|
- lib/cocina/models/descriptive_parallel_event.rb
|
|
275
276
|
- lib/cocina/models/descriptive_parallel_value.rb
|
|
276
277
|
- lib/cocina/models/descriptive_structured_value.rb
|
|
@@ -314,7 +315,7 @@ files:
|
|
|
314
315
|
homepage: https://github.com/sul-dlss/cocina-models
|
|
315
316
|
licenses: []
|
|
316
317
|
metadata: {}
|
|
317
|
-
post_install_message:
|
|
318
|
+
post_install_message:
|
|
318
319
|
rdoc_options: []
|
|
319
320
|
require_paths:
|
|
320
321
|
- lib
|
|
@@ -329,8 +330,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
329
330
|
- !ruby/object:Gem::Version
|
|
330
331
|
version: '0'
|
|
331
332
|
requirements: []
|
|
332
|
-
rubygems_version: 3.
|
|
333
|
-
signing_key:
|
|
333
|
+
rubygems_version: 3.1.4
|
|
334
|
+
signing_key:
|
|
334
335
|
specification_version: 4
|
|
335
336
|
summary: Data models for the SDR
|
|
336
337
|
test_files: []
|