Sha256: 92677626fab882dc890af8f7ffa1ed248635cd56d643425aee5838047ba58fb7
Contents?: true
Size: 1.4 KB
Versions: 2
Compression:
Stored size: 1.4 KB
Contents
module Loader module ObjectRequireEXT # require sender relative directory's files # return the directory and the sub directories file names (rb/ru) def require_relative_directory *args folder= args.select{|e|(e.class <= ::String)}.join(File::Separator) opts= Hash[*args.select{|e|(e.class <= ::Hash)}] args= args.select{|e|(e.class <= ::Symbol)} opts[:recursive] ||= opts.delete(:r) || opts.delete(:R) || !([:recursive,:r, :R,].select{|e| args.include?(e)}.empty?) opts[:recursive] = !!opts[:recursive] opts[:caller_folder] ||= opts.delete(:f) || opts.delete(:folder) || Loader.caller_folder unless folder.to_s[0] == File::Separator folder= [opts[:caller_folder],folder] end #> recursive option begin path_parts= [*folder] if opts[:recursive] path_parts.push("**") end path_parts.push("*.{rb,ru}") end return Dir.glob(File.join(*path_parts)).sort_by{|e| e.split(File::Separator).size }.map { |one_path| require(one_path) }.include?(true) end alias :require_directory :require_relative_directory def require_relative_directory_r *args require_relative_directory *args, r: true, f: Loader.caller_folder end alias :require_directory_r :require_relative_directory_r end end Object.__send__ :include, Loader::ObjectRequireEXT
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
loader-1.3.2 | lib/loader/require.rb |
loader-1.3.1 | lib/loader/require.rb |