Sha256: ecd88f3ceb77b1effc4c1eac15dff4b733ba32804d942d732669bd1a5e716cc6
Contents?: true
Size: 1.44 KB
Versions: 4
Compression:
Stored size: 1.44 KB
Contents
require 'logger' require 'sitehub/core' require 'active_support/cache' class SiteHub class Builder include Middleware extend GetterSetterMethods DEFAULT_CACHING_OPTIONS = { expires_in: 30 }.freeze attr_reader :core, :config_server_url, :config_server_caching_options getter_setters :access_logger, :error_logger def config_server(url, caching_options: DEFAULT_CACHING_OPTIONS) @config_server_url = url @config_server_caching_options = caching_options end def force_ssl(except: []) @force_ssl = true @ssl_exclusions = except end def initialize(&block) @core = Core.new instance_eval(&block) if block end def build add_default_middleware use ConfigLoader, config_server_url, caching_options: config_server_caching_options if config_server_url apply_middleware(core.build) end def add_default_middleware use Rack::SslEnforcer, except: @ssl_exclusions if @force_ssl use Rack::FiberPool use Middleware::Logging::ErrorLogger, error_logger || ::Logger.new(STDERR) use Middleware::Logging::AccessLogger, access_logger || ::Logger.new(STDOUT) use Middleware::ErrorHandling use Middleware::TransactionId end def respond_to?(method) super || core.respond_to?(method) end def method_missing(method, *args, &block) core.send(method, *args, &block) rescue NoMethodError super end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
sitehub-0.5.0.alpha12 | lib/sitehub/builder.rb |
sitehub-0.5.0.alpha11 | lib/sitehub/builder.rb |
sitehub-0.5.0.alpha10 | lib/sitehub/builder.rb |
sitehub-0.5.0.alpha8 | lib/sitehub/builder.rb |