Sha256: be9af2d4b0861dfe9457799800f0351d6f5d89865cf3b4af71ac72d1cee4bb79
Contents?: true
Size: 1.36 KB
Versions: 2
Compression:
Stored size: 1.36 KB
Contents
require 'forwardable' require 'chillout/server_side' require 'chillout/http_client' require 'chillout/error_filter' require 'chillout/dispatcher' require 'chillout/config' require 'chillout/error' require 'chillout/event_data_builder' require 'chillout/prefixed_logger' module Chillout class Client extend Forwardable def_delegators :@dispatcher, :dispatch_error, :send_error, :send_creations attr_reader :config attr_reader :logger def initialize(config_or_api_key, options = {}) build_config(config_or_api_key, options) yield @config if block_given? @logger = PrefixedLogger.new("Chillout", @config.logger) @http_client = HttpClient.new(@config, logger) @event_data_builder = EventDataBuilder.new(@config) @server_side = ServerSide.new(@event_data_builder, @http_client) @filter = ErrorFilter.new @dispatcher = Dispatcher.new(@filter, @server_side) end def send_exception(exception, environment = {}) send_error(Error.new(exception, environment)) end private def build_config(config_or_api_key, options) case config_or_api_key when Config @config = config_or_api_key when String @config = Config.new(config_or_api_key) else raise ArgumentError.new("Invalid config passed") end @config.update(options) end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
chillout-0.2.1 | lib/chillout/client.rb |
chillout-0.2.0 | lib/chillout/client.rb |