cocina-models 0.29.0 → 0.30.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/.rubocop.yml +10 -3
- data/README.md +11 -0
- data/cocina-models.gemspec +5 -0
- data/exe/generator +9 -0
- data/lib/cocina/generator.rb +18 -0
- data/lib/cocina/generator/generator.rb +80 -0
- data/lib/cocina/generator/schema.rb +84 -0
- data/lib/cocina/generator/schema_array.rb +20 -0
- data/lib/cocina/generator/schema_base.rb +49 -0
- data/lib/cocina/generator/schema_ref.rb +16 -0
- data/lib/cocina/generator/schema_value.rb +60 -0
- data/lib/cocina/generator/vocab.rb +63 -0
- data/lib/cocina/models.rb +51 -25
- data/lib/cocina/models/access.rb +10 -0
- data/lib/cocina/models/admin_policy.rb +13 -56
- data/lib/cocina/models/admin_policy_administrative.rb +11 -0
- data/lib/cocina/models/administrative.rb +14 -0
- data/lib/cocina/models/catalog_link.rb +4 -1
- data/lib/cocina/models/collection.rb +21 -31
- data/lib/cocina/models/collection_identification.rb +9 -0
- data/lib/cocina/models/description.rb +1 -8
- data/lib/cocina/models/dro.rb +34 -70
- data/lib/cocina/models/dro_access.rb +16 -0
- data/lib/cocina/models/dro_structural.rb +14 -0
- data/lib/cocina/models/embargo.rb +16 -0
- data/lib/cocina/models/file.rb +20 -36
- data/lib/cocina/models/file_administrative.rb +10 -0
- data/lib/cocina/models/file_set.rb +8 -15
- data/lib/cocina/models/file_set_structural.rb +9 -0
- data/lib/cocina/models/geographic.rb +10 -0
- data/lib/cocina/models/identification.rb +11 -0
- data/lib/cocina/models/message_digest.rb +17 -0
- data/lib/cocina/models/presentation.rb +12 -0
- data/lib/cocina/models/release_tag.rb +12 -7
- data/lib/cocina/models/request_admin_policy.rb +15 -3
- data/lib/cocina/models/request_collection.rb +21 -4
- data/lib/cocina/models/request_dro.rb +32 -11
- data/lib/cocina/models/request_dro_structural.rb +13 -0
- data/lib/cocina/models/request_file.rb +15 -6
- data/lib/cocina/models/request_file_set.rb +7 -9
- data/lib/cocina/models/request_file_set_structural.rb +9 -0
- data/lib/cocina/models/sequence.rb +2 -5
- data/lib/cocina/models/title.rb +12 -0
- data/lib/cocina/models/validator.rb +22 -0
- data/lib/cocina/models/version.rb +1 -1
- data/lib/cocina/models/vocab.rb +45 -60
- data/openapi.yml +695 -0
- metadata +101 -9
- data/lib/cocina/models/admin_policy_attributes.rb +0 -21
- data/lib/cocina/models/collection_attributes.rb +0 -22
- data/lib/cocina/models/dro_attributes.rb +0 -22
- data/lib/cocina/models/file_attributes.rb +0 -25
- data/lib/cocina/models/file_set_attributes.rb +0 -16
- data/lib/cocina/models/types.rb +0 -10
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocina-models
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.30.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Justin Coyne
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-03-
|
11
|
+
date: 2020-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: activesupport
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: dry-struct
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -38,6 +52,48 @@ dependencies:
|
|
38
52
|
- - "~>"
|
39
53
|
- !ruby/object:Gem::Version
|
40
54
|
version: '1.1'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: openapi3_parser
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :runtime
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: openapi_parser
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: thor
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :runtime
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
41
97
|
- !ruby/object:Gem::Dependency
|
42
98
|
name: zeitwerk
|
43
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -66,6 +122,20 @@ dependencies:
|
|
66
122
|
- - "~>"
|
67
123
|
- !ruby/object:Gem::Version
|
68
124
|
version: '2.0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: committee
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
69
139
|
- !ruby/object:Gem::Dependency
|
70
140
|
name: rake
|
71
141
|
requirement: !ruby/object:Gem::Requirement
|
@@ -139,7 +209,8 @@ dependencies:
|
|
139
209
|
description: SDR data models that can be validated
|
140
210
|
email:
|
141
211
|
- jcoyne@justincoyne.com
|
142
|
-
executables:
|
212
|
+
executables:
|
213
|
+
- generator
|
143
214
|
extensions: []
|
144
215
|
extra_rdoc_files: []
|
145
216
|
files:
|
@@ -175,30 +246,51 @@ files:
|
|
175
246
|
- docs/sampleETD/xn109qc9773_taco.json
|
176
247
|
- docs/schema.json
|
177
248
|
- docs/schema.md
|
249
|
+
- exe/generator
|
250
|
+
- lib/cocina/generator.rb
|
251
|
+
- lib/cocina/generator/generator.rb
|
252
|
+
- lib/cocina/generator/schema.rb
|
253
|
+
- lib/cocina/generator/schema_array.rb
|
254
|
+
- lib/cocina/generator/schema_base.rb
|
255
|
+
- lib/cocina/generator/schema_ref.rb
|
256
|
+
- lib/cocina/generator/schema_value.rb
|
257
|
+
- lib/cocina/generator/vocab.rb
|
178
258
|
- lib/cocina/models.rb
|
259
|
+
- lib/cocina/models/access.rb
|
179
260
|
- lib/cocina/models/admin_policy.rb
|
180
|
-
- lib/cocina/models/
|
261
|
+
- lib/cocina/models/admin_policy_administrative.rb
|
262
|
+
- lib/cocina/models/administrative.rb
|
181
263
|
- lib/cocina/models/catalog_link.rb
|
182
264
|
- lib/cocina/models/checkable.rb
|
183
265
|
- lib/cocina/models/collection.rb
|
184
|
-
- lib/cocina/models/
|
266
|
+
- lib/cocina/models/collection_identification.rb
|
185
267
|
- lib/cocina/models/description.rb
|
186
268
|
- lib/cocina/models/dro.rb
|
187
|
-
- lib/cocina/models/
|
269
|
+
- lib/cocina/models/dro_access.rb
|
270
|
+
- lib/cocina/models/dro_structural.rb
|
271
|
+
- lib/cocina/models/embargo.rb
|
188
272
|
- lib/cocina/models/file.rb
|
189
|
-
- lib/cocina/models/
|
273
|
+
- lib/cocina/models/file_administrative.rb
|
190
274
|
- lib/cocina/models/file_set.rb
|
191
|
-
- lib/cocina/models/
|
275
|
+
- lib/cocina/models/file_set_structural.rb
|
276
|
+
- lib/cocina/models/geographic.rb
|
277
|
+
- lib/cocina/models/identification.rb
|
278
|
+
- lib/cocina/models/message_digest.rb
|
279
|
+
- lib/cocina/models/presentation.rb
|
192
280
|
- lib/cocina/models/release_tag.rb
|
193
281
|
- lib/cocina/models/request_admin_policy.rb
|
194
282
|
- lib/cocina/models/request_collection.rb
|
195
283
|
- lib/cocina/models/request_dro.rb
|
284
|
+
- lib/cocina/models/request_dro_structural.rb
|
196
285
|
- lib/cocina/models/request_file.rb
|
197
286
|
- lib/cocina/models/request_file_set.rb
|
287
|
+
- lib/cocina/models/request_file_set_structural.rb
|
198
288
|
- lib/cocina/models/sequence.rb
|
199
|
-
- lib/cocina/models/
|
289
|
+
- lib/cocina/models/title.rb
|
290
|
+
- lib/cocina/models/validator.rb
|
200
291
|
- lib/cocina/models/version.rb
|
201
292
|
- lib/cocina/models/vocab.rb
|
293
|
+
- openapi.yml
|
202
294
|
homepage: https://github.com/sul-dlss/cocina-models
|
203
295
|
licenses: []
|
204
296
|
metadata: {}
|
@@ -1,21 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Cocina
|
4
|
-
module Models
|
5
|
-
# attributes common to both AdminPolicy and RequestAdminPolicy
|
6
|
-
module AdminPolicyAttributes
|
7
|
-
def self.included(obj)
|
8
|
-
obj.attribute(:access, AdminPolicy::Access.default { AdminPolicy::Access.new })
|
9
|
-
obj.attribute(:administrative, AdminPolicy::Administrative.default { AdminPolicy::Administrative.new })
|
10
|
-
# TODO: Allowing description to be omittable for now (until rolled out to consumers),
|
11
|
-
# but I think it's actually required for every admin policy
|
12
|
-
obj.attribute :description, Description.optional.meta(omittable: true)
|
13
|
-
obj.attribute(:identification, AdminPolicy::Identification.default { AdminPolicy::Identification.new })
|
14
|
-
obj.attribute :label, Types::Strict::String
|
15
|
-
obj.attribute(:structural, AdminPolicy::Structural.default { AdminPolicy::Structural.new })
|
16
|
-
obj.attribute :type, Types::String.enum(*AdminPolicy::TYPES)
|
17
|
-
obj.attribute :version, Types::Strict::Integer
|
18
|
-
end
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Cocina
|
4
|
-
module Models
|
5
|
-
# attributes common to both Collection and RequestCollection
|
6
|
-
# See http://sul-dlss.github.io/cocina-models/maps/Collection.json
|
7
|
-
module CollectionAttributes
|
8
|
-
def self.included(obj)
|
9
|
-
obj.attribute(:access, Collection::Access.default { Collection::Access.new })
|
10
|
-
obj.attribute(:administrative, Collection::Administrative.default { Collection::Administrative.new })
|
11
|
-
# TODO: Allowing description to be omittable for now (until rolled out to consumers),
|
12
|
-
# but I think it's actually required for every Collection
|
13
|
-
obj.attribute :description, Description.optional.meta(omittable: true)
|
14
|
-
obj.attribute(:identification, Collection::Identification.default { Collection::Identification.new })
|
15
|
-
obj.attribute :label, Types::Strict::String
|
16
|
-
obj.attribute(:structural, Collection::Structural.default { Collection::Structural.new })
|
17
|
-
obj.attribute :type, Types::String.enum(*Collection::TYPES)
|
18
|
-
obj.attribute :version, Types::Strict::Integer
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Cocina
|
4
|
-
module Models
|
5
|
-
# attributes common to both DRO and RequestDRO
|
6
|
-
# See http://sul-dlss.github.io/cocina-models/maps/DRO.json
|
7
|
-
module DroAttributes
|
8
|
-
def self.included(obj)
|
9
|
-
obj.attribute(:access, DRO::Access.default { DRO::Access.new })
|
10
|
-
obj.attribute(:administrative, DRO::Administrative.default { DRO::Administrative.new })
|
11
|
-
# TODO: Allowing description to be omittable for now (until rolled out to consumers),
|
12
|
-
# but I think it's actually required for every DRO
|
13
|
-
obj.attribute :description, Description.optional.meta(omittable: true)
|
14
|
-
obj.attribute :geographic, DRO::Geographic.optional.meta(omittable: true)
|
15
|
-
obj.attribute(:identification, DRO::Identification.default { DRO::Identification.new })
|
16
|
-
obj.attribute :label, Types::Strict::String
|
17
|
-
obj.attribute :type, Types::String.enum(*DRO::TYPES)
|
18
|
-
obj.attribute :version, Types::Strict::Integer
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,25 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Cocina
|
4
|
-
module Models
|
5
|
-
# attributes common to both File and RequestFile
|
6
|
-
# See http://sul-dlss.github.io/cocina-models/maps/File.json
|
7
|
-
module FileAttributes
|
8
|
-
def self.included(obj)
|
9
|
-
obj.attribute(:access, File::Access.optional.default { File::Access.new })
|
10
|
-
obj.attribute(:administrative, File::Administrative.default { File::Administrative.new })
|
11
|
-
obj.attribute :label, Types::Strict::String
|
12
|
-
obj.attribute :filename, Types::String.optional.default(nil)
|
13
|
-
obj.attribute :identification, File::Identification.optional.meta(omittable: true)
|
14
|
-
obj.attribute :hasMessageDigests, Types::Strict::Array.of(File::Fixity).default([].freeze)
|
15
|
-
obj.attribute :hasMimeType, Types::String.optional.meta(omittable: true)
|
16
|
-
obj.attribute :presentation, File::Presentation.optional.meta(omittable: true)
|
17
|
-
obj.attribute :size, Types::Strict::Integer.optional.default(nil)
|
18
|
-
obj.attribute :structural, File::Structural.optional.meta(omittable: true)
|
19
|
-
obj.attribute :type, Types::String.enum(*File::TYPES)
|
20
|
-
obj.attribute :use, Types::String.enum('transcription').optional.meta(omittable: true)
|
21
|
-
obj.attribute :version, Types::Strict::Integer
|
22
|
-
end
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Cocina
|
4
|
-
module Models
|
5
|
-
# attributes common to both FileSet and RequestFileSet
|
6
|
-
# See http://sul-dlss.github.io/cocina-models/maps/Fileset.json
|
7
|
-
module FileSetAttributes
|
8
|
-
def self.included(obj)
|
9
|
-
obj.attribute(:identification, FileSet::Identification.default { FileSet::Identification.new })
|
10
|
-
obj.attribute :label, Types::Strict::String
|
11
|
-
obj.attribute :type, Types::String.enum(*FileSet::TYPES)
|
12
|
-
obj.attribute :version, Types::Strict::Integer
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|