Module: Subdomainitis::RouteSetMethods

Defined in:
lib/subdomainitis.rb

Instance Method Summary collapse

Instance Method Details

#add_maindomain_route(name) ⇒ Object



157
158
159
# File 'lib/subdomainitis.rb', line 157

def add_maindomain_route(name)
  maindomain_routes[name] = true
end

#add_subdomain_route(name, subdomain_key) ⇒ Object



153
154
155
# File 'lib/subdomainitis.rb', line 153

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

#host_name(subdomain_parameter, host) ⇒ Object

Raises:



161
162
163
164
165
166
167
168
169
170
171
# File 'lib/subdomainitis.rb', line 161

def host_name(subdomain_parameter, host)
  raise HostRequired.new unless host

  subdomain_parameter = if subdomain_parameter.respond_to?(:to_param)
    subdomain_parameter.to_param
  else
    subdomain_parameter
  end

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

#main_domain_host(host) ⇒ Object



173
174
175
# File 'lib/subdomainitis.rb', line 173

def main_domain_host(host)
  host.split(".")[subdomain_index..-1].join(".")
end

#maindomain_url_for(args) ⇒ Object

Raises:



143
144
145
146
147
148
149
150
151
# File 'lib/subdomainitis.rb', line 143

def maindomain_url_for(args)
  raise HostRequired.new if args[:only_path]

  url_for_without_subdomains(if use_fake_subdomains
    args
  else
    args.merge :host => main_domain_host(args[:host])
  end)
end

#subdomain_indexObject



177
178
179
# File 'lib/subdomainitis.rb', line 177

def subdomain_index
  -1 - tld_length
end

#subdomain_url_for(subdomain_key, args) ⇒ Object

Raises:



131
132
133
134
135
136
137
138
139
140
141
# File 'lib/subdomainitis.rb', line 131

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



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

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