lib/cocina/models/dro.rb in cocina-models-0.14.0 vs lib/cocina/models/dro.rb in cocina-models-0.15.0
- old
+ new
@@ -37,11 +37,11 @@
end
end
# Subschema for administrative concerns
class Administrative < Dry::Struct
- attribute :releaseTags, Types::Strict::Array.of(ReleaseTag).meta(omittable: true)
+ attribute :releaseTags, Types::Strict::Array.of(ReleaseTag).meta(omittable: true).default([].freeze)
# Allowing hasAdminPolicy to be omittable for now (until rolled out to consumers),
# but I think it's actually required for every DRO
attribute :hasAdminPolicy, Types::Coercible::String.optional.default(nil)
def self.from_dynamic(dyn)
@@ -56,12 +56,14 @@
end
# Structural sub-schema for the DRO
class Structural < Dry::Struct
attribute :contains, Types::Strict::Array.of(FileSet).meta(omittable: true)
+ attribute :isMemberOf, Types::Strict::String.meta(omittable: true)
def self.from_dynamic(dyn)
params = {}
+ params[:isMemberOf] = dyn['isMemberOf'] if dyn['isMemberOf']
params[:contains] = dyn['contains'].map { |fs| FileSet.from_dynamic(fs) } if dyn['contains']
Structural.new(params)
end
end