module Roda::RodaPlugins::Hooks::ClassMethods

  1. lib/roda/plugins/hooks.rb

Methods

Public Instance

  1. after
  2. before
  3. freeze

Public Instance methods

after(&block)

Add an after hook.

[show source]
   # File lib/roda/plugins/hooks.rb
54 def after(&block)
55   after_hooks << define_roda_method("after_hook", 1, &block)
56   if after_hooks.length == 1
57     class_eval("alias _roda_after_80__hooks #{after_hooks.first}", __FILE__, __LINE__)
58   else
59     class_eval("def _roda_after_80__hooks(res) #{after_hooks.map{|m| "#{m}(res)"}.join(';')} end", __FILE__, __LINE__)
60   end
61   private :_roda_after_80__hooks
62   def_roda_after
63   nil
64 end
before(&block)

Add a before hook.

[show source]
   # File lib/roda/plugins/hooks.rb
67 def before(&block)
68   before_hooks.unshift(define_roda_method("before_hook", 0, &block))
69   if before_hooks.length == 1
70     class_eval("alias _roda_before_10__hooks #{before_hooks.first}", __FILE__, __LINE__)
71   else
72     class_eval("def _roda_before_10__hooks; #{before_hooks.join(';')} end", __FILE__, __LINE__)
73   end
74   private :_roda_before_10__hooks
75   def_roda_before
76   nil
77 end
freeze()

Freeze the array of hook methods when freezing the app.

[show source]
   # File lib/roda/plugins/hooks.rb
46 def freeze
47   after_hooks.freeze
48   before_hooks.freeze
49 
50   super
51 end