Sha256: e845fe3b88bacc225489b575f96d15335b832b58693dd707e117b6762a5795f7
Contents?: true
Size: 974 Bytes
Versions: 1
Compression:
Stored size: 974 Bytes
Contents
# frozen_string_literal: true require_relative "little_sniffer/version" require_relative "little_sniffer/adapters/net_http_adapter" # LittleSniffer allows to log http request locally class LittleSniffer UnsupportedAdapterError = Class.new(StandardError) HandlerDoesNotMatchTheInterfaceError = Class.new(StandardError) ADAPTERS_MAP = { net_http: Adapters::NetHttpAdapter }.freeze def initialize(handler, adapter = :net_http, &block) adapter = validate_adapter(adapter) validate_handler(handler) adapter.new(handler).sniff(&block) end private def validate_handler(handler) return if handler.respond_to?(:handle) raise HandlerDoesNotMatchTheInterfaceError end def validate_adapter(adapter) adapter = ADAPTERS_MAP[adapter] return adapter if adapter error_message = "maybe you have misspelled it. Appropriate types are: #{ADAPTERS_MAP.keys.join(', ')}" raise UnsupportedAdapterError, error_message end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
little_sniffer-0.1.1 | lib/little_sniffer.rb |