class HerdstWorker::Autoload::Facade
Attributes
files[RW]
loaded[RW]
paths[RW]
root_path[RW]
Public Class Methods
new(app)
click to toggle source
# File lib/herdst_worker/autoload/facade.rb, line 9 def initialize(app) self.root_path = app.config.paths.root self.loaded = [] self.files = [] self.paths = [ "lib" ] self.reload end
Public Instance Methods
<<(path)
click to toggle source
# File lib/herdst_worker/autoload/facade.rb, line 20 def <<(path) full_path = self.root_path + "/" + path if File.directory?(full_path) self.paths << path else self.files << path end end
has_loaded?(file)
click to toggle source
# File lib/herdst_worker/autoload/facade.rb, line 52 def has_loaded?(file) self.loaded.include?(file) end
load_file(file)
click to toggle source
# File lib/herdst_worker/autoload/facade.rb, line 57 def load_file(file) unless has_loaded?(file) load file self.loaded << file end end
reload()
click to toggle source
# File lib/herdst_worker/autoload/facade.rb, line 31 def reload self.files.each do |file| self.load_file(self.root_path + "/" + file) end self.paths.each do |folder| concern_files = Dir.glob("#{root_path}/#{folder}/concerns/*.rb").sort folder_files = Dir.glob("#{root_path}/#{folder}/*.rb").sort concern_sub_files = Dir.glob("#{self.root_path}/#{folder}/**/concerns/*.rb").sort folder_sub_files = Dir.glob("#{self.root_path}/#{folder}/**/*.rb").sort files = (concern_files + folder_files + concern_sub_files + folder_sub_files).uniq files.each do |file| self.load_file(file) end end end