In Files

  • bundler/mirror.rb
  • bundler/settings.rb
  • bundler/settings/validator.rb

Class/Module Index [+]

Quicksearch

Bundler::Settings

Public Class Methods

new(root = nil) click to toggle source
 
               # File bundler/settings.rb, line 83
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 bundler/settings.rb, line 90
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 bundler/settings.rb, line 152
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 bundler/settings.rb, line 282
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 bundler/settings.rb, line 292
def app_cache_path
  @app_cache_path ||= self[:cache_path] || "vendor/cache"
end
            
credentials_for(uri) click to toggle source
 
               # File bundler/settings.rb, line 175
def credentials_for(uri)
  self[uri.to_s] || self[uri.host]
end
            
gem_mirrors() click to toggle source
 
               # File bundler/settings.rb, line 179
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 bundler/settings.rb, line 288
def ignore_config?
  ENV["BUNDLE_IGNORE_CONFIG"]
end
            
key_for(key) click to toggle source
 
               # File bundler/settings.rb, line 305
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 bundler/settings.rb, line 162
def local_overrides
  repos = {}
  all.each do |k|
    repos[$'] = self[k] if k =~ /^local\./
  end
  repos
end
            
locations(key) click to toggle source
 
               # File bundler/settings.rb, line 186
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 bundler/settings.rb, line 170
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 bundler/settings.rb, line 224
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 bundler/settings.rb, line 197
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 bundler/settings.rb, line 103
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 bundler/settings.rb, line 124
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 bundler/settings.rb, line 148
def set_global(key, value)
  set_key(key, value, @global_config, global_config_file)
end
            
set_local(key, value) click to toggle source
 
               # File bundler/settings.rb, line 129
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 bundler/settings.rb, line 135
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 bundler/settings.rb, line 296
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