Class: Puppet::Settings::Values

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/puppet/settings.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name, defaults) ⇒ Values

Returns a new instance of Values.



1363
1364
1365
1366
1367
# File 'lib/puppet/settings.rb', line 1363

def initialize(name, defaults)
  @name = name
  @values = {}
  @defaults = defaults
end

Instance Attribute Details

#nameObject (readonly)

Returns the value of attribute name.



1361
1362
1363
# File 'lib/puppet/settings.rb', line 1361

def name
  @name
end

Instance Method Details

#inspectObject



1396
1397
1398
# File 'lib/puppet/settings.rb', line 1396

def inspect
  %Q{<#{self.class}:#{self.object_id} @name="#{@name}" @values="#{@values}">}
end

#set(name, value) ⇒ Object



1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
# File 'lib/puppet/settings.rb', line 1372

def set(name, value)
 default = @defaults[name]

 if !default
   raise ArgumentError,
     "Attempt to assign a value to unknown setting #{name.inspect}"
 end

 # This little exception-handling dance ensures that a hook is
 # able to check whether a value for itself has been explicitly
 # set, while still preserving the existing value if the hook
 # throws (as was existing behavior)
 old_value = @values[name]
 @values[name] = value
 begin
   if default.has_hook?
     default.handle(value)
   end
 rescue Exception => e
   @values[name] = old_value
   raise e
 end
end