Module: Roda::RodaPlugins::Hooks::ClassMethods

Defined in:
lib/roda/plugins/hooks.rb

Instance Method Summary collapse

Instance Method Details

#after(&block) ⇒ Object

Add an after hook. If there is already an after hook defined, use a proc that instance_execs the existing after proc and then instance_execs the given after proc, so that the given after proc always executes after the previous one.



42
43
44
45
46
47
48
49
50
51
# File 'lib/roda/plugins/hooks.rb', line 42

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

#before(&block) ⇒ Object

Add a before hook. If there is already a before hook defined, use a proc that instance_execs the give before proc and then instance_execs the existing before proc, so that the given before proc always executes before the previous one.



57
58
59
60
61
62
63
64
65
66
# File 'lib/roda/plugins/hooks.rb', line 57

def before(&block)
  opts[:before_hook] = if b = opts[:before_hook]
    proc do
      instance_exec(&block)
      instance_exec(&b)
    end
  else
    block
  end
end