Class: Capistrano::Configuration::Variables
- Inherits:
-
Object
- Object
- Capistrano::Configuration::Variables
show all
- Includes:
- ProcHelpers
- Defined in:
- lib/capistrano/configuration/variables.rb
Overview
Holds the variables assigned at Capistrano runtime via ‘set` and retrieved with `fetch`. Does internal bookkeeping to help identify user mistakes like spelling errors or unused variables that may lead to unexpected behavior.
Instance Method Summary
collapse
callable_without_parameters?
Constructor Details
#initialize(values = {}) ⇒ Variables
Returns a new instance of Variables.
22
23
24
25
26
27
28
|
# File 'lib/capistrano/configuration/variables.rb', line 22
def initialize(values={})
@trusted_keys = []
@fetched_keys = []
@locations = {}
@values = values
@trusted = true
end
|
Instance Method Details
#delete(key) ⇒ Object
63
64
65
|
# File 'lib/capistrano/configuration/variables.rb', line 63
def delete(key)
values.delete(key)
end
|
#fetch(key, default = nil, &block) ⇒ Object
45
46
47
48
|
# File 'lib/capistrano/configuration/variables.rb', line 45
def fetch(key, default=nil, &block)
fetched_keys << key unless fetched_keys.include?(key)
peek(key, default, &block)
end
|
#fetch_for(key, default, &block) ⇒ Object
59
60
61
|
# File 'lib/capistrano/configuration/variables.rb', line 59
def fetch_for(key, default, &block)
block ? values.fetch(key, &block) : values.fetch(key, default)
end
|
#keys ⇒ Object
75
76
77
|
# File 'lib/capistrano/configuration/variables.rb', line 75
def keys
values.keys
end
|
#peek(key, default = nil, &block) ⇒ Object
51
52
53
54
55
56
57
|
# File 'lib/capistrano/configuration/variables.rb', line 51
def peek(key, default=nil, &block)
value = fetch_for(key, default, &block)
while callable_without_parameters?(value)
value = (values[key] = value.call)
end
value
end
|
#set(key, value = nil, &block) ⇒ Object
37
38
39
40
41
42
43
|
# File 'lib/capistrano/configuration/variables.rb', line 37
def set(key, value=nil, &block)
@trusted_keys << key if trusted? && !@trusted_keys.include?(key)
remember_location(key)
values[key] = block || value
trace_set(key)
values[key]
end
|
#source_locations(key) ⇒ Object
Returns an array of source file location(s) where the given key was assigned (i.e. where ‘set` was called). If the key was never assigned, returns `nil`.
87
88
89
|
# File 'lib/capistrano/configuration/variables.rb', line 87
def source_locations(key)
locations[key]
end
|
#trusted_keys ⇒ Object
67
68
69
|
# File 'lib/capistrano/configuration/variables.rb', line 67
def trusted_keys
@trusted_keys.dup
end
|
#untrusted! ⇒ Object
30
31
32
33
34
35
|
# File 'lib/capistrano/configuration/variables.rb', line 30
def untrusted!
@trusted = false
yield
ensure
@trusted = true
end
|
#untrusted_keys ⇒ Object
71
72
73
|
# File 'lib/capistrano/configuration/variables.rb', line 71
def untrusted_keys
keys - @trusted_keys
end
|
#unused_keys ⇒ Object
Keys that have been set, but which have never been fetched.
80
81
82
|
# File 'lib/capistrano/configuration/variables.rb', line 80
def unused_keys
keys - fetched_keys
end
|