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)


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

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

Instance Attribute Details

#outputYobi::ResticOutput (readonly)

Returns:



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

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



161
162
163
164
165
166
167
168
# File 'lib/yobi/repository/backup.rb', line 161

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:



145
146
147
# File 'lib/yobi/repository/backup.rb', line 145

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

#inspectString

Returns:

  • (String)


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

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.



153
154
155
# File 'lib/yobi/repository/backup.rb', line 153

def messages
  @messages ||= output.messages
end

#pretty_print(q) ⇒ void

This method returns an undefined value.



177
178
179
180
181
182
183
184
# File 'lib/yobi/repository/backup.rb', line 177

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:



171
172
173
# File 'lib/yobi/repository/backup.rb', line 171

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