Sha256: 2a1225e0afaddc0f975016a7f4281e25344b9c26f327ebdf8ffdc49891bf5452
Contents?: true
Size: 1.32 KB
Versions: 3
Compression:
Stored size: 1.32 KB
Contents
class Rack::App::Router::Base def call(env) app = get_app(env) app && app.call(env) end def endpoints @endpoints ||= [] end def register_endpoint!(endpoint) endpoints.push(endpoint) compile_endpoint!(endpoint) return endpoint end def reset clean_routes! compile_registered_endpoints! end protected def get_app(env) raise(NotImplementedError) end def compile_endpoint!(endpoint) raise(NotImplementedError) end def clean_routes! raise(NotImplementedError) end def compile_registered_endpoints! raise(NotImplementedError) end def fetch_context(request_method, request_path) raise(NotImplementedError) end def as_app(endpoint_or_app) if endpoint_or_app.respond_to?(:to_app) endpoint_or_app.to_app else endpoint_or_app end end def find_by_path_infos(env) yield(raw_path_info(env)) || yield(formatted_path_info(env)) end def get_request_method(env) env[::Rack::App::Constants::ENV::REQUEST_METHOD] end def raw_path_info(env) env[::Rack::App::Constants::ENV::PATH_INFO] end def formatted_path_info(env) path_info = raw_path_info(env).dup path_info.slice!(/#{Regexp.escape(extname(env))}$/) path_info end def extname(env) env[::Rack::App::Constants::ENV::EXTNAME] end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rack-app-5.11.1 | lib/rack/app/router/base.rb |
rack-app-5.11.0 | lib/rack/app/router/base.rb |
rack-app-5.10.2 | lib/rack/app/router/base.rb |