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.



51
52
53
54
55
56
57
58
59
60
# File 'lib/roda/plugins/hooks.rb', line 51

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.



66
67
68
69
70
71
72
73
74
75
# File 'lib/roda/plugins/hooks.rb', line 66

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