state_machine

https://github.com/pluginaweek/state_machine

Ruby

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

StateMachine::Assertions#assert_exclusive_keys

Validates that the given hash only includes at *most* one of a set of
exclusive keys.  If more than one key is found, an ArgumentError will be
raised.

== Examples

  options = {:only => :on, :except => :off}
  assert_exclusive_keys(options, :only)                   # => nil
  assert_exclusive_keys(options, :except)                 # => nil
  assert_exclusive_keys(options, :only, :except)          # => ArgumentError: Conflicting keys: only, except
  assert_exclusive_keys(options, :only, :except, :with)   # => ArgumentError: Conflicting keys: only, except

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_exclusive_keys-for-pr


# Commit to git

git add lib/state_machine/assertions.rbgit commit -m "better docs for StateMachine::Assertions#assert_exclusive_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_exclusive_keys-for-pr

hub pull-request


# Celebrate!