Ruby/Development/Aspect Oriented Programming
Материал из Wiki.crossplatform.ru
(Различия между версиями)
ViGOur (Обсуждение | вклад) м (1 версия: Импорт выборки материалов по Ruby) |
Текущая версия на 17:55, 13 сентября 2010
Doing Aspect-Oriented Programming
require "aspectr" class Verbose < AspectR::Aspect def describe(method_sym, object, *args) "#{object.inspect}.#{method_sym}(#{args.join(",")})" end def before(method_sym, object, return_value, *args) puts "About to call #{describe(method_sym, object, *args)}." end def after(method_sym, object, return_value, *args) puts "#{describe(method_sym, object, *args)} has returned " + return_value.inspect + "." end end verbose = Verbose.new stack = [] verbose.wrap(stack, :before, :after, :push, :pop) p stack.push(10) p stack.pop