module ADIWG::Mdtranslator
Constants
- VERSION
current mdtranslator version
Public Class Methods
translate(file:, reader: 'mdJson', writer: nil, validate: 'normal', forceValid: true, showAllTags: false, cssLink: nil)
click to toggle source
# File lib/adiwg/mdtranslator.rb, line 37 def self.translate(file:, reader: 'mdJson', writer: nil, validate: 'normal', forceValid: true, showAllTags: false, cssLink: nil) # the reader and writer specified in the translate module parameter string will load and # return this hash ... # ==================================================================================== # readerRequested: name of the reader requested by the user # - set from the parameter list (reader) (default = 'mdJson') # ------------------------------------------------------------------------------------ # readerVersionRequested: version of the reader requested in input file # - set in reader # ------------------------------------------------------------------------------------ # readerVersionUsed: actual reader version use in processing the input file # - set by the reader # ------------------------------------------------------------------------------------ # readerStructurePass: false if input file structure is determined to be invalid # - set by the reader # ------------------------------------------------------------------------------------ # readerStructureMessages: an array of parser warning and error messages # - set by the reader # ------------------------------------------------------------------------------------ # readerValidationLevel: validation level requested to be applied to the input file, set # - set from the parameter list (reader) # ------------------------------------------------------------------------------------ # readerValidationPass: false if fails requested level of validation # - set by the reader # ------------------------------------------------------------------------------------ # readerValidationMessages: an array of schema warning and error messages # - set by the reader # ------------------------------------------------------------------------------------ # readerExecutionPass: false if the reader finds fatal errors in input file # - set by the reader # ------------------------------------------------------------------------------------ # readerExecutionMessages: an array of reader warning and error messages # - set by the reader # ------------------------------------------------------------------------------------ # writerRequested: name of the writer requested by the user # - set from the parameter list (writer) # ------------------------------------------------------------------------------------ # writerVersion: version of the writer used within mdTranslator # - set by the writer # ------------------------------------------------------------------------------------ # writerPass: false if the writer fails to complete creation of output file # - set by the writer # ------------------------------------------------------------------------------------ # writerMessages: an array of writer warning and error messages # - set by the writer # ------------------------------------------------------------------------------------ # writerOutputFormat: format of writer output # - set by the writer # ------------------------------------------------------------------------------------ # writerOutput: the output file returned by the writer # - set by the writer # ------------------------------------------------------------------------------------ # writerForceValid: when required elements are missing from input add placeholder # - set from the parameter list (forceValid) # ------------------------------------------------------------------------------------ # writerShowTags: include tags in XML output for any empty elements # - set from the parameter list (showAllTags) # ------------------------------------------------------------------------------------ # writerCSSlink: CSS link to append to HTML writer output # - set from the parameter list (cssLink) # ------------------------------------------------------------------------------------ # writerMissingIdCount: counter for creating unique element IDs as needed # - set by the writer # ------------------------------------------------------------------------------------ # translatorVersion: current version of the mdTranslator # - set by the translator # ------------------------------------------------------------------------------------ hResponseObj = { readerRequested: nil, readerVersionRequested: nil, readerVersionUsed: nil, readerStructurePass: true, readerStructureMessages: [], readerValidationLevel: nil, readerValidationPass: true, readerValidationMessages: [], readerExecutionPass: true, readerExecutionMessages: [], writerRequested: nil, writerVersion: nil, writerPass: true, writerMessages: [], writerOutputFormat: nil, writerOutput: nil, writerForceValid: true, writerShowTags: false, writerCSSlink: nil, writerMissingIdCount: '_000', translatorVersion: nil } # parameter - file (required) if file.nil? || file == '' hResponseObj[:readerStructureMessages] << 'ERROR: Metadata input file was not provided' hResponseObj[:readerStructurePass] = false return hResponseObj end # parameter - reader (required) if reader == '' hResponseObj[:readerStructureMessages] << 'ERROR: Reader was not specified' hResponseObj[:readerStructurePass] = false return hResponseObj end # add passed in parameters to the response hash hResponseObj[:readerRequested] = reader hResponseObj[:readerValidationLevel] = validate hResponseObj[:writerRequested] = writer hResponseObj[:writerForceValid] = forceValid hResponseObj[:writerShowTags] = showAllTags hResponseObj[:writerCSSlink] = cssLink # turn off showTags if forceValid is false # ... by default showTags would add the missing required elements unless forceValid hResponseObj[:writerShowTags] = false end # add mdTranslator version to response hash hResponseObj[:translatorVersion] = ADIWG::Mdtranslator::VERSION # handle reader intObj = ADIWG::Mdtranslator::Readers.handleReader(file, hResponseObj) # if reader file structure failed - exit if hResponseObj[:readerStructurePass] === false return hResponseObj end # if reader file validation failed - exit if hResponseObj[:readerValidationPass] === false return hResponseObj end # if reader file execution failed - exit if hResponseObj[:readerExecutionPass] === false return hResponseObj end #handle writers if writer.nil? || writer == '' hResponseObj[:writerMessages] << 'WARNING: No writer was requested' return hResponseObj end require File.join(File.dirname(__FILE__), 'mdtranslator/writers/mdWriters') ADIWG::Mdtranslator::Writers.handleWriter(intObj, hResponseObj) return hResponseObj end