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)