summaryrefslogtreecommitdiffstats
path: root/lib/puppet/string/action_manager.rb
diff options
context:
space:
mode:
authorDaniel Pittman <daniel@puppetlabs.com>2011-03-30 16:56:08 -0700
committerDaniel Pittman <daniel@puppetlabs.com>2011-04-04 10:19:53 -0700
commit3bb614525f625a688baf8d67c5a580f8a51f4cad (patch)
tree56937e72fa93d619b945642ed7c5458bb66a890d /lib/puppet/string/action_manager.rb
parenta113e8f03d257375bf4eb2416a6ad7e1958d7868 (diff)
downloadpuppet-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.rb10
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)