diff options
author | Daniel Pittman <daniel@puppetlabs.com> | 2011-03-30 16:56:08 -0700 |
---|---|---|
committer | Daniel Pittman <daniel@puppetlabs.com> | 2011-04-04 10:19:53 -0700 |
commit | 3bb614525f625a688baf8d67c5a580f8a51f4cad (patch) | |
tree | 56937e72fa93d619b945642ed7c5458bb66a890d /lib/puppet/string/action_manager.rb | |
parent | a113e8f03d257375bf4eb2416a6ad7e1958d7868 (diff) | |
download | puppet-3bb614525f625a688baf8d67c5a580f8a51f4cad.tar.gz puppet-3bb614525f625a688baf8d67c5a580f8a51f4cad.tar.xz puppet-3bb614525f625a688baf8d67c5a580f8a51f4cad.zip |
(#6749) fix an inheritance bug in ActionManager
When we wrote class inheritance of actions for strings we didn't implement
method (ahem, action) lookup correctly. This changes that, by providing the
implementation to our standards, along with appropriate tests.
Reviewed-By: Pieter van de Bruggen <pieter@puppetlabs.com>
Diffstat (limited to 'lib/puppet/string/action_manager.rb')
-rw-r--r-- | lib/puppet/string/action_manager.rb | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/puppet/string/action_manager.rb b/lib/puppet/string/action_manager.rb index c980142ce..7d22a0c52 100644 --- a/lib/puppet/string/action_manager.rb +++ b/lib/puppet/string/action_manager.rb @@ -32,7 +32,15 @@ module Puppet::String::ActionManager def get_action(name) @actions ||= {} - @actions[name.to_sym] + result = @actions[name.to_sym] + if result.nil? + if self.is_a?(Class) and superclass.respond_to?(:get_action) + result = superclass.get_action(name) + elsif self.class.respond_to?(:get_action) + result = self.class.get_action(name) + end + end + return result end def action?(name) |