Spec-Zone.ru › Homebrew

Module: Tty Private

Defined in:
utils/tty.rb,
sorbet/rbi/dsl/tty.rbi

Overview

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

Various helper functions for interacting with TTYs.

Constant Summary collapse

COLOR_CODES =

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

T.let(
  {
    red:     31,
    green:   32,
    yellow:  33,
    blue:    34,
    magenta: 35,
    cyan:    36,
    default: 39,
  }.freeze,
  T::Hash[Symbol, Integer],
)
STYLE_CODES =

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

T.let(
  {
    reset:         0,
    bold:          1,
    italic:        3,
    underline:     4,
    strikethrough: 9,
    no_underline:  24,
  }.freeze,
  T::Hash[Symbol, Integer],
)
SPECIAL_CODES =

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

T.let(
  {
    up:         "1A",
    down:       "1B",
    right:      "1C",
    left:       "1D",
    erase_line: "K",
    erase_char: "P",
  }.freeze,
  T::Hash[Symbol, String],
)
CODES =

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

T.let(COLOR_CODES.merge(STYLE_CODES).freeze, T::Hash[Symbol, Integer])

Class Method Summary collapse

  • .blue ⇒ String private
  • .bold ⇒ String private
  • .clear_to_end ⇒ String private
  • .color? ⇒ Boolean private
  • .current_escape_sequence ⇒ String private
  • .cyan ⇒ String private
  • .default ⇒ String private
  • .down ⇒ String private
  • .erase_char ⇒ String private
  • .erase_line ⇒ String private
  • .green ⇒ String private
  • .height ⇒ Integer private
  • .hide_cursor ⇒ String private
  • .italic ⇒ String private
  • .left ⇒ String private
  • .magenta ⇒ String private
  • .move_cursor_beginning ⇒ String private
  • .move_cursor_down(line_count) ⇒ String private
  • .move_cursor_up_beginning(line_count) ⇒ String private
  • .no_underline ⇒ String private
  • .red ⇒ String private
  • .reset ⇒ String private
  • .reset_escape_sequence! ⇒ void private
  • .right ⇒ String private
  • .show_cursor ⇒ String private
  • .size ⇒ Array<(Integer, Integer)>? private
  • .strikethrough ⇒ String private
  • .strip_ansi(string) ⇒ String private
  • .truncate(string) ⇒ String private
  • .underline ⇒ String private
  • .up ⇒ String private
  • .width ⇒ Integer private

    Keep in sync with columns in Library/Homebrew/utils/tty.sh.

  • .with(stream, &_block) ⇒ void private
  • .yellow ⇒ String private

Class Method Details

.blue ⇒ String

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:

  • (String)


11
# File 'sorbet/rbi/dsl/tty.rbi', line 11

def blue; end

.bold ⇒ String

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:

  • (String)


14
# File 'sorbet/rbi/dsl/tty.rbi', line 14

def bold; end

.clear_to_end ⇒ String

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:

  • (String)


79
80
81
# File 'utils/tty.rb', line 79

def clear_to_end
  "\033[K"
end

.color? ⇒ Boolean

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:

  • (Boolean)


160
161
162
163
164
165
166
167
168
# File 'utils/tty.rb', line 160

def color?
  require "env_config"

  return false if Homebrew::EnvConfig.no_color?
  return true if Homebrew::EnvConfig.color?
  return false if @stream.blank?

  @stream.tty?
end

.current_escape_sequence ⇒ String

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:

  • (String)


120
121
122
123
124
# File 'utils/tty.rb', line 120

def current_escape_sequence
  return "" if @escape_sequence.nil?

  "\033[#{@escape_sequence.join(";")}m"
end

.cyan ⇒ String

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:

  • (String)


17
# File 'sorbet/rbi/dsl/tty.rbi', line 17

def cyan; end

.default ⇒ String

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:

  • (String)


20
# File 'sorbet/rbi/dsl/tty.rbi', line 20

def default; end

.down ⇒ String

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:

  • (String)


23
# File 'sorbet/rbi/dsl/tty.rbi', line 23

def down; end

.erase_char ⇒ String

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:

  • (String)


26
# File 'sorbet/rbi/dsl/tty.rbi', line 26

def erase_char; end

.erase_line ⇒ String

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:

  • (String)


29
# File 'sorbet/rbi/dsl/tty.rbi', line 29

def erase_line; end

.green ⇒ String

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:

  • (String)


32
# File 'sorbet/rbi/dsl/tty.rbi', line 32

def green; end

.height ⇒ Integer

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)


104
105
106
# File 'utils/tty.rb', line 104

def height
  @height ||= T.let(size&.first || `/usr/bin/tput lines 2>/dev/null`.presence&.to_i || 40, T.nilable(Integer))
