public Method

Dependencies.require_or_load(file_name, const_path = nil)

There's no documentation for this item.

Source Code

# File 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

  if load?
    log "loading #{file_name}"
    begin
      # 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
    rescue Exception
      loaded.delete expanded
      raise
    end
  else
    log "requiring #{file_name}"
    result = require file_name
  end

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

Have your say
Please use Textile formatting (click here for a cheat sheet). Use <code/> and <pre/> for code samples.
Click here to login with OpenID to to post comments.