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