Module: ActionDispatch::Http::URL

### Home Classes Methods

### In Files

- lib/action_dispatch/http/url.rb

### Methods

- ::extract_domain
- ::extract_subdomain
- ::extract_subdomains
- ::url_for
- #domain
- #host
- #host_with_port
- #optional_port
- #port
- #port_string
- #protocol
- #raw_host_with_port
- #server_port
- #standard_port
- #standard_port?
- #subdomain
- #subdomains
- #url

### Class/Module Index

Quicksearch

- ActionDispatch
- ActionDispatch::Assertions
- ActionDispatch::Assertions::DomAssertions
- ActionDispatch::Assertions::ResponseAssertions
- ActionDispatch::Assertions::RoutingAssertions
- ActionDispatch::Assertions::SelectorAssertions
- ActionDispatch::Assertions::TagAssertions
- ActionDispatch::BestStandardsSupport
- ActionDispatch::BodyProxy
- ActionDispatch::Callbacks
- ActionDispatch::Cookies
- ActionDispatch::Cookies::CookieOverflow
- ActionDispatch::DebugExceptions
- ActionDispatch::ExceptionWrapper
- ActionDispatch::FileHandler
- ActionDispatch::Flash
- ActionDispatch::Flash::FlashHash
- ActionDispatch::Head
- ActionDispatch::Http
- ActionDispatch::Http::Cache
- ActionDispatch::Http::Cache::Request
- ActionDispatch::Http::Cache::Response
- ActionDispatch::Http::FilterParameters
- ActionDispatch::Http::Headers
- ActionDispatch::Http::MimeNegotiation
- ActionDispatch::Http::ParameterFilter
- ActionDispatch::Http::Parameters
- ActionDispatch::Http::URL
- ActionDispatch::Http::Upload
- ActionDispatch::Http::UploadedFile
- ActionDispatch::Integration
- ActionDispatch::Integration::RequestHelpers
- ActionDispatch::Integration::Runner
- ActionDispatch::Integration::Session
- ActionDispatch::IntegrationTest
- ActionDispatch::MiddlewareStack
- ActionDispatch::MiddlewareStack::Middleware
- ActionDispatch::ParamsParser
- ActionDispatch::PerformanceTest
- ActionDispatch::PublicExceptions
- ActionDispatch::RailsEntityStore
- ActionDispatch::RailsMetaStore
- ActionDispatch::Railtie
- ActionDispatch::Reloader
- ActionDispatch::RemoteIp
- ActionDispatch::RemoteIp::GetIp
- ActionDispatch::RemoteIp::IpSpoofAttackError
- ActionDispatch::Request
- ActionDispatch::RequestId
- ActionDispatch::Rescue
- ActionDispatch::Response
- ActionDispatch::Routing
- ActionDispatch::Routing::Mapper
- ActionDispatch::Routing::Mapper::Base
- ActionDispatch::Routing::Mapper::HttpHelpers
- ActionDispatch::Routing::Mapper::Resources
- ActionDispatch::Routing::Mapper::Scoping
- ActionDispatch::Routing::PolymorphicRoutes
- ActionDispatch::Routing::Redirection
- ActionDispatch::Routing::RouteSet
- ActionDispatch::Routing::RouteSet::MountedHelpers
- ActionDispatch::Routing::UrlFor
- ActionDispatch::Session
- ActionDispatch::Session::AbstractStore
- ActionDispatch::Session::CacheStore
- ActionDispatch::Session::Compatibility
- ActionDispatch::Session::CookieStore
- ActionDispatch::Session::DestroyableSession
- ActionDispatch::Session::MemCacheStore
- ActionDispatch::Session::StaleSessionCheck
- ActionDispatch::ShowExceptions
- ActionDispatch::Static
- ActionDispatch::TestProcess
- ActionDispatch::TestRequest
- ActionDispatch::TestResponse
- ActionController
- ActionController::Base
- ActionController::Caching
- ActionController::Caching::Actions
- ActionController::Caching::Actions::ActionCachePath
- ActionController::Caching::Actions::ClassMethods
- ActionController::Caching::ConfigMethods
- ActionController::Caching::Fragments
- ActionController::Caching::Pages
- ActionController::Caching::Pages::ClassMethods
- ActionController::Caching::Sweeping
- ActionController::Compatibility
- ActionController::ConditionalGet
- ActionController::Cookies
- ActionController::DataStreaming
- ActionController::Flash
- ActionController::ForceSSL
- ActionController::ForceSSL::ClassMethods
- ActionController::Head
- ActionController::Helpers
- ActionController::Helpers::ClassMethods
- ActionController::HideActions
- ActionController::HideActions::ClassMethods
- ActionController::HttpAuthentication
- ActionController::HttpAuthentication::Basic
- ActionController::HttpAuthentication::Basic::ControllerMethods
- ActionController::HttpAuthentication::Basic::ControllerMethods::ClassMethods
- ActionController::HttpAuthentication::Digest
- ActionController::HttpAuthentication::Digest::ControllerMethods
- ActionController::HttpAuthentication::Token
- ActionController::HttpAuthentication::Token::ControllerMethods
- ActionController::ImplicitRender
- ActionController::Instrumentation
- ActionController::Instrumentation::ClassMethods
- ActionController::LogSubscriber
- ActionController::Metal
- ActionController::Middleware
- ActionController::Middleware::ActionMiddleware
- ActionController::MimeResponds
- ActionController::MimeResponds::ClassMethods
- ActionController::ParamsWrapper
- ActionController::ParamsWrapper::ClassMethods
- ActionController::RackDelegation
- ActionController::Railtie
- ActionController::Railties
- ActionController::Railties::Paths
- ActionController::RecordIdentifier
- ActionController::Redirecting
- ActionController::Renderers
- ActionController::Renderers::All
- ActionController::Renderers::ClassMethods
- ActionController::Rendering
- ActionController::RequestForgeryProtection
- ActionController::RequestForgeryProtection::ClassMethods
- ActionController::Rescue
- ActionController::Responder
- ActionController::SessionManagement
- ActionController::SessionManagement::ClassMethods
- ActionController::Streaming
- ActionController::TemplateAssertions
- ActionController::TestCase
- ActionController::TestCase::Behavior
- ActionController::TestCase::Behavior::ClassMethods
- ActionController::TestCase::RaiseActionExceptions
- ActionController::TestResponse
- ActionController::Testing
- ActionController::Testing::ClassMethods
- ActionController::UrlFor
- ActionView
- ActionView::Base
- ActionView::Context
- ActionView::FileSystemResolver
- ActionView::FixtureResolver
- ActionView::Helpers
- ActionView::Helpers::ActiveModelHelper
- ActionView::Helpers::ActiveModelInstanceTag
- ActionView::Helpers::AssetPaths
- ActionView::Helpers::AssetTagHelper
- ActionView::Helpers::AssetTagHelper::AssetIncludeTag
- ActionView::Helpers::AssetTagHelper::JavascriptIncludeTag
- ActionView::Helpers::AssetTagHelper::JavascriptTagHelpers
- ActionView::Helpers::AssetTagHelper::JavascriptTagHelpers::ClassMethods
- ActionView::Helpers::AssetTagHelper::StylesheetIncludeTag
- ActionView::Helpers::AssetTagHelper::StylesheetTagHelpers
- ActionView::Helpers::AssetTagHelper::StylesheetTagHelpers::ClassMethods
- ActionView::Helpers::AtomFeedHelper
- ActionView::Helpers::AtomFeedHelper::AtomBuilder
- ActionView::Helpers::AtomFeedHelper::AtomFeedBuilder
- ActionView::Helpers::CacheHelper
- ActionView::Helpers::CaptureHelper
- ActionView::Helpers::CsrfHelper
- ActionView::Helpers::DateHelper
- ActionView::Helpers::DateHelperInstanceTag
- ActionView::Helpers::DebugHelper
- ActionView::Helpers::FormBuilder
- ActionView::Helpers::FormHelper
- ActionView::Helpers::FormOptionsHelper
- ActionView::Helpers::FormTagHelper
- ActionView::Helpers::InstanceTag
- ActionView::Helpers::JavaScriptHelper
- ActionView::Helpers::OutputSafetyHelper
- ActionView::Helpers::RecordTagHelper
- ActionView::Helpers::RenderingHelper
- ActionView::Helpers::SanitizeHelper
- ActionView::Helpers::TagHelper
- ActionView::Helpers::TextHelper
- ActionView::Helpers::TranslationHelper
- ActionView::Helpers::UrlHelper
- ActionView::LogSubscriber
- ActionView::LookupContext
- ActionView::LookupContext::DetailsCache
- ActionView::LookupContext::ViewPaths
- ActionView::NullResolver
- ActionView::PartialRenderer
- ActionView::Railtie
- ActionView::Renderer
- ActionView::Resolver
- ActionView::Resolver::Path
- ActionView::Template
- ActionView::Template::Handlers
- ActionView::Template::Handlers::Builder
- ActionView::Template::Handlers::ERB
- ActionView::Template::Handlers::Erubis
- ActionView::TestCase
- ActionView::TestCase::Behavior
- ActionView::TestCase::Behavior::ClassMethods
- ActionView::TestCase::Behavior::Locals
- ActionView::TestCase::TestController
- AbstractController
- AbstractController::ActionNotFound
- AbstractController::AssetPaths
- AbstractController::Base
- AbstractController::Callbacks
- AbstractController::Callbacks::ClassMethods
- AbstractController::Collector
- AbstractController::DoubleRenderError
- AbstractController::Error
- AbstractController::Helpers
- AbstractController::Helpers::ClassMethods
- AbstractController::Layouts
- AbstractController::Layouts::ClassMethods
- AbstractController::Layouts::ClassMethods::LayoutConditions
- AbstractController::Logger
- AbstractController::Railties
- AbstractController::Railties::RoutesHelpers
- AbstractController::Rendering
- AbstractController::Rendering::ClassMethods
- AbstractController::Translation
- AbstractController::UrlFor
- AbstractController::UrlFor::ClassMethods
- AbstractController::ViewPaths
- AbstractController::ViewPaths::ClassMethods
- Sprockets
- Sprockets::Bootstrap
- Sprockets::Compressors
- Sprockets::Helpers
- Sprockets::Helpers::IsolatedHelper
- Sprockets::Helpers::RailsHelper
- Sprockets::Helpers::RailsHelper::AssetPaths
- Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError
- Sprockets::Railtie
- Sprockets::StaticCompiler
- HTML
- HTML::FullSanitizer
- HTML::LinkSanitizer
- HTML::Sanitizer
- HTML::Selector
- HTML::Tag
- HTML::WhiteListSanitizer
- Mime
- Mime::Mimes
- Mime::Type
- ActionPack
- Object
- Rack

