Class: Yobi::BackupOutcome

Inherits:
Object
  • Object
show all
Defined in:
lib/yobi/repository/backup.rb,
sig/yobi.rbs

Overview

The outcome of one Repository#backup call.

Constant Summary collapse

COMMAND_OUTPUT_LINE_PATTERN =

Returns:

  • (Regexp)
/\Asubprocess [^:]+: (.*)/

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(execution) ⇒ BackupOutcome

Returns a new instance of BackupOutcome.

Parameters:

  • execution (execution)


136
137
138
# File 'lib/yobi/repository/backup.rb', line 136

def initialize(execution)
  @output = execution[:output]
end

Instance Attribute Details

#outputYobi::ResticOutput (readonly)

Returns:



133
134
135
# File 'lib/yobi/repository/backup.rb', line 133

def output
  @output
end

Instance Method Details

#command_outputvoid #command_outputEnumerator[String, void]

The source: [:stdin_from_command, ...] subprocess's own stderr, if any, de-prefixed.

Overloads:

  • #command_outputvoid

    This method returns an undefined value.

  • #command_outputEnumerator[String, void]

    Returns:

    • (Enumerator[String, void])

Yields:

Yield Parameters:

  • line (String)

Yield Returns:

  • (void)

Returns:

  • (Enumerator)

    if no block is given



157
158
159
160
161
162
163
164
# File 'lib/yobi/repository/backup.rb', line 157

def command_output
  return enum_for(:command_output) unless block_given?

  output.stderr_lines.each do |line|
    match = COMMAND_OUTPUT_LINE_PATTERN.match(line)
    yield match[1] if match
  end
end

#errorsEnumerable<Yobi::BackupError>

Returns:



141
142
143
# File 'lib/yobi/repository/backup.rb', line 141

def errors
  @errors ||= output.messages("error")
end

#inspectString

Returns:

  • (String)


465
# File 'sig/yobi.rbs', line 465

def inspect: () -> String

#messagesEnumerable<Yobi::BackupStatus, Yobi::BackupError, Yobi::BackupVerboseStatus, Yobi::BackupSummary>

Every message from the run, in file order, each wrapped in its own Yobi::BackupStatus/Yobi::BackupError/Yobi::BackupVerboseStatus/Yobi::BackupSummary.



149
150
151
# File 'lib/yobi/repository/backup.rb', line 149

def messages
  @messages ||= output.messages
end

#pretty_print(q) ⇒ void

This method returns an undefined value.



173
174
175
176
177
178
179
180
# File 'lib/yobi/repository/backup.rb', line 173

def pretty_print(q)
  q.object_group(self) do
    q.breakable
    q.text("(has errors)") if errors.any?
    q.breakable
    q.pp summary
  end
end

#summaryYobi::BackupSummary Also known as: report

Returns Restic's own "summary" fields.

Returns:



167
168
169
# File 'lib/yobi/repository/backup.rb', line 167

def summary
  @summary ||= output.messages("summary").first || BackupSummary.new({})
end