Module | Advisable::Method |
In: |
lib/more/facets/advisable.rb
|
Extensions for Method class.
advice_after | [R] | |
advice_around | [R] | |
advice_before | [R] | |
advised | [RW] |
# File lib/more/facets/advisable.rb, line 120 def advice_after=(set) ; @advice_after = set.flatten.compact; end
# File lib/more/facets/advisable.rb, line 121 def advice_around=(set); @advice_around = set.flatten.compact; end
# File lib/more/facets/advisable.rb, line 119 def advice_before=(set); @advice_before = set.flatten.compact; end
Call with advice.
# File lib/more/facets/advisable.rb, line 125 def call_with_advice(obj, *args, &blk) advice_before.each do |name| #advice.call(*args, &blk) obj.send(name, *args, &blk) end target = lambda{ call(*args, &blk) } advice_around.each do |name| target = lambda_target(obj, name, target, *args, &blk) end ret = target.call advice_after.reverse_each do |name| #advice.call(*args, &blk) obj.send(name, *args, &blk) end return ret end