lib/cocina/models/dro.rb in cocina-models-0.6.0 vs lib/cocina/models/dro.rb in cocina-models-0.7.0

- old
+ new

@@ -64,11 +64,19 @@ end class Identification < Dry::Struct end + # Structural sub-schema for the DRO class Structural < Dry::Struct + attribute :contains, Types::Strict::Array.of(Types::Coercible::String).meta(omittable: true) + + def self.from_dynamic(dyn) + params = {} + params[:contains] = dyn['contains'] if dyn['contains'] + Structural.new(params) + end end attribute :externalIdentifier, Types::Strict::String attribute :type, Types::String.enum(*TYPES) attribute :label, Types::Strict::String @@ -86,9 +94,10 @@ version: dyn['version'] } params[:access] = Access.from_dynamic(dyn['access']) if dyn['access'] params[:administrative] = Administrative.from_dynamic(dyn['administrative']) if dyn['administrative'] + params[:structural] = Structural.from_dynamic(dyn['structural']) if dyn['structural'] DRO.new(params) end def self.from_json(json)