Module | Capistrano::Configuration::Variables |
In: |
lib/capistrano/configuration/variables.rb
lib/capistrano/configuration/variables.rb |
variables | [R] | The hash of variables that have been defined in this configuration instance. |
variables | [R] | The hash of variables that have been defined in this configuration instance. |
# File lib/capistrano/configuration/variables.rb, line 94 94: def [](variable) 95: fetch(variable, nil) 96: end
# File lib/capistrano/configuration/variables.rb, line 94 94: def [](variable) 95: fetch(variable, nil) 96: end
Returns true if the variable has been defined, and false otherwise.
# File lib/capistrano/configuration/variables.rb, line 50 50: def exists?(variable) 51: @variables.key?(variable.to_sym) 52: end
Returns true if the variable has been defined, and false otherwise.
# File lib/capistrano/configuration/variables.rb, line 50 50: def exists?(variable) 51: @variables.key?(variable.to_sym) 52: end
Access a named variable. If the value of the variable responds_to? :call, call will be invoked (without parameters) and the return value cached and returned.
# File lib/capistrano/configuration/variables.rb, line 72 72: def fetch(variable, *args) 73: if !args.empty? && block_given? 74: raise ArgumentError, "you must specify either a default value or a block, but not both" 75: end 76: 77: sym = variable.to_sym 78: protect(sym) do 79: if !@variables.key?(sym) 80: return args.first unless args.empty? 81: return yield(variable) if block_given? 82: raise IndexError, "`#{variable}' not found" 83: end 84: 85: if @variables[sym].respond_to?(:call) 86: @original_procs[sym] = @variables[sym] 87: @variables[sym] = @variables[sym].call 88: end 89: end 90: 91: @variables[sym] 92: end
Access a named variable. If the value of the variable responds_to? :call, call will be invoked (without parameters) and the return value cached and returned.
# File lib/capistrano/configuration/variables.rb, line 72 72: def fetch(variable, *args) 73: if !args.empty? && block_given? 74: raise ArgumentError, "you must specify either a default value or a block, but not both" 75: end 76: 77: sym = variable.to_sym 78: protect(sym) do 79: if !@variables.key?(sym) 80: return args.first unless args.empty? 81: return yield(variable) if block_given? 82: raise IndexError, "`#{variable}' not found" 83: end 84: 85: if @variables[sym].respond_to?(:call) 86: @original_procs[sym] = @variables[sym] 87: @variables[sym] = @variables[sym].call 88: end 89: end 90: 91: @variables[sym] 92: end
If the variable was originally a proc value, it will be reset to it‘s original proc value. Otherwise, this method does nothing. It returns true if the variable was actually reset.
# File lib/capistrano/configuration/variables.rb, line 57 57: def reset!(variable) 58: sym = variable.to_sym 59: protect(sym) do 60: if @original_procs.key?(sym) 61: @variables[sym] = @original_procs.delete(sym) 62: true 63: else 64: false 65: end 66: end 67: end
If the variable was originally a proc value, it will be reset to it‘s original proc value. Otherwise, this method does nothing. It returns true if the variable was actually reset.
# File lib/capistrano/configuration/variables.rb, line 57 57: def reset!(variable) 58: sym = variable.to_sym 59: protect(sym) do 60: if @original_procs.key?(sym) 61: @variables[sym] = @original_procs.delete(sym) 62: true 63: else 64: false 65: end 66: end 67: end
Set a variable to the given value.
# File lib/capistrano/configuration/variables.rb, line 20 20: def set(variable, *args, &block) 21: if variable.to_s !~ /^[_a-z]/ 22: raise ArgumentError, "invalid variable `#{variable}' (variables must begin with an underscore, or a lower-case letter)" 23: end 24: 25: if !block_given? && args.empty? || block_given? && !args.empty? 26: raise ArgumentError, "you must specify exactly one of either a value or a block" 27: end 28: 29: if args.length > 1 30: raise ArgumentError, "wrong number of arguments (#{args.length} for 1)" 31: end 32: 33: value = args.empty? ? block : args.first 34: sym = variable.to_sym 35: protect(sym) { @variables[sym] = value } 36: end
Set a variable to the given value.
# File lib/capistrano/configuration/variables.rb, line 20 20: def set(variable, *args, &block) 21: if variable.to_s !~ /^[_a-z]/ 22: raise ArgumentError, "invalid variable `#{variable}' (variables must begin with an underscore, or a lower-case letter)" 23: end 24: 25: if !block_given? && args.empty? || block_given? && !args.empty? 26: raise ArgumentError, "you must specify exactly one of either a value or a block" 27: end 28: 29: if args.length > 1 30: raise ArgumentError, "wrong number of arguments (#{args.length} for 1)" 31: end 32: 33: value = args.empty? ? block : args.first 34: sym = variable.to_sym 35: protect(sym) { @variables[sym] = value } 36: end
Removes any trace of the given variable.
# File lib/capistrano/configuration/variables.rb, line 41 41: def unset(variable) 42: sym = variable.to_sym 43: protect(sym) do 44: @original_procs.delete(sym) 45: @variables.delete(sym) 46: end 47: end