module Padrino

def require_dependencies(*paths)

Other tags:
    Example: For require all our app libs we need to do: -

Parameters:
  • paths (Array) --
def require_dependencies(*paths)
  options = paths.extract_options!
  # Extract all files to load
  files = paths.flatten.map { |path| Dir[path] }.flatten.uniq.sort
  while files.present?
    # List of errors and failed files
    errors, failed = [], []
    # We need a size to make sure things are loading
    size_at_start = files.size
    # Now we try to require our dependencies, we dup files
    # so we don't perform delete on the original array during
    # iteration, this prevent problems with rubinus
    files.dup.each do |file|
      begin
        Padrino::Reloader.safe_load(file, options.dup)
        files.delete(file)
      rescue NameError, LoadError => e
        Padrino.logger.devel "Problem while loading #{file}: #{e.to_s}"
        errors << e
        failed << file
      rescue Exception => e
        raise e
      end
    end
    # Stop processing if nothing loads or if everything has loaded
    raise errors.last if files.size == size_at_start && files.present?
    break if files.empty?
  end
end