state_machine

https://github.com/pluginaweek/state_machine

Ruby

Adds support for creating state machines for attributes on any Ruby class

StateMachine::Assertions#assert_valid_keys

Validates that the given hash *only* includes the specified valid keys.
If any invalid keys are found, an ArgumentError will be raised.

== Examples

  options = {:name => 'John Smith', :age => 30}
  
  assert_valid_keys(options, :name)           # => ArgumentError: Invalid key(s): age
  assert_valid_keys(options, 'name', 'age')   # => ArgumentError: Invalid key(s): age, name
  assert_valid_keys(options, :name, :age)     # => nil

Source | Google | Stack overflow

Edit

git clone [email protected]:pluginaweek/state_machine.git

cd state_machine

open lib/state_machine/assertions.rb

Contribute

# Make a new branch

git checkout -b -your-name--update-docs-StateMachine--Assertions-assert_valid_keys-for-pr


# Commit to git

git add lib/state_machine/assertions.rbgit commit -m "better docs for StateMachine::Assertions#assert_valid_keys"


# Open pull request

gem install hub # on a mac you can `brew install hub`

hub fork

git push <your name> -your-name--update-docs-StateMachine--Assertions-assert_valid_keys-for-pr

hub pull-request


# Celebrate!