Sha256: b5cfc2dd2f1d37db867f5a3a69590170397a27ccccca627b9475833ee4184cec
Contents?: true
Size: 963 Bytes
Versions: 1
Compression:
Stored size: 963 Bytes
Contents
module Galago class Router class Path def initialize(path) @path = path.to_s end def recognizes?(request_path) request_path =~ regex end def named_parameters @path_parameters ||= @path.scan(/\:(\w+)/).flatten end def add_path_params_to_env(env) request = Rack::Request.new(env) if path_params = identify_params_in_path(request.path) path_params.each { |key, value| request.update_param(key, value) } end end def to_s @path end private def regex @regex_path ||= convert_path_to_regex(@path) end def convert_path_to_regex(path) regexp = path.to_s.gsub(/\:\w+/, '([\w-]+)') Regexp.new("^#{regexp}$") end def identify_params_in_path(path) if match = regex.match(path) named_parameters.zip(match.captures) end end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
galago-router-0.0.2 | lib/galago/router/path.rb |