Class: Tessa::Asset::Failure

Inherits:
SimpleDelegator
  • Object
show all
Defined in:
lib/tessa/asset/failure.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id:, message:) ⇒ Failure

Returns a new instance of Failure.



6
7
8
9
# File 'lib/tessa/asset/failure.rb', line 6

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

Instance Attribute Details

#messageObject (readonly)

Returns the value of attribute message.



4
5
6
# File 'lib/tessa/asset/failure.rb', line 4

def message
  @message
end

Class Method Details

.factory(id:, response:) ⇒ Object



11
12
13
# File 'lib/tessa/asset/failure.rb', line 11

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

.message_from_status(status) ⇒ Object



15
16
17
18
19
20
21
22
23
24
# File 'lib/tessa/asset/failure.rb', line 15

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

Instance Method Details

#failure?Boolean

Returns:

  • (Boolean)


26
27
28
# File 'lib/tessa/asset/failure.rb', line 26

def failure?
  true
end

#metaObject



30
31
32
33
34
35
36
# File 'lib/tessa/asset/failure.rb', line 30

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