Class: Subdomainitis::RouteSetMiddleware

Inherits:
Object
  • Object
show all
Defined in:
lib/subdomainitis.rb

Constant Summary collapse

PATH_PARAMETER_KEY =
'action_dispatch.request.path_parameters'

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(route_set, dispatcher, subdomain_key) ⇒ RouteSetMiddleware

Returns a new instance of RouteSetMiddleware.



66
67
68
# File 'lib/subdomainitis.rb', line 66

def initialize(route_set, dispatcher, subdomain_key)
  @route_set, @dispatcher, @subdomain_key = route_set, dispatcher, subdomain_key
end

Instance Attribute Details

#dispatcherObject (readonly)

Returns the value of attribute dispatcher.



70
71
72
# File 'lib/subdomainitis.rb', line 70

def dispatcher
  @dispatcher
end

#route_setObject (readonly)

Returns the value of attribute route_set.



70
71
72
# File 'lib/subdomainitis.rb', line 70

def route_set
  @route_set
end

#subdomain_keyObject (readonly)

Returns the value of attribute subdomain_key.



70
71
72
# File 'lib/subdomainitis.rb', line 70

def subdomain_key
  @subdomain_key
end

Instance Method Details

#call(env) ⇒ Object



75
76
77
78
79
80
81
82
# File 'lib/subdomainitis.rb', line 75

def call(env)
  request = ActionDispatch::Request.new env

  path_parameters = env[PATH_PARAMETER_KEY].merge(subdomain_key => subdomain_from(request))
  env[PATH_PARAMETER_KEY] = path_parameters

  dispatcher.call(env)
end

#subdomain_from(request) ⇒ Object



84
85
86
87
88
89
90
# File 'lib/subdomainitis.rb', line 84

def subdomain_from(request)
  if use_fake_subdomains
    request.GET[SUBDOMAIN_KEY]
  else
    request.subdomain(tld_length)
  end
end