Sha256: a47d748be393ecc5bd28e6525280944f39ec173c5010e99cd5c3f5d1baf5db17

Contents?: true

Size: 955 Bytes

Versions: 9

Compression:

Stored size: 955 Bytes

Contents

module Zencoder
  class Error < StandardError

    def initialize(error_or_message)
      if error_or_message.is_a?(Exception)
        @error = error_or_message
      else
        @message = error_or_message
      end
    end

    def message
      @message || "#{@error.class} (wrapped in a #{self.class}) - #{@error.message}"
    end

    def backtrace
      if @error
        error_backtrace = ["--- Backtrace from #{@error.class} ---"] + (@error.backtrace || [])
        wrapper_backtrace = ["--- Backtrace from #{self.class} ---"] + (super || [])
        error_backtrace + wrapper_backtrace
      else
        super
      end
    end

    def inspect
      if @error
        "#{@error.inspect} (wrapped in a #{self.class})"
      else
        super
      end
    end

    def to_s
      if @error
        "#{@error.class} (wrapped in a #{self.class}) - #{@error}"
      else
        super
      end
    end
  end

  class HTTPError < Error; end

end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
zencoder-2.5.1 lib/zencoder/errors.rb
zencoder-2.5.0 lib/zencoder/errors.rb
zencoder-2.4.6 lib/zencoder/errors.rb
zencoder-2.4.5 lib/zencoder/errors.rb
zencoder-2.4.4 lib/zencoder/errors.rb
zencoder-2.4.3 lib/zencoder/errors.rb
zencoder-2.4.2 lib/zencoder/errors.rb
zencoder-2.4.1 lib/zencoder/errors.rb
zencoder-2.4.0 lib/zencoder/errors.rb