end

.hide_cursor ⇒ String

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:

  • (String)


84
85
86
# File 'utils/tty.rb', line 84

def hide_cursor
  "\033[?25l"
end

.italic ⇒ String

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:

  • (String)


35
# File 'sorbet/rbi/dsl/tty.rbi', line 35

def italic; end

.left ⇒ String

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:

  • (String)


38
# File 'sorbet/rbi/dsl/tty.rbi', line 38

def left; end

.magenta ⇒ String

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:

  • (String)


41
# File 'sorbet/rbi/dsl/tty.rbi', line 41

def magenta; end

.move_cursor_beginning ⇒ String

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:

  • (String)


69
70
71
# File 'utils/tty.rb', line 69

def move_cursor_beginning
  "\033[0G"
end

.move_cursor_down(line_count) ⇒ String

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.

Parameters:

  • line_count (Integer)

Returns:

  • (String)


74
75
76
# File 'utils/tty.rb', line 74

def move_cursor_down(line_count)
  "\033[#{line_count}B"
end

.move_cursor_up_beginning(line_count) ⇒ String

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.

Parameters:

  • line_count (Integer)

Returns:

  • (String)


64
65
66
# File 'utils/tty.rb', line 64

def move_cursor_up_beginning(line_count)
  "\033[#{line_count}F"
end

.no_underline ⇒ String

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:

  • (String)


44
# File 'sorbet/rbi/dsl/tty.rbi', line 44

def no_underline; end

.red ⇒ String

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:

  • (String)


47
# File 'sorbet/rbi/dsl/tty.rbi', line 47

def red; end

.reset ⇒ String

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:

  • (String)


50
# File 'sorbet/rbi/dsl/tty.rbi', line 50

def reset; end

.reset_escape_sequence! ⇒ 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.



127
128
129
# File 'utils/tty.rb', line 127

def reset_escape_sequence!
  @escape_sequence = T.let(nil, T.nilable(T::Array[Integer]))
end

.right ⇒ String

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:

  • (String)


53
# File 'sorbet/rbi/dsl/tty.rbi', line 53

def right; end

.show_cursor ⇒ String

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:

  • (String)


89
90
91
# File 'utils/tty.rb', line 89

def show_cursor
  "\033[?25h"
end

.size ⇒ Array<(Integer, Integer)>?

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:

  • (Array<(Integer, Integer)>, nil)


94
95
96
97
98
99
100
101
# File 'utils/tty.rb', line 94

def size
  return @size if defined?(@size)

  height, width = `/bin/stty size 2>/dev/null`.presence&.split&.map(&:to_i)
  return if height.nil? || width.nil?

  @size = T.let([height, width], T.nilable([Integer, Integer]))
end

.strikethrough ⇒ String

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:

  • (String)


56
# File 'sorbet/rbi/dsl/tty.rbi', line 56

def strikethrough; end

.strip_ansi(string) ⇒ String

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.

Parameters:

  • string (String)

Returns:

  • (String)


59
60
61
# File 'utils/tty.rb', line 59

def strip_ansi(string)
  string.gsub(/\033\[\d+(;\d+)*m/, "")
end

.truncate(string) ⇒ String

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.

Parameters:

  • string (String)

Returns:

  • (String)


115
116
117
# File 'utils/tty.rb', line 115

def truncate(string)
  (w = width).zero? ? string.to_s : (string.to_s[0, w - 4] || "")
end

.underline ⇒ String

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:

  • (String)


59
# File 'sorbet/rbi/dsl/tty.rbi', line 59

def underline; end

.up ⇒ String

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:

  • (String)


62
# File 'sorbet/rbi/dsl/tty.rbi', line 62

def up; end

.width ⇒ Integer

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.

Keep in sync with columns in Library/Homebrew/utils/tty.sh.

Returns:

  • (Integer)


110
111
112
# File 'utils/tty.rb', line 110

def width
  @width ||= T.let(size&.second || `/usr/bin/tput cols 2>/dev/null`.presence&.to_i || 80, T.nilable(Integer))
end

.with(stream, &_block) ⇒ 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:

  • stream (IO, StringIO)
  • _block (T.proc.params(arg0: T.any(IO, StringIO)).void)


49
50
51
52
53
54
55
56
# File 'utils/tty.rb', line 49

def with(stream, &_block)
  previous_stream = @stream
  @stream = T.let(stream, T.nilable(T.any(IO, StringIO)))

  yield stream
ensure
  @stream = T.let(previous_stream, T.nilable(T.any(IO, StringIO)))
end

.yellow ⇒ String

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:

  • (String)


65
# File 'sorbet/rbi/dsl/tty.rbi', line 65

def yellow; end

© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/rubydoc/Tty.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API