On 10/09/2012 09:35 AM, Joz Private wrote:
> 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
>
Well for a start, Bank#moves_loans method takes an 'amount' argument 
which you don't appear to be passing. I wouldn't be assigning your bank 
and developer instances to constants either (variable names starting 
with upper case letters are implicitly constants in Ruby). Also, the 
constructor for the Bank object takes 3 values, however you are passing 
them 5?

Sam