module XmlConv::Util

Public Class Methods

autoload(dir, type) click to toggle source
# File lib/xmlconv/util/autoload.rb, line 7
def Util.autoload(dir, type)
  config = XmlConv::CONFIG
  logger = SBSM.logger
  dir = File.expand_path(dir)
  prefix = File.basename(dir)
  search_path = File.dirname(dir)
  $:.push(search_path) unless $:.include?(search_path)
  logger.debug(config.program_name) {
    "checking directory '#{dir}' for #{type}s"
  }
  Dir.glob(File.join(dir, '*')) { |entry|
    if(/\.(rb|so)$/.match(entry))
      keyword = File.basename(entry)
      keyword.slice!(/#{File.extname(keyword)}$/)
      rpath = File.join(prefix, keyword)
      logger.debug(config.program_name) {
        "loading #{type}: '#{rpath}' (#{File.basename(entry)})"
      }
      begin
        require rpath #File.basename(keyword)
      rescue
        logger.warn(config.program_name) {
          "loading #{type} '#{rpath}' failed!"
        }
      end
    end
  }
end