summaryrefslogtreecommitdiffstats
path: root/lib/puppet
diff options
context:
space:
mode:
authorDaniel Pittman <daniel@puppetlabs.com>2011-05-02 10:09:24 -0700
committerDaniel Pittman <daniel@puppetlabs.com>2011-05-02 10:09:24 -0700
commita71bfa10123276b1dc96c5ef540b9fbf222c2f6d (patch)
treeb3a745ae939f5086cc11a7152a25a8d19c3bd873 /lib/puppet
parent040e0fdaacb767d61ef07a41098ebb9c998738e4 (diff)
parentb23cc8abec1a1ec41b554b4e72f9a3c21feaf9da (diff)
downloadpuppet-a71bfa10123276b1dc96c5ef540b9fbf222c2f6d.tar.gz
puppet-a71bfa10123276b1dc96c5ef540b9fbf222c2f6d.tar.xz
puppet-a71bfa10123276b1dc96c5ef540b9fbf222c2f6d.zip
Merge branch 'bug/2.7.x/7282-fail-when-no-invocation-given-for-action' into 2.7.x
Diffstat (limited to 'lib/puppet')
-rw-r--r--lib/puppet/interface/action.rb5
-rw-r--r--lib/puppet/interface/action_builder.rb1
2 files changed, 5 insertions, 1 deletions
diff --git a/lib/puppet/interface/action.rb b/lib/puppet/interface/action.rb
index 0dbdd57bb..203d80827 100644
--- a/lib/puppet/interface/action.rb
+++ b/lib/puppet/interface/action.rb
@@ -171,7 +171,8 @@ class Puppet::Interface::Action
# this stuff work, because it would have been cleaner. Which gives you an
# idea how motivated we were to make this cleaner. Sorry.
# --daniel 2011-03-31
- attr_reader :positional_arg_count
+ attr_reader :positional_arg_count
+ attr_accessor :when_invoked
def when_invoked=(block)
internal_name = "#{@name} implementation, required on Ruby 1.8".to_sym
@@ -219,9 +220,11 @@ WRAPPER
if @face.is_a?(Class)
@face.class_eval do eval wrapper, nil, file, line end
@face.define_method(internal_name, &block)
+ @when_invoked = @face.instance_method(name)
else
@face.instance_eval do eval wrapper, nil, file, line end
@face.meta_def(internal_name, &block)
+ @when_invoked = @face.method(name).unbind
end
end
diff --git a/lib/puppet/interface/action_builder.rb b/lib/puppet/interface/action_builder.rb
index afc49e945..0bf4f1408 100644
--- a/lib/puppet/interface/action_builder.rb
+++ b/lib/puppet/interface/action_builder.rb
@@ -69,5 +69,6 @@ class Puppet::Interface::ActionBuilder
@face = face
@action = Puppet::Interface::Action.new(face, name)
instance_eval(&block)
+ @action.when_invoked or raise ArgumentError, "actions need to know what to do when_invoked; please add the block"
end
end