module SupportSegment::MethodDecorator
Public Instance Methods
after(method, &block)
click to toggle source
# File lib/support_segment/method_decorator.rb, line 8 def after(method, &block) decorate(method, :after, block) end
around(method, &block)
click to toggle source
# File lib/support_segment/method_decorator.rb, line 12 def around(method, &block) decorate(method, :around, block) end
before(method, &block)
click to toggle source
# File lib/support_segment/method_decorator.rb, line 4 def before(method, &block) decorate(method, :before, block) end
Private Instance Methods
decorate(method, callback, block)
click to toggle source
# File lib/support_segment/method_decorator.rb, line 17 def decorate(method, callback, block) old_method = instance_method(method) define_method(method) do |*args| if [:before, :around].include? callback self.instance_eval &block end old_method.bind(self).call(*args) if [:after, :around].include? callback self.instance_eval &block end end end