https://github.com/subvisual/permafrost
Freeze the environment in a limited scope.
https://github.com/subvisual/permafrost
environment-variables ruby testing
Last synced: 13 days ago
JSON representation
Freeze the environment in a limited scope.
- Host: GitHub
- URL: https://github.com/subvisual/permafrost
- Owner: subvisual
- License: mit
- Created: 2020-06-03T00:17:14.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2021-04-30T20:41:03.000Z (almost 5 years ago)
- Last Synced: 2025-01-31T03:48:31.467Z (about 1 year ago)
- Topics: environment-variables, ruby, testing
- Language: Ruby
- Size: 13.7 KB
- Stars: 0
- Watchers: 6
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.txt
Awesome Lists containing this project
README
Permafrost
==========
Freeze the environment (i.e. `ENV`) in a limited scope.
Inspired by [Timecop].
Installation
------------
Add this line to your application's Gemfile:
```ruby
gem "permafrost", "~> 1.0"
```
And then execute:
$ bundle install
Or install it yourself as:
$ gem install permafrost
Usage
-----
Freeze the environment, and change it at will inside a sandbox:
```ruby
ENV # { "RAILS_ENV" => "production", ... }
Permafrost.freeze do
ENV.clear # {}
end
ENV # { "RAILS_ENV" => "production", ... }
```
Or, set the environment to use inside the sandbox:
```ruby
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:
```ruby
ENV # { "RAILS_ENV" => "production", ... }
Permafrost.merge("foo" => "bar") do
ENV # { "RAILS_ENV" => "production", ..., "foo" => "bar" }
end
ENV # { "RAILS_ENV" => "production", ... }
```
Development
-----------
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].
Contributing
------------
Bug reports and pull requests are welcome on GitHub at
https://github.com/subvisual/permafrost.
License
-----
Permafrost is copyright © 2020 Subvisual, Lda.
It is open-source, made available for free, and is subject to the terms in
its [license].
About
-----
Permafrost was created and is maintained with :heart: by
[Subvisual][subvisual].
[![Subvisual][subvisual-logo]][subvisual]
[Timecop]: https://github.com/travisjeffery/timecop
[license]: ./LICENSE.txt
[rubygems.org]: https://rubygems.org
[subvisual]: http://subvisual.com
[subvisual-logo]: https://raw.githubusercontent.com/subvisual/guides/master/github/templates/logos/blue.png