def self.manager_for(name, hash)
globs = Array hash[:pattern] || hash[:patterns]
directory = hash[:directory]
name = name.to_s.underscore
singular, plural = name.singularize, name.pluralize
@@path_managers[singular] = globs
Kernel.module_eval do
define_method "#{singular}_path" do |query|
target = nil
globs.each do |mgr|
Dir.glob(mgr).each do |f|
target = File.expand_path(f) if File.basename(f) == query
end
end
target
end
define_method "all_#{plural}" do
globs.map { |g| Dir.glob g }.flatten
end
end
end