lib/adiwg/mdtranslator/readers/mdReaders.rb in adiwg-mdtranslator-1.2.1 vs lib/adiwg/mdtranslator/readers/mdReaders.rb in adiwg-mdtranslator-1.3.0
- old
+ new
@@ -2,52 +2,55 @@
# History:
# Stan Smith 2014-12-11 original script
# Stan Smith 2012-12-16 generalized handleReader to use :readerRequested
# Stan Smith 2015-03-04 changed method of setting $WriterNS
+# Stan Smith 2015-06-22 replace global ($response) with passed in object (responseObj)
+# Stan Smith 2015-07-14 refactored to remove global namespace constants
module ADIWG
module Mdtranslator
module Readers
- def self.handleReader(file)
+ def self.handleReader(file, responseObj)
- # use reader name to load and initiate reader
- # build directory path name for reader
- readerDir = File.join(path_to_resources, $response[:readerRequested])
+ # use readerRequested from responseObj to build directory path to reader
+ # the readers's high level folder must be under the 'writers' directory
+ readerDir = File.join(path_to_readers, responseObj[:readerRequested])
if File.directory?(readerDir)
# if directory path exists, build reader file name and require it
- readerFile = File.join(readerDir, $response[:readerRequested] + '_reader')
+ readerFile = File.join(readerDir, responseObj[:readerRequested] + '_reader')
require readerFile
- readerClassName = $response[:readerRequested].dup
- readerClassName[0] = readerClassName[0].upcase
- $ReaderNS = ADIWG::Mdtranslator::Readers.const_get(readerClassName)
+ # build the namespace for the reader
+ readerNS = responseObj[:readerRequested].dup
+ readerNS[0] = readerNS[0].upcase
- # pass file to requested reader and return internal object
- # $ReaderNS is the reader namespace constant set in
- # ... readerRequested_reader.rb and initialized when the file is required
- return $ReaderNS.readFile(file)
+ # pass file and response object to requested reader
+ # the reader will return the internal object with the metadata content loaded
+ return ADIWG::Mdtranslator::Readers.const_get(readerNS).readFile(file, responseObj)
+
else
- # directory path was not found
- $response[:readerValidationPass] = false
- $response[:readerValidationMessages] << "Validation Failed - see following message(s):\n"
- $response[:readerValidationMessages] << "Reader '#{$response[:readerRequested]}' is not supported."
+ # the directory path was not found meaning there is no reader with that name
+ # set the appropriate messages and report the failure
+ responseObj[:readerValidationPass] = false
+ responseObj[:readerValidationMessages] << "Validation Failed - see following message(s):\n"
+ responseObj[:readerValidationMessages] << "Reader '#{responseObj[:readerRequested]}' is not supported."
return false
end
end
# return path to readers
- def self.path_to_resources
+ def self.path_to_readers
File.dirname(File.expand_path(__FILE__))
end
# return reader readme text
def self.get_reader_readme(reader)
readmeText = 'No readme found'
- path = File.join(path_to_resources, reader, 'readme.md')
+ path = File.join(path_to_readers, reader, 'readme.md')
if File.exist?(path)
file = File.open(path, 'r')
readmeText = file.read
file.close
end