class SiteHub::Middleware::ForwardProxies
Constants
- NIL_PROXY
Attributes
Public Class Methods
new(sitehub_cookie_name)
click to toggle source
# File lib/sitehub/middleware/forward_proxies.rb, line 16 def initialize(sitehub_cookie_name) @sitehub_cookie_name = sitehub_cookie_name self.default = NIL_PROXY end
Public Instance Methods
add_proxy(url: nil, mapped_path:, &block)
click to toggle source
# File lib/sitehub/middleware/forward_proxies.rb, line 34 def add_proxy(url: nil, mapped_path:, &block) self[mapped_path] = ForwardProxyBuilder.new(sitehub_cookie_name: sitehub_cookie_name, url: url, mapped_path: mapped_path, &block) end
call(env)
click to toggle source
# File lib/sitehub/middleware/forward_proxies.rb, line 21 def call(env) source_request = Rack::Request.new(env) forward_proxy = mapped_proxy(path: source_request.path, request: source_request) forward_proxy.call(env) end
init()
click to toggle source
# File lib/sitehub/middleware/forward_proxies.rb, line 29 def init values.each(&:build) self end
mapped_proxy(path:, request:)
click to toggle source
# File lib/sitehub/middleware/forward_proxies.rb, line 41 def mapped_proxy(path:, request:) self[mapping(path)].resolve(id: request.cookies[sitehub_cookie_name], env: request.env) end
mapping(path)
click to toggle source
# File lib/sitehub/middleware/forward_proxies.rb, line 45 def mapping(path) keys.find do |key| case key when Regexp key.match(path) else path == key end end end