# File lib/rspec/core/hooks.rb, line 103 def after(*args, &block) scope, options = scope_and_options_from(*args) hooks[:after][scope] << AfterHook.new(options, &block) end
# File lib/rspec/core/hooks.rb, line 108 def around(*args, &block) scope, options = scope_and_options_from(*args) hooks[:around][scope] << AroundHook.new(options, &block) end
# File lib/rspec/core/hooks.rb, line 98 def before(*args, &block) scope, options = scope_and_options_from(*args) hooks[:before][scope] << BeforeHook.new(options, &block) end
# File lib/rspec/core/hooks.rb, line 129 def find_hook(hook, scope, example_group_class, example = nil) found_hooks = hooks[hook][scope].find_hooks_for(example || example_group_class) # ensure we don't re-run :all hooks that were applied to any of the parent groups if scope == :all super_klass = example_group_class.superclass while super_klass != RSpec::Core::ExampleGroup found_hooks = found_hooks.without_hooks_for(super_klass) super_klass = super_klass.superclass end end found_hooks end
# File lib/rspec/core/hooks.rb, line 90 def hooks @hooks ||= { :around => { :each => AroundHooks.new }, :before => { :each => BeforeHooks.new, :all => BeforeHooks.new, :suite => BeforeHooks.new }, :after => { :each => AfterHooks.new, :all => AfterHooks.new, :suite => AfterHooks.new } } end
Runs all of the blocks stored with the hook in the context of the example. If no example is provided, just calls the hook directly.
# File lib/rspec/core/hooks.rb, line 115 def run_hook(hook, scope, example_group_instance=nil) hooks[hook][scope].run_all(example_group_instance) end
Just like run_hook, except it removes the blocks as it evalutes them, ensuring that they will only be run once.
# File lib/rspec/core/hooks.rb, line 121 def run_hook!(hook, scope, example_group_instance) hooks[hook][scope].run_all!(example_group_instance) end
Generated with the Darkfish Rdoc Generator 2.