Class: Tina4::Middleware

Inherits:
Object
  • Object
show all
Defined in:
lib/tina4/middleware.rb

Class Method Summary collapse

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_handlersObject



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_handlersObject



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