end def deposit(amount) @balance += amount end def withdraw(amount) @balance -= amount end end class BankAccountProxy def initialize(real_object) @real_object = real_object end def balance @real_object.balance end def deposit(amount) @real_object.deposit(amount) end def withdraw(amount) @real_object.withdraw(amount) end end пятница, 23 ноября 12 г.
real_account @owner_name = owner_name end def deposit(amount) check_access return @subject.deposit(amount) end def withdraw(amount) check_access return @subject.withdraw(amount) end def balance check_access return @subject.balance end def check_access if Etc.getlogin != @owner_name raise "Доступ запрещён: #{Etc.getlogin} не имеет прав доступа." end end end пятница, 23 ноября 12 г.
= subject return s.deposit(amount) end def withdraw(amount) s = subject return s.withdraw(amount) end def balance s = subject return s.balance end def subject @subject || (@subject = BankAccount.new(@starting_balance)) end end пятница, 23 ноября 12 г.
= owner_name end def method_missing(name, *args) check_access @subject.send( name, *args ) end def check_access if Etc.getlogin != @owner_name raise "Доступ запрещён: #{Etc.getlogin} не имеет прав доступа." end end end пятница, 23 ноября 12 г.