module Roda::RodaPlugins::Hooks::ClassMethods

def after(&block)

after proc always executes after the previous one.
then instance_execs the given after proc, so that the given
use a proc that instance_execs the existing after proc and
Add an after hook. If there is already an after hook defined,
def after(&block)
  opts[:after_hook] = if b = opts[:after_hook]
    proc do |res|
      instance_exec(res, &b)
      instance_exec(res, &block)
    end
  else
    block
  end
end

def before(&block)

before proc always executes before the previous one.
then instance_execs the existing before proc, so that the given
use a proc that instance_execs the give before proc and
Add a before hook. If there is already a before hook defined,
def before(&block)
  opts[:before_hook] = if b = opts[:before_hook]
    proc do
      instance_exec(&block)
      instance_exec(&b)
    end
  else
    block
  end
end