Sha256: ed003be4fc4054d4a69ec27f51261e9e79bbf7e7423fe5f71cf9f35845615c35

Contents?: true

Size: 1.89 KB

Versions: 1

Compression:

Stored size: 1.89 KB

Contents

module ActionController
  module UrlWriter
    def url_for_with_subdomains(options)
      if SubdomainFu.needs_rewrite?(options[:subdomain], options[:host] || default_url_options[:host])
        options[:only_path] = false if SubdomainFu.override_only_path
        options[:host] = SubdomainFu.rewrite_host_for_subdomains(options.delete(:subdomain), options[:host] || default_url_options[:host])
      else
        options.delete(:subdomain)
      end
      url_for_without_subdomains(options)
    end
    alias_method_chain :url_for, :subdomains
  end
  
  class UrlRewriter #:nodoc:
    private
    
    def rewrite_url_with_subdomains(options)
      if SubdomainFu.needs_rewrite?(options[:subdomain], (options[:host] || @request.host_with_port))
        options[:only_path] = false if SubdomainFu.override_only_path
        options[:host] = SubdomainFu.rewrite_host_for_subdomains(options.delete(:subdomain), options[:host] || @request.host_with_port)
      else
        options.delete(:subdomain)
      end
      rewrite_url_without_subdomains(options)
    end
    alias_method_chain :rewrite_url, :subdomains
  end
  
  if Rails::VERSION::MAJOR >= 2 and Rails::VERSION::MINOR <= 1
    # hack for http://www.portallabs.com/blog/2008/10/22/fixing-subdomain_fu-with-named-routes/
    module Routing
      module Optimisation
        class PositionalArgumentsWithAdditionalParams
          def guard_condition_with_subdomains
            # don't allow optimisation if a subdomain is present - fixes a problem
            # with the subdomain appearing in the query instead of being rewritten
            # see http://mbleigh.lighthouseapp.com/projects/13148/tickets/8-improper-generated-urls-with-named-routes-for-a-singular-resource
            guard_condition_without_subdomains + " && !args.last.has_key?(:subdomain)"
          end

          alias_method_chain :guard_condition, :subdomains
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
pboling-subdomain-fu-0.2.1 lib/subdomain_fu/url_rewriter.rb