class Syntropy::Module
def route_by_host(map = nil)
def route_by_host(map = nil) root = @env[:location] sites = Dir[File.join(root, '*')] .reject { File.basename(it) =~ /^_/ } .select { File.directory?(it) } .each_with_object({}) { |fn, h| name = File.basename(fn) opts = @env.merge(location: fn) h[name] = Syntropy::App.new(opts[:machine], opts[:location], opts[:mount_path], opts) } map&.each do |k, v| sites[k] = sites[v] end lambda { |req| site = sites[req.host] site ? site.call(req) : req.respond(nil, ':status' => Status::BAD_REQUEST) } end