diff options
| author | Pieter van de Bruggen <pieter@puppetlabs.com> | 2011-04-15 15:31:46 -0700 |
|---|---|---|
| committer | Pieter van de Bruggen <pieter@puppetlabs.com> | 2011-04-15 15:31:46 -0700 |
| commit | 3fe01a34e8397c30a00e7d47b4ac0b93198e1fcf (patch) | |
| tree | 22e20b8f58e2338ef684f6fdbb640d090e768516 /lib/puppet/interface | |
| parent | 64bc8345fd29f17ce7be53187d0acf3fc61d2b58 (diff) | |
| parent | 9264526a7cd45c9ff5767bc6c85585eb19f01f63 (diff) | |
| download | puppet-3fe01a34e8397c30a00e7d47b4ac0b93198e1fcf.tar.gz puppet-3fe01a34e8397c30a00e7d47b4ac0b93198e1fcf.tar.xz puppet-3fe01a34e8397c30a00e7d47b4ac0b93198e1fcf.zip | |
Merge branch 'tickets/2.7.x/7115' into 2.7.x
Diffstat (limited to 'lib/puppet/interface')
| -rw-r--r-- | lib/puppet/interface/action.rb | 2 | ||||
| -rw-r--r-- | lib/puppet/interface/action_builder.rb | 4 | ||||
| -rw-r--r-- | lib/puppet/interface/action_manager.rb | 9 |
3 files changed, 14 insertions, 1 deletions
diff --git a/lib/puppet/interface/action.rb b/lib/puppet/interface/action.rb index db338e39e..3c18c2aaf 100644 --- a/lib/puppet/interface/action.rb +++ b/lib/puppet/interface/action.rb @@ -23,7 +23,7 @@ class Puppet::Interface::Action attr_reader :name def to_s() "#{@face}##{@name}" end - attr_accessor :summary + attr_accessor :default, :summary # Initially, this was defined to allow the @action.invoke pattern, which is # a very natural way to invoke behaviour given our introspection diff --git a/lib/puppet/interface/action_builder.rb b/lib/puppet/interface/action_builder.rb index 34bb3fa44..639d8fc7f 100644 --- a/lib/puppet/interface/action_builder.rb +++ b/lib/puppet/interface/action_builder.rb @@ -29,6 +29,10 @@ class Puppet::Interface::ActionBuilder @action.add_option(option) end + def default + @action.default = true + end + def summary(text) @action.summary = text end diff --git a/lib/puppet/interface/action_manager.rb b/lib/puppet/interface/action_manager.rb index d75697afa..440be2d1b 100644 --- a/lib/puppet/interface/action_manager.rb +++ b/lib/puppet/interface/action_manager.rb @@ -5,8 +5,13 @@ module Puppet::Interface::ActionManager # the code to do so. def action(name, &block) @actions ||= {} + @default_action ||= nil raise "Action #{name} already defined for #{self}" if action?(name) action = Puppet::Interface::ActionBuilder.build(self, name, &block) + if action.default + raise "Actions #{@default_action.name} and #{name} cannot both be default" if @default_action + @default_action = action + end @actions[action.name] = action end @@ -50,6 +55,10 @@ module Puppet::Interface::ActionManager return result end + def get_default_action + @default_action + end + def action?(name) actions.include?(name.to_sym) end |
