Sha256: 2bd818e4f638d3baee775517032f67b0dce12628f59fb4e7982d024ef5369e6f
Contents?: true
Size: 1.05 KB
Versions: 3
Compression:
Stored size: 1.05 KB
Contents
# frozen_string_literal: true class Rack::App::Router::Tree require 'rack/app/router/tree/env' require 'rack/app/router/tree/branch' require 'rack/app/router/tree/leaf' require 'rack/app/router/tree/vein' attr_reader :root def initialize @root = self.class::Branch.new end def add(endpoint) @root.set(self.class::Env.new(endpoint)) end def call(env) configure_request(env) @root.call(env, *env[Rack::App::Constants::ENV::SPLITTED_PATH_INFO]) end protected E = Rack::App::Constants::ENV def configure_request(env) env[E::PATH_PARAMS] ||= {} fpi = format_path_info(env).freeze env[E::FORMATTED_PATH_INFO] = fpi spi = split_path_info(fpi).freeze env[E::SPLITTED_PATH_INFO] = spi env[E::EXTNAME] = extname(spi) end def format_path_info(env) Rack::App::Utils.normalize_path(env[E::PATH_INFO]) end def split_path_info(formatted_path_info) Rack::App::Utils.split_path_info(formatted_path_info) end def extname(splitted_path_info) File.extname(splitted_path_info.last) end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
rack-app-6.0.0 | lib/rack/app/router/tree.rb |
rack-app-5.12.0 | lib/rack/app/router/tree.rb |
rack-app-5.11.1 | lib/rack/app/router/tree.rb |