Safeword
Prevents blocks of code from being executed until you consider them safe. Useful if you need to run untested code in the production console.
Installation
Add this line to your application's Gemfile:
gem 'safeword'And then execute:
$ bundle
Or install it yourself as:
$ gem install safeword
Usage
Every new instance of Safeword is enabled by default. Enabled safewords prevent code from being executed.
Disabled safewords allow it to be executed.
To enable, disable and verifying if a safeword is enabled, you can use enable, disable
and enabled? respectively:
require 'safeword'
safeword = Safeword.new
safeword.enabled? # => true
safeword.disable
safeword.enabled? # => false
safeword.enable
safeword.enabled? # => truePreventing code execution
Instantiate a Safeword and pass your wrapped code in a block to its use method.
require 'safeword'
safeword = Safeword.new
safeword.use { puts 'start war' } #=> nothing happensAllowing code execution
Call #disable on the safeword to allow subsequent calls to use to execute the provided code blocks:
require 'safeword'
safeword = Safeword.new
safeword.disable
safeword.use { puts 'drop bomb' } #=> drop bombInstantiating a disabled safeword
Safewords are enabled by default, but can be disabled during initialization:
require 'safeword'
safe = Safeword.new
safe.enabled? #=> true
unsafe = Safeword.new(enabled: false)
unsafe.enabled? #=> falseChaining methods
The methods enable, disable and use return the word itself, so you can chain multiple calls together:
require 'safeword'
Safeword.new
.disable
.use { puts 'start war' } #=> start war
.use { puts 'drop bomb' } #=> drop bomb
.enable
.use { puts 'cut fruit' } #=> nothing happensDevelopment
After checking out the repo, run bin/setup to install dependencies. Then, run rake spec to run the 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/wilsonsilva/safeword.
License
The gem is available as open source under the terms of the MIT License.