lib/juicer.rb in juicer-0.2.6 vs lib/juicer.rb in juicer-1.0.0

- old
+ new

@@ -1,11 +1,11 @@ require "logger" module Juicer # :stopdoc: - VERSION = '0.2.6' + VERSION = '1.0.0' LIBPATH = ::File.expand_path(::File.dirname(__FILE__)) + ::File::SEPARATOR PATH = ::File.dirname(LIBPATH) + ::File::SEPARATOR LOGGER = Logger.new(STDOUT) @@home = nil # :startdoc: @@ -49,22 +49,21 @@ def self.path( *args ) args.empty? ? PATH : ::File.join(PATH, args.flatten) end # Utility method used to require all files ending in .rb that lie in the - # directory below this file that has the same name as the filename passed - # in. Optionally, a specific _directory_ name can be passed in such that - # the _filename_ does not have to be equivalent to the directory. - # - def self.require_all_libs_relative_to( fname, dir = nil ) - dir ||= ::File.basename(fname, '.*') - search_me = ::File.expand_path(::File.join(::File.dirname(fname), dir, '**', '*.rb')) + # directory below this file. + def self.require_all_libs + dir = File.dirname(File.expand_path(__FILE__)) + glob = File.join(dir, "juicer", '**', '*.rb') - Dir.glob(search_me).sort.each { |rb| require rb } + # Unexpand paths (avoids requiring the same file twice) + paths = Dir.glob(glob).map { |path| path.sub("#{dir}/", '').sub(/\.rb$/, "") } + paths.each { |rb| require rb } end end -Juicer.require_all_libs_relative_to(__FILE__) +Juicer.require_all_libs class FileNotFoundError < Exception end