Load the file at the provided path. const_paths is a set of
qualified constant names. When loading the file, Dependencies will watch for the addition of
these constants. Each that is defined will be marked as autoloaded, and
will be removed when Dependencies.clear is next called.
If the second parameter is left off, then Dependencies will construct a set of names
that the file at path may define. See loadable_constants_for_path
for more details.
# File activesupport/lib/active_support/dependencies.rb, line 208
def load_file(path, const_paths = loadable_constants_for_path(path))
log_call path, const_paths
const_paths = [const_paths].compact unless const_paths.is_a? Array
parent_paths = const_paths.collect { |const_path| /(.*)::[^:]+\Z/ =~ const_path ? $1 : :Object }
result = nil
newly_defined_paths = new_constants_in(*parent_paths) do
result = load_without_new_constant_marking path
end
autoloaded_constants.concat newly_defined_paths unless load_once_path?(path)
autoloaded_constants.uniq!
log "loading #{path} defined #{newly_defined_paths * ', '}" unless newly_defined_paths.empty?
return result
end