diff options
author | Michael Stahnke <stahnma@puppetlabs.com> | 2011-08-05 09:23:49 -0700 |
---|---|---|
committer | Michael Stahnke <stahnma@puppetlabs.com> | 2011-08-05 09:23:49 -0700 |
commit | 3daea902b29cfd8e126ed64247ddf28aa5ad3d76 (patch) | |
tree | cda7fff4d06c7f3607a84b260fd71adfd9704e3b /lib/puppet/interface/option_builder.rb | |
parent | c8835ad0275c350b57884b81e485d9fc16699a21 (diff) | |
parent | 2185bb2804aeef6b419667951b2157b01404c694 (diff) | |
download | puppet-3daea902b29cfd8e126ed64247ddf28aa5ad3d76.tar.gz puppet-3daea902b29cfd8e126ed64247ddf28aa5ad3d76.tar.xz puppet-3daea902b29cfd8e126ed64247ddf28aa5ad3d76.zip |
Merge branch '2.7.x' into 2.7rc
Diffstat (limited to 'lib/puppet/interface/option_builder.rb')
-rw-r--r-- | lib/puppet/interface/option_builder.rb | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/lib/puppet/interface/option_builder.rb b/lib/puppet/interface/option_builder.rb index 5676ec977..c87adc2c0 100644 --- a/lib/puppet/interface/option_builder.rb +++ b/lib/puppet/interface/option_builder.rb @@ -51,4 +51,17 @@ class Puppet::Interface::OptionBuilder def required(value = true) @option.required = value end + + def default_to(&block) + block or raise ArgumentError, "#{@option} default_to requires a block" + if @option.has_default? + raise ArgumentError, "#{@option} already has a default value" + end + # Ruby 1.8 treats a block without arguments as accepting any number; 1.9 + # gets this right, so we work around it for now... --daniel 2011-07-20 + unless block.arity == 0 or (RUBY_VERSION =~ /^1\.8/ and block.arity == -1) + raise ArgumentError, "#{@option} default_to block should not take any arguments" + end + @option.default = block + end end |