Class: Cocina::Generator::SchemaArray

Inherits:
SchemaBase
  • Object
show all
Defined in:
lib/cocina/generator/schema_array.rb

Overview

Class for generating from an openapi array

Instance Attribute Summary

Attributes inherited from SchemaBase

#key, #nullable, #parent, #relaxed, #required, #schema_doc

Instance Method Summary collapse

Methods inherited from SchemaBase

#any_datatype?, #description, #dry_datatype, #example, #filename, #initialize, #name, #optional, #quote, #relaxed_comment, #string_dry_datatype

Constructor Details

This class inherits a constructor from Cocina::Generator::SchemaBase

Instance Method Details

#array_of_typeObject



19
20
21
# File 'lib/cocina/generator/schema_array.rb', line 19

def array_of_type
  schema_doc.items.name || "Types::#{dry_datatype(schema_doc.items)}"
end

#generateObject



7
8
9
# File 'lib/cocina/generator/schema_array.rb', line 7

def generate
  "attribute :#{name.camelize(:lower)}, Types::Strict::Array.of(#{array_of_type})#{omittable}"
end

#omittableObject



11
12
13
14
15
16
17
# File 'lib/cocina/generator/schema_array.rb', line 11

def omittable
  if required && !relaxed
    '.default([].freeze)'
  else
    '.meta(omittable: true)'
  end
end