cocina-models 0.40.1 → 0.44.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.github/pull_request_template.md +2 -3
- data/.rubocop.yml +87 -78
- data/README.md +3 -0
- data/lib/cocina/generator/generator.rb +2 -2
- data/lib/cocina/models/access.rb +0 -2
- data/lib/cocina/models/description.rb +2 -1
- data/lib/cocina/models/descriptive_access_metadata.rb +1 -0
- data/lib/cocina/models/descriptive_basic_value.rb +1 -0
- data/lib/cocina/models/descriptive_geographic_metadata.rb +10 -0
- data/lib/cocina/models/descriptive_value.rb +1 -0
- data/lib/cocina/models/descriptive_value_language.rb +2 -0
- data/lib/cocina/models/event.rb +3 -0
- data/lib/cocina/models/language.rb +15 -17
- data/lib/cocina/models/message_digest.rb +1 -1
- data/lib/cocina/models/related_resource.rb +9 -0
- data/lib/cocina/models/source.rb +2 -0
- data/lib/cocina/models/standard.rb +2 -0
- data/lib/cocina/models/{descriptive_value_required.rb → title.rb} +2 -1
- data/lib/cocina/models/version.rb +1 -1
- data/openapi.yml +128 -27
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b11ea0c5efe76fc9a4a59bc70e4c60e7c25c8a97491259687ae63899c45f5e2e
|
4
|
+
data.tar.gz: 2edc2ee62490fbf0c0cf29942cc1820d7bdfbd28e0cddb39db8df1753e6e64b0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 822ff54e876a9c4384dc9f7530a2ab9bd11b86e21cf4e7d426f5975dbf98ac8f387968a45e0ea1afae57a2d5a72283b8af71a8ab0776e45c81f24f9fa26c4160
|
7
|
+
data.tar.gz: c88924f5de3c54a11c026864df8713eabf89693f51a3cd789c6e92d6a15618a0ba7ee725d0c742de9480de2f7fee8ece3a5c8b7ffac2e08fe381a53654ced9b0
|
data/.rubocop.yml
CHANGED
@@ -7,139 +7,148 @@ require:
|
|
7
7
|
AllCops:
|
8
8
|
TargetRubyVersion: 2.5
|
9
9
|
|
10
|
+
# ----- Layout ------
|
11
|
+
|
10
12
|
Layout/LineLength:
|
11
13
|
Max: 114
|
12
14
|
Exclude:
|
13
15
|
- lib/cocina/models/*
|
14
16
|
|
15
|
-
|
16
|
-
|
17
|
-
- cocina-models.gemspec
|
18
|
-
- spec/cocina/**/*
|
19
|
-
|
20
|
-
Metrics/MethodLength:
|
21
|
-
Max: 14
|
22
|
-
|
23
|
-
RSpec/MultipleExpectations:
|
24
|
-
Enabled: false
|
25
|
-
|
26
|
-
RSpec/ExampleLength:
|
27
|
-
Max: 18
|
28
|
-
Exclude:
|
29
|
-
- spec/cocina/models/description_spec.rb
|
30
|
-
- spec/cocina/models/dro_shared_examples.rb
|
31
|
-
|
32
|
-
Style/Documentation:
|
33
|
-
Exclude:
|
34
|
-
- lib/cocina/models/*
|
35
|
-
|
17
|
+
Layout/BeginEndAlignment: # (new in 0.91)
|
18
|
+
Enabled: true
|
36
19
|
Layout/EmptyLinesAroundAttributeAccessor:
|
37
20
|
Enabled: true
|
38
|
-
|
39
21
|
Layout/SpaceAroundMethodCallOperator:
|
40
22
|
Enabled: true
|
41
23
|
|
24
|
+
# ----- Lint ------
|
25
|
+
|
26
|
+
Lint/BinaryOperatorWithIdenticalOperands:
|
27
|
+
Enabled: true
|
28
|
+
Lint/ConstantDefinitionInBlock: # (new in 0.91)
|
29
|
+
Enabled: true
|
42
30
|
Lint/DeprecatedOpenSSLConstant:
|
43
31
|
Enabled: true
|
44
|
-
|
45
|
-
Lint/MixedRegexpCaptureTypes:
|
32
|
+
Lint/DuplicateElsifCondition:
|
46
33
|
Enabled: true
|
47
|
-
|
48
|
-
Lint/RaiseException:
|
34
|
+
Lint/DuplicateRequire: # (new in 0.90)
|
49
35
|
Enabled: true
|
50
|
-
|
51
|
-
Lint/StructNewOverride:
|
36
|
+
Lint/DuplicateRescueException:
|
52
37
|
Enabled: true
|
53
|
-
|
54
|
-
Style/AccessorGrouping:
|
38
|
+
Lint/EmptyConditionalBody:
|
55
39
|
Enabled: true
|
56
|
-
|
57
|
-
Style/BisectedAttrAccessor:
|
40
|
+
Lint/EmptyFile: # (new in 0.90)
|
58
41
|
Enabled: true
|
59
|
-
|
60
|
-
Style/ExponentialNotation:
|
42
|
+
Lint/FloatComparison:
|
61
43
|
Enabled: true
|
62
|
-
|
63
|
-
Style/HashEachMethods:
|
44
|
+
Lint/HashCompareByIdentity: # (new in 0.93)
|
64
45
|
Enabled: true
|
65
|
-
|
66
|
-
Style/HashTransformKeys:
|
46
|
+
Lint/IdentityComparison: # (new in 0.91)
|
67
47
|
Enabled: true
|
68
|
-
|
69
|
-
Style/HashTransformValues:
|
48
|
+
Lint/MissingSuper:
|
70
49
|
Enabled: true
|
71
|
-
|
72
|
-
Style/RedundantAssignment:
|
50
|
+
Lint/MixedRegexpCaptureTypes:
|
73
51
|
Enabled: true
|
74
|
-
|
75
|
-
Style/RedundantFetchBlock:
|
52
|
+
Lint/OutOfRangeRegexpRef:
|
76
53
|
Enabled: true
|
77
|
-
|
78
|
-
Style/RedundantRegexpCharacterClass:
|
54
|
+
Lint/RaiseException:
|
79
55
|
Enabled: true
|
80
|
-
|
81
|
-
Style/RedundantRegexpEscape:
|
56
|
+
Lint/RedundantSafeNavigation: # (new in 0.93)
|
82
57
|
Enabled: true
|
83
|
-
|
84
|
-
Style/SlicingWithRange:
|
58
|
+
Lint/SelfAssignment:
|
85
59
|
Enabled: true
|
86
|
-
|
87
|
-
Lint/BinaryOperatorWithIdenticalOperands:
|
60
|
+
Lint/StructNewOverride:
|
88
61
|
Enabled: true
|
89
|
-
|
90
|
-
Lint/DuplicateElsifCondition:
|
62
|
+
Lint/TopLevelReturnWithArgument:
|
91
63
|
Enabled: true
|
92
|
-
|
93
|
-
Lint/DuplicateRescueException:
|
64
|
+
Lint/TrailingCommaInAttributeDeclaration: # (new in 0.90)
|
94
65
|
Enabled: true
|
95
|
-
|
96
|
-
Lint/EmptyConditionalBody:
|
66
|
+
Lint/UnreachableLoop:
|
97
67
|
Enabled: true
|
98
|
-
|
99
|
-
Lint/FloatComparison:
|
68
|
+
Lint/UselessMethodDefinition: # (new in 0.90)
|
100
69
|
Enabled: true
|
101
|
-
|
102
|
-
Lint/MissingSuper:
|
70
|
+
Lint/UselessTimes: # (new in 0.91)
|
103
71
|
Enabled: true
|
104
72
|
|
105
|
-
|
106
|
-
Enabled: true
|
73
|
+
# ----- Metrics ------
|
107
74
|
|
108
|
-
|
109
|
-
|
75
|
+
Metrics/BlockLength:
|
76
|
+
Exclude:
|
77
|
+
- cocina-models.gemspec
|
78
|
+
- spec/cocina/**/*
|
110
79
|
|
111
|
-
|
112
|
-
|
80
|
+
Metrics/MethodLength:
|
81
|
+
Max: 14
|
113
82
|
|
114
|
-
|
83
|
+
# ----- RSpec ------
|
84
|
+
|
85
|
+
RSpec/ExampleLength:
|
86
|
+
Max: 18
|
87
|
+
Exclude:
|
88
|
+
- spec/cocina/models/description_spec.rb
|
89
|
+
- spec/cocina/models/dro_shared_examples.rb
|
90
|
+
|
91
|
+
RSpec/MultipleExpectations:
|
92
|
+
Enabled: false
|
93
|
+
|
94
|
+
RSpec/StubbedMock: # (new in 1.44)
|
115
95
|
Enabled: true
|
116
96
|
|
97
|
+
# ----- Style ------
|
98
|
+
|
99
|
+
Style/Documentation:
|
100
|
+
Exclude:
|
101
|
+
- lib/cocina/models/*
|
102
|
+
|
103
|
+
Style/AccessorGrouping:
|
104
|
+
Enabled: true
|
117
105
|
Style/ArrayCoercion:
|
118
106
|
Enabled: true
|
119
|
-
|
107
|
+
Style/BisectedAttrAccessor:
|
108
|
+
Enabled: true
|
120
109
|
Style/CaseLikeIf:
|
121
110
|
Enabled: true
|
122
|
-
|
111
|
+
Style/ClassEqualityComparison: # (new in 0.93)
|
112
|
+
Enabled: true
|
113
|
+
Style/CombinableLoops: # (new in 0.90)
|
114
|
+
Enabled: true
|
123
115
|
Style/ExplicitBlockArgument:
|
124
116
|
Enabled: true
|
125
|
-
|
117
|
+
Style/ExponentialNotation:
|
118
|
+
Enabled: true
|
126
119
|
Style/GlobalStdStream:
|
127
120
|
Enabled: true
|
128
|
-
|
129
121
|
Style/HashAsLastArrayItem:
|
130
122
|
Enabled: true
|
131
|
-
|
123
|
+
Style/HashEachMethods:
|
124
|
+
Enabled: true
|
132
125
|
Style/HashLikeCase:
|
133
126
|
Enabled: true
|
134
|
-
|
127
|
+
Style/HashTransformKeys:
|
128
|
+
Enabled: true
|
129
|
+
Style/HashTransformValues:
|
130
|
+
Enabled: true
|
131
|
+
Style/KeywordParametersOrder: # (new in 0.90)
|
132
|
+
Enabled: true
|
135
133
|
Style/OptionalBooleanParameter:
|
136
134
|
Enabled: false
|
137
|
-
|
135
|
+
Style/RedundantAssignment:
|
136
|
+
Enabled: true
|
137
|
+
Style/RedundantFetchBlock:
|
138
|
+
Enabled: true
|
138
139
|
Style/RedundantFileExtensionInRequire:
|
139
140
|
Enabled: true
|
140
|
-
|
141
|
+
Style/RedundantRegexpCharacterClass:
|
142
|
+
Enabled: true
|
143
|
+
Style/RedundantRegexpEscape:
|
144
|
+
Enabled: true
|
145
|
+
Style/RedundantSelfAssignment: # (new in 0.90)
|
146
|
+
Enabled: true
|
141
147
|
Style/SingleArgumentDig:
|
142
148
|
Enabled: true
|
143
|
-
|
149
|
+
Style/SlicingWithRange:
|
150
|
+
Enabled: true
|
151
|
+
Style/SoleNestedConditional: # (new in 0.89)
|
152
|
+
Enabled: true
|
144
153
|
Style/StringConcatenation:
|
145
154
|
Enabled: true
|
data/README.md
CHANGED
@@ -52,6 +52,9 @@ Once the above listed gems are updated all the following services that use cocin
|
|
52
52
|
* sul-dlss/common-accessioning
|
53
53
|
* sul-dlss/argo
|
54
54
|
* sul-dlss/pre-assembly
|
55
|
+
* sul-dlss/hydrus
|
56
|
+
* sul-dlss/happy-heron
|
57
|
+
* sul-dlss/infrastructure-integration-test
|
55
58
|
|
56
59
|
## Using this gem
|
57
60
|
|
@@ -45,7 +45,7 @@ module Cocina
|
|
45
45
|
FileUtils.rm_f(filepath)
|
46
46
|
|
47
47
|
create_file filepath, vocab.generate
|
48
|
-
run("rubocop -a #{filepath}")
|
48
|
+
run("rubocop -a #{filepath} > /dev/null")
|
49
49
|
end
|
50
50
|
|
51
51
|
private
|
@@ -71,7 +71,7 @@ module Cocina
|
|
71
71
|
FileUtils.rm_f(filepath)
|
72
72
|
|
73
73
|
create_file filepath, schema.generate
|
74
|
-
run("rubocop -a #{filepath}")
|
74
|
+
run("rubocop -a #{filepath} > /dev/null")
|
75
75
|
end
|
76
76
|
|
77
77
|
def clean_output
|
data/lib/cocina/models/access.rb
CHANGED
@@ -5,8 +5,6 @@ module Cocina
|
|
5
5
|
class Access < Struct
|
6
6
|
# Access level
|
7
7
|
attribute :access, Types::Strict::String.default('dark').enum('world', 'stanford', 'location-based', 'citation-only', 'dark').meta(omittable: true)
|
8
|
-
# Download access level for a file
|
9
|
-
attribute :download, Types::Strict::String.default('none').enum('world', 'stanford', 'location-based', 'none').meta(omittable: true)
|
10
8
|
# If access is "location-based", which location should have access.
|
11
9
|
attribute :readLocation, Types::Strict::String.enum('spec', 'music', 'ars', 'art', 'hoover', 'm&m').meta(omittable: true)
|
12
10
|
end
|
@@ -3,10 +3,11 @@
|
|
3
3
|
module Cocina
|
4
4
|
module Models
|
5
5
|
class Description < Struct
|
6
|
-
attribute :title, Types::Strict::Array.of(
|
6
|
+
attribute :title, Types::Strict::Array.of(Title).default([].freeze)
|
7
7
|
attribute :contributor, Types::Strict::Array.of(Contributor).meta(omittable: true)
|
8
8
|
attribute :event, Types::Strict::Array.of(Event).meta(omittable: true)
|
9
9
|
attribute :form, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
10
|
+
attribute :geographic, Types::Strict::Array.of(DescriptiveGeographicMetadata).meta(omittable: true)
|
10
11
|
attribute :language, Types::Strict::Array.of(Language).meta(omittable: true)
|
11
12
|
attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
12
13
|
attribute :identifier, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
@@ -5,6 +5,7 @@ module Cocina
|
|
5
5
|
class DescriptiveAccessMetadata < Struct
|
6
6
|
attribute :url, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
7
7
|
attribute :physicalLocation, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
8
|
+
attribute :digitalLocation, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
8
9
|
attribute :accessContact, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
9
10
|
attribute :digitalRepository, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
10
11
|
attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
@@ -17,6 +17,7 @@ module Cocina
|
|
17
17
|
attribute :uri, Types::Strict::String.meta(omittable: true)
|
18
18
|
attribute :standard, Standard.optional.meta(omittable: true)
|
19
19
|
attribute :encoding, Standard.optional.meta(omittable: true)
|
20
|
+
attribute :identifier, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
20
21
|
attribute :source, Source.optional.meta(omittable: true)
|
21
22
|
# The preferred display label to use for the descriptive element in access systems.
|
22
23
|
attribute :displayLabel, Types::Strict::String.meta(omittable: true)
|
@@ -0,0 +1,10 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
module Cocina
|
4
|
+
module Models
|
5
|
+
class DescriptiveGeographicMetadata < Struct
|
6
|
+
attribute :form, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
7
|
+
attribute :subject, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
8
|
+
end
|
9
|
+
end
|
10
|
+
end
|
@@ -17,6 +17,7 @@ module Cocina
|
|
17
17
|
attribute :uri, Types::Strict::String.meta(omittable: true)
|
18
18
|
attribute :standard, Standard.optional.meta(omittable: true)
|
19
19
|
attribute :encoding, Standard.optional.meta(omittable: true)
|
20
|
+
attribute :identifier, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
20
21
|
attribute :source, Source.optional.meta(omittable: true)
|
21
22
|
# The preferred display label to use for the descriptive element in access systems.
|
22
23
|
attribute :displayLabel, Types::Strict::String.meta(omittable: true)
|
@@ -10,6 +10,8 @@ module Cocina
|
|
10
10
|
# String describing the standard or encoding.
|
11
11
|
attribute :value, Types::Strict::String.meta(omittable: true)
|
12
12
|
attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
13
|
+
# The version of the standard or encoding.
|
14
|
+
attribute :version, Types::Strict::String.meta(omittable: true)
|
13
15
|
attribute :source, Source.optional.meta(omittable: true)
|
14
16
|
attribute :valueScript, Standard.optional.meta(omittable: true)
|
15
17
|
end
|
data/lib/cocina/models/event.rb
CHANGED
@@ -6,9 +6,12 @@ module Cocina
|
|
6
6
|
attribute :structuredValue, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
7
7
|
# Description of the event (creation, publication, etc.).
|
8
8
|
attribute :type, Types::Strict::String.meta(omittable: true)
|
9
|
+
# The preferred display label to use for the event in access systems.
|
10
|
+
attribute :displayLabel, Types::Strict::String.meta(omittable: true)
|
9
11
|
attribute :date, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
10
12
|
attribute :contributor, Types::Strict::Array.of(Contributor).meta(omittable: true)
|
11
13
|
attribute :location, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
14
|
+
attribute :identifier, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
12
15
|
attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
13
16
|
end
|
14
17
|
end
|
@@ -3,29 +3,27 @@
|
|
3
3
|
module Cocina
|
4
4
|
module Models
|
5
5
|
class Language < Struct
|
6
|
-
attribute :
|
7
|
-
attribute :parallelValue, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
8
|
-
# String or integer value of the descriptive element.
|
9
|
-
attribute :value, Types::Nominal::Any.meta(omittable: true)
|
10
|
-
# Type of value provided by the descriptive element.
|
11
|
-
attribute :type, Types::Strict::String.meta(omittable: true)
|
12
|
-
# Status of the descriptive element value relative to other instances of the element.
|
13
|
-
attribute :status, Types::Strict::String.meta(omittable: true)
|
6
|
+
attribute :appliesTo, Types::Strict::Array.of(DescriptiveBasicValue).meta(omittable: true)
|
14
7
|
# Code value of the descriptive element.
|
15
8
|
attribute :code, Types::Strict::String.meta(omittable: true)
|
16
|
-
# URI value of the descriptive element.
|
17
|
-
attribute :uri, Types::Strict::String.meta(omittable: true)
|
18
|
-
attribute :standard, Standard.optional.meta(omittable: true)
|
19
|
-
attribute :encoding, Standard.optional.meta(omittable: true)
|
20
|
-
attribute :source, Source.optional.meta(omittable: true)
|
21
9
|
# The preferred display label to use for the descriptive element in access systems.
|
22
10
|
attribute :displayLabel, Types::Strict::String.meta(omittable: true)
|
23
|
-
|
24
|
-
attribute :qualifier, Types::Strict::String.meta(omittable: true)
|
11
|
+
attribute :encoding, Standard.optional.meta(omittable: true)
|
25
12
|
attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
26
|
-
attribute :
|
27
|
-
|
13
|
+
attribute :parallelValue, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
14
|
+
# present for mapping to additional schemas in the future and for consistency but not otherwise used
|
15
|
+
attribute :qualifier, Types::Strict::String.meta(omittable: true)
|
28
16
|
attribute :script, DescriptiveValue.optional.meta(omittable: true)
|
17
|
+
attribute :source, Source.optional.meta(omittable: true)
|
18
|
+
# Status of the language relative to other parallel language elements (e.g. the primary language)
|
19
|
+
attribute :status, Types::Strict::String.enum('primary').meta(omittable: true)
|
20
|
+
attribute :standard, Standard.optional.meta(omittable: true)
|
21
|
+
attribute :structuredValue, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
22
|
+
# URI value of the descriptive element.
|
23
|
+
attribute :uri, Types::Strict::String.meta(omittable: true)
|
24
|
+
# Value of the descriptive element.
|
25
|
+
attribute :value, Types::Strict::String.meta(omittable: true)
|
26
|
+
attribute :valueLanguage, DescriptiveValueLanguage.optional.meta(omittable: true)
|
29
27
|
end
|
30
28
|
end
|
31
29
|
end
|
@@ -5,6 +5,10 @@ module Cocina
|
|
5
5
|
class RelatedResource < Struct
|
6
6
|
# The relationship of the related resource to the described resource.
|
7
7
|
attribute :type, Types::Strict::String.meta(omittable: true)
|
8
|
+
# Status of the related resource relative to other related resources.
|
9
|
+
attribute :status, Types::Strict::String.meta(omittable: true)
|
10
|
+
# The preferred display label to use for the related resource in access systems.
|
11
|
+
attribute :displayLabel, Types::Strict::String.meta(omittable: true)
|
8
12
|
attribute :title, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
9
13
|
attribute :contributor, Types::Strict::Array.of(Contributor).meta(omittable: true)
|
10
14
|
attribute :event, Types::Strict::Array.of(Event).meta(omittable: true)
|
@@ -12,10 +16,15 @@ module Cocina
|
|
12
16
|
attribute :language, Types::Strict::Array.of(Language).meta(omittable: true)
|
13
17
|
attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
14
18
|
attribute :identifier, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
19
|
+
attribute :standard, Standard.optional.meta(omittable: true)
|
15
20
|
attribute :subject, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
16
21
|
# Stanford persistent URL associated with the related resource.
|
17
22
|
attribute :purl, Types::Strict::String.meta(omittable: true)
|
18
23
|
attribute :access, DescriptiveAccessMetadata.optional.meta(omittable: true)
|
24
|
+
attribute :relatedResource, Types::Strict::Array.of(RelatedResource).meta(omittable: true)
|
25
|
+
attribute :adminMetadata, DescriptiveAdminMetadata.optional.meta(omittable: true)
|
26
|
+
# The version of the related resource.
|
27
|
+
attribute :version, Types::Strict::String.meta(omittable: true)
|
19
28
|
end
|
20
29
|
end
|
21
30
|
end
|
data/lib/cocina/models/source.rb
CHANGED
@@ -10,6 +10,8 @@ module Cocina
|
|
10
10
|
# String describing the value source.
|
11
11
|
attribute :value, Types::Strict::String.meta(omittable: true)
|
12
12
|
attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
13
|
+
# The version of the value source.
|
14
|
+
attribute :version, Types::Strict::String.meta(omittable: true)
|
13
15
|
end
|
14
16
|
end
|
15
17
|
end
|
@@ -10,6 +10,8 @@ module Cocina
|
|
10
10
|
# String describing the standard or encoding.
|
11
11
|
attribute :value, Types::Strict::String.meta(omittable: true)
|
12
12
|
attribute :note, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
13
|
+
# The version of the standard or encoding.
|
14
|
+
attribute :version, Types::Strict::String.meta(omittable: true)
|
13
15
|
attribute :source, Source.optional.meta(omittable: true)
|
14
16
|
end
|
15
17
|
end
|
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
module Cocina
|
4
4
|
module Models
|
5
|
-
class
|
5
|
+
class Title < Struct
|
6
6
|
attribute :structuredValue, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
7
7
|
attribute :parallelValue, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
8
8
|
# String or integer value of the descriptive element.
|
@@ -17,6 +17,7 @@ module Cocina
|
|
17
17
|
attribute :uri, Types::Strict::String.meta(omittable: true)
|
18
18
|
attribute :standard, Standard.optional.meta(omittable: true)
|
19
19
|
attribute :encoding, Standard.optional.meta(omittable: true)
|
20
|
+
attribute :identifier, Types::Strict::Array.of(DescriptiveValue).meta(omittable: true)
|
20
21
|
attribute :source, Source.optional.meta(omittable: true)
|
21
22
|
# The preferred display label to use for the descriptive element in access systems.
|
22
23
|
attribute :displayLabel, Types::Strict::String.meta(omittable: true)
|
data/openapi.yml
CHANGED
@@ -108,15 +108,6 @@ components:
|
|
108
108
|
- 'citation-only'
|
109
109
|
- 'dark'
|
110
110
|
default: 'dark'
|
111
|
-
download:
|
112
|
-
description: Download access level for a file
|
113
|
-
type: string
|
114
|
-
enum:
|
115
|
-
- 'world'
|
116
|
-
- 'stanford'
|
117
|
-
- 'location-based'
|
118
|
-
- 'none'
|
119
|
-
default: 'none'
|
120
111
|
readLocation:
|
121
112
|
description: If access is "location-based", which location should have access.
|
122
113
|
type: string
|
@@ -295,7 +286,7 @@ components:
|
|
295
286
|
type: array
|
296
287
|
minItems: 1
|
297
288
|
items:
|
298
|
-
$ref: "#/components/schemas/
|
289
|
+
$ref: "#/components/schemas/Title"
|
299
290
|
contributor:
|
300
291
|
description: Agents contributing in some way to the creation and history of the
|
301
292
|
resource.
|
@@ -309,10 +300,15 @@ components:
|
|
309
300
|
$ref: "#/components/schemas/Event"
|
310
301
|
form:
|
311
302
|
description: Characteristics of the resource's physical, digital, and intellectual
|
312
|
-
form and genre.
|
303
|
+
form and genre, and of its process of creation.
|
313
304
|
type: array
|
314
305
|
items:
|
315
306
|
$ref: "#/components/schemas/DescriptiveValue"
|
307
|
+
geographic:
|
308
|
+
description: Geographic description for items with coordinates or bounding boxes.
|
309
|
+
type: array
|
310
|
+
items:
|
311
|
+
$ref: "#/components/schemas/DescriptiveGeographicMetadata"
|
316
312
|
language:
|
317
313
|
description: Languages, scripts, symbolic systems, and notations used in all or
|
318
314
|
part of a resource.
|
@@ -369,6 +365,11 @@ components:
|
|
369
365
|
type: array
|
370
366
|
items:
|
371
367
|
$ref: "#/components/schemas/DescriptiveValue"
|
368
|
+
digitalLocation:
|
369
|
+
description: Location of a digital version of the resource, such as a file path for a born digital resource.
|
370
|
+
type: array
|
371
|
+
items:
|
372
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
372
373
|
accessContact:
|
373
374
|
description: The library, organization, or person responsible for access to the resource.
|
374
375
|
type: array
|
@@ -433,7 +434,10 @@ components:
|
|
433
434
|
description: String or integer value of the descriptive element.
|
434
435
|
oneOf:
|
435
436
|
- type: string
|
436
|
-
|
437
|
+
# Title note (nonsorting character count) was supposed to be able to accept an integer value,
|
438
|
+
# but this triggered a bug in committee:
|
439
|
+
# https://github.com/interagent/committee/issues/286
|
440
|
+
# - type: integer
|
437
441
|
type:
|
438
442
|
description: Type of value provided by the descriptive element.
|
439
443
|
type: string
|
@@ -454,6 +458,11 @@ components:
|
|
454
458
|
encoding:
|
455
459
|
# description: Encoding schema, standard, or syntax to which the value conforms.
|
456
460
|
$ref: "#/components/schemas/Standard"
|
461
|
+
identifier:
|
462
|
+
description: Identifiers and URIs associated with the descriptive element.
|
463
|
+
type: array
|
464
|
+
items:
|
465
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
457
466
|
source:
|
458
467
|
$ref: "#/components/schemas/Source"
|
459
468
|
displayLabel:
|
@@ -469,6 +478,20 @@ components:
|
|
469
478
|
$ref: "#/components/schemas/DescriptiveValue"
|
470
479
|
valueLanguage:
|
471
480
|
$ref: "#/components/schemas/DescriptiveValueLanguage"
|
481
|
+
DescriptiveGeographicMetadata:
|
482
|
+
description: Value model for mods geographic extension metadata
|
483
|
+
type: object
|
484
|
+
additionalProperties: false
|
485
|
+
properties:
|
486
|
+
form:
|
487
|
+
type: array
|
488
|
+
items:
|
489
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
490
|
+
subject:
|
491
|
+
description: Terms associated with the intellectual content of the related resource.
|
492
|
+
type: array
|
493
|
+
items:
|
494
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
472
495
|
DescriptiveParallelValue:
|
473
496
|
description: Value model for multiple representations of the same information (e.g. in different languages).
|
474
497
|
type: object
|
@@ -506,7 +529,7 @@ components:
|
|
506
529
|
$ref: '#/components/schemas/Standard'
|
507
530
|
# description: An alphabet or other notation used to represent a
|
508
531
|
# language or other symbolic system of the descriptive element value.
|
509
|
-
|
532
|
+
Title:
|
510
533
|
type: object
|
511
534
|
additionalProperties: false
|
512
535
|
allOf:
|
@@ -691,6 +714,9 @@ components:
|
|
691
714
|
type:
|
692
715
|
description: Description of the event (creation, publication, etc.).
|
693
716
|
type: string
|
717
|
+
displayLabel:
|
718
|
+
description: The preferred display label to use for the event in access systems.
|
719
|
+
type: string
|
694
720
|
date:
|
695
721
|
description: Dates associated with the event.
|
696
722
|
type: array
|
@@ -706,6 +732,11 @@ components:
|
|
706
732
|
type: array
|
707
733
|
items:
|
708
734
|
$ref: "#/components/schemas/DescriptiveValue"
|
735
|
+
identifier:
|
736
|
+
description: Identifiers and URIs associated with the event.
|
737
|
+
type: array
|
738
|
+
items:
|
739
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
709
740
|
note:
|
710
741
|
description: Other information about the event.
|
711
742
|
type: array
|
@@ -871,17 +902,62 @@ components:
|
|
871
902
|
or part of a resource or its descriptive metadata.
|
872
903
|
type: object
|
873
904
|
additionalProperties: false
|
874
|
-
|
875
|
-
|
876
|
-
|
877
|
-
|
878
|
-
|
879
|
-
|
880
|
-
|
881
|
-
|
882
|
-
|
883
|
-
|
884
|
-
|
905
|
+
properties:
|
906
|
+
appliesTo:
|
907
|
+
type: array
|
908
|
+
items:
|
909
|
+
$ref: "#/components/schemas/DescriptiveBasicValue"
|
910
|
+
code:
|
911
|
+
description: Code value of the descriptive element.
|
912
|
+
type: string
|
913
|
+
displayLabel:
|
914
|
+
description: The preferred display label to use for the descriptive element in access systems.
|
915
|
+
type: string
|
916
|
+
encoding:
|
917
|
+
# description: present for mapping to additional schemas in the future and for consistency but not otherwise used
|
918
|
+
$ref: "#/components/schemas/Standard"
|
919
|
+
note:
|
920
|
+
description: present for mapping to additional schemas in the future and for consistency but not otherwise used
|
921
|
+
type: array
|
922
|
+
items:
|
923
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
924
|
+
parallelValue:
|
925
|
+
description: present for mapping to additional schemas in the future and for consistency but not otherwise used
|
926
|
+
type: array
|
927
|
+
items:
|
928
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
929
|
+
qualifier:
|
930
|
+
type: string
|
931
|
+
description: present for mapping to additional schemas in the future and for consistency but not otherwise used
|
932
|
+
script:
|
933
|
+
$ref: '#/components/schemas/DescriptiveValue'
|
934
|
+
# description: An alphabet or other notation used to represent a
|
935
|
+
# language or other symbolic system associated with the resource.
|
936
|
+
source:
|
937
|
+
$ref: "#/components/schemas/Source"
|
938
|
+
status:
|
939
|
+
description: Status of the language relative to other parallel language elements (e.g. the primary language)
|
940
|
+
type: string
|
941
|
+
enum:
|
942
|
+
- primary
|
943
|
+
standard:
|
944
|
+
# description: present for mapping to additional schemas in the future and for consistency but not otherwise used
|
945
|
+
$ref: "#/components/schemas/Standard"
|
946
|
+
structuredValue:
|
947
|
+
description: present for mapping to additional schemas in the future and for consistency but not otherwise used
|
948
|
+
type: array
|
949
|
+
items:
|
950
|
+
$ref: "#/components/schemas/DescriptiveValue"
|
951
|
+
uri:
|
952
|
+
description: URI value of the descriptive element.
|
953
|
+
type: string
|
954
|
+
format: uri
|
955
|
+
value:
|
956
|
+
description: Value of the descriptive element.
|
957
|
+
type: string
|
958
|
+
valueLanguage:
|
959
|
+
# description: present for mapping to additional schemas in the future and for consistency but not otherwise used
|
960
|
+
$ref: "#/components/schemas/DescriptiveValueLanguage"
|
885
961
|
MessageDigest:
|
886
962
|
description: The output of the message digest algorithm.
|
887
963
|
type: object
|
@@ -894,7 +970,7 @@ components:
|
|
894
970
|
- md5
|
895
971
|
- sha1
|
896
972
|
digest:
|
897
|
-
description: The digest value
|
973
|
+
description: The digest value hexidecimal encoded
|
898
974
|
type: string
|
899
975
|
required:
|
900
976
|
- type
|
@@ -918,6 +994,12 @@ components:
|
|
918
994
|
type:
|
919
995
|
description: The relationship of the related resource to the described resource.
|
920
996
|
type: string
|
997
|
+
status:
|
998
|
+
description: Status of the related resource relative to other related resources.
|
999
|
+
type: string
|
1000
|
+
displayLabel:
|
1001
|
+
description: The preferred display label to use for the related resource in access systems.
|
1002
|
+
type: string
|
921
1003
|
title:
|
922
1004
|
description: Titles of the related resource.
|
923
1005
|
type: array
|
@@ -936,7 +1018,7 @@ components:
|
|
936
1018
|
$ref: "#/components/schemas/Event"
|
937
1019
|
form:
|
938
1020
|
description: Characteristics of the related resource's physical, digital, and intellectual
|
939
|
-
form and genre.
|
1021
|
+
form and genre, and of its process of creation.
|
940
1022
|
type: array
|
941
1023
|
items:
|
942
1024
|
$ref: "#/components/schemas/DescriptiveValue"
|
@@ -956,6 +1038,9 @@ components:
|
|
956
1038
|
type: array
|
957
1039
|
items:
|
958
1040
|
$ref: "#/components/schemas/DescriptiveValue"
|
1041
|
+
standard:
|
1042
|
+
# description: Descriptive or content standards to which the value conforms.
|
1043
|
+
$ref: "#/components/schemas/Standard"
|
959
1044
|
subject:
|
960
1045
|
description: Terms associated with the intellectual content of the related resource.
|
961
1046
|
type: array
|
@@ -967,6 +1052,16 @@ components:
|
|
967
1052
|
format: uri
|
968
1053
|
access:
|
969
1054
|
$ref: "#/components/schemas/DescriptiveAccessMetadata"
|
1055
|
+
relatedResource:
|
1056
|
+
description: Other resources associated with the related resource.
|
1057
|
+
type: array
|
1058
|
+
items:
|
1059
|
+
$ref: "#/components/schemas/RelatedResource"
|
1060
|
+
adminMetadata:
|
1061
|
+
$ref: "#/components/schemas/DescriptiveAdminMetadata"
|
1062
|
+
version:
|
1063
|
+
description: The version of the related resource.
|
1064
|
+
type: string
|
970
1065
|
ReleaseTag:
|
971
1066
|
description: A tag that indicates the item or collection should be released.
|
972
1067
|
type: object
|
@@ -1234,6 +1329,9 @@ components:
|
|
1234
1329
|
type: array
|
1235
1330
|
items:
|
1236
1331
|
$ref: "#/components/schemas/DescriptiveValue"
|
1332
|
+
version:
|
1333
|
+
description: The version of the value source.
|
1334
|
+
type: string
|
1237
1335
|
SourceId:
|
1238
1336
|
type: string
|
1239
1337
|
pattern: '^.+:.+$'
|
@@ -1247,7 +1345,7 @@ components:
|
|
1247
1345
|
example: 'sul:PC0170_s3_Fiesta_Bowl_2012-01-02_210609_2026'
|
1248
1346
|
Standard:
|
1249
1347
|
description: Property model for indicating the encoding, standard, or syntax
|
1250
|
-
to which a value conforms.
|
1348
|
+
to which a value conforms (e.g. RDA).
|
1251
1349
|
type: object
|
1252
1350
|
additionalProperties: false
|
1253
1351
|
properties:
|
@@ -1266,5 +1364,8 @@ components:
|
|
1266
1364
|
type: array
|
1267
1365
|
items:
|
1268
1366
|
$ref: "#/components/schemas/DescriptiveValue"
|
1367
|
+
version:
|
1368
|
+
description: The version of the standard or encoding.
|
1369
|
+
type: string
|
1269
1370
|
source:
|
1270
1371
|
$ref: "#/components/schemas/Source"
|
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.44.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-
|
11
|
+
date: 2020-12-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -267,11 +267,11 @@ files:
|
|
267
267
|
- lib/cocina/models/descriptive_access_metadata.rb
|
268
268
|
- lib/cocina/models/descriptive_admin_metadata.rb
|
269
269
|
- lib/cocina/models/descriptive_basic_value.rb
|
270
|
+
- lib/cocina/models/descriptive_geographic_metadata.rb
|
270
271
|
- lib/cocina/models/descriptive_parallel_value.rb
|
271
272
|
- lib/cocina/models/descriptive_structured_value.rb
|
272
273
|
- lib/cocina/models/descriptive_value.rb
|
273
274
|
- lib/cocina/models/descriptive_value_language.rb
|
274
|
-
- lib/cocina/models/descriptive_value_required.rb
|
275
275
|
- lib/cocina/models/dro.rb
|
276
276
|
- lib/cocina/models/dro_access.rb
|
277
277
|
- lib/cocina/models/dro_structural.rb
|
@@ -302,6 +302,7 @@ files:
|
|
302
302
|
- lib/cocina/models/source.rb
|
303
303
|
- lib/cocina/models/source_id.rb
|
304
304
|
- lib/cocina/models/standard.rb
|
305
|
+
- lib/cocina/models/title.rb
|
305
306
|
- lib/cocina/models/validator.rb
|
306
307
|
- lib/cocina/models/version.rb
|
307
308
|
- lib/cocina/models/vocab.rb
|