/usr/lib/ruby/vendor_ruby/rspec/core/sandbox.rb is in ruby-rspec-core 3.5.0c3e0m0s0-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | module RSpec
module Core
# A sandbox isolates the enclosed code into an environment that looks 'new'
# meaning globally accessed objects are reset for the duration of the
# sandbox.
#
# @note This module is not normally available. You must require
# `rspec/core/sandbox` to load it.
module Sandbox
# Execute a provided block with RSpec global objects (configuration,
# world) reset. This is used to test RSpec with RSpec.
#
# When calling this the configuration is passed into the provided block.
# Use this to set custom configs for your sandboxed examples.
#
# ```
# Sandbox.sandboxed do |config|
# config.before(:context) { RSpec.current_example = nil }
# end
# ```
def self.sandboxed
orig_config = RSpec.configuration
orig_world = RSpec.world
orig_example = RSpec.current_example
RSpec.configuration = RSpec::Core::Configuration.new
RSpec.world = RSpec::Core::World.new(RSpec.configuration)
yield RSpec.configuration
ensure
RSpec.configuration = orig_config
RSpec.world = orig_world
RSpec.current_example = orig_example
end
end
end
end
|