cocina-models 0.89.1 → 0.91.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/.circleci/config.yml +1 -1
- data/.rubocop.yml +66 -4
- data/.rubocop_todo.yml +9 -32
- data/Gemfile.lock +44 -36
- data/README.md +1 -1
- data/cocina-models.gemspec +1 -1
- data/lib/cocina/generator/generator.rb +7 -2
- data/lib/cocina/generator/schema.rb +9 -7
- data/lib/cocina/generator/schema_base.rb +4 -3
- data/lib/cocina/models/admin_policy_lite.rb +22 -0
- data/lib/cocina/models/collection_lite.rb +32 -0
- data/lib/cocina/models/dro_lite.rb +44 -0
- data/lib/cocina/models/file_set.rb +0 -4
- data/lib/cocina/models/file_set_type.rb +0 -4
- data/lib/cocina/models/mapping/from_mods/event.rb +2 -2
- data/lib/cocina/models/mapping/from_mods/geographic.rb +2 -1
- data/lib/cocina/models/mapping/from_mods/name_builder.rb +1 -1
- data/lib/cocina/models/mapping/from_mods/subject_authority_codes.rb +2 -0
- data/lib/cocina/models/mapping/normalizers/mods/subject_normalizer.rb +1 -5
- data/lib/cocina/models/request_file_set.rb +0 -4
- data/lib/cocina/models/version.rb +1 -1
- data/lib/cocina/models.rb +39 -4
- data/lib/cocina/rspec/factories.rb +15 -0
- data/openapi.yml +0 -8
- metadata +10 -13
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7ef9101cd3e5b9e42625b2afbc651919ba5f8e1617d5372324cb950a8f78b23
|
4
|
+
data.tar.gz: 433c3651004d4f32c380f0cee4b38887fe2ef3bc550436e326af299db01d12b3
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 74cfeeb356d0fd34295010870f2e81c2ef08d9db3c3679ec1b22a8e6f6325bfb62058a23654c024d58a19a59a8b1dd73d611cfec749f2adce2aa6ac938f46c92
|
7
|
+
data.tar.gz: 906583af0a50b81f26f4c487b3288196f918d116f617c253ce10cc72564e7f459bb1ff422bc0af6def4d222571232fa4e1c52609be82e5226eb4d85f92f1c42c
|
data/.circleci/config.yml
CHANGED
data/.rubocop.yml
CHANGED
@@ -101,7 +101,6 @@ Metrics/MethodLength:
|
|
101
101
|
- 'lib/cocina/models/mapping/normalizers/mods/subject_normalizer.rb'
|
102
102
|
- 'lib/cocina/models/mapping/normalizers/mods_normalizer.rb'
|
103
103
|
|
104
|
-
|
105
104
|
# Offense count: 37
|
106
105
|
# Configuration parameters: IgnoredMethods.
|
107
106
|
Metrics/PerceivedComplexity:
|
@@ -111,6 +110,10 @@ Metrics/PerceivedComplexity:
|
|
111
110
|
- 'lib/cocina/models/mapping/to_mods/*'
|
112
111
|
- 'lib/cocina/models/mapping/normalizers/**/*'
|
113
112
|
|
113
|
+
Naming/PredicateName:
|
114
|
+
ForbiddenPrefixes:
|
115
|
+
- is_
|
116
|
+
|
114
117
|
# ----- RSpec ------
|
115
118
|
|
116
119
|
RSpec/BeEq: # new in 2.9.0
|
@@ -295,7 +298,7 @@ RSpec/IdenticalEqualityAssertion: # new in 2.4
|
|
295
298
|
Enabled: true
|
296
299
|
RSpec/SubjectDeclaration: # new in 2.5
|
297
300
|
Enabled: true
|
298
|
-
|
301
|
+
FactoryBot/SyntaxMethods: # new in 2.7
|
299
302
|
Enabled: true
|
300
303
|
RSpec/Rails/AvoidSetupHook: # new in 2.4
|
301
304
|
Enabled: true
|
@@ -384,9 +387,9 @@ RSpec/PendingWithoutReason: # new in 2.16
|
|
384
387
|
Enabled: true
|
385
388
|
RSpec/SortMetadata: # new in 2.14
|
386
389
|
Enabled: true
|
387
|
-
|
390
|
+
FactoryBot/ConsistentParenthesesStyle: # new in 2.14
|
388
391
|
Enabled: true
|
389
|
-
|
392
|
+
FactoryBot/FactoryNameStyle: # new in 2.16
|
390
393
|
Enabled: true
|
391
394
|
RSpec/Rails/InferredSpecType: # new in 2.14
|
392
395
|
Enabled: true
|
@@ -394,3 +397,62 @@ RSpec/Rails/MinitestAssertions: # new in 2.17
|
|
394
397
|
Enabled: true
|
395
398
|
Style/RedundantHeredocDelimiterQuotes: # new in 1.45
|
396
399
|
Enabled: true
|
400
|
+
|
401
|
+
Metrics/CollectionLiteralLength: # new in 1.47
|
402
|
+
Enabled: true
|
403
|
+
Style/DirEmpty: # new in 1.48
|
404
|
+
Enabled: true
|
405
|
+
Style/FileEmpty: # new in 1.48
|
406
|
+
Enabled: true
|
407
|
+
RSpec/RedundantAround: # new in 2.19
|
408
|
+
Enabled: true
|
409
|
+
RSpec/SkipBlockInsideExample: # new in 2.19
|
410
|
+
Enabled: true
|
411
|
+
RSpec/Rails/TravelAround: # new in 2.19
|
412
|
+
Enabled: true
|
413
|
+
|
414
|
+
Lint/DuplicateMatchPattern: # new in 1.50
|
415
|
+
Enabled: true
|
416
|
+
Style/DataInheritance: # new in 1.49
|
417
|
+
Enabled: true
|
418
|
+
Style/ExactRegexpMatch: # new in 1.51
|
419
|
+
Enabled: true
|
420
|
+
Style/RedundantArrayConstructor: # new in 1.52
|
421
|
+
Enabled: true
|
422
|
+
Style/RedundantFilterChain: # new in 1.52
|
423
|
+
Enabled: true
|
424
|
+
Style/RedundantLineContinuation: # new in 1.49
|
425
|
+
Enabled: true
|
426
|
+
Style/RedundantRegexpConstructor: # new in 1.52
|
427
|
+
Enabled: true
|
428
|
+
FactoryBot/AssociationStyle: # new in 2.23
|
429
|
+
Enabled: true
|
430
|
+
FactoryBot/FactoryAssociationWithStrategy: # new in 2.23
|
431
|
+
Enabled: true
|
432
|
+
FactoryBot/RedundantFactoryOption: # new in 2.23
|
433
|
+
Enabled: true
|
434
|
+
RSpec/BeEmpty: # new in 2.20
|
435
|
+
Enabled: true
|
436
|
+
RSpec/ContainExactly: # new in 2.19
|
437
|
+
Enabled: true
|
438
|
+
RSpec/IndexedLet: # new in 2.20
|
439
|
+
Enabled: true
|
440
|
+
RSpec/MatchArray: # new in 2.19
|
441
|
+
Enabled: true
|
442
|
+
|
443
|
+
Lint/MixedCaseRange: # new in 1.53
|
444
|
+
Enabled: true
|
445
|
+
Lint/RedundantRegexpQuantifiers: # new in 1.53
|
446
|
+
Enabled: true
|
447
|
+
Style/RedundantCurrentDirectoryInPath: # new in 1.53
|
448
|
+
Enabled: true
|
449
|
+
Style/RedundantRegexpArgument: # new in 1.53
|
450
|
+
Enabled: true
|
451
|
+
Style/ReturnNilInPredicateMethodDefinition: # new in 1.53
|
452
|
+
Enabled: true
|
453
|
+
Style/YAMLFileRead: # new in 1.53
|
454
|
+
Enabled: true
|
455
|
+
RSpec/ReceiveMessages: # new in 2.23
|
456
|
+
Enabled: true
|
457
|
+
RSpec/Rails/NegationBeValid: # new in 2.23
|
458
|
+
Enabled: true
|
data/.rubocop_todo.yml
CHANGED
@@ -1,15 +1,14 @@
|
|
1
1
|
# This configuration was generated by
|
2
2
|
# `rubocop --auto-gen-config --auto-gen-only-exclude`
|
3
|
-
# on 2023-
|
3
|
+
# on 2023-06-20 05:46:00 UTC using RuboCop version 1.52.1.
|
4
4
|
# The point is for the user to remove these configuration records
|
5
5
|
# one by one as the offenses are removed from the code base.
|
6
6
|
# Note that changes in the inspected code, or installation of new
|
7
7
|
# versions of RuboCop, may require this file to be generated again.
|
8
8
|
|
9
|
-
# Offense count:
|
9
|
+
# Offense count: 8
|
10
10
|
# Configuration parameters: EnforcedStyle, AllowedGems, Include.
|
11
11
|
# SupportedStyles: Gemfile, gems.rb, gemspec
|
12
|
-
# AllowedGems: bundler
|
13
12
|
# Include: **/*.gemspec, **/Gemfile, **/gems.rb
|
14
13
|
Gemspec/DevelopmentDependencies:
|
15
14
|
Exclude:
|
@@ -20,14 +19,6 @@ Lint/NoReturnInBeginEndBlocks:
|
|
20
19
|
Exclude:
|
21
20
|
- 'lib/cocina/models/mapping/to_mods/description.rb'
|
22
21
|
|
23
|
-
# Offense count: 2
|
24
|
-
# This cop supports safe autocorrection (--autocorrect).
|
25
|
-
# Configuration parameters: AllowedMethods.
|
26
|
-
# AllowedMethods: present?, blank?, presence, try, try!, in?
|
27
|
-
Lint/SafeNavigationChain:
|
28
|
-
Exclude:
|
29
|
-
- 'lib/cocina/generator/schema_base.rb'
|
30
|
-
|
31
22
|
# Offense count: 13
|
32
23
|
# This cop supports safe autocorrection (--autocorrect).
|
33
24
|
# Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods, IgnoreNotImplementedMethods.
|
@@ -45,30 +36,16 @@ Lint/UnusedMethodArgument:
|
|
45
36
|
- 'lib/cocina/models/mapping/from_mods/subject.rb'
|
46
37
|
- 'lib/cocina/models/mapping/to_mods/event.rb'
|
47
38
|
|
48
|
-
# Offense count:
|
49
|
-
# Configuration parameters: AllowedMethods, AllowedPatterns,
|
39
|
+
# Offense count: 98
|
40
|
+
# Configuration parameters: AllowedMethods, AllowedPatterns, CountRepeatedAttributes.
|
50
41
|
Metrics/AbcSize:
|
51
42
|
Max: 40
|
52
43
|
|
53
44
|
# Offense count: 43
|
54
|
-
# Configuration parameters: AllowedMethods, AllowedPatterns
|
45
|
+
# Configuration parameters: AllowedMethods, AllowedPatterns.
|
55
46
|
Metrics/CyclomaticComplexity:
|
56
47
|
Max: 12
|
57
48
|
|
58
|
-
# Offense count: 1
|
59
|
-
# Configuration parameters: CountComments, Max, CountAsOne, ExcludedMethods, AllowedMethods, AllowedPatterns, IgnoredMethods.
|
60
|
-
Metrics/MethodLength:
|
61
|
-
Exclude:
|
62
|
-
- 'spec/cocina/models/file_access_spec.rb'
|
63
|
-
- 'spec/cocina/models/dro_access_spec.rb'
|
64
|
-
- 'lib/cocina/rspec/factories.rb'
|
65
|
-
- 'lib/cocina/models/mapping/to_mods/*'
|
66
|
-
- 'lib/cocina/models/mapping/from_mods/*'
|
67
|
-
- 'lib/cocina/models/mapping/normalizers/mods/origin_info_normalizer.rb'
|
68
|
-
- 'lib/cocina/models/mapping/normalizers/mods/subject_normalizer.rb'
|
69
|
-
- 'lib/cocina/models/mapping/normalizers/mods_normalizer.rb'
|
70
|
-
- 'lib/cocina/generator/schema_base.rb'
|
71
|
-
|
72
49
|
# Offense count: 1
|
73
50
|
# Configuration parameters: Max, CountKeywordArgs, MaxOptionalParameters.
|
74
51
|
Metrics/ParameterLists:
|
@@ -83,7 +60,7 @@ RSpec/DescribeClass:
|
|
83
60
|
# Offense count: 87
|
84
61
|
# Configuration parameters: CountAsOne.
|
85
62
|
RSpec/ExampleLength:
|
86
|
-
Max:
|
63
|
+
Max: 103
|
87
64
|
|
88
65
|
# Offense count: 10
|
89
66
|
# Configuration parameters: Max, AllowedGroups.
|
@@ -122,9 +99,9 @@ Style/MultilineBlockChain:
|
|
122
99
|
- 'lib/cocina/models/mapping/to_mods/form.rb'
|
123
100
|
- 'lib/cocina/models/mapping/to_mods/subject.rb'
|
124
101
|
|
125
|
-
# Offense count:
|
102
|
+
# Offense count: 239
|
126
103
|
# This cop supports safe autocorrection (--autocorrect).
|
127
|
-
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns
|
104
|
+
# Configuration parameters: AllowHeredoc, AllowURI, URISchemes, IgnoreCopDirectives, AllowedPatterns.
|
128
105
|
# URISchemes: http, https
|
129
106
|
Layout/LineLength:
|
130
|
-
Max:
|
107
|
+
Max: 267
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
cocina-models (0.
|
4
|
+
cocina-models (0.91.0)
|
5
5
|
activesupport
|
6
6
|
deprecation
|
7
7
|
dry-struct (~> 1.0)
|
@@ -11,7 +11,7 @@ PATH
|
|
11
11
|
jsonpath
|
12
12
|
nokogiri
|
13
13
|
openapi3_parser
|
14
|
-
openapi_parser (
|
14
|
+
openapi_parser (~> 1.0)
|
15
15
|
rss
|
16
16
|
super_diff
|
17
17
|
thor
|
@@ -20,25 +20,26 @@ PATH
|
|
20
20
|
GEM
|
21
21
|
remote: https://rubygems.org/
|
22
22
|
specs:
|
23
|
-
activesupport (7.0.
|
23
|
+
activesupport (7.0.8)
|
24
24
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
25
25
|
i18n (>= 1.6, < 2)
|
26
26
|
minitest (>= 5.1)
|
27
27
|
tzinfo (~> 2.0)
|
28
28
|
ast (2.4.2)
|
29
29
|
attr_extras (7.1.0)
|
30
|
+
base64 (0.1.1)
|
30
31
|
byebug (11.1.3)
|
31
|
-
committee (
|
32
|
+
committee (5.0.0)
|
32
33
|
json_schema (~> 0.14, >= 0.14.3)
|
33
|
-
openapi_parser (
|
34
|
+
openapi_parser (~> 1.0)
|
34
35
|
rack (>= 1.5)
|
35
|
-
commonmarker (0.23.
|
36
|
+
commonmarker (0.23.10)
|
36
37
|
concurrent-ruby (1.2.2)
|
37
38
|
deprecation (1.1.0)
|
38
39
|
activesupport
|
39
40
|
diff-lcs (1.5.0)
|
40
41
|
docile (1.4.0)
|
41
|
-
dry-core (1.0.
|
42
|
+
dry-core (1.0.1)
|
42
43
|
concurrent-ruby (~> 1.0)
|
43
44
|
zeitwerk (~> 2.6)
|
44
45
|
dry-inflector (1.0.0)
|
@@ -61,70 +62,77 @@ GEM
|
|
61
62
|
activesupport (>= 3.0, < 8.0)
|
62
63
|
equivalent-xml (0.6.0)
|
63
64
|
nokogiri (>= 1.4.3)
|
64
|
-
i18n (1.
|
65
|
+
i18n (1.14.1)
|
65
66
|
concurrent-ruby (~> 1.0)
|
66
67
|
ice_nine (0.11.2)
|
67
68
|
json (2.6.3)
|
68
69
|
json_schema (0.21.0)
|
69
|
-
jsonpath (1.1.
|
70
|
+
jsonpath (1.1.3)
|
70
71
|
multi_json
|
71
|
-
|
72
|
-
|
72
|
+
language_server-protocol (3.17.0.3)
|
73
|
+
mini_portile2 (2.8.4)
|
74
|
+
minitest (5.20.0)
|
73
75
|
multi_json (1.15.0)
|
74
|
-
nokogiri (1.
|
75
|
-
mini_portile2 (~> 2.8.
|
76
|
+
nokogiri (1.15.4)
|
77
|
+
mini_portile2 (~> 2.8.2)
|
76
78
|
racc (~> 1.4)
|
77
79
|
openapi3_parser (0.9.2)
|
78
80
|
commonmarker (~> 0.17)
|
79
|
-
openapi_parser (0.
|
80
|
-
optimist (3.0
|
81
|
-
parallel (1.
|
82
|
-
parser (3.2.
|
81
|
+
openapi_parser (1.0.0)
|
82
|
+
optimist (3.1.0)
|
83
|
+
parallel (1.23.0)
|
84
|
+
parser (3.2.2.3)
|
83
85
|
ast (~> 2.4.1)
|
86
|
+
racc
|
84
87
|
patience_diff (1.2.0)
|
85
88
|
optimist (~> 3.0)
|
86
|
-
racc (1.
|
87
|
-
rack (3.0.
|
89
|
+
racc (1.7.1)
|
90
|
+
rack (3.0.8)
|
88
91
|
rainbow (3.1.1)
|
89
92
|
rake (13.0.6)
|
90
|
-
regexp_parser (2.
|
91
|
-
rexml (3.2.
|
93
|
+
regexp_parser (2.8.1)
|
94
|
+
rexml (3.2.6)
|
92
95
|
rspec (3.12.0)
|
93
96
|
rspec-core (~> 3.12.0)
|
94
97
|
rspec-expectations (~> 3.12.0)
|
95
98
|
rspec-mocks (~> 3.12.0)
|
96
|
-
rspec-core (3.12.
|
99
|
+
rspec-core (3.12.2)
|
97
100
|
rspec-support (~> 3.12.0)
|
98
|
-
rspec-expectations (3.12.
|
101
|
+
rspec-expectations (3.12.3)
|
99
102
|
diff-lcs (>= 1.2.0, < 2.0)
|
100
103
|
rspec-support (~> 3.12.0)
|
101
|
-
rspec-mocks (3.12.
|
104
|
+
rspec-mocks (3.12.6)
|
102
105
|
diff-lcs (>= 1.2.0, < 2.0)
|
103
106
|
rspec-support (~> 3.12.0)
|
104
|
-
rspec-support (3.12.
|
107
|
+
rspec-support (3.12.1)
|
105
108
|
rspec_junit_formatter (0.6.0)
|
106
109
|
rspec-core (>= 2, < 4, != 2.12.0)
|
107
|
-
rss (0.
|
110
|
+
rss (0.3.0)
|
108
111
|
rexml
|
109
|
-
rubocop (1.
|
112
|
+
rubocop (1.56.3)
|
113
|
+
base64 (~> 0.1.1)
|
110
114
|
json (~> 2.3)
|
115
|
+
language_server-protocol (>= 3.17.0)
|
111
116
|
parallel (~> 1.10)
|
112
|
-
parser (>= 3.2.
|
117
|
+
parser (>= 3.2.2.3)
|
113
118
|
rainbow (>= 2.2.2, < 4.0)
|
114
119
|
regexp_parser (>= 1.8, < 3.0)
|
115
120
|
rexml (>= 3.2.5, < 4.0)
|
116
|
-
rubocop-ast (>= 1.
|
121
|
+
rubocop-ast (>= 1.28.1, < 2.0)
|
117
122
|
ruby-progressbar (~> 1.7)
|
118
123
|
unicode-display_width (>= 2.4.0, < 3.0)
|
119
|
-
rubocop-ast (1.
|
124
|
+
rubocop-ast (1.29.0)
|
120
125
|
parser (>= 3.2.1.0)
|
121
|
-
rubocop-capybara (2.
|
126
|
+
rubocop-capybara (2.18.0)
|
122
127
|
rubocop (~> 1.41)
|
128
|
+
rubocop-factory_bot (2.23.1)
|
129
|
+
rubocop (~> 1.33)
|
123
130
|
rubocop-rake (0.6.0)
|
124
131
|
rubocop (~> 1.0)
|
125
|
-
rubocop-rspec (2.
|
132
|
+
rubocop-rspec (2.24.0)
|
126
133
|
rubocop (~> 1.33)
|
127
134
|
rubocop-capybara (~> 2.17)
|
135
|
+
rubocop-factory_bot (~> 2.22)
|
128
136
|
ruby-progressbar (1.13.0)
|
129
137
|
simplecov (0.22.0)
|
130
138
|
docile (~> 1.1)
|
@@ -132,15 +140,15 @@ GEM
|
|
132
140
|
simplecov_json_formatter (~> 0.1)
|
133
141
|
simplecov-html (0.12.3)
|
134
142
|
simplecov_json_formatter (0.1.4)
|
135
|
-
super_diff (0.
|
143
|
+
super_diff (0.10.0)
|
136
144
|
attr_extras (>= 6.2.4)
|
137
145
|
diff-lcs
|
138
146
|
patience_diff
|
139
|
-
thor (1.2.
|
147
|
+
thor (1.2.2)
|
140
148
|
tzinfo (2.0.6)
|
141
149
|
concurrent-ruby (~> 1.0)
|
142
150
|
unicode-display_width (2.4.2)
|
143
|
-
zeitwerk (2.6.
|
151
|
+
zeitwerk (2.6.11)
|
144
152
|
|
145
153
|
PLATFORMS
|
146
154
|
ruby
|
@@ -159,4 +167,4 @@ DEPENDENCIES
|
|
159
167
|
simplecov
|
160
168
|
|
161
169
|
BUNDLED WITH
|
162
|
-
2.
|
170
|
+
2.4.13
|
data/README.md
CHANGED
@@ -132,7 +132,7 @@ The release process is much like any other gem. First bump the version in `lib/c
|
|
132
132
|
```
|
133
133
|
bundle exec rake release
|
134
134
|
```
|
135
|
-
which pushes the gem to rubygems.org.
|
135
|
+
which pushes the gem to rubygems.org.
|
136
136
|
|
137
137
|
### Step 2: Update client gems coupled to the models
|
138
138
|
|
data/cocina-models.gemspec
CHANGED
@@ -35,7 +35,7 @@ Gem::Specification.new do |spec|
|
|
35
35
|
spec.add_dependency 'openapi3_parser' # Parsing openapi doc
|
36
36
|
# Match these version requirements to what committee wants,
|
37
37
|
# so that our client (non-committee) users have the same dependencies.
|
38
|
-
spec.add_dependency 'openapi_parser', '
|
38
|
+
spec.add_dependency 'openapi_parser', '~> 1.0'
|
39
39
|
spec.add_dependency 'rss' # used for date/time validation
|
40
40
|
spec.add_dependency 'super_diff'
|
41
41
|
spec.add_dependency 'thor'
|
@@ -24,6 +24,11 @@ module Cocina
|
|
24
24
|
generate_for(schema) if schema
|
25
25
|
end
|
26
26
|
|
27
|
+
%w[DRO Collection AdminPolicy].each do |schema_name|
|
28
|
+
schema = schema_for(schema_name, lite: true)
|
29
|
+
filepaths << generate_for(schema)
|
30
|
+
end
|
31
|
+
|
27
32
|
auto_format(filepaths)
|
28
33
|
generate_vocab
|
29
34
|
generate_descriptive_docs
|
@@ -94,13 +99,13 @@ module Cocina
|
|
94
99
|
@schemas ||= Openapi3Parser.load_file(options[:openapi]).components.schemas
|
95
100
|
end
|
96
101
|
|
97
|
-
def schema_for(schema_name)
|
102
|
+
def schema_for(schema_name, lite: false)
|
98
103
|
schema_doc = schemas[schema_name]
|
99
104
|
return nil if schema_doc.nil?
|
100
105
|
|
101
106
|
case schema_doc.type
|
102
107
|
when 'object'
|
103
|
-
Schema.new(schema_doc, schemas: schemas.keys)
|
108
|
+
Schema.new(schema_doc, schemas: schemas.keys, lite: lite)
|
104
109
|
when 'string'
|
105
110
|
Datatype.new(schema_doc, schemas: schemas.keys)
|
106
111
|
when NilClass
|
@@ -71,7 +71,7 @@ module Cocina
|
|
71
71
|
end
|
72
72
|
|
73
73
|
def validatable?
|
74
|
-
!schema_doc.node_context.document.paths["/validate/#{schema_doc.name}"].nil?
|
74
|
+
!schema_doc.node_context.document.paths["/validate/#{schema_doc.name}"].nil? && !lite
|
75
75
|
end
|
76
76
|
|
77
77
|
def properties
|
@@ -119,12 +119,14 @@ module Cocina
|
|
119
119
|
|
120
120
|
def schema_properties_for(doc)
|
121
121
|
doc.properties.map do |key, properties_doc|
|
122
|
-
property_class_for(properties_doc)
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
122
|
+
clazz = property_class_for(properties_doc)
|
123
|
+
clazz.new(properties_doc,
|
124
|
+
key: key,
|
125
|
+
required: doc.requires?(key),
|
126
|
+
relaxed: lite && clazz != SchemaValue,
|
127
|
+
nullable: properties_doc.nullable?,
|
128
|
+
parent: self,
|
129
|
+
schemas: schemas)
|
128
130
|
end
|
129
131
|
end
|
130
132
|
end
|
@@ -4,9 +4,9 @@ module Cocina
|
|
4
4
|
module Generator
|
5
5
|
# Base class for generating from openapi
|
6
6
|
class SchemaBase
|
7
|
-
attr_reader :schema_doc, :key, :required, :nullable, :parent, :relaxed, :schemas
|
7
|
+
attr_reader :schema_doc, :key, :required, :nullable, :parent, :relaxed, :schemas, :lite
|
8
8
|
|
9
|
-
def initialize(schema_doc, key: nil, required: false, nullable: false, parent: nil, relaxed: false, schemas: [])
|
9
|
+
def initialize(schema_doc, key: nil, required: false, nullable: false, parent: nil, relaxed: false, schemas: [], lite: false)
|
10
10
|
@schema_doc = schema_doc
|
11
11
|
@key = key
|
12
12
|
@required = required
|
@@ -14,6 +14,7 @@ module Cocina
|
|
14
14
|
@parent = parent
|
15
15
|
@relaxed = relaxed
|
16
16
|
@schemas = schemas
|
17
|
+
@lite = lite
|
17
18
|
end
|
18
19
|
|
19
20
|
def filename
|
@@ -21,7 +22,7 @@ module Cocina
|
|
21
22
|
end
|
22
23
|
|
23
24
|
def name
|
24
|
-
key || schema_doc.name
|
25
|
+
"#{key || schema_doc.name}#{lite ? 'Lite' : ''}"
|
25
26
|
end
|
26
27
|
|
27
28
|
# Allows nullable values to be set to nil. This is useful when doing an
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cocina
|
4
|
+
module Models
|
5
|
+
class AdminPolicyLite < Struct
|
6
|
+
include Checkable
|
7
|
+
|
8
|
+
TYPES = ['https://cocina.sul.stanford.edu/models/admin_policy'].freeze
|
9
|
+
|
10
|
+
# The version of Cocina with which this object conforms.
|
11
|
+
# example: 1.2.3
|
12
|
+
attribute :cocinaVersion, CocinaVersion.default(VERSION)
|
13
|
+
attribute :type, Types::Strict::String.enum(*AdminPolicyLite::TYPES)
|
14
|
+
# example: druid:bc123df4567
|
15
|
+
attribute :externalIdentifier, Druid
|
16
|
+
attribute :label, Types::Strict::String
|
17
|
+
attribute :version, Types::Strict::Integer
|
18
|
+
attribute? :administrative, AdminPolicyAdministrative.optional
|
19
|
+
attribute? :description, Description.optional
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cocina
|
4
|
+
module Models
|
5
|
+
# A group of Digital Repository Objects that indicate some type of conceptual grouping within the domain that is worth reusing across the system.
|
6
|
+
class CollectionLite < Struct
|
7
|
+
include Checkable
|
8
|
+
|
9
|
+
TYPES = ['https://cocina.sul.stanford.edu/models/collection',
|
10
|
+
'https://cocina.sul.stanford.edu/models/curated-collection',
|
11
|
+
'https://cocina.sul.stanford.edu/models/user-collection',
|
12
|
+
'https://cocina.sul.stanford.edu/models/exhibit',
|
13
|
+
'https://cocina.sul.stanford.edu/models/series'].freeze
|
14
|
+
|
15
|
+
# The version of Cocina with which this object conforms.
|
16
|
+
# example: 1.2.3
|
17
|
+
attribute :cocinaVersion, CocinaVersion.default(VERSION)
|
18
|
+
# The content type of the Collection. Selected from an established set of values.
|
19
|
+
attribute :type, Types::Strict::String.enum(*CollectionLite::TYPES)
|
20
|
+
# example: druid:bc123df4567
|
21
|
+
attribute :externalIdentifier, Druid
|
22
|
+
# Primary processing label (can be same as title) for a Collection.
|
23
|
+
attribute :label, Types::Strict::String
|
24
|
+
# Version for the Collection within SDR.
|
25
|
+
attribute :version, Types::Strict::Integer
|
26
|
+
attribute? :access, CollectionAccess.optional
|
27
|
+
attribute? :administrative, Administrative.optional
|
28
|
+
attribute? :description, Description.optional
|
29
|
+
attribute? :identification, CollectionIdentification.optional
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cocina
|
4
|
+
module Models
|
5
|
+
# Domain-defined abstraction of a 'work'. Digital Repository Objects' abstraction is describable for our domain’s purposes, i.e. for management needs within our system.
|
6
|
+
class DROLite < Struct
|
7
|
+
include Checkable
|
8
|
+
|
9
|
+
TYPES = ['https://cocina.sul.stanford.edu/models/object',
|
10
|
+
'https://cocina.sul.stanford.edu/models/3d',
|
11
|
+
'https://cocina.sul.stanford.edu/models/agreement',
|
12
|
+
'https://cocina.sul.stanford.edu/models/book',
|
13
|
+
'https://cocina.sul.stanford.edu/models/document',
|
14
|
+
'https://cocina.sul.stanford.edu/models/geo',
|
15
|
+
'https://cocina.sul.stanford.edu/models/image',
|
16
|
+
'https://cocina.sul.stanford.edu/models/page',
|
17
|
+
'https://cocina.sul.stanford.edu/models/photograph',
|
18
|
+
'https://cocina.sul.stanford.edu/models/manuscript',
|
19
|
+
'https://cocina.sul.stanford.edu/models/map',
|
20
|
+
'https://cocina.sul.stanford.edu/models/media',
|
21
|
+
'https://cocina.sul.stanford.edu/models/track',
|
22
|
+
'https://cocina.sul.stanford.edu/models/webarchive-binary',
|
23
|
+
'https://cocina.sul.stanford.edu/models/webarchive-seed'].freeze
|
24
|
+
|
25
|
+
# The version of Cocina with which this object conforms.
|
26
|
+
# example: 1.2.3
|
27
|
+
attribute :cocinaVersion, CocinaVersion.default(VERSION)
|
28
|
+
# The content type of the DRO. Selected from an established set of values.
|
29
|
+
attribute :type, Types::Strict::String.enum(*DROLite::TYPES)
|
30
|
+
# example: druid:bc123df4567
|
31
|
+
attribute :externalIdentifier, Druid
|
32
|
+
# Primary processing label (can be same as title) for a DRO.
|
33
|
+
attribute :label, Types::Strict::String
|
34
|
+
# Version for the DRO within SDR.
|
35
|
+
attribute :version, Types::Strict::Integer
|
36
|
+
attribute? :access, DROAccess.optional
|
37
|
+
attribute? :administrative, Administrative.optional
|
38
|
+
attribute? :description, Description.optional
|
39
|
+
attribute? :identification, Identification.optional
|
40
|
+
attribute? :structural, DROStructural.optional
|
41
|
+
attribute? :geographic, Geographic.optional
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -11,14 +11,10 @@ module Cocina
|
|
11
11
|
'https://cocina.sul.stanford.edu/models/resources/document',
|
12
12
|
'https://cocina.sul.stanford.edu/models/resources/file',
|
13
13
|
'https://cocina.sul.stanford.edu/models/resources/image',
|
14
|
-
'https://cocina.sul.stanford.edu/models/resources/main-augmented',
|
15
|
-
'https://cocina.sul.stanford.edu/models/resources/main-original',
|
16
14
|
'https://cocina.sul.stanford.edu/models/resources/media',
|
17
15
|
'https://cocina.sul.stanford.edu/models/resources/object',
|
18
16
|
'https://cocina.sul.stanford.edu/models/resources/page',
|
19
|
-
'https://cocina.sul.stanford.edu/models/resources/permissions',
|
20
17
|
'https://cocina.sul.stanford.edu/models/resources/preview',
|
21
|
-
'https://cocina.sul.stanford.edu/models/resources/supplement',
|
22
18
|
'https://cocina.sul.stanford.edu/models/resources/3d',
|
23
19
|
'https://cocina.sul.stanford.edu/models/resources/thumb',
|
24
20
|
'https://cocina.sul.stanford.edu/models/resources/video'].freeze
|
@@ -10,14 +10,10 @@ module Cocina
|
|
10
10
|
property :document
|
11
11
|
property :file
|
12
12
|
property :image
|
13
|
-
property :'main-augmented'
|
14
|
-
property :'main-original'
|
15
13
|
property :media
|
16
14
|
property :object
|
17
15
|
property :page
|
18
|
-
property :permissions
|
19
16
|
property :preview
|
20
|
-
property :supplement
|
21
17
|
property :thumb
|
22
18
|
property :video
|
23
19
|
end
|
@@ -145,7 +145,7 @@ module Cocina
|
|
145
145
|
return if raw_type.blank?
|
146
146
|
|
147
147
|
first_event_type = event_type(origin_info_nodes.first)
|
148
|
-
|
148
|
+
first_event_type if origin_info_nodes.all? { |node| event_type(node) == first_event_type }
|
149
149
|
end
|
150
150
|
|
151
151
|
# @return String displayLabel for the cocina event if it is the same for all the origin_info_nodes, o.w. nil
|
@@ -154,7 +154,7 @@ module Cocina
|
|
154
154
|
return if raw_label.blank?
|
155
155
|
|
156
156
|
first_label = display_label(origin_info_nodes.first)
|
157
|
-
|
157
|
+
first_label if origin_info_nodes.all? { |node| display_label(node) == first_label }
|
158
158
|
end
|
159
159
|
|
160
160
|
def add_info_to_event(event, origin_info_node)
|
@@ -93,7 +93,8 @@ module Cocina
|
|
93
93
|
|
94
94
|
def build_subject
|
95
95
|
return [build_subject_for_center_point] unless centerpoint.empty?
|
96
|
-
|
96
|
+
|
97
|
+
build_subject_for_bounding_box unless envelope.empty?
|
97
98
|
end
|
98
99
|
|
99
100
|
def build_subject_for_center_point
|
@@ -235,7 +235,7 @@ module Cocina
|
|
235
235
|
cocina_roles = role_nodes.filter_map { |role_node| role_for(role_node) }.presence
|
236
236
|
return if cocina_roles.blank?
|
237
237
|
|
238
|
-
|
238
|
+
'event' if cocina_roles.first[:value] == 'event'
|
239
239
|
end
|
240
240
|
|
241
241
|
def activity_date?(name_part_node)
|
@@ -6,6 +6,7 @@ module Cocina
|
|
6
6
|
module Mapping
|
7
7
|
module FromMods
|
8
8
|
# Helper class - provides subject authority codes
|
9
|
+
# rubocop:disable Metrics/CollectionLiteralLength
|
9
10
|
class SubjectAuthorityCodes
|
10
11
|
# Subject codes: https://id.loc.gov/vocabulary/subjectSchemes.html
|
11
12
|
# curl https://id.loc.gov/vocabulary/subjectSchemes.madsrdf.json | jq '[.[0]."http://www.loc.gov/mads/rdf/v1#hasMADSSchemeMember"[]."@id"[44:]]'
|
@@ -787,6 +788,7 @@ module Cocina
|
|
787
788
|
+ CARTOGRAPHIC_CODES + OCCUPATION_CODES + COUNTRY_CODES + GEOGRAPHIC_CODES \
|
788
789
|
+ ISO_CODES + MARC_CODES + PARKER + OTHER_CODES
|
789
790
|
end
|
791
|
+
# rubocop:enable Metrics/CollectionLiteralLength
|
790
792
|
end
|
791
793
|
end
|
792
794
|
end
|
@@ -108,7 +108,6 @@ module Cocina
|
|
108
108
|
# rubocop:enable Metrics/CyclomaticComplexity
|
109
109
|
# rubocop:enable Metrics/AbcSize
|
110
110
|
|
111
|
-
# rubocop:disable Naming/PredicateName
|
112
111
|
def has_authority?(nodes)
|
113
112
|
nodes_to_a(nodes).all? { |node| node[:authority] }
|
114
113
|
end
|
@@ -116,7 +115,6 @@ module Cocina
|
|
116
115
|
def has_same_authority?(nodes, same_node)
|
117
116
|
nodes_to_a(nodes).all? { |node| same_node[:authority] == node[:authority] || (lcsh_or_naf?(same_node) && lcsh_or_naf?(node)) }
|
118
117
|
end
|
119
|
-
# rubocop:enable Naming/PredicateName
|
120
118
|
|
121
119
|
def lcsh_or_naf?(node)
|
122
120
|
%w[lcsh naf].include?(node[:authority])
|
@@ -136,7 +134,6 @@ module Cocina
|
|
136
134
|
end
|
137
135
|
|
138
136
|
# rubocop:disable Naming/MethodName
|
139
|
-
# rubocop:disable Naming/PredicateName
|
140
137
|
def has_authorityURI?(nodes)
|
141
138
|
nodes_to_a(nodes).all? { |node| node[:authorityURI] }
|
142
139
|
end
|
@@ -156,9 +153,8 @@ module Cocina
|
|
156
153
|
def add_valueURI(nodes, from_node)
|
157
154
|
nodes_to_a(nodes).each { |node| node[:valueURI] = from_node[:valueURI] }
|
158
155
|
end
|
159
|
-
# rubocop:enable Naming/MethodName
|
160
|
-
# rubocop:enable Naming/PredicateName
|
161
156
|
|
157
|
+
# rubocop:enable Naming/MethodName
|
162
158
|
def nodes_to_a(nodes)
|
163
159
|
nodes.is_a?(Nokogiri::XML::NodeSet) ? nodes : [nodes]
|
164
160
|
end
|
@@ -10,14 +10,10 @@ module Cocina
|
|
10
10
|
'https://cocina.sul.stanford.edu/models/resources/document',
|
11
11
|
'https://cocina.sul.stanford.edu/models/resources/file',
|
12
12
|
'https://cocina.sul.stanford.edu/models/resources/image',
|
13
|
-
'https://cocina.sul.stanford.edu/models/resources/main-augmented',
|
14
|
-
'https://cocina.sul.stanford.edu/models/resources/main-original',
|
15
13
|
'https://cocina.sul.stanford.edu/models/resources/media',
|
16
14
|
'https://cocina.sul.stanford.edu/models/resources/object',
|
17
15
|
'https://cocina.sul.stanford.edu/models/resources/page',
|
18
|
-
'https://cocina.sul.stanford.edu/models/resources/permissions',
|
19
16
|
'https://cocina.sul.stanford.edu/models/resources/preview',
|
20
|
-
'https://cocina.sul.stanford.edu/models/resources/supplement',
|
21
17
|
'https://cocina.sul.stanford.edu/models/resources/3d',
|
22
18
|
'https://cocina.sul.stanford.edu/models/resources/thumb',
|
23
19
|
'https://cocina.sul.stanford.edu/models/resources/video'].freeze
|
data/lib/cocina/models.rb
CHANGED
@@ -23,6 +23,7 @@ class CocinaModelsInflector < Zeitwerk::Inflector
|
|
23
23
|
'dro' => 'DRO',
|
24
24
|
'request_dro' => 'RequestDRO',
|
25
25
|
'dro_access' => 'DROAccess',
|
26
|
+
'dro_lite' => 'DROLite',
|
26
27
|
'dro_structural' => 'DROStructural',
|
27
28
|
'dro_with_metadata' => 'DROWithMetadata',
|
28
29
|
'request_dro_structural' => 'RequestDROStructural',
|
@@ -75,6 +76,8 @@ module Cocina
|
|
75
76
|
end
|
76
77
|
# rubocop:enable Naming/MethodName
|
77
78
|
|
79
|
+
METADATA_KEYS = %i[created modified lock].freeze
|
80
|
+
|
78
81
|
# @param [Hash] dyn a ruby hash representation of the JSON serialization of a collection or DRO
|
79
82
|
# @param [boolean] validate
|
80
83
|
# @return [DRO,Collection,AdminPolicy]
|
@@ -84,11 +87,11 @@ module Cocina
|
|
84
87
|
def self.build(dyn, validate: true)
|
85
88
|
clazz = case type_for(dyn)
|
86
89
|
when *DRO::TYPES
|
87
|
-
DRO
|
90
|
+
has_metadata?(dyn) ? DROWithMetadata : DRO
|
88
91
|
when *Collection::TYPES
|
89
|
-
Collection
|
92
|
+
has_metadata?(dyn) ? ColectionWithMetadata : Collection
|
90
93
|
when *AdminPolicy::TYPES
|
91
|
-
AdminPolicy
|
94
|
+
has_metadata?(dyn) ? AdminPolicyWithMetadata : AdminPolicy
|
92
95
|
else
|
93
96
|
raise UnknownTypeError, "Unknown type: '#{dyn.with_indifferent_access.fetch('type')}'"
|
94
97
|
end
|
@@ -115,11 +118,36 @@ module Cocina
|
|
115
118
|
clazz.new(dyn, false, validate)
|
116
119
|
end
|
117
120
|
|
121
|
+
# Build "lite" versions of DROs, Collections, and AdminPolicies.
|
122
|
+
# Lite versions do not require attributes that are required in the normal versions.
|
123
|
+
# For example, "description" is required for a DRO, but optional for a DROLite.
|
124
|
+
# Lite versions also are not validated / validatable.
|
125
|
+
# Lite versions are useful for instantiating partially populated cocina objects similar to an
|
126
|
+
# ActiveRecord instantiated using .select (See https://guides.rubyonrails.org/active_record_querying.html#selecting-specific-fields)
|
127
|
+
# @param [Hash] dyn a ruby hash representation of the JSON serialization of a Collection, DRO, or AdminPolicy
|
128
|
+
# @return [DROLite,CollectionLite,AdminPolicyLite]
|
129
|
+
# @raises [UnknownTypeError] if a valid type is not found in the data
|
130
|
+
# @raises [ValidationError] if a type field cannot be found in the data
|
131
|
+
def self.build_lite(dyn)
|
132
|
+
clazz = case type_for(dyn)
|
133
|
+
when *DRO::TYPES
|
134
|
+
DROLite
|
135
|
+
when *Collection::TYPES
|
136
|
+
CollectionLite
|
137
|
+
when *AdminPolicy::TYPES
|
138
|
+
AdminPolicyLite
|
139
|
+
else
|
140
|
+
raise UnknownTypeError, "Unknown type: '#{dyn.with_indifferent_access.fetch('type')}'"
|
141
|
+
end
|
142
|
+
# dyn for lite may contain extra keys
|
143
|
+
clazz.new(dyn.with_indifferent_access.slice(*clazz.attribute_names))
|
144
|
+
end
|
145
|
+
|
118
146
|
# Coerces DROWithMetadata, CollectionWithMetadata, AdminPolicyWithMetadata to DRO, Collection, AdminPolicy
|
119
147
|
# @param [DROWithMetadata,CollectionWithMetadata,AdminPolicyWithMetadata] cocina_object
|
120
148
|
# @return [DRO,Collection,AdminPolicy]
|
121
149
|
def self.without_metadata(cocina_object)
|
122
|
-
build(cocina_object.to_h.except(
|
150
|
+
build(cocina_object.to_h.except(*METADATA_KEYS), validate: false)
|
123
151
|
end
|
124
152
|
|
125
153
|
# Adds metadata to a DRO, Collection, AdminPolicy
|
@@ -158,6 +186,13 @@ module Cocina
|
|
158
186
|
end
|
159
187
|
private_class_method :type_for
|
160
188
|
|
189
|
+
def self.has_metadata?(dyn)
|
190
|
+
# Intentionally checking both string- and symbol-type keys in the hash via `#[]`
|
191
|
+
# instead of `#with_indifferent_access` (and/or `#fetch`) in order to be more memory-efficient
|
192
|
+
METADATA_KEYS.any? { |key| dyn[key] || dyn[key.to_s] }
|
193
|
+
end
|
194
|
+
private_class_method :has_metadata?
|
195
|
+
|
161
196
|
def self.druid_regex
|
162
197
|
@druid_regex ||= begin
|
163
198
|
str = Openapi3Parser.load_file('openapi.yml').components.schemas['Druid'].pattern
|
@@ -15,10 +15,13 @@ module Cocina
|
|
15
15
|
SUPPORTED_TYPES = %i[
|
16
16
|
admin_policy
|
17
17
|
admin_policy_with_metadata
|
18
|
+
admin_policy_lite
|
18
19
|
collection
|
19
20
|
collection_with_metadata
|
21
|
+
collection_lite
|
20
22
|
dro
|
21
23
|
dro_with_metadata
|
24
|
+
dro_lite
|
22
25
|
request_admin_policy
|
23
26
|
request_collection
|
24
27
|
request_dro
|
@@ -88,6 +91,10 @@ module Cocina
|
|
88
91
|
Cocina::Models.build(build_dro_properties(**DRO_DEFAULTS.merge(attributes)))
|
89
92
|
end
|
90
93
|
|
94
|
+
def self.build_dro_lite(attributes)
|
95
|
+
Cocina::Models.build_lite(build_dro_properties(**DRO_DEFAULTS.merge(attributes)))
|
96
|
+
end
|
97
|
+
|
91
98
|
# rubocop:disable Metrics/ParameterLists
|
92
99
|
def self.build_request_dro_properties(type:, version:, label:, title:, source_id:, admin_policy_id:,
|
93
100
|
barcode: nil, catkeys: [], folio_instance_hrids: [], collection_ids: [])
|
@@ -166,6 +173,10 @@ module Cocina
|
|
166
173
|
Cocina::Models.build(build_collection_properties(**COLLECTION_DEFAULTS.merge(attributes)))
|
167
174
|
end
|
168
175
|
|
176
|
+
def self.build_collection_lite(attributes)
|
177
|
+
Cocina::Models.build_lite(build_collection_properties(**COLLECTION_DEFAULTS.merge(attributes)))
|
178
|
+
end
|
179
|
+
|
169
180
|
def self.build_request_collection(attributes)
|
170
181
|
Cocina::Models.build_request(build_request_collection_properties(**REQUEST_COLLECTION_DEFAULTS.merge(attributes)))
|
171
182
|
end
|
@@ -174,6 +185,10 @@ module Cocina
|
|
174
185
|
Cocina::Models.build(build_admin_policy_properties(**ADMIN_POLICY_DEFAULTS.merge(attributes)))
|
175
186
|
end
|
176
187
|
|
188
|
+
def self.build_admin_policy_lite(attributes)
|
189
|
+
Cocina::Models.build_lite(build_admin_policy_properties(**ADMIN_POLICY_DEFAULTS.merge(attributes)))
|
190
|
+
end
|
191
|
+
|
177
192
|
def self.build_request_admin_policy(attributes)
|
178
193
|
Cocina::Models.build_request(build_request_admin_policy_properties(**REQUEST_ADMIN_POLICY_DEFAULTS.merge(attributes)))
|
179
194
|
end
|
data/openapi.yml
CHANGED
@@ -1109,14 +1109,10 @@ components:
|
|
1109
1109
|
- 'https://cocina.sul.stanford.edu/models/resources/document'
|
1110
1110
|
- 'https://cocina.sul.stanford.edu/models/resources/file'
|
1111
1111
|
- 'https://cocina.sul.stanford.edu/models/resources/image'
|
1112
|
-
- 'https://cocina.sul.stanford.edu/models/resources/main-augmented'
|
1113
|
-
- 'https://cocina.sul.stanford.edu/models/resources/main-original'
|
1114
1112
|
- 'https://cocina.sul.stanford.edu/models/resources/media'
|
1115
1113
|
- 'https://cocina.sul.stanford.edu/models/resources/object'
|
1116
1114
|
- 'https://cocina.sul.stanford.edu/models/resources/page'
|
1117
|
-
- 'https://cocina.sul.stanford.edu/models/resources/permissions'
|
1118
1115
|
- 'https://cocina.sul.stanford.edu/models/resources/preview'
|
1119
|
-
- 'https://cocina.sul.stanford.edu/models/resources/supplement'
|
1120
1116
|
- 'https://cocina.sul.stanford.edu/models/resources/3d'
|
1121
1117
|
- 'https://cocina.sul.stanford.edu/models/resources/thumb'
|
1122
1118
|
- 'https://cocina.sul.stanford.edu/models/resources/video'
|
@@ -1813,14 +1809,10 @@ components:
|
|
1813
1809
|
- 'https://cocina.sul.stanford.edu/models/resources/document'
|
1814
1810
|
- 'https://cocina.sul.stanford.edu/models/resources/file'
|
1815
1811
|
- 'https://cocina.sul.stanford.edu/models/resources/image'
|
1816
|
-
- 'https://cocina.sul.stanford.edu/models/resources/main-augmented'
|
1817
|
-
- 'https://cocina.sul.stanford.edu/models/resources/main-original'
|
1818
1812
|
- 'https://cocina.sul.stanford.edu/models/resources/media'
|
1819
1813
|
- 'https://cocina.sul.stanford.edu/models/resources/object'
|
1820
1814
|
- 'https://cocina.sul.stanford.edu/models/resources/page'
|
1821
|
-
- 'https://cocina.sul.stanford.edu/models/resources/permissions'
|
1822
1815
|
- 'https://cocina.sul.stanford.edu/models/resources/preview'
|
1823
|
-
- 'https://cocina.sul.stanford.edu/models/resources/supplement'
|
1824
1816
|
- 'https://cocina.sul.stanford.edu/models/resources/3d'
|
1825
1817
|
- 'https://cocina.sul.stanford.edu/models/resources/thumb'
|
1826
1818
|
- 'https://cocina.sul.stanford.edu/models/resources/video'
|
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.91.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: 2023-
|
11
|
+
date: 2023-09-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -140,20 +140,14 @@ dependencies:
|
|
140
140
|
name: openapi_parser
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
142
142
|
requirements:
|
143
|
-
- - "
|
144
|
-
- !ruby/object:Gem::Version
|
145
|
-
version: 0.11.1
|
146
|
-
- - "<"
|
143
|
+
- - "~>"
|
147
144
|
- !ruby/object:Gem::Version
|
148
145
|
version: '1.0'
|
149
146
|
type: :runtime
|
150
147
|
prerelease: false
|
151
148
|
version_requirements: !ruby/object:Gem::Requirement
|
152
149
|
requirements:
|
153
|
-
- - "
|
154
|
-
- !ruby/object:Gem::Version
|
155
|
-
version: 0.11.1
|
156
|
-
- - "<"
|
150
|
+
- - "~>"
|
157
151
|
- !ruby/object:Gem::Version
|
158
152
|
version: '1.0'
|
159
153
|
- !ruby/object:Gem::Dependency
|
@@ -367,6 +361,7 @@ files:
|
|
367
361
|
- lib/cocina/models/admin_policy.rb
|
368
362
|
- lib/cocina/models/admin_policy_access_template.rb
|
369
363
|
- lib/cocina/models/admin_policy_administrative.rb
|
364
|
+
- lib/cocina/models/admin_policy_lite.rb
|
370
365
|
- lib/cocina/models/admin_policy_with_metadata.rb
|
371
366
|
- lib/cocina/models/administrative.rb
|
372
367
|
- lib/cocina/models/applies_to.rb
|
@@ -384,6 +379,7 @@ files:
|
|
384
379
|
- lib/cocina/models/collection.rb
|
385
380
|
- lib/cocina/models/collection_access.rb
|
386
381
|
- lib/cocina/models/collection_identification.rb
|
382
|
+
- lib/cocina/models/collection_lite.rb
|
387
383
|
- lib/cocina/models/collection_with_metadata.rb
|
388
384
|
- lib/cocina/models/contributor.rb
|
389
385
|
- lib/cocina/models/controlled_digital_lending_access.rb
|
@@ -407,6 +403,7 @@ files:
|
|
407
403
|
- lib/cocina/models/doi_pattern.rb
|
408
404
|
- lib/cocina/models/dro.rb
|
409
405
|
- lib/cocina/models/dro_access.rb
|
406
|
+
- lib/cocina/models/dro_lite.rb
|
410
407
|
- lib/cocina/models/dro_structural.rb
|
411
408
|
- lib/cocina/models/dro_with_metadata.rb
|
412
409
|
- lib/cocina/models/druid.rb
|
@@ -533,7 +530,7 @@ homepage: https://github.com/sul-dlss/cocina-models
|
|
533
530
|
licenses: []
|
534
531
|
metadata:
|
535
532
|
rubygems_mfa_required: 'true'
|
536
|
-
post_install_message:
|
533
|
+
post_install_message:
|
537
534
|
rdoc_options: []
|
538
535
|
require_paths:
|
539
536
|
- lib
|
@@ -549,7 +546,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
549
546
|
version: '0'
|
550
547
|
requirements: []
|
551
548
|
rubygems_version: 3.3.7
|
552
|
-
signing_key:
|
549
|
+
signing_key:
|
553
550
|
specification_version: 4
|
554
551
|
summary: Data models for the SDR
|
555
552
|
test_files: []
|