method

require_or_load

rails latest stable - Class: Dependencies

Method deprecated or moved

This method is deprecated or moved on the latest stable version. The last existing version (v2.1.0) is shown here.

require_or_load(file_name, const_path = nil)
public

No documentation available.

# File activesupport/lib/active_support/dependencies.rb, line 75
  def require_or_load(file_name, const_path = nil)
    log_call file_name, const_path
    file_name = $1 if file_name =~ /^(.*)\.rb$/
    expanded = File.expand_path(file_name)
    return if loaded.include?(expanded)

    # Record that we've seen this file *before* loading it to avoid an
    # infinite loop with mutual dependencies.
    loaded << expanded

    begin
      if load?
        log "loading #{file_name}"

        # Enable warnings iff this file has not been loaded before and
        # warnings_on_first_load is set.
        load_args = ["#{file_name}.rb"]
        load_args << const_path unless const_path.nil?

        if !warnings_on_first_load or history.include?(expanded)
          result = load_file(*load_args)
        else
          enable_warnings { result = load_file(*load_args) }
        end
      else
        log "requiring #{file_name}"
        result = require file_name
      end
    rescue Exception
      loaded.delete expanded
      raise
    end

    # Record history *after* loading so first load gets warnings.
    history << expanded
    return result
  end