module RSpec::SleepingKingStudios::Concerns::WrapEnv::ClassMethods

Class methods to define when including RSpec::SleepingKingStudios::Concerns::WrapEnv in a class.

Public Instance Methods

stub_env(key, value = nil, &block)
Alias for: wrap_env
wrap_env(key, value = nil, &block) click to toggle source
# File lib/rspec/sleeping_king_studios/concerns/wrap_env.rb, line 16
def wrap_env key, value = nil, &block
  around(:example) do |wrapped_example|
    begin
      if block_given?
        example = wrapped_example.example
        value   = example.instance_exec(&block)
      end # if

      prior_value = ENV[key]
      ENV[key]    = value

      wrapped_example.call
    ensure
      ENV[key]    = prior_value
    end # begin-ensure
  end # around example
end
Also aliased as: stub_env