Class: Suma::SchemaExporter

Inherits:
Object
  • Object
show all
Defined in:
lib/suma/schema_exporter.rb

Overview

SchemaExporter exports EXPRESS schemas from a manifest with configurable options for annotations and ZIP packaging

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(schemas:, output_path:, options: {}) ⇒ SchemaExporter

Returns a new instance of SchemaExporter.



14
15
16
17
18
# File 'lib/suma/schema_exporter.rb', line 14

def initialize(schemas:, output_path:, options: {})
  @schemas = schemas
  @output_path = Pathname.new(output_path).expand_path
  @options = default_options.merge(options)
end

Instance Attribute Details

#optionsObject (readonly)

Returns the value of attribute options.



12
13
14
# File 'lib/suma/schema_exporter.rb', line 12

def options
  @options
end

#output_pathObject (readonly)

Returns the value of attribute output_path.



12
13
14
# File 'lib/suma/schema_exporter.rb', line 12

def output_path
  @output_path
end

#schemasObject (readonly)

Returns the value of attribute schemas.



12
13
14
# File 'lib/suma/schema_exporter.rb', line 12

def schemas
  @schemas
end

Instance Method Details

#exportObject



20
21
22
23
24
25
26
27
# File 'lib/suma/schema_exporter.rb', line 20

def export
  Utils.log "Exporting schemas to: #{output_path}"

  export_to_directory(schemas)
  create_zip_archive if options[:create_zip]

  Utils.log "Export complete!"
end