Class: Messages Private

Inherits:
Object show all
Defined in:
messages.rb

Overview

This class is part of a private API. This class may only be used in the Homebrew/brew repository. Third parties should avoid using this class if possible, as it may be removed or changed without warning.

A Messages object collects messages that may need to be displayed together at the end of a multi-step brew command run.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializevoid

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.



17
18
19
20
21
# File 'messages.rb', line 17

def initialize
  @caveats = T.let([], T::Array[T::Hash[Symbol, Symbol]])
  @package_count = T.let(0, Integer)
  @install_times = T.let([], T::Array[T::Hash[String, Float]])
end

Instance Attribute Details

#caveatsArray<Hash{Symbol => Symbol}> (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



8
9
10
# File 'messages.rb', line 8

def caveats
  @caveats
end

#install_timesArray<Hash{String => Float}> (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:



14
15
16
# File 'messages.rb', line 14

def install_times
  @install_times
end

#package_countInteger (readonly)

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

Returns:

  • (Integer)


11
12
13
# File 'messages.rb', line 11

def package_count
  @package_count
end

Instance Method Details

#display_caveats(force: false) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • force (Boolean) (defaults to: false)


41
42
43
44
45
46
47
48
49
50
# File 'messages.rb', line 41

def display_caveats(force: false)
  return if @package_count.zero?
  return if @package_count == 1 && !force
  return if @caveats.empty?

  oh1 "Caveats"
  @caveats.each do |c|
    ohai c[:package], c[:caveats]
  end
end

#display_install_timesvoid

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.



53
54
55
56
57
58
59
60
# File 'messages.rb', line 53

def display_install_times
  return if install_times.empty?

  oh1 "Installation times"
  install_times.each do |t|
    puts format("%<package>-20s %<time>10.3f s", t)
  end
end

#display_messages(force_caveats: false, display_times: false) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • force_caveats (Boolean) (defaults to: false)
  • display_times (Boolean) (defaults to: false)


35
36
37
38
# File 'messages.rb', line 35

def display_messages(force_caveats: false, display_times: false)
  display_caveats(force: force_caveats)
  display_install_times if display_times
end

#package_installed(package, elapsed_time) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:

  • package (String)
  • elapsed_time (Float)


29
30
31
32
# File 'messages.rb', line 29

def package_installed(package, elapsed_time)
  @package_count += 1
  @install_times.push(package:, time: elapsed_time)
end

#record_caveats(package, caveats) ⇒ void

This method is part of a private API. This method may only be used in the Homebrew/brew repository. Third parties should avoid using this method if possible, as it may be removed or changed without warning.

This method returns an undefined value.

Parameters:



24
25
26
# File 'messages.rb', line 24

def record_caveats(package, caveats)
  @caveats.push(package:, caveats:)
end