class TarvitHelpers::RecursiveLoader
Constants
- RB_EXT
Attributes
method[R]
Public Class Methods
new(method=:require)
click to toggle source
# File lib/tarvit-helpers/modules/recursive_loader.rb, line 6 def initialize(method=:require) raise "Method #{method} is invalid, must be :require or :load" unless [ :require, :load ].include?(method) @method = method end
Public Instance Methods
load_modules(dir, priorities=[])
click to toggle source
# File lib/tarvit-helpers/modules/recursive_loader.rb, line 11 def load_modules(dir, priorities=[]) load_ruby_files(dir, priorities) prioritize(global_dirs(dir), priorities).each do |subdir| load_modules dir.join(subdir), priorities end end
load_modules_in(dir)
click to toggle source
# File lib/tarvit-helpers/modules/recursive_loader.rb, line 18 def load_modules_in(dir) load_ruby_files(dir) valid_directories(dir).each do |subdir| load_modules_in dir.join(subdir) end end
Private Instance Methods
global_dirs(dir)
click to toggle source
# File lib/tarvit-helpers/modules/recursive_loader.rb, line 35 def global_dirs(dir) (valid_directories(dir)).uniq.sort end
load_ruby_files(dir, priorities=[])
click to toggle source
# File lib/tarvit-helpers/modules/recursive_loader.rb, line 45 def load_ruby_files(dir, priorities=[]) prioritize_files(ruby_files(dir), priorities).each do |rb| send(method, dir.join(rb)) end end
prioritize(list, priorities)
click to toggle source
# File lib/tarvit-helpers/modules/recursive_loader.rb, line 59 def prioritize(list, priorities) (priorities.select{|p| list.include?(p) } + list ).uniq end
prioritize_files(files, priorities)
click to toggle source
# File lib/tarvit-helpers/modules/recursive_loader.rb, line 63 def prioritize_files(files, priorities) files_priorities = priorities.map do |p| p.include?(RB_EXT) ? p : (p+RB_EXT) end prioritize(files, files_priorities) end
ruby_files(dir)
click to toggle source
# File lib/tarvit-helpers/modules/recursive_loader.rb, line 53 def ruby_files(dir) Dir.open(dir).entries.select do |entry| entry.ends_with? RB_EXT end.sort end
valid_directories(dir)
click to toggle source
# File lib/tarvit-helpers/modules/recursive_loader.rb, line 39 def valid_directories(dir) Dir.open(dir).entries.select do |entry| !%w{ . .. }.include?(entry) && File.directory?(dir.join(entry)) end end