module ADIWG::Mdtranslator::Readers

Public Class Methods

get_reader_readme(reader) click to toggle source

return reader readme text this is called from the Rails API

# File lib/adiwg/mdtranslator/readers/mdReaders.rb, line 56
def self.get_reader_readme(reader)

   thisDir = File.dirname(File.expand_path(__FILE__))
   path = File.join(thisDir, reader, '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
handleReader(file, hResponseObj) click to toggle source
# File lib/adiwg/mdtranslator/readers/mdReaders.rb, line 15
def self.handleReader(file, hResponseObj)

   # use ':readerRequested' from hResponseObj to build directory path to reader
   # reader's high level folder must be placed in 'lib/adiwg/mdtranslator/readers/'
   # reader's code must must be in folder named '{reader}'
   # '{reader}' must contain a module named '{reader}_reader.rb'
   # '{reader}_reader.rb' must have a method named 'readFile()'
   # 'readFile()' must pass two parameters (file, hResponseObj)
   # all reader modules and classes must remain in their private namespace
   # reader namespace is 'ADIWG::Mdtranslator::Readers::{reader}'

   # reader high-level folder
   thisDir = File.dirname(File.expand_path(__FILE__))
   readerDir = File.join(thisDir, hResponseObj[:readerRequested])
   if File.directory?(readerDir)

      # reader folder
      readerModule = File.join(readerDir, hResponseObj[:readerRequested] + '_reader')
      require readerModule

      # reader namespace
      readerNS = hResponseObj[:readerRequested].dup
      readerNS[0] = readerNS[0].upcase

      # reader will create and return the intObj
      return ADIWG::Mdtranslator::Readers.const_get(readerNS).readFile(file, hResponseObj)

   else

      hResponseObj[:readerValidationMessages] << "ERROR: Requested reader '#{hResponseObj[:readerRequested]}' cannot be found."
      hResponseObj[:readerValidationPass] = false

      # return empty intObj
      return {}

   end

end