Class: ProformaXML::Exporter

Inherits:
ServiceBase show all
Includes:
Helpers::ExportHelpers
Defined in:
lib/proformaxml/services/exporter.rb

Instance Method Summary collapse

Methods included from Helpers::ExportHelpers

#add_dachsfisch_node, #add_description_to_xml, #add_namespaces_for_dachsfisch_node, #add_parent_uuid_and_lang_to_header, #add_test_configuration, #attach_file, #embed_file

Methods inherited from ServiceBase

call

Constructor Details

#initialize(task:, version: nil) ⇒ Exporter

Returns a new instance of Exporter.



9
10
11
12
13
14
15
16
17
# File 'lib/proformaxml/services/exporter.rb', line 9

def initialize(task:, version: nil)
  super()
  @files = {}
  @task = task
  @version = version || SCHEMA_VERSIONS.first
  if @version != SCHEMA_VERSION_LATEST
    ProformaXML::TransformTask.call(task: @task, from_version: SCHEMA_VERSION_LATEST, to_version: @version)
  end
end

Instance Method Details

#performObject



19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/proformaxml/services/exporter.rb', line 19

def perform
  builder = Nokogiri::XML::Builder.new(encoding: 'UTF-8') do |xml|
    xml_task(xml)
  end
  xmldoc = builder.to_xml
  doc = Nokogiri::XML(xmldoc)
  errors = validate(doc)

  # File.binwrite('../testfile.zip', write_to_zip(xmldoc).string)
  raise PostGenerateValidationError.new(errors) if errors.any?

  write_to_zip(xmldoc)
end