Skip to content

Instantly share code, notes, and snippets.

@mje113
Created May 8, 2009 17:09
Show Gist options
  • Save mje113/108884 to your computer and use it in GitHub Desktop.
Save mje113/108884 to your computer and use it in GitHub Desktop.
module Rack
class Request
def subdomains(tld_len=1) # we set tld_len to 1, use 2 for co.uk or similar
# cache the result so we only compute it once.
@env['rack.env.subdomains'] ||= lambda {
# check if the current host is an IP address, if so return an empty array
return [] if (host.nil? ||
/\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/.match(host))
host.split('.')[0...(1 - tld_len - 2)] # pull everything except the TLD
}.call
end
end
end
get '/' do
@request.subdomains.join("<br/>")
end
class LeonIMeanNoelMiddleware
def initialize(app)
@app = app
end?
def call(env)
status, headers, response = @app.call(env)
new_response = response.map do |part|
part.gsub(/Leon/, 'Noel')
end
[status, headers, new_response]
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment