Clamped
monkey patches a couple of Ruby classes to clamp values to a whitelist.
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)
# :strawberry
strict: false
calls to_sym
on the passed array:
:apple.clamped(%w[apple banana], strict: false)
# :apple
Clamp 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.