Class: Tina4::Middleware
- Inherits:
-
Object
- Object
- Tina4::Middleware
- Defined in:
- lib/tina4/middleware.rb
Class Method Summary collapse
- .after(pattern = nil, &block) ⇒ Object
- .after_handlers ⇒ Object
- .before(pattern = nil, &block) ⇒ Object
- .before_handlers ⇒ Object
- .clear! ⇒ Object
- .run_after(request, response) ⇒ Object
- .run_before(request, response) ⇒ Object
Class Method Details
.after(pattern = nil, &block) ⇒ Object
18 19 20 |
# File 'lib/tina4/middleware.rb', line 18 def after(pattern = nil, &block) after_handlers << { pattern: pattern, handler: block } end |
.after_handlers ⇒ Object
10 11 12 |
# File 'lib/tina4/middleware.rb', line 10 def after_handlers @after_handlers ||= [] end |
.before(pattern = nil, &block) ⇒ Object
14 15 16 |
# File 'lib/tina4/middleware.rb', line 14 def before(pattern = nil, &block) before_handlers << { pattern: pattern, handler: block } end |
.before_handlers ⇒ Object
6 7 8 |
# File 'lib/tina4/middleware.rb', line 6 def before_handlers @before_handlers ||= [] end |
.clear! ⇒ Object
22 23 24 25 |
# File 'lib/tina4/middleware.rb', line 22 def clear! @before_handlers = [] @after_handlers = [] end |
.run_after(request, response) ⇒ Object
37 38 39 40 41 42 |
# File 'lib/tina4/middleware.rb', line 37 def run_after(request, response) after_handlers.each do |entry| next unless matches_pattern?(request.path, entry[:pattern]) entry[:handler].call(request, response) end end |
.run_before(request, response) ⇒ Object
27 28 29 30 31 32 33 34 35 |
# File 'lib/tina4/middleware.rb', line 27 def run_before(request, response) before_handlers.each do |entry| next unless matches_pattern?(request.path, entry[:pattern]) result = entry[:handler].call(request, response) # If handler returns false, halt the request return false if result == false end true end |