diff options
Diffstat (limited to 'lib/puppet/util/settings/boolean_setting.rb')
-rw-r--r-- | lib/puppet/util/settings/boolean_setting.rb | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/puppet/util/settings/boolean_setting.rb b/lib/puppet/util/settings/boolean_setting.rb new file mode 100644 index 000000000..cc2704c4e --- /dev/null +++ b/lib/puppet/util/settings/boolean_setting.rb @@ -0,0 +1,33 @@ +require 'puppet/util/settings/setting' + +# A simple boolean. +class Puppet::Util::Settings::BooleanSetting < Puppet::Util::Settings::Setting + # get the arguments in getopt format + def getopt_args + if short + [["--#{name}", "-#{short}", GetoptLong::NO_ARGUMENT], + ["--no-#{name}", GetoptLong::NO_ARGUMENT]] + else + [["--#{name}", GetoptLong::NO_ARGUMENT], + ["--no-#{name}", GetoptLong::NO_ARGUMENT]] + end + end + + def optparse_args + if short + ["--[no-]#{name}", "-#{short}", desc, :NONE ] + else + ["--[no-]#{name}", desc, :NONE] + end + end + + def munge(value) + case value + when true, "true"; return true + when false, "false"; return false + else + raise ArgumentError, "Invalid value '%s' for %s" % + [value.inspect, @name] + end + end +end |