Class: RSpec::Core::Example

Inherits:
Object show all
Defined in:
lib/appmap/rspec.rb

Class Method Summary collapse

Class Method Details

.new(*arguments, &block) ⇒ Object



259
260
261
262
263
264
265
# File 'lib/appmap/rspec.rb', line 259

def self.new(*arguments, &block)
  warn "Wrapping example_block for #{name}" if AppMap::RSpec::LOG
  allocate.tap do |obj|
    arguments[arguments.length - 1] = wrap_example_block(obj, arguments.last) if arguments.last.is_a?(Proc)
    obj.send :initialize, *arguments, &block
  end
end

.wrap_example_block(example, fn) ⇒ Object



247
248
249
250
251
252
253
254
255
256
# File 'lib/appmap/rspec.rb', line 247

def wrap_example_block(example, fn)
  proc do
    AppMap::RSpec.begin_spec example
    begin
      instance_exec(example, &fn)
    ensure
      AppMap::RSpec.end_spec example, exception: $!
    end
  end
end