Installation
Add this line to your application's Gemfile:
gem 'rietveld'
And then execute:
$ bundle
Or install it yourself as:
$ gem install rietveld
Example
class MoneyTransferContext < Rietveld::Context
role :source_account do
def withdraw(amount)
if balance >= amount
decrease_balance(amount)
amount
else
raise 'Insufficient funds'
end
end
def transfer(amount)
destination_account.deposit(withdraw(amount))
end
end
role :destination_account do
def deposit(amount)
increase_balance(amount)
end
end
def transfer(amount)
source_account.transfer(amount)
end
end