Parent

Class/Module Index [+]

Quicksearch

Bundler::Settings

Public Class Methods

new(root = nil) click to toggle source
# File lib/bundler/settings.rb, line 84
def initialize(root = nil)
  @root            = root
  @local_config    = load_config(local_config_file)
  @global_config   = load_config(global_config_file)
  @temporary       = {}
end

Public Instance Methods

[](name) click to toggle source
# File lib/bundler/settings.rb, line 91
def [](name)
  key = key_for(name)
  value = @temporary.fetch(key) do
          @local_config.fetch(key) do
          ENV.fetch(key) do
          @global_config.fetch(key) do
          DEFAULT_CONFIG.fetch(name) do
            nil
          end end end end end

  converted_value(value, name)
end
all() click to toggle source
# File lib/bundler/settings.rb, line 153
def all
  env_keys = ENV.keys.grep(/\ABUNDLE_.+/)

  keys = @temporary.keys | @global_config.keys | @local_config.keys | env_keys

  keys.map do |key|
    key.sub(/^BUNDLE_/, "").gsub(/__/, ".").downcase
  end
end
allow_sudo?() click to toggle source
# File lib/bundler/settings.rb, line 283
def allow_sudo?
  key = key_for(:path)
  path_configured = @temporary.key?(key) || @local_config.key?(key)
  !path_configured
end
app_cache_path() click to toggle source
# File lib/bundler/settings.rb, line 293
def app_cache_path
  @app_cache_path ||= self[:cache_path] || "vendor/cache"
end
credentials_for(uri) click to toggle source
# File lib/bundler/settings.rb, line 176
def credentials_for(uri)
  self[uri.to_s] || self[uri.host]
end
gem_mirrors() click to toggle source
# File lib/bundler/settings.rb, line 180
def gem_mirrors
  all.inject(Mirrors.new) do |mirrors, k|
    mirrors.parse(k, self[k]) if k.start_with?("mirror.")
    mirrors
  end
end
ignore_config?() click to toggle source
# File lib/bundler/settings.rb, line 289
def ignore_config?
  ENV["BUNDLE_IGNORE_CONFIG"]
end
key_for(key) click to toggle source
# File lib/bundler/settings.rb, line 306
def key_for(key)
  key = Settings.normalize_uri(key).to_s if key.is_a?(String) && /https?:/ =~ key
  key = key.to_s.gsub(".", "__").upcase
  "BUNDLE_#{key}"
end
local_overrides() click to toggle source
# File lib/bundler/settings.rb, line 163
def local_overrides
  repos = {}
  all.each do |k|
    repos[$'] = self[k] if k =~ /^local\./
  end
  repos
end
locations(key) click to toggle source
# File lib/bundler/settings.rb, line 187
def locations(key)
  key = key_for(key)
  locations = {}
  locations[:temporary] = @temporary[key] if @temporary.key?(key)
  locations[:local]  = @local_config[key] if @local_config.key?(key)
  locations[:env]    = ENV[key] if ENV[key]
  locations[:global] = @global_config[key] if @global_config.key?(key)
  locations[:default] = DEFAULT_CONFIG[key] if DEFAULT_CONFIG.key?(key)
  locations
end
mirror_for(uri) click to toggle source
# File lib/bundler/settings.rb, line 171
def mirror_for(uri)
  uri = URI(uri.to_s) unless uri.is_a?(URI)
  gem_mirrors.for(uri.to_s).uri
end
path() click to toggle source

for legacy reasons, in Bundler 1, the ruby scope isnt appended when the setting comes from ENV or the global config, nor do we respect :disable_shared_gems

# File lib/bundler/settings.rb, line 225
def path
  key  = key_for(:path)
  path = ENV[key] || @global_config[key]
  if path && !@temporary.key?(key) && !@local_config.key?(key)
    return Path.new(path, Bundler.feature_flag.global_path_appends_ruby_scope?, false, false)
  end

  system_path = self["path.system"] || (self[:disable_shared_gems] == false)
  Path.new(self[:path], true, system_path, Bundler.feature_flag.default_install_uses_path?)
end
pretty_values_for(exposed_key) click to toggle source
# File lib/bundler/settings.rb, line 198
def pretty_values_for(exposed_key)
  key = key_for(exposed_key)

  locations = []

  if @temporary.key?(key)
    locations << "Set for the current command: #{converted_value(@temporary[key], exposed_key).inspect}"
  end

  if @local_config.key?(key)
    locations << "Set for your local app (#{local_config_file}): #{converted_value(@local_config[key], exposed_key).inspect}"
  end

  if value = ENV[key]
    locations << "Set via #{key}: #{converted_value(value, exposed_key).inspect}"
  end

  if @global_config.key?(key)
    locations << "Set for the current user (#{global_config_file}): #{converted_value(@global_config[key], exposed_key).inspect}"
  end

  return ["You have not configured a value for `#{exposed_key}`"] if locations.empty?
  locations
end
set_command_option(key, value) click to toggle source
# File lib/bundler/settings.rb, line 104
def set_command_option(key, value)
  if Bundler.feature_flag.forget_cli_options?
    temporary(key => value)
    value
  else
    command = if value.nil?
      "bundle config --delete #{key}"
    else
      "bundle config #{key} #{Array(value).join(":")}"
    end

    Bundler::SharedHelpers.major_deprecation 2,           "flags passed to commands "            "will no longer be automatically remembered. Instead please set flags "            "you want remembered between commands using `bundle config "            "<setting name> <setting value>`, i.e. `#{command}`"

    set_local(key, value)
  end
end
set_command_option_if_given(key, value) click to toggle source
# File lib/bundler/settings.rb, line 125
def set_command_option_if_given(key, value)
  return if value.nil?
  set_command_option(key, value)
end
set_global(key, value) click to toggle source
# File lib/bundler/settings.rb, line 149
def set_global(key, value)
  set_key(key, value, @global_config, global_config_file)
end
set_local(key, value) click to toggle source
# File lib/bundler/settings.rb, line 130
def set_local(key, value)
  local_config_file || raise(GemfileNotFound, "Could not locate Gemfile")

  set_key(key, value, @local_config, local_config_file)
end
temporary(update) click to toggle source
# File lib/bundler/settings.rb, line 136
def temporary(update)
  existing = Hash[update.map {|k, _| [k, @temporary[key_for(k)]] }]
  update.each do |k, v|
    set_key(k, v, @temporary, nil)
  end
  return unless block_given?
  begin
    yield
  ensure
    existing.each {|k, v| set_key(k, v, @temporary, nil) }
  end
end
validate!() click to toggle source
# File lib/bundler/settings.rb, line 297
def validate!
  all.each do |raw_key|
    [@local_config, ENV, @global_config].each do |settings|
      value = converted_value(settings[key_for(raw_key)], raw_key)
      Validator.validate!(raw_key, value, settings.to_hash.dup)
    end
  end
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.