rubyでメソッドの前処理、後処理を行うメモ

module Foo
  module PreExtension
    def method
      p " pre "
      super
    end
  end

  module Base
    def method
      p " base "
    end
  end

  module PostExtension
    def method
      super
      p " post "
    end
  end


  include Base
  include PostExtension
  include PreExtension
end


class Bar
  include Foo
end

Bar.new.method

# => " pre "
# => " base "
# => " post "