module Circuit module Rack # Finds the Circuit::Site for the request. Returns a 404 if the site is not found. class MultiSite def initialize(app) @app = app end def call(env) request = ::Rack::Request.new(env) request.site = Circuit.site_store.get(request.host) unless request.site # TODO custom 404 page for site not found return [404, {}, ["Not Found"]] end @app.call(request.env) end end end end