Class: Zodra::Export::ZodMapper
- Inherits:
-
Object
- Object
- Zodra::Export::ZodMapper
- Defined in:
- lib/zodra/export/zod_mapper.rb
Constant Summary collapse
- PRIMITIVE_MAP =
{ string: 'z.string()', integer: 'z.number().int()', decimal: 'z.number()', number: 'z.number()', boolean: 'z.boolean()', datetime: 'z.iso.datetime()', date: 'z.iso.date()', uuid: 'z.uuid()', binary: 'z.string()' }.freeze
Instance Method Summary collapse
-
#initialize(key_format: :keep) ⇒ ZodMapper
constructor
A new instance of ZodMapper.
- #map_contract(contract) ⇒ Object
- #map_contracts(contracts) ⇒ Object
- #map_definition(definition, lazy: false) ⇒ Object
- #map_definitions(definitions, cycles: Set.new) ⇒ Object
Constructor Details
#initialize(key_format: :keep) ⇒ ZodMapper
Returns a new instance of ZodMapper.
18 19 20 |
# File 'lib/zodra/export/zod_mapper.rb', line 18 def initialize(key_format: :keep) @key_format = key_format end |
Instance Method Details
#map_contract(contract) ⇒ Object
34 35 36 37 38 39 |
# File 'lib/zodra/export/zod_mapper.rb', line 34 def map_contract(contract) params_output = map_contract_params(contract) error_types_output = map_contract_error_types(contract) descriptor_output = map_contract_descriptor(contract) [params_output, error_types_output, descriptor_output].compact.reject(&:empty?).join("\n\n") end |
#map_contracts(contracts) ⇒ Object
41 42 43 |
# File 'lib/zodra/export/zod_mapper.rb', line 41 def map_contracts(contracts) contracts.map { |contract| map_contract(contract) }.join("\n\n") end |
#map_definition(definition, lazy: false) ⇒ Object
22 23 24 25 26 27 28 |
# File 'lib/zodra/export/zod_mapper.rb', line 22 def map_definition(definition, lazy: false) case definition.kind when :object then map_object(definition, lazy:) when :enum then map_enum(definition) when :union then map_union(definition, lazy:) end end |
#map_definitions(definitions, cycles: Set.new) ⇒ Object
30 31 32 |
# File 'lib/zodra/export/zod_mapper.rb', line 30 def map_definitions(definitions, cycles: Set.new) definitions.map { |definition| map_definition(definition, lazy: cycles.include?(definition.name)) }.join("\n\n") end |