Class/Module Index [+]

Quicksearch

RSpec::Core::Hooks

Public Instance Methods

after(*args, &block) click to toggle source
# 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
around(*args, &block) click to toggle source
# 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
before(*args, &block) click to toggle source
# 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
find_hook(hook, scope, example_group_class, example = nil) click to toggle source
# 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
hooks() click to toggle source
# 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
run_hook(hook, scope, example_group_instance=nil) click to toggle source

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
run_hook!(hook, scope, example_group_instance) click to toggle source

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
run_hook_filtered(hook, scope, group, example_group_instance, example = nil) click to toggle source
# File lib/rspec/core/hooks.rb, line 125
def run_hook_filtered(hook, scope, group, example_group_instance, example = nil)
  find_hook(hook, scope, group, example).run_all(example_group_instance)
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.