Sha256: 66a9571eac4931e6e955ce33d5f9ffef5105b88fcfcf402e734b6d1d311f4f2b

Contents?: true

Size: 881 Bytes

Versions: 2

Compression:

Stored size: 881 Bytes

Contents

# encoding: utf-8
module ProxyTester
  module Actions
    class HandleError

      private

      attr_reader :exception, :original_message, :handler_klass, :backtrace

      public

      def initialize(exception, handler_klass = ErrorHandler)
        @exception        = exception.class
        @original_message = exception.message
        @backtrace        = exception.backtrace
        @handler_klass    = handler_klass
      end

      def run
        handler                  = handler_klass.find exception
        handler.original_message = original_message
        handler.backtrace        = backtrace

        handler.execute(parsed_message)
      end

      private

      def parsed_message
        result = JSON.parse(original_message)
        return {} unless result.kind_of? Hash

        result
      rescue JSON::ParserError
        {}
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
proxy_tester-0.1.10 lib/proxy_tester/actions/handle_error.rb
proxy_tester-0.1.8 lib/proxy_tester/actions/handle_error.rb