module Rake::Opt::AutoNamespace
Public Instance Methods
autoload_namespaces(task_dir)
click to toggle source
# File lib/rake/opt/auto_namespace.rb, line 6 def autoload_namespaces(task_dir) task_dir = Pathname.new(task_dir) task_files = Dir["#{task_dir}/**/*.rb"] task_files.each do |task_file| task_file = Pathname.new(task_file) relative_path = task_file.relative_path_from(task_dir) load_into_namespaces(task_dir, task_file, get_namespaces(relative_path)) end end
get_namespaces(relative_path)
click to toggle source
# File lib/rake/opt/auto_namespace.rb, line 16 def get_namespaces(relative_path) namespaces = [] relative_path.each_filename do |f| namespaces << File.basename(f, '.rb') end return namespaces end
load_into_namespaces(task_dir, file, namespaces, ns=nil, helpers_file=nil)
click to toggle source
# File lib/rake/opt/auto_namespace.rb, line 24 def load_into_namespaces(task_dir, file, namespaces, ns=nil, helpers_file=nil) helpers_file ||= File.join(task_dir, namespaces.first, 'helpers.rb') if namespaces.empty? eval(File.read(helpers_file), binding, helpers_file) if File.exist?(helpers_file) eval(File.read(file), binding, file.to_path) else namespace namespaces.shift do |ns| load_into_namespaces(task_dir, file, namespaces, ns, helpers_file) end end end