123456789101112131415161718192021222324252627282930313233 |
- module Mixin
- module RequiredSubPaths
- def self.included(base)
- base_path = ActiveSupport::Dependencies.search_for_file base.name.underscore
- backends_path = base_path.delete_suffix File.extname(base_path)
- eager_load_recursive(base, backends_path)
- end
-
-
-
-
- def self.eager_load_recursive(base, path)
- excluded = ['.', '..']
- Dir.entries(path).each do |entry|
- next if excluded.include?(entry)
- sub_path = File.join(path, entry)
- namespace = "#{base}::#{entry.sub(%r{.rb$}, '').camelize}"
- if File.directory?(sub_path)
- eager_load_recursive(namespace, sub_path)
- elsif entry.ends_with?('.rb')
- namespace.constantize
- end
- end
- end
- end
- end
|