Class: X::MediaProcessingFailed

Inherits:
Uploader::Error show all
Defined in:
x-uploader/lib/x/uploader/media_processing_failed.rb

Overview

Error raised when X fails to process uploaded media, such as a video it cannot decode

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(message = nil, media: nil) ⇒ MediaProcessingFailed

Initialize the error with the reason X gives for the failure

The message is the one given, or else the reason the processing status holds, or else "Media processing failed".

Examples:

Raise the error for a failed status

raise X::MediaProcessingFailed.new(media: status)

Raise the error with a message of its own, as a test stub may

raise X::MediaProcessingFailed, "Unsupported video format"

Parameters:

  • message (String, nil) (defaults to: nil) —

    the message, or nil for the reason the processing status holds

  • media (UploadedMedia, Hash{String => Object}, nil) (defaults to: nil) —

    the media, as the processing status X reported describes it, a Hash of which is held as uploaded media



38
39
40
41
# File 'x-uploader/lib/x/uploader/media_processing_failed.rb', line 38

def initialize(message = nil, media: nil)
  @media = media.is_a?(Hash) ? UploadedMedia.new(media) : media
  super(message || media&.dig("processing_info", "error", "message") || DEFAULT_MESSAGE)
end

Instance Attribute Details

#media ⇒ UploadedMedia? (readonly)

The uploaded media, as the processing status X reported describes it

Its processing_info holds the error X reported.

Examples:

Read the error X reported

error.media.dig("processing_info", "error", "name") # => "InvalidMedia"

Returns:

  • (UploadedMedia, nil) —

    the media, which reads as a Hash, or nil if none was given



22
23
24
# File 'x-uploader/lib/x/uploader/media_processing_failed.rb', line 22

def media
  @media
end