Class: ProformaXML::Exporter
- Inherits:
-
ServiceBase
- Object
- ServiceBase
- ProformaXML::Exporter
- Includes:
- Helpers::ExportHelpers
- Defined in:
- lib/proformaxml/services/exporter.rb
Instance Method Summary collapse
-
#initialize(task:, version: nil) ⇒ Exporter
constructor
A new instance of Exporter.
- #perform ⇒ Object
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
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
#perform ⇒ Object
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 |