Class: Archaeo::SaveResult

Inherits:
Object
  • Object
show all
Defined in:
lib/archaeo/save_result.rb

Overview

Model representing the outcome of a SavePageNow request.

Contains the resulting archive URL, timestamp, whether the page was already cached, and response metadata.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url:, archive_url:, timestamp:, cached:, status_code: nil, response_url: nil, response_headers: nil) ⇒ SaveResult

Returns a new instance of SaveResult.



12
13
14
15
16
17
18
19
20
21
22
# File 'lib/archaeo/save_result.rb', line 12

def initialize(url:, archive_url:, timestamp:, cached:,
               status_code: nil, response_url: nil,
               response_headers: nil)
  @url = url
  @archive_url = archive_url
  @timestamp = timestamp ? Timestamp.coerce(timestamp) : nil
  @cached = cached
  @status_code = status_code
  @response_url = response_url
  @response_headers = response_headers
end

Instance Attribute Details

#archive_urlObject (readonly)

Returns the value of attribute archive_url.



9
10
11
# File 'lib/archaeo/save_result.rb', line 9

def archive_url
  @archive_url
end

#response_headersObject (readonly)

Returns the value of attribute response_headers.



9
10
11
# File 'lib/archaeo/save_result.rb', line 9

def response_headers
  @response_headers
end

#response_urlObject (readonly)

Returns the value of attribute response_url.



9
10
11
# File 'lib/archaeo/save_result.rb', line 9

def response_url
  @response_url
end

#status_codeObject (readonly)

Returns the value of attribute status_code.



9
10
11
# File 'lib/archaeo/save_result.rb', line 9

def status_code
  @status_code
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



9
10
11
# File 'lib/archaeo/save_result.rb', line 9

def timestamp
  @timestamp
end

#urlObject (readonly)

Returns the value of attribute url.



9
10
11
# File 'lib/archaeo/save_result.rb', line 9

def url
  @url
end

Instance Method Details

#as_jsonObject



43
44
45
46
47
48
49
50
51
52
# File 'lib/archaeo/save_result.rb', line 43

def as_json(*)
  {
    url: @url,
    archive_url: @archive_url,
    timestamp: @timestamp.to_s,
    cached: @cached,
    status_code: @status_code,
    response_url: @response_url,
  }
end

#cached?Boolean

Returns:

  • (Boolean)


24
25
26
# File 'lib/archaeo/save_result.rb', line 24

def cached?
  @cached
end

#inspectObject



59
60
61
# File 'lib/archaeo/save_result.rb', line 59

def inspect
  "#<#{self.class.name} #{@url} cached=#{@cached}>"
end

#success?Boolean

Returns:

  • (Boolean)


28
29
30
# File 'lib/archaeo/save_result.rb', line 28

def success?
  !@archive_url.nil?
end

#to_hObject



32
33
34
35
36
37
38
39
40
41
# File 'lib/archaeo/save_result.rb', line 32

def to_h
  {
    url: @url,
    archive_url: @archive_url,
    timestamp: @timestamp,
    cached: @cached,
    status_code: @status_code,
    response_url: @response_url,
  }
end

#to_sObject



54
55
56
57
# File 'lib/archaeo/save_result.rb', line 54

def to_s
  label = @cached ? "Cached" : "Saved"
  "#{label}: #{@archive_url}"
end