Clamped monkey patches a couple of Ruby classes to clamp values to an allowlist.
For example:
"apple".clamped(%w[banana orange])
# nil
"apple".clamped(%w[apple banana])
# "apple"Install the gem and add to the application's Gemfile by executing:
$ bundle add clamped
If bundler is not being used to manage dependencies, install the gem by executing:
$ gem install clamped
Supported classes:
"apple".clamped(%w[banana orange])
# nil
"apple".clamped(%w[apple banana])
# "apple"
"apple".clamped(%w[banana orange], default: "strawberry")
# "strawberry"strict: false calls to_s on the passed array:
"apple".clamped(%i[apple banana], strict: false)
# "apple":apple.clamped(%i[banana orange])
# nil
:apple.clamped(%i[apple banana])
# :apple
:apple.clamped(%i[banana orange], default: :strawberry)
# :strawberrystrict: false calls to_sym on the passed array:
:apple.clamped(%w[apple banana], strict: false)
# :appleClamp an array with another array:
%i[apple banana orange].clamped %i[apple banana]
# %i[apple banana]{
apple: 'golden',
banana: 'cavendish',
orange: 'sinensis'
}.clamped %i[apple banana]
# {
# apple: 'golden',
# banana: 'cavendish'
# }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, run bundle to update the Gemfile.lock, and then run bundle exec rake release, which will create a git tag for the version, push git commits and the created tag, and push the .gem file to rubygems.org.
Bug reports and pull requests are welcome on GitHub at https://github.com/metikular/clamped.