class Flatrack::Middleware

Public Class Methods

new(app, opts = {}) click to toggle source
# File lib/flatrack/middleware.rb, line 4
def initialize(app, opts = {})
  @if      = opts[:if] || Proc.new { true }
  @unless  = opts[:unless] || Proc.new { false }
  @app          = app
  @flatrack_app = opts[:flatrack_app] || Flatrack::Site
end

Public Instance Methods

call(env) click to toggle source
# File lib/flatrack/middleware.rb, line 11
def call(env)
  Flatrack::DomainParser.new(null_app).call(env)
  allow = @if.call(env) && !@unless.call(env)
  return call_app env unless allow
  response = @flatrack_app.call env
  status, _, _ = response
  response     = call_app(env) if status == 404
  response
rescue Flatrack::FileNotFound
  call_app env
end
call_app(env) click to toggle source
# File lib/flatrack/middleware.rb, line 23
def call_app(env)
  @app.call env
end
null_app() click to toggle source
# File lib/flatrack/middleware.rb, line 27
def null_app
  ->(_){}
end