class Rack::Multiplexer

Constants

VERSION

Public Class Methods

new(not_found_application = nil, &block) click to toggle source
# File lib/rack/multiplexer.rb, line 19
def initialize(not_found_application = nil, &block)
  @not_found_application = not_found_application
  instance_eval(&block) if block
end

Public Instance Methods

any(pattern, application, &block) click to toggle source
# File lib/rack/multiplexer.rb, line 53
def any(pattern, application, &block)
  append("ANY", pattern, application || block)
end
append(method, pattern, application) click to toggle source
# File lib/rack/multiplexer.rb, line 57
def append(method, pattern, application)
  routes[method] << Route.new(pattern, application)
end
call(env) click to toggle source
# File lib/rack/multiplexer.rb, line 24
def call(env)
  path = env["PATH_INFO"]
  (
    routes[env["REQUEST_METHOD"]].find(path) ||
    routes["ANY"].find(path) ||
    not_found_application
  ).call(env)
end
delete(pattern, application = nil, &block) click to toggle source
# File lib/rack/multiplexer.rb, line 49
def delete(pattern, application = nil, &block)
  append("DELETE", pattern, application || block)
end
get(pattern, application = nil, &block) click to toggle source
# File lib/rack/multiplexer.rb, line 33
def get(pattern, application = nil, &block)
  append("GET", pattern, application || block)
end
not_found_application() click to toggle source
# File lib/rack/multiplexer.rb, line 65
def not_found_application
  @not_found_application ||= ->(env) {
    [
      404,
      {
        "Content-Type" => "text/plain",
        "Content-Length" => "0",
      },
      [""],
    ]
  }
end
patch(pattern, application = nil, &block) click to toggle source
# File lib/rack/multiplexer.rb, line 45
def patch(pattern, application = nil, &block)
  append("PATCH", pattern, application || block)
end
post(pattern, application = nil, &block) click to toggle source
# File lib/rack/multiplexer.rb, line 37
def post(pattern, application = nil, &block)
  append("POST", pattern, application || block)
end
put(pattern, application = nil, &block) click to toggle source
# File lib/rack/multiplexer.rb, line 41
def put(pattern, application = nil, &block)
  append("PUT", pattern, application || block)
end
routes() click to toggle source
# File lib/rack/multiplexer.rb, line 61
def routes
  @routes ||= Hash.new {|hash, key| hash[key] = Routes.new }
end