From 9329a1f33b4d7df81ad8661de74f8a3656428570 Mon Sep 17 00:00:00 2001 From: Pieter van de Bruggen Date: Mon, 25 Apr 2011 12:12:24 -0700 Subject: (#7220) Add the ability to "inherit" options. Reviewed-By: Matt Robinson --- lib/puppet/interface/action.rb | 5 +++++ lib/puppet/interface/action_builder.rb | 10 ++++++++++ 2 files changed, 15 insertions(+) (limited to 'lib/puppet/interface') diff --git a/lib/puppet/interface/action.rb b/lib/puppet/interface/action.rb index 08bc0a345..f8eef69b1 100644 --- a/lib/puppet/interface/action.rb +++ b/lib/puppet/interface/action.rb @@ -217,6 +217,11 @@ WRAPPER option end + def inherit_options_from(action) + options = action.options.map { |opt| action.get_option(opt, false) } + options.reject!(&:nil?).uniq.each { |option| add_option(option) } + end + def option?(name) @options.include? name.to_sym end diff --git a/lib/puppet/interface/action_builder.rb b/lib/puppet/interface/action_builder.rb index 2ffa38709..fd8b0856f 100644 --- a/lib/puppet/interface/action_builder.rb +++ b/lib/puppet/interface/action_builder.rb @@ -38,6 +38,16 @@ class Puppet::Interface::ActionBuilder @action.add_option(option) end + def inherit_options_from(action) + if action.is_a? Symbol + name = action + action = @face.get_action(name) or + raise ArgumentError, "This Face has no action named #{name}!" + end + + @action.inherit_options_from(action) + end + def default(value = true) @action.default = !!value end -- cgit