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