Module: Alephant::Support::AOP

Defined in:
lib/alephant/support/aop.rb

Instance Method Summary collapse

Instance Method Details

#around(fn_name) ⇒ Object



5
6
7
8
9
10
11
12
13
14
# File 'lib/alephant/support/aop.rb', line 5

def around(fn_name)
  old_method = instance_method(fn_name)
  define_method(fn_name) do |*args|
    yield :before, args if block_given?
    old_method.bind(self).call(args).tap do |return_value|
      args << return_value unless return_value.nil?
    end
    yield :after, args if block_given?
  end
end