diff options
author | Tails developers <amnesia@boum.org> | 2014-12-19 00:40:08 +0100 |
---|---|---|
committer | Holger Levsen <holger@layer-acht.org> | 2014-12-21 09:45:40 +0100 |
commit | 51680b6ebb645d37ebdfcd122ca163b3a638aefa (patch) | |
tree | 337e128d2eac3cbc89ecbacf38851bfa33469cd5 /features/support/extra_hooks.rb | |
parent | 44bab3c86ca3d95837f4c50cc535206352385a46 (diff) | |
download | jenkins.debian.net-51680b6ebb645d37ebdfcd122ca163b3a638aefa.tar.xz |
files copied from https://git-tails.immerda.ch/tails - many thanks to the tails developers for their nice work and documentation of it - these files have been released under the GNU General Public License version 3 or (at your option) any later version
features/images has been omitted
Diffstat (limited to 'features/support/extra_hooks.rb')
-rw-r--r-- | features/support/extra_hooks.rb | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/features/support/extra_hooks.rb b/features/support/extra_hooks.rb new file mode 100644 index 00000000..a8addb35 --- /dev/null +++ b/features/support/extra_hooks.rb @@ -0,0 +1,45 @@ +require 'cucumber/formatter/pretty' + +# Sort of inspired by Cucumber::RbSupport::RbHook, but really we just +# want an object with a 'tag_expressions' attribute to make +# accept_hook?() (used below) happy. +class SimpleHook + attr_reader :tag_expressions + + def initialize(tag_expressions, proc) + @tag_expressions = tag_expressions + @proc = proc + end + + def invoke(arg) + @proc.call(arg) + end +end + +def BeforeFeature(*tag_expressions, &block) + $before_feature_hooks ||= [] + $before_feature_hooks << SimpleHook.new(tag_expressions, block) +end + +def AfterFeature(*tag_expressions, &block) + $after_feature_hooks ||= [] + $after_feature_hooks << SimpleHook.new(tag_expressions, block) +end + +module ExtraHooks + class Pretty < Cucumber::Formatter::Pretty + def before_feature(feature) + for hook in $before_feature_hooks do + hook.invoke(feature) if feature.accept_hook?(hook) + end + super if defined?(super) + end + + def after_feature(feature) + for hook in $after_feature_hooks do + hook.invoke(feature) if feature.accept_hook?(hook) + end + super if defined?(super) + end + end +end |