Module: Padrino::Routing::InstanceMethods

### Home Classes Methods

### In Files

- lib/padrino-core/application/routing.rb

### Methods

- #absolute_url
- #content_type
- #current_path
- #recognize_path
- #route
- #static!
- #static_file?
- #url
- #url_for

### 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.

# Padrino::Routing::InstanceMethods

Instance methods related to recognizing and processing routes and serving static files.

### Public Instance Methods

absolute_url(*args) click to toggle source

Returns absolute url. Calls Sinatra::Helpers#uri to generate protocol version, hostname and port.

@example

    absolute_url(:show, :id => 1)  # => http://example.com/show?id=1
    absolute_url(:show, 24)        # => https://example.com/admin/show/24
    absolute_url('/foo/bar')       # => https://example.com/admin/foo/bar
    absolute_url('baz')            # => https://example.com/admin/foo/baz

    # File lib/padrino-core/application/routing.rb, line 800
    def absolute_url(*args)
      url_path = args.shift
      if url_path.is_a?(String) && !url_path.start_with?('/')
        url_path = request.env['PATH_INFO'].rpartition('/').first << '/' << url_path
      end
      uri url(url_path, *args), true, false
    end

content_type(type=nil, params={}) click to toggle source

Return the request format, this is useful when we need to respond to a given Content-Type.

@param [Symbol, nil] type

@param [Hash] params

@example

    get :index, :provides => :any do
      case content_type
        when :js    then ...
        when :json  then ...
        when :html  then ...
      end
    end

    # File lib/padrino-core/application/routing.rb, line 878
    def content_type(type=nil, params={})
      return @_content_type unless type
      params.delete(:charset) if type == :json
      super(type, params)
      @_content_type = type
    end

current_path(*path_params) click to toggle source

Returns the current path within a route from specified `path_params`.

    # File lib/padrino-core/application/routing.rb, line 815
    def current_path(*path_params)
      if path_params.last.is_a?(Hash)
        path_params[-1] = params.merge(path_params[-1].with_indifferent_access)
      else
        path_params << params
      end

      path_params[-1] = path_params[-1].symbolize_keys
      @route.path(*path_params)
    end

recognize_path(path) click to toggle source

    # File lib/padrino-core/application/routing.rb, line 808
    def recognize_path(path)
      settings.recognize_path(path)
    end

route() click to toggle source

Returns the current route

@example

    -if route.controller == :press
      %li=show_article

    # File lib/padrino-core/application/routing.rb, line 833
    def route
      @route
    end

static!(options = {}) click to toggle source

Method for deliver static files.

    # File lib/padrino-core/application/routing.rb, line 853
    def static!(options = {})
      if path = static_file?(request.path_info)
        env['sinatra.static_file'] = path
        cache_control(*settings.static_cache_control) if settings.static_cache_control?
        send_file(path, options)
      end
    end

static_file?(path_info) click to toggle source

This is mostly just a helper so request.path_info isn't changed when serving files from the public directory.

    # File lib/padrino-core/application/routing.rb, line 841
    def static_file?(path_info)
      return unless public_dir = settings.public_folder
      public_dir = File.expand_path(public_dir)
      path = File.expand_path(public_dir + unescape(path_info))
      return unless path.start_with?(public_dir)
      return unless File.file?(path)
      return path
    end

url(*args) click to toggle source

Instance method for URL generation.

@example

    url(:show, :id => 1)
    url(:show, :name => :test)
    url(:show, 1)
    url("/foo", false, false)

@see Padrino::Routing::ClassMethods#url

    # File lib/padrino-core/application/routing.rb, line 774
    def url(*args)
      if args.first.is_a?(String)
        url_path = settings.rebase_url(args.shift)
        if args.empty?
          url_path
        else
          # Delegate sinatra-style urls to Sinatra. Ex: url("/foo", false, false)
          # http://www.sinatrarb.com/intro#Generating%20URLs
          super url_path, *args
        end
      else
        # Delegate to Padrino named route URL generation.
        settings.url(*args)
      end
    end

Also aliased as: url_for
url_for(*args) click to toggle source
Alias for: url

[Validate]

Generated with the Darkfish Rdoc Generator 2.