Sha256: b447f7e6e570c3674a62b550a64aeb2ec92da2020322c5fb21ff715eb11acc69

Contents?: true

Size: 705 Bytes

Versions: 23

Compression:

Stored size: 705 Bytes

Contents

require 'delegate'

class Tessa::Asset::Failure < SimpleDelegator
  attr_reader :message

  def initialize(id:, message:)
    @message = message
    super(::Tessa::Asset.new(id: id))
  end

  def self.factory(id:, response:)
    new(id: id, message: message_from_status(response.status))
  end

  def self.message_from_status(status)
    case status.to_s
    when /5\d{2}/
      "The service is unavailable at this time."
    when /4\d{2}/
      "There was a problem retrieving the data for this asset."
    else
      "An error occurred."
    end
  end

  def failure?
    true
  end

  def meta
    {
      name: "Not Found",
      size: "0",
      mime_type: "application/octet-stream"
    }
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
tessa-1.2.3 lib/tessa/asset/failure.rb
tessa-1.2.2 lib/tessa/asset/failure.rb
tessa-2.0 lib/tessa/asset/failure.rb
tessa-1.2.1 lib/tessa/asset/failure.rb
tessa-1.2.0 lib/tessa/asset/failure.rb
tessa-1.1.1 lib/tessa/asset/failure.rb
tessa-1.1.0 lib/tessa/asset/failure.rb
tessa-1.0.2 lib/tessa/asset/failure.rb
tessa-1.0.1 lib/tessa/asset/failure.rb
tessa-1.0.0 lib/tessa/asset/failure.rb
tessa-1.0.0.pre.rc3 lib/tessa/asset/failure.rb
tessa-1.0.0.pre.rc2 lib/tessa/asset/failure.rb
tessa-1.0.0.pre.rc1 lib/tessa/asset/failure.rb
tessa-0.9.2 lib/tessa/asset/failure.rb
tessa-0.9.1 lib/tessa/asset/failure.rb
tessa-0.9.0 lib/tessa/asset/failure.rb
tessa-0.8.0 lib/tessa/asset/failure.rb
tessa-0.7.0 lib/tessa/asset/failure.rb
tessa-0.6.3 lib/tessa/asset/failure.rb
tessa-0.6.2 lib/tessa/asset/failure.rb