No matching classes.

# ActionDispatch::Http::URL

### Public Class Methods

extract_domain(host, tld_length = @@tld_length) click to toggle source

    # File lib/action_dispatch/http/url.rb, line 8
    def extract_domain(host, tld_length = @@tld_length)
      return nil unless named_host?(host)
      host.split('.').last(1 + tld_length).join('.')
    end

extract_subdomain(host, tld_length = @@tld_length) click to toggle source

    # File lib/action_dispatch/http/url.rb, line 19
    def extract_subdomain(host, tld_length = @@tld_length)
      extract_subdomains(host, tld_length).join('.')
    end

extract_subdomains(host, tld_length = @@tld_length) click to toggle source

    # File lib/action_dispatch/http/url.rb, line 13
    def extract_subdomains(host, tld_length = @@tld_length)
      return [] unless named_host?(host)
      parts = host.split('.')
      parts[0..-(tld_length+2)]
    end

url_for(options = {}) click to toggle source

    # File lib/action_dispatch/http/url.rb, line 23
    def url_for(options = {})
      unless options[:host].present? || options[:only_path].present?
        raise ArgumentError, 'Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true'
      end

      rewritten_url = ""

      unless options[:only_path]
        unless options[:protocol] == false
          rewritten_url << (options[:protocol] || "http")
          rewritten_url << ":" unless rewritten_url.match(%{:|//})
        end
        rewritten_url << "//" unless rewritten_url.match("//")
        rewritten_url << rewrite_authentication(options)
        rewritten_url << host_or_subdomain_and_domain(options)
        rewritten_url << ":#{options.delete(:port)}" if options[:port]
      end

      path = options.delete(:path) || ''

      params = options[:params] || {}
      params.reject! {|k,v| v.to_param.nil? }

      if options[:trailing_slash] && !path.ends_with?('/')
        rewritten_url << path.sub(/(\?|\z)/) { "/" + $& }
      else
        rewritten_url << path
      end
      rewritten_url << "?#{params.to_query}" unless params.empty?
      rewritten_url << "##{Journey::Router::Utils.escape_fragment(options[:anchor].to_param.to_s)}" if options[:anchor]
      rewritten_url
    end

### Public Instance Methods

domain(tld_length = @@tld_length) click to toggle source

Returns the domain part of a host, such as "rubyonrails.org" in "www.rubyonrails.org". You can specify a different `tld_length`, such as 2 to catch rubyonrails.co.uk in "www.rubyonrails.co.uk".

    # File lib/action_dispatch/http/url.rb, line 157
    def domain(tld_length = @@tld_length)
      ActionDispatch::Http::URL.extract_domain(host, tld_length)
    end

host() click to toggle source

Returns the host for this request, such as example.com.

    # File lib/action_dispatch/http/url.rb, line 105
    def host
      raw_host_with_port.sub(/:\d+$/, '')
    end

host_with_port() click to toggle source

Returns a host:port string for this request, such as "example.com" or "example.com:8080".

    # File lib/action_dispatch/http/url.rb, line 111
    def host_with_port
      "#{host}#{port_string}"
    end

optional_port() click to toggle source

Returns a number port suffix like 8080 if the port number of this request is not the default HTTP port 80 or HTTPS port 443.

    # File lib/action_dispatch/http/url.rb, line 141
    def optional_port
      standard_port? ? nil : port
    end

port() click to toggle source

Returns the port number of this request as an integer.

    # File lib/action_dispatch/http/url.rb, line 116
    def port
      @port ||= begin
        if raw_host_with_port =~ /:(\d+)$/
          $1.to_i
        else
          standard_port
        end
      end
    end

port_string() click to toggle source

Returns a string port suffix, including colon, like ":8080" if the port number of this request is not the default HTTP port 80 or HTTPS port 443.

    # File lib/action_dispatch/http/url.rb, line 147
    def port_string
      standard_port? ? '' : ":#{port}"
    end

protocol() click to toggle source

Returns 'https://' if this is an SSL request and 'http://' otherwise.

    # File lib/action_dispatch/http/url.rb, line 91
    def protocol
      @protocol ||= ssl? ? 'https://' : 'http://'
    end

raw_host_with_port() click to toggle source

Returns the host for this request, such as "example.com".

    # File lib/action_dispatch/http/url.rb, line 96
    def raw_host_with_port
      if forwarded = env["HTTP_X_FORWARDED_HOST"]
        forwarded.split(/,\s?/).last
      else
        env['HTTP_HOST'] || "#{env['SERVER_NAME'] || env['SERVER_ADDR']}:#{env['SERVER_PORT']}"
      end
    end

server_port() click to toggle source

    # File lib/action_dispatch/http/url.rb, line 151
    def server_port
      @env['SERVER_PORT'].to_i
    end

standard_port() click to toggle source

Returns the standard port number for this request's protocol.

    # File lib/action_dispatch/http/url.rb, line 127
    def standard_port
      case protocol
        when 'https://' then 443
        else 80
      end
    end

standard_port?() click to toggle source

Returns whether this request is using the standard port

    # File lib/action_dispatch/http/url.rb, line 135
    def standard_port?
      port == standard_port
    end

subdomain(tld_length = @@tld_length) click to toggle source

Returns all the subdomains as a string, so `"dev.www"` would be returned for "dev.www.rubyonrails.org". You can specify a different `tld_length`, such as 2 to catch `"www"` instead of `"www.rubyonrails"` in "www.rubyonrails.co.uk".

    # File lib/action_dispatch/http/url.rb, line 173
    def subdomain(tld_length = @@tld_length)
      subdomains(tld_length).join(".")
    end

subdomains(tld_length = @@tld_length) click to toggle source

Returns all the subdomains as an array, so `["dev", "www"]` would be returned for "dev.www.rubyonrails.org". You can specify a different `tld_length`, such as 2 to catch `["www"]` instead of `["www", "rubyonrails"]` in "www.rubyonrails.co.uk".

    # File lib/action_dispatch/http/url.rb, line 165
    def subdomains(tld_length = @@tld_length)
      ActionDispatch::Http::URL.extract_subdomains(host, tld_length)
    end

url() click to toggle source

Returns the complete URL used for this request.

    # File lib/action_dispatch/http/url.rb, line 86
    def url
      protocol + host_with_port + fullpath
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.