Sha256: 3f0dc42033ccd02f2b685ed2fb2616e93146df41527b7d38c940cf26c6281d83
Contents?: true
Size: 952 Bytes
Versions: 1
Compression:
Stored size: 952 Bytes
Contents
require 'active_support' require 'sitehub/config_server' class SiteHub module Middleware class ConfigLoader attr_reader :config_server, :app, :cache, :caching_options def initialize(_app, config_server_url, caching_options:) @config_server = ConfigServer.new(config_server_url) @cache = ActiveSupport::Cache::MemoryStore.new(size: 1.megabytes) @caching_options = caching_options end def call(env) begin load_config rescue ConfigServer::Error => e if @app env[ERRORS] << e.message else raise e unless @app end end @app.call env end # TODO: handle errors connecting to the config server def load_config config = cache.fetch(:sitehub_config, caching_options) do config_server.get end @app = Core.from_hash(config).build end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
sitehub-0.5.0.alpha8 | lib/sitehub/middleware/config_loader.rb |