Module: XmlConv::Util

Defined in:
lib/xmlconv/util/mail.rb,
lib/xmlconv/util/session.rb,
lib/xmlconv/util/autoload.rb,
lib/xmlconv/util/invoicer.rb,
lib/xmlconv/util/validator.rb,
lib/xmlconv/util/known_user.rb,
lib/xmlconv/util/application.rb,
lib/xmlconv/util/destination.rb,
lib/xmlconv/util/transaction.rb,
lib/xmlconv/util/rack_interface.rb,
lib/xmlconv/util/polling_manager.rb

Defined Under Namespace

Modules: Mail Classes: Application, Destination, DestinationDir, DestinationFtp, DestinationHttp, DestinationMail, DestinationSftp, FtpMission, Invoicer, KnownUser, Mission, PollingManager, PollingMission, PopMission, RackInterface, RemoteDestination, Session, SftpMission, Transaction, Validator

Class Method Summary collapse

Class Method Details

.autoload(dir, type) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# 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