Module: RSpec::Core::Example::Procsy

Defined in:
lib/rspec/core/example.rb

Overview

Note:

Procsy, itself, is not a public API, but we're documenting it here to document how to interact with the object yielded to an around hook.

Used to extend a Proc with behavior that makes it look something like an RSpec::Core::Example in an around hook.

Examples:

RSpec.configure do |c|
  c.around do |ex| # ex is a Proc extended with Procsy
    if ex.[:key] == :some_value && some_global_condition
      raise "some message"
    end
    ex.run         # run delegates to ex.call
  end
end

Instance Attribute Summary (collapse)

Class Method Summary (collapse)

Instance Method Summary (collapse)

Instance Attribute Details

- (Object) metadata (readonly)

The metadata of the RSpec::Core::Example instance.

169
170
171
# File 'lib/rspec/core/example.rb', line 169
def 
  @metadata
end

Class Method Details

+ (Object) extended(proc)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

Adds a run method to the extended Proc, allowing it to be invoked in an around hook using either run or call.

Parameters:

  • (Proc)
176
177
178
179
180
# File 'lib/rspec/core/example.rb', line 176
def self.extended(proc)
  # @api public
  # Foo bar
  def proc.run; call; end
end

Instance Method Details

- (Object) with(metadata)

This method is part of a private API. You should avoid using this method if possible, as it may be removed or be changed in the future.

183
184
185
186
# File 'lib/rspec/core/example.rb', line 183
def with()
  @metadata = 
  self
end