Module: Faraday::AutoloadHelper

Included in:
Faraday, Adapter, Request, Response
Defined in:
lib/faraday.rb

Overview

Internal: Adds the ability for other modules to manage autoloadable constants.

Instance Method Summary collapse

Instance Method Details

#all_loaded_constantsObject

Internal: Filters the module’s contents with those that have been already autoloaded.

Returns an Array of Class/Module objects.



212
213
214
215
# File 'lib/faraday.rb', line 212

def all_loaded_constants
  constants.map { |c| const_get(c) }.
    select { |a| a.respond_to?(:loaded?) && a.loaded? }
end

#autoload_all(prefix, options) ⇒ Object

Internal: Registers the constants to be auto loaded.

prefix - The String require prefix. If the path is inside Faraday, then

it will be prefixed with the root path of this loaded Faraday
version.

options - Hash of Symbol => String library names.

Examples.

Faraday.autoload_all 'faraday/foo',
  :Bar => 'bar'

# requires faraday/foo/bar to load Faraday::Bar.
Faraday::Bar

Returns nothing.



189
190
191
192
193
194
195
196
# File 'lib/faraday.rb', line 189

def autoload_all(prefix, options)
  if prefix =~ /^faraday(\/|$)/i
    prefix = File.join(Faraday.root_path, prefix)
  end
  options.each do |const_name, path|
    autoload const_name, File.join(prefix, path)
  end
end

#load_autoloaded_constantsObject

Internal: Loads each autoloaded constant. If thread safety is a concern, wrap this in a Mutex.

Returns nothing.



202
203
204
205
206
# File 'lib/faraday.rb', line 202

def load_autoloaded_constants
  constants.each do |const|
    const_get(const) if autoload?(const)
  end
end