class Puppet::Settings::Values

Attributes

name[R]

Public Class Methods

new(name, defaults) click to toggle source
     # File lib/puppet/settings.rb
1534 def initialize(name, defaults)
1535   @name = name
1536   @values = {}
1537   @defaults = defaults
1538 end

Public Instance Methods

inspect() click to toggle source
     # File lib/puppet/settings.rb
1566 def inspect
1567   %Q{<#{self.class}:#{self.object_id} @name="#{@name}" @values="#{@values}">}
1568 end
set(name, value) click to toggle source
     # File lib/puppet/settings.rb
1543 def set(name, value)
1544   default = @defaults[name]
1545 
1546   if !default
1547     raise ArgumentError, _("Attempt to assign a value to unknown setting %{name}") % { name: name.inspect }
1548   end
1549 
1550   # This little exception-handling dance ensures that a hook is
1551   # able to check whether a value for itself has been explicitly
1552   # set, while still preserving the existing value if the hook
1553   # throws (as was existing behavior)
1554   old_value = @values[name]
1555   @values[name] = value
1556   begin
1557     if default.has_hook?
1558       default.handle(value)
1559     end
1560   rescue Exception => e
1561     @values[name] = old_value
1562     raise e
1563   end
1564 end