module ADIWG::Mdtranslator::Writers

Public Class Methods

get_writer_readme(writer) click to toggle source

return writer readme text this is called from the Rails API

# File lib/adiwg/mdtranslator/writers/mdWriters.rb, line 54
def self.get_writer_readme(writer)

   thisDir = File.dirname(File.expand_path(__FILE__))
   path = File.join(thisDir, writer, 'readme.md')
   if File.exist?(path)
      file = File.open(path, 'r')
      readmeText = file.read
      file.close
      return readmeText
   else
      return 'Readme file not found'
   end

end
handleWriter(intObj, hResponseObj) click to toggle source
# File lib/adiwg/mdtranslator/writers/mdWriters.rb, line 16
def self.handleWriter(intObj, hResponseObj)

   # use ':writerRequested' from hResponseObj to build directory path to writer
   # all writers must be in the folder 'lib/adiwg/mdtranslator/writers/'
   # place a particular writer's code in a folder by the same name as the writer
   # the writer must contain a starting point module named '{writer}_writer.rb'
   # '{writer}_writer.rb' must have a method named 'startWriter()'
   # 'startWriter()' must pass two parameters (intObj, hResponseObj)
   # all of the {writer's} modules and classes must be contained in a unique private namespace
   # the writer's namespace is 'ADIWG::Mdtranslator::Writers::{writer}'

   # the writer's high-level
   thisDir = File.dirname(File.expand_path(__FILE__))
   writerDir = File.join(thisDir, hResponseObj[:writerRequested])
   if File.directory?(writerDir)

      # writer folder
      writerModule = File.join(writerDir, hResponseObj[:writerRequested] + '_writer')
      require writerModule

      # writer namespace
      writerNS = hResponseObj[:writerRequested].dup
      writerNS[0] = writerNS[0].upcase

      # pass internal object and hResponseObj to the writer
      hResponseObj[:writerOutput] = ADIWG::Mdtranslator::Writers.const_get(writerNS).startWriter(intObj, hResponseObj)

   else
      hResponseObj[:writerMessages] << "ERROR: Requested writer '#{hResponseObj[:writerRequested]}' cannot be found."
      hResponseObj[:writerPass] = false
   end

   return hResponseObj

end