Class: Puppet::Settings::ChainedValues
Overview
Lookup configuration setting value through a chain of different value sources.
Constant Summary collapse
- ENVIRONMENT_SETTING =
"environment".freeze
- ENVIRONMENT_INTERPOLATION_ALLOWED =
['config_version'].freeze
Instance Method Summary collapse
-
#initialize(mode, environment, value_sets, defaults) ⇒ ChainedValues
constructor
private
A new instance of ChainedValues.
-
#interpolate(name) ⇒ Object
Lookup the interpolated value.
-
#lookup(name) ⇒ Object
Lookup the uninterpolated value.
Constructor Details
#initialize(mode, environment, value_sets, defaults) ⇒ ChainedValues
This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.
Returns a new instance of ChainedValues.
1258 1259 1260 1261 1262 1263 |
# File 'lib/puppet/settings.rb', line 1258 def initialize(mode, environment, value_sets, defaults) @mode = mode @environment = environment @value_sets = value_sets @defaults = defaults end |
Instance Method Details
#interpolate(name) ⇒ Object
Lookup the interpolated value. All instances of ‘$name` in the value will be replaced by performing a lookup of `name` and substituting the text for `$name` in the original value. This interpolation is only performed if the looked up value is a String.
1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 |
# File 'lib/puppet/settings.rb', line 1292 def interpolate(name) setting = @defaults[name] if setting val = lookup(name) # if we interpolate code, all hell breaks loose. if name == :code val else # Convert it if necessary begin val = convert(val, name) rescue InterpolationError => err # This happens because we don't have access to the param name when the # exception is originally raised, but we want it in the message raise InterpolationError, "Error converting value for param '#{name}': #{err}", err.backtrace end setting.munge(val) end else nil end end |
#lookup(name) ⇒ Object
Lookup the uninterpolated value.
1270 1271 1272 1273 1274 1275 1276 1277 1278 1279 1280 1281 1282 |
# File 'lib/puppet/settings.rb', line 1270 def lookup(name) set = @value_sets.find do |value_set| value_set.include?(name) end if set value = set.lookup(name) if !value.nil? return value end end @defaults[name].default end |