https://github.com/wilsonsilva/safeword
A safeword, as used in sports, is a code word used by a player to avoid impending injury.
https://github.com/wilsonsilva/safeword
console prevent prevent-data-loss ruby ruby-gem rubygem
Last synced: 4 months ago
JSON representation
A safeword, as used in sports, is a code word used by a player to avoid impending injury.
- Host: GitHub
- URL: https://github.com/wilsonsilva/safeword
- Owner: wilsonsilva
- License: mit
- Created: 2017-01-04T23:18:21.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-01-05T00:37:50.000Z (over 8 years ago)
- Last Synced: 2025-02-24T05:13:46.749Z (4 months ago)
- Topics: console, prevent, prevent-data-loss, ruby, ruby-gem, rubygem
- Language: Ruby
- Homepage:
- Size: 15.6 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# Safeword
[](https://travis-ci.org/wilsonsilva/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:
```ruby
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:```ruby
require 'safeword'safeword = Safeword.new
safeword.enabled? # => truesafeword.disable
safeword.enabled? # => falsesafeword.enable
safeword.enabled? # => true
```### Preventing code execution
Instantiate a `Safeword` and pass your wrapped code in a block to its `use` method.
```ruby
require 'safeword'safeword = Safeword.new
safeword.use { puts 'start war' } #=> nothing happens
```### Allowing code execution
Call `#disable` on the safeword to allow subsequent calls to `use` to execute the provided code blocks:```ruby
require 'safeword'safeword = Safeword.new
safeword.disable
safeword.use { puts 'drop bomb' } #=> drop bomb
```### Instantiating a disabled safeword
Safewords are enabled by default, but can be disabled during initialization:```ruby
require 'safeword'safe = Safeword.new
safe.enabled? #=> trueunsafe = Safeword.new(enabled: false)
unsafe.enabled? #=> false
```### Chaining methods
The methods `enable`, `disable` and `use` return the word itself, so you can chain multiple calls together:
```ruby
require 'safeword'Safeword.new
.disable
.use { puts 'start war' } #=> start war
.use { puts 'drop bomb' } #=> drop bomb
.enable
.use { puts 'cut fruit' } #=> nothing happens
```## Development
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](https://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](http://opensource.org/licenses/MIT).