require "objectteam"
require "lock"
require "bank"
require "deploy"

#create a Bank of bananas.
b = Bank.new("Chiquota", "banana")

#normal behaviour
puts "\n\nnormal behaviour ==============================================="
b.deposit(2)
b.collective_deposit([3,4])

#create connector for simple lock
puts "\n\nsimple lock====================================================="
lock = LockedBank.new
#The simple lock will raise an exception, so we need a block to catch
begin
  #activate connector
  lock.while_active {
    b.deposit(20)   #should work
    b.collective_deposit([3,10,100]) #should fail!! :(
  }
rescue
  puts "Got error: #{$!}\n"
end

#This lock is more advanced
puts "\n\nsafe lock ======================================================"
safelock = SafeLockedBank.new
#activate connector
safelock.while_active {
  b.deposit(71)     #should work
  b.collective_deposit([10,20,30,40,50,60,90])  #should work too!
}



syntax highlighted by Code2HTML, v. 0.9.1