Sha256: 7b09680053fa366630124c185b3fa626671194f8d119bf00733985f85cc07c42
Contents?: true
Size: 1.33 KB
Versions: 3
Compression:
Stored size: 1.33 KB
Contents
# frozen_string_literal: true require 'typhoeus' require 'redis' require 'multi_json' module Umbra autoload :Config, 'umbra/config' autoload :Encoder, 'umbra/encoder' autoload :Middleware, 'umbra/middleware' autoload :Publisher, 'umbra/publisher' autoload :Subscriber, 'umbra/subscriber' autoload :RequestBuilder, 'umbra/request_builder' autoload :ShadowRequester, 'umbra/shadow_requester' autoload :SynchronousPublisher, 'umbra/synchronous_publisher' autoload :Version, 'umbra/version' CHANNEL = 'umbra_channel' HEADER_KEY = 'HTTP_X_UMBRA_REQUEST' HEADER_VALUE = 'true' RequestSelector = proc { true } SuppressErrorHandler = proc { nil } class << self attr_reader :config def configure(&block) @config = Config.default(&block) end def publish(env, response) return if umbra_request?(env) return unless @config return unless @config.request_selector.call(env, response) @config.publisher.call(env, response) rescue StandardError => e @config.error_handler.call(e, env, response) end def redis @redis ||= Redis.new(@config.redis_options) end def encoder @config.encoder end def reset! @config = nil @redis = nil end private def umbra_request?(env) env[HEADER_KEY] == HEADER_VALUE end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
umbra-rb-0.1.2.pre | lib/umbra.rb |
umbra-rb-0.1.1.pre | lib/umbra.rb |
umbra-rb-0.1.0.pre | lib/umbra.rb |