Class: SiteHub::Builder
- Inherits:
-
Object
- Object
- SiteHub::Builder
- Extended by:
- GetterSetterMethods
- Includes:
- Middleware
- Defined in:
- lib/sitehub/builder.rb
Instance Attribute Summary collapse
-
#forward_proxies ⇒ Object
readonly
Returns the value of attribute forward_proxies.
-
#reverse_proxies ⇒ Object
readonly
Returns the value of attribute reverse_proxies.
-
#sitehub ⇒ Object
readonly
Returns the value of attribute sitehub.
Instance Method Summary collapse
- #add_default_middleware ⇒ Object
- #build ⇒ Object
- #force_ssl(except: []) ⇒ Object
-
#initialize(&block) ⇒ Builder
constructor
A new instance of Builder.
- #proxy(opts = {}, &block) ⇒ Object
- #reverse_proxy(hash) ⇒ Object
Methods included from GetterSetterMethods
Methods included from Middleware
#apply_middleware, #middleware?, #middlewares, #use
Constructor Details
#initialize(&block) ⇒ Builder
Returns a new instance of Builder.
24 25 26 27 |
# File 'lib/sitehub/builder.rb', line 24 def initialize(&block) @reverse_proxies = {} instance_eval(&block) if block end |
Instance Attribute Details
#forward_proxies ⇒ Object (readonly)
Returns the value of attribute forward_proxies.
11 12 13 |
# File 'lib/sitehub/builder.rb', line 11 def forward_proxies @forward_proxies end |
#reverse_proxies ⇒ Object (readonly)
Returns the value of attribute reverse_proxies.
11 12 13 |
# File 'lib/sitehub/builder.rb', line 11 def reverse_proxies @reverse_proxies end |
#sitehub ⇒ Object (readonly)
Returns the value of attribute sitehub.
11 12 13 |
# File 'lib/sitehub/builder.rb', line 11 def sitehub @sitehub end |
Instance Method Details
#add_default_middleware ⇒ Object
40 41 42 43 44 45 46 47 48 |
# 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 ⇒ Object
33 34 35 36 37 38 |
# 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: []) ⇒ Object
19 20 21 22 |
# File 'lib/sitehub/builder.rb', line 19 def force_ssl(except: []) @force_ssl = true @ssl_exclusions = except end |
#proxy(opts = {}, &block) ⇒ Object
50 51 52 53 54 55 56 |
# 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) ⇒ Object
58 59 60 |
# File 'lib/sitehub/builder.rb', line 58 def reverse_proxy(hash) reverse_proxies.merge!(hash) end |