Module: Subdomainitis::RouteSetMethods

Defined in:
lib/subdomainitis.rb

Instance Method Summary collapse

Instance Method Details

#add_subdomain_route(name, subdomain_key) ⇒ Object



114
115
116
# File 'lib/subdomainitis.rb', line 114

def add_subdomain_route(name, subdomain_key)
  subdomain_routes[name] = subdomain_key
end

#host_name(subdomain_parameter, host) ⇒ Object

Raises:



118
119
120
121
122
123
124
125
126
127
128
# File 'lib/subdomainitis.rb', line 118

def host_name(subdomain_parameter, host)
  raise HostRequired.new unless host
  index = -1 - tld_length
  subdomain_parameter = if subdomain_parameter.respond_to?(:to_param)
    subdomain_parameter.to_param
  else
    subdomain_parameter
  end

  ([subdomain_parameter] + host.split(".")[index..-1]).join(".")
end

#subdomain_url_for(subdomain_key, args) ⇒ Object

Raises:



102
103
104
105
106
107
108
109
110
111
112
# File 'lib/subdomainitis.rb', line 102

def subdomain_url_for(subdomain_key, args)
  raise HostRequired.new if args[:only_path]
  subdomain_parameter = args.delete(subdomain_key)
  raise HostRequired.new unless subdomain_parameter

  url_for_without_subdomains(if use_fake_subdomains
    args.merge SUBDOMAIN_KEY => subdomain_parameter
  else
    args.merge :host => host_name(subdomain_parameter, args[:host])
  end)
end

#url_for_with_subdomains(args) ⇒ Object



94
95
96
97
98
99
100
# File 'lib/subdomainitis.rb', line 94

def url_for_with_subdomains(args)
  if subdomain_key = subdomain_routes[args[:use_route]]
    subdomain_url_for(subdomain_key, args.dup)
  else
    url_for_without_subdomains args
  end
end