Class: Archaeo::AvailabilityResult

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

Overview

Model representing the result of an availability query.

Indicates whether a URL is archived and, if so, provides the closest snapshot’s archive URL and timestamp.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(url:, available:, archive_url: nil, timestamp: nil, archived_status: nil) ⇒ AvailabilityResult

Returns a new instance of AvailabilityResult.



11
12
13
14
15
16
17
18
# File 'lib/archaeo/availability_result.rb', line 11

def initialize(url:, available:, archive_url: nil,
               timestamp: nil, archived_status: nil)
  @url = url
  @available = available
  @archive_url = archive_url
  @timestamp = timestamp
  @archived_status = archived_status
end

Instance Attribute Details

#archive_urlObject (readonly)

Returns the value of attribute archive_url.



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

def archive_url
  @archive_url
end

#archived_statusObject (readonly)

Returns the value of attribute archived_status.



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

def archived_status
  @archived_status
end

#timestampObject (readonly)

Returns the value of attribute timestamp.



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

def timestamp
  @timestamp
end

#urlObject (readonly)

Returns the value of attribute url.



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

def url
  @url
end

Instance Method Details

#as_jsonObject



46
47
48
49
50
51
52
53
54
# File 'lib/archaeo/availability_result.rb', line 46

def as_json(*)
  {
    url: @url,
    available: @available,
    archive_url: @archive_url,
    timestamp: @timestamp&.to_s,
    archived_status: @archived_status,
  }
end

#available?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/archaeo/availability_result.rb', line 20

def available?
  @available
end

#inspectObject



56
57
58
# File 'lib/archaeo/availability_result.rb', line 56

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

#to_hObject



36
37
38
39
40
41
42
43
44
# File 'lib/archaeo/availability_result.rb', line 36

def to_h
  {
    url: @url,
    available: @available,
    archive_url: @archive_url,
    timestamp: @timestamp,
    archived_status: @archived_status,
  }
end

#to_sObject



28
29
30
31
32
33
34
# File 'lib/archaeo/availability_result.rb', line 28

def to_s
  if available?
    "#{url} -> #{archive_url} (#{timestamp})"
  else
    "#{url} -> not available"
  end
end

#unavailable?Boolean

Returns:

  • (Boolean)


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

def unavailable?
  !@available
end