Inline type annotations for Tty.
This commit is contained in:
parent
e1e9f2d9bd
commit
fc7a34585f
@ -1,36 +0,0 @@
|
|||||||
# typed: strict
|
|
||||||
|
|
||||||
module Tty
|
|
||||||
include Kernel
|
|
||||||
|
|
||||||
sig{ params(string: String).returns(String) }
|
|
||||||
def strip_ansi(string)
|
|
||||||
end
|
|
||||||
|
|
||||||
sig{ returns(Integer) }
|
|
||||||
def width()
|
|
||||||
end
|
|
||||||
|
|
||||||
sig{ params(string: String).returns(T.nilable(String)) }
|
|
||||||
def truncate(string)
|
|
||||||
end
|
|
||||||
|
|
||||||
def append_to_escape_sequence(code)
|
|
||||||
end
|
|
||||||
|
|
||||||
sig{ returns(String) }
|
|
||||||
def current_escape_sequence()
|
|
||||||
end
|
|
||||||
|
|
||||||
sig{ void }
|
|
||||||
def reset_escape_sequence!()
|
|
||||||
end
|
|
||||||
|
|
||||||
sig{ returns(String) }
|
|
||||||
def to_s
|
|
||||||
end
|
|
||||||
|
|
||||||
sig { returns(T::Boolean) }
|
|
||||||
def color?
|
|
||||||
end
|
|
||||||
end
|
|
||||||
@ -5,11 +5,15 @@
|
|||||||
#
|
#
|
||||||
# @api private
|
# @api private
|
||||||
module Tty
|
module Tty
|
||||||
|
include Kernel
|
||||||
|
extend T::Sig
|
||||||
|
|
||||||
@stream = $stdout
|
@stream = $stdout
|
||||||
|
|
||||||
module_function
|
module_function
|
||||||
|
|
||||||
def with(stream)
|
sig { params(stream: IO, _block: T.proc.params(arg0: IO).void).void }
|
||||||
|
def with(stream, &_block)
|
||||||
previous_stream = @stream
|
previous_stream = @stream
|
||||||
@stream = stream
|
@stream = stream
|
||||||
|
|
||||||
@ -18,10 +22,12 @@ module Tty
|
|||||||
@stream = previous_stream
|
@stream = previous_stream
|
||||||
end
|
end
|
||||||
|
|
||||||
|
sig { params(string: String).returns(String) }
|
||||||
def strip_ansi(string)
|
def strip_ansi(string)
|
||||||
string.gsub(/\033\[\d+(;\d+)*m/, "")
|
string.gsub(/\033\[\d+(;\d+)*m/, "")
|
||||||
end
|
end
|
||||||
|
|
||||||
|
sig { returns(Integer) }
|
||||||
def width
|
def width
|
||||||
@width ||= begin
|
@width ||= begin
|
||||||
_, width = `/bin/stty size 2>/dev/null`.split
|
_, width = `/bin/stty size 2>/dev/null`.split
|
||||||
@ -31,8 +37,9 @@ module Tty
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
sig { params(string: String).returns(String) }
|
||||||
def truncate(string)
|
def truncate(string)
|
||||||
(w = width).zero? ? string.to_s : string.to_s[0, w - 4]
|
(w = width).zero? ? string.to_s : (string.to_s[0, w - 4] || "")
|
||||||
end
|
end
|
||||||
|
|
||||||
COLOR_CODES = {
|
COLOR_CODES = {
|
||||||
@ -65,18 +72,21 @@ module Tty
|
|||||||
|
|
||||||
CODES = COLOR_CODES.merge(STYLE_CODES).freeze
|
CODES = COLOR_CODES.merge(STYLE_CODES).freeze
|
||||||
|
|
||||||
|
sig { params(code: Integer).returns(T.self_type) }
|
||||||
def append_to_escape_sequence(code)
|
def append_to_escape_sequence(code)
|
||||||
@escape_sequence ||= []
|
@escape_sequence ||= []
|
||||||
@escape_sequence << code
|
@escape_sequence << code
|
||||||
self
|
self
|
||||||
end
|
end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
def current_escape_sequence
|
def current_escape_sequence
|
||||||
return "" if @escape_sequence.nil?
|
return "" if @escape_sequence.nil?
|
||||||
|
|
||||||
"\033[#{@escape_sequence.join(";")}m"
|
"\033[#{@escape_sequence.join(";")}m"
|
||||||
end
|
end
|
||||||
|
|
||||||
|
sig { void }
|
||||||
def reset_escape_sequence!
|
def reset_escape_sequence!
|
||||||
@escape_sequence = nil
|
@escape_sequence = nil
|
||||||
end
|
end
|
||||||
@ -97,6 +107,7 @@ module Tty
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
def to_s
|
def to_s
|
||||||
return "" unless color?
|
return "" unless color?
|
||||||
|
|
||||||
@ -105,6 +116,7 @@ module Tty
|
|||||||
reset_escape_sequence!
|
reset_escape_sequence!
|
||||||
end
|
end
|
||||||
|
|
||||||
|
sig { returns(T::Boolean) }
|
||||||
def color?
|
def color?
|
||||||
return false if Homebrew::EnvConfig.no_color?
|
return false if Homebrew::EnvConfig.no_color?
|
||||||
return true if Homebrew::EnvConfig.color?
|
return true if Homebrew::EnvConfig.color?
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user