Sha256: 29355fe43581aceed895ff5b8f5b60705de1cdb2781c9e3dd7ebb0a7547a78d7

Contents?: true

Size: 788 Bytes

Versions: 50

Compression:

Stored size: 788 Bytes

Contents

module ACTV
  # Custom error class for rescuing from all Twitter errors
  class Error < StandardError
    attr_reader :wrapped_exception

    def self.errors
      @errors ||= Hash[descendants.map{|klass| [klass.const_get(:HTTP_STATUS_CODE), klass]}]
    end

    def self.descendants
      ObjectSpace.each_object(::Class).select{|klass| klass < self}
    end

    # Initializes a new Error object
    #
    # @param exception [Exception, String]
    # @return [Twitter::Error]
    def initialize(exception=$!)
      if exception.respond_to?(:backtrace)
        super(exception.message)
        @wrapped_exception = exception
      else
        super(exception.to_s)
      end
    end

    def backtrace
      @wrapped_exception ? @wrapped_exception.backtrace : super
    end

  end
end

Version data entries

50 entries across 50 versions & 1 rubygems

Version Path
actv-2.10.9 lib/actv/error.rb
actv-2.10.8 lib/actv/error.rb
actv-2.10.7 lib/actv/error.rb
actv-2.10.6 lib/actv/error.rb
actv-2.10.5 lib/actv/error.rb
actv-2.10.4 lib/actv/error.rb
actv-2.10.3 lib/actv/error.rb
actv-2.10.2 lib/actv/error.rb
actv-2.10.1 lib/actv/error.rb
actv-2.10.0 lib/actv/error.rb
actv-2.9.2 lib/actv/error.rb
actv-2.9.1 lib/actv/error.rb
actv-2.9.0 lib/actv/error.rb
actv-2.8.2 lib/actv/error.rb
actv-2.8.1 lib/actv/error.rb
actv-2.7.0 lib/actv/error.rb
actv-2.6.0 lib/actv/error.rb
actv-2.5.2 lib/actv/error.rb
actv-2.5.1 lib/actv/error.rb
actv-2.5.0 lib/actv/error.rb