class Developer
attr_accessor :name, :networth, :loans, :banks_loaned_from, :bankrupt
def initialize(name, networth, loans, banks_loaned_from, bankrupt)
@name, @networth, @loans, @banks_loaned_from, @bankrupt = name,
networth, loans, banks_loaned_from, bankrupt
end
def is_solvent?
if networth >= owes_amount
then true
else false
end
end
def owes_amount
total_loans = 0
loans_array = loans.split(',')
loans_array.each { |item| total_loans += item.to_f }
total_loans
end
def owes_bank(bank)
loans_array = loans.split(’,’)
banks_array = banks_loaned_from.split(’,’)
banks_array.each do |item|
if bank == item
then i = banks_array.index(item)
loans_array[i].to_f
else
puts(“No such bank - check name.”)
end
end
end
end
class Bank
attr_accessor :name, :amount_of_deposits, :amount_of_loans
def initialize(name, amount_of_deposits, amount_of_loans)
@name, @amount_of_deposits, @amount_of_loans, = name,
amount_of_deposits, amount_of_loans
end
def moves_loans(amount)
amount_of_loans -= amount
amount_of_deposits += (amount*0.5)
end
def bank_is_solvent?
if amount_of_deposits >= amount_of_loans
true
else
false
end
end
end
require_relative ‘.\Bank.rb’
require_relative ‘.\Developers.rb’
class Bankrupter
creating the developers
L = Developer.new(“L”, 650000, “1500000, 500000, 1000000, 300000”,
“AIB,BOI,Ulster,Anglo”, false)
M = Developer.new(“M”, 2100000, “1400000, 2000000”, “AIB,Anglo”,
false)
R = Developer.new(“R”, 900000, “500000, 700000, 1000000, 1200000”,
“AIB,BOI,RSB,Anglo”, false)
MF = Developer.new(“MF”, 1200000, “400000, 2000000, 8000000”,
“AIB,Ulster,Anglo”, false)
MN = Developer.new(“MN”, 3000000, “100000, 300000”, “BOI,RSB”, false)
creating the banks
AIB = Bank.new(“AIB”, 450, 3000000, 500000, false)
Anglo = Bank.new(“Anglo”, 520, 5000000, 12000000, false)
BOI = Bank.new(“BOI”, 600, 2500000, 2500000, false)
RBS = Bank.new(“RBS”, 530, 2800000, 1700000, false)
Ulster = Bank.new(“Ulster”, 580, 2000000, 1500000, false)
developer_object_array = [ L, M, R, MF, MN]
bank_object_array = [ AIB, Anglo, BOI, RBS, Ulster ]
#Now, test if they are solvent or bankrupt, and then the knock-on
effects for the banks …
developer_object_array.each do |dev|
if dev.is_solvent? == false
then puts("#{dev.name} is bankrupt.")
dev.bankrupt = true
bank_object_array.each do |bank|
bank.moves_loans
end
else puts("#{dev.name} is not bankrupt.")
end
end
end