Class: Bundler::Settings
- Inherits:
-
Object
show all
- Defined in:
- lib/bundler/mirror.rb,
lib/bundler/settings.rb
Defined Under Namespace
Classes: Mirror, MirrorConfig, Mirrors, TCPSocketProbe
Constant Summary
collapse
- BOOL_KEYS =
%w(frozen cache_all no_prune disable_local_branch_check disable_shared_gems ignore_messages gem.mit gem.coc silence_root_warning no_install).freeze
- NUMBER_KEYS =
%w(retry timeout redirect ssl_verify_mode).freeze
- DEFAULT_CONFIG =
{ :retry => 3, :timeout => 10, :redirect => 5 }.freeze
Instance Method Summary
collapse
Constructor Details
#initialize(root = nil) ⇒ Settings
Returns a new instance of Settings.
10
11
12
13
14
|
# File 'lib/bundler/settings.rb', line 10
def initialize(root = nil)
@root = root
@local_config = load_config(local_config_file)
@global_config = load_config(global_config_file)
end
|
Instance Method Details
#[](name) ⇒ Object
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
# File 'lib/bundler/settings.rb', line 16
def [](name)
key = key_for(name)
value = (@local_config[key] || ENV[key] || @global_config[key] || DEFAULT_CONFIG[name])
case
when value.nil?
nil
when is_bool(name) || value == "false"
to_bool(value)
when is_num(name)
value.to_i
else
value
end
end
|
#[]=(key, value) ⇒ Object
Also known as:
set_local
32
33
34
35
|
# File 'lib/bundler/settings.rb', line 32
def []=(key, value)
local_config_file || raise(GemfileNotFound, "Could not locate Gemfile")
set_key(key, value, @local_config, local_config_file)
end
|
#all ⇒ Object
47
48
49
50
51
52
53
54
55
|
# File 'lib/bundler/settings.rb', line 47
def all
env_keys = ENV.keys.select {|k| k =~ /BUNDLE_.*/ }
keys = @global_config.keys | @local_config.keys | env_keys
keys.map do |key|
key.sub(/^BUNDLE_/, "").gsub(/__/, ".").downcase
end
end
|
#allow_sudo? ⇒ Boolean
140
141
142
|
# File 'lib/bundler/settings.rb', line 140
def allow_sudo?
!@local_config.key?(key_for(:path))
end
|
#app_cache_path ⇒ Object
148
149
150
151
152
153
154
|
# File 'lib/bundler/settings.rb', line 148
def app_cache_path
@app_cache_path ||= begin
path = self[:cache_path] || "vendor/cache"
raise InvalidOption, "Cache path must be relative to the bundle path" if path.start_with?("/")
path
end
end
|
#credentials_for(uri) ⇒ Object
70
71
72
|
# File 'lib/bundler/settings.rb', line 70
def credentials_for(uri)
self[uri.to_s] || self[uri.host]
end
|
#delete(key) ⇒ Object
39
40
41
|
# File 'lib/bundler/settings.rb', line 39
def delete(key)
@local_config.delete(key_for(key))
end
|
#gem_mirrors ⇒ Object
74
75
76
77
78
79
|
# File 'lib/bundler/settings.rb', line 74
def gem_mirrors
all.inject(Mirrors.new) do |mirrors, k|
mirrors.parse(k, self[k]) if k =~ /^mirror\./
mirrors
end
end
|
#ignore_config? ⇒ Boolean
144
145
146
|
# File 'lib/bundler/settings.rb', line 144
def ignore_config?
ENV["BUNDLE_IGNORE_CONFIG"]
end
|
#local_overrides ⇒ Object
57
58
59
60
61
62
63
|
# File 'lib/bundler/settings.rb', line 57
def local_overrides
repos = {}
all.each do |k|
repos[$'] = self[k] if k =~ /^local\./
end
repos
end
|
#locations(key) ⇒ Object
81
82
83
84
85
86
87
88
89
|
# File 'lib/bundler/settings.rb', line 81
def locations(key)
key = key_for(key)
locations = {}
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) ⇒ Object
65
66
67
68
|
# File 'lib/bundler/settings.rb', line 65
def mirror_for(uri)
uri = URI(uri.to_s) unless uri.is_a?(URI)
gem_mirrors.for(uri.to_s).uri
end
|
#path ⇒ Object
128
129
130
131
132
133
134
135
136
137
138
|
# File 'lib/bundler/settings.rb', line 128
def path
key = key_for(:path)
path = ENV[key] || @global_config[key]
return path if path && !@local_config.key?(key)
if path = self[:path]
"#{path}/#{Bundler.ruby_scope}"
else
Bundler.rubygems.gem_dir
end
end
|
#pretty_values_for(exposed_key) ⇒ Object
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
|
# File 'lib/bundler/settings.rb', line 91
def pretty_values_for(exposed_key)
key = key_for(exposed_key)
locations = []
if @local_config.key?(key)
locations << "Set for your local app (#{local_config_file}): #{@local_config[key].inspect}"
end
if value = ENV[key]
locations << "Set via #{key}: #{value.inspect}"
end
if @global_config.key?(key)
locations << "Set for the current user (#{global_config_file}): #{@global_config[key].inspect}"
end
return ["You have not configured a value for `#{exposed_key}`"] if locations.empty?
locations
end
|
#set_global(key, value) ⇒ Object
43
44
45
|
# File 'lib/bundler/settings.rb', line 43
def set_global(key, value)
set_key(key, value, @global_config, global_config_file)
end
|
#with ⇒ Object
123
124
125
|
# File 'lib/bundler/settings.rb', line 123
def with
get_array(:with)
end
|
#with=(array) ⇒ Object
115
116
117
|
# File 'lib/bundler/settings.rb', line 115
def with=(array)
set_array(:with, array)
end
|
#without ⇒ Object
119
120
121
|
# File 'lib/bundler/settings.rb', line 119
def without
get_array(:without)
end
|
#without=(array) ⇒ Object
111
112
113
|
# File 'lib/bundler/settings.rb', line 111
def without=(array)
set_array(:without, array)
end
|