class SiteHub::Builder

Attributes

forward_proxies[R]
reverse_proxies[R]
sitehub[R]

Public Class Methods

new(&block) click to toggle source
# File lib/sitehub/builder.rb, line 24
def initialize(&block)
  @reverse_proxies = {}
  instance_eval(&block) if block
end

Public Instance Methods

add_default_middleware() click to toggle source
# File lib/sitehub/builder.rb, line 40
def add_default_middleware
  use Middleware::ReverseProxy, reverse_proxies
  use Middleware::TransactionId
  use Middleware::ErrorHandling
  use Middleware::Logging::AccessLogger, access_logger || ::Logger.new(STDOUT)
  use Middleware::Logging::ErrorLogger, error_logger || ::Logger.new(STDERR)
  use Rack::FiberPool
  use Rack::SslEnforcer, except: @ssl_exclusions if @force_ssl
end
build() click to toggle source
# File lib/sitehub/builder.rb, line 33
def build
  forward_proxies.init
  add_default_middleware
  middlewares.reverse!
  apply_middleware(forward_proxies)
end
force_ssl(except: []) click to toggle source
# File lib/sitehub/builder.rb, line 19
def force_ssl(except: [])
  @force_ssl = true
  @ssl_exclusions = except
end
proxy(opts = {}, &block) click to toggle source
# File lib/sitehub/builder.rb, line 50
def proxy(opts = {}, &block)
  mapped_path, url = *(opts.respond_to?(:to_a) ? opts.to_a : [opts]).flatten

  forward_proxies.add_proxy(url: url,
                            mapped_path: mapped_path,
                            &block)
end
reverse_proxy(hash) click to toggle source
# File lib/sitehub/builder.rb, line 58
def reverse_proxy(hash)
  reverse_proxies.merge!(hash)
end