Freeze the environment (i.e. ENV
) in a limited scope.
Inspired by Timecop.
Add this line to your application's Gemfile:
gem "permafrost", "~> 1.0"
And then execute:
$ bundle install
Or install it yourself as:
$ gem install permafrost
Freeze the environment, and change it at will inside a sandbox:
ENV # { "RAILS_ENV" => "production", ... }
Permafrost.freeze do
ENV.clear # {}
end
ENV # { "RAILS_ENV" => "production", ... }
Or, set the environment to use inside the sandbox:
ENV # { "RAILS_ENV" => "production", ... }
Permafrost.freeze("foo" => "bar") do
ENV # { "foo" => "bar" }
end
ENV # { "RAILS_ENV" => "production", ... }
You can also just change something in the environment, leaving the rest as it is:
ENV # { "RAILS_ENV" => "production", ... }
Permafrost.merge("foo" => "bar") do
ENV # { "RAILS_ENV" => "production", ..., "foo" => "bar" }
end
ENV # { "RAILS_ENV" => "production", ... }
After checking out the repo, run bin/setup
to install dependencies. Then, run
rake
to run the linter and tests. You can also run bin/console
for an interactive
prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To
release a new version, update the version number in version.rb
, and then run
bundle exec rake release
, which will create a git tag for the version, push
git commits and tags, and push the .gem
file to rubygems.org.
Bug reports and pull requests are welcome on GitHub at https://github.com/subvisual/permafrost.
Permafrost is copyright © 2020 Subvisual, Lda.
It is open-source, made available for free, and is subject to the terms in its license.
Permafrost was created and is maintained with ❤️ by Subvisual.