Method: Puppet::Util::Settings#setdefaults

Defined in:
lib/vendor/puppet/util/settings.rb

#setdefaults(section, defs) ⇒ Object

Set a bunch of defaults in a given section. The sections are actually pretty pointless, but they help break things up a bit, anyway.



513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
# File 'lib/vendor/puppet/util/settings.rb', line 513

def setdefaults(section, defs)
  section = section.to_sym
  call = []
  defs.each { |name, hash|
    if hash.is_a? Array
      unless hash.length == 2
        raise ArgumentError, "Defaults specified as an array must contain only the default value and the decription"
      end
      tmp = hash
      hash = {}
      [:default, :desc].zip(tmp).each { |p,v| hash[p] = v }
    end
    name = name.to_sym
    hash[:name] = name
    hash[:section] = section
    raise ArgumentError, "Parameter #{name} is already defined" if @config.include?(name)
    tryconfig = newsetting(hash)
    if short = tryconfig.short
      if other = @shortnames[short]
        raise ArgumentError, "Parameter #{other.name} is already using short name '#{short}'"
      end
      @shortnames[short] = tryconfig
    end
    @config[name] = tryconfig

    # Collect the settings that need to have their hooks called immediately.
    # We have to collect them so that we can be sure we're fully initialized before
    # the hook is called.
    call << tryconfig if tryconfig.call_on_define
  }

  call.each { |setting| setting.handle(self.value(setting.name)) }
end