Class: HttpRouter::Node::FreeRegex

### Home Classes Methods

### In Files

- lib/padrino-core/ext/http_router.rb

### Parent

Object

### Methods

- #to_code

### Files

- README.rdoc

### Class/Module Index

Quicksearch

- Padrino
- Padrino::Application
- Padrino::ApplicationLoadError
- Padrino::ApplicationSetup
- Padrino::ApplicationSetup::ClassMethods
- Padrino::AuthenticityToken
- Padrino::Cli
- Padrino::Cli::Adapter
- Padrino::Cli::Base
- Padrino::Cli::Launcher
- Padrino::Filter
- Padrino::Flash
- Padrino::Flash::Helpers
- Padrino::Flash::Storage
- Padrino::Loader
- Padrino::Logger
- Padrino::Logger::Colorize
- Padrino::Logger::Extensions
- Padrino::Logger::Rack
- Padrino::Module
- Padrino::Mounter
- Padrino::Mounter::ApplicationWrapper
- Padrino::Mounter::MounterException
- Padrino::ParamsProtection
- Padrino::ParamsProtection::ClassMethods
- Padrino::ParamsProtection::InstanceMethods
- Padrino::Reloader
- Padrino::Reloader::Rack
- Padrino::Reloader::Storage
- Padrino::Router
- Padrino::Routing
- Padrino::Routing::ClassMethods
- Padrino::Routing::InstanceMethods
- Padrino::Routing::Parent
- Padrino::Routing::UnrecognizedException
- Padrino::Server
- Padrino::ShowExceptions
- Padrino::Tasks
- HttpRouter
- HttpRouter::Node
- HttpRouter::Node::FreeRegex
- HttpRouter::Node::Glob
- HttpRouter::Node::Path
- HttpRouter::Node::SpanningRegex
- HttpRouter::Request
- HttpRouter::Route
- Sinatra
- Sinatra::Base
- Sinatra::Request
- Kernel
- Object
- PadrinoTasks

No matching classes.

# HttpRouter::Node::FreeRegex

### Public Instance Methods

to_code() click to toggle source

    # File lib/padrino-core/ext/http_router.rb, line 183
    def to_code
      id = root.next_counter
      "whole_path#{id} = \"/\#{request.joined_path}\"
      if match = #{matcher.inspect}.match(whole_path#{id}) and match[0].size == whole_path#{id}.size
        request.extra_env['router.regex_match'] = match
        old_path = request.path
        request.path = ['']
        " << (use_named_captures? ?
        "match.names.size.times{|i| request.params << match[i + 1]} if match.respond_to?(:names) && match.names" : "") << "
        #{super}
        request.path = old_path
        request.extra_env.delete('router.regex_match')
        " << (use_named_captures? ?
        "request.params.slice!(-match.names.size, match.names.size)" : ""
        ) << "
      end"
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.