Merge pull request #14896 from issyl0/sorbet-autogenerate-tty-rbi
sorbet: Autogenerate the RBI file for `utils/tty.rb`
This commit is contained in:
commit
a6b70eee69
@ -64,6 +64,9 @@ module Homebrew
|
|||||||
tapioca_args = ["--exclude", *excluded_gems, "--typed-overrides", *typed_overrides]
|
tapioca_args = ["--exclude", *excluded_gems, "--typed-overrides", *typed_overrides]
|
||||||
tapioca_args << "--all" if args.update_all?
|
tapioca_args << "--all" if args.update_all?
|
||||||
|
|
||||||
|
ohai "Updating homegrown RBI files..."
|
||||||
|
safe_system "bundle", "exec", "ruby", "sorbet/custom_generators/tty.rb"
|
||||||
|
|
||||||
ohai "Updating Tapioca RBI files..."
|
ohai "Updating Tapioca RBI files..."
|
||||||
safe_system "bundle", "exec", "tapioca", "gem", *tapioca_args
|
safe_system "bundle", "exec", "tapioca", "gem", *tapioca_args
|
||||||
safe_system "bundle", "exec", "parlour"
|
safe_system "bundle", "exec", "parlour"
|
||||||
|
|||||||
31
Library/Homebrew/sorbet/custom_generators/tty.rb
Normal file
31
Library/Homebrew/sorbet/custom_generators/tty.rb
Normal file
@ -0,0 +1,31 @@
|
|||||||
|
# typed: true
|
||||||
|
# frozen_string_literal: true
|
||||||
|
|
||||||
|
require_relative "../../global"
|
||||||
|
require_relative "../../env_config"
|
||||||
|
require_relative "../../utils/tty"
|
||||||
|
|
||||||
|
File.open("#{File.dirname(__FILE__)}/../../utils/tty.rbi", "w") do |file|
|
||||||
|
file.write(<<~RUBY)
|
||||||
|
# typed: strict
|
||||||
|
|
||||||
|
module Tty
|
||||||
|
RUBY
|
||||||
|
|
||||||
|
dynamic_methods = Tty::COLOR_CODES.keys + Tty::STYLE_CODES.keys + Tty::SPECIAL_CODES.keys
|
||||||
|
methods = Tty.methods(false).sort.select { |method| dynamic_methods.include?(method) }
|
||||||
|
|
||||||
|
methods.each do |method|
|
||||||
|
return_type = (method.to_s.end_with?("?") ? T::Boolean : String)
|
||||||
|
signature = "sig { returns(#{return_type}) }"
|
||||||
|
|
||||||
|
file.write(<<-RUBY)
|
||||||
|
#{signature}
|
||||||
|
def self.#{method}; end
|
||||||
|
RUBY
|
||||||
|
|
||||||
|
file.write("\n") unless methods.last == method
|
||||||
|
end
|
||||||
|
|
||||||
|
file.write("end\n")
|
||||||
|
end
|
||||||
@ -8492,46 +8492,6 @@ class TracePoint
|
|||||||
def parameters(); end
|
def parameters(); end
|
||||||
end
|
end
|
||||||
|
|
||||||
module Tty
|
|
||||||
def self.blue(); end
|
|
||||||
|
|
||||||
def self.bold(); end
|
|
||||||
|
|
||||||
def self.cyan(); end
|
|
||||||
|
|
||||||
def self.default(); end
|
|
||||||
|
|
||||||
def self.down(); end
|
|
||||||
|
|
||||||
def self.erase_char(); end
|
|
||||||
|
|
||||||
def self.erase_line(); end
|
|
||||||
|
|
||||||
def self.green(); end
|
|
||||||
|
|
||||||
def self.italic(); end
|
|
||||||
|
|
||||||
def self.left(); end
|
|
||||||
|
|
||||||
def self.magenta(); end
|
|
||||||
|
|
||||||
def self.no_underline(); end
|
|
||||||
|
|
||||||
def self.red(); end
|
|
||||||
|
|
||||||
def self.reset(); end
|
|
||||||
|
|
||||||
def self.right(); end
|
|
||||||
|
|
||||||
def self.strikethrough(); end
|
|
||||||
|
|
||||||
def self.underline(); end
|
|
||||||
|
|
||||||
def self.up(); end
|
|
||||||
|
|
||||||
def self.yellow(); end
|
|
||||||
end
|
|
||||||
|
|
||||||
module URI
|
module URI
|
||||||
include ::URI::RFC2396_REGEXP
|
include ::URI::RFC2396_REGEXP
|
||||||
end
|
end
|
||||||
|
|||||||
@ -9,6 +9,36 @@ require "env_config"
|
|||||||
module Tty
|
module Tty
|
||||||
@stream = $stdout
|
@stream = $stdout
|
||||||
|
|
||||||
|
COLOR_CODES = {
|
||||||
|
red: 31,
|
||||||
|
green: 32,
|
||||||
|
yellow: 33,
|
||||||
|
blue: 34,
|
||||||
|
magenta: 35,
|
||||||
|
cyan: 36,
|
||||||
|
default: 39,
|
||||||
|
}.freeze
|
||||||
|
|
||||||
|
STYLE_CODES = {
|
||||||
|
reset: 0,
|
||||||
|
bold: 1,
|
||||||
|
italic: 3,
|
||||||
|
underline: 4,
|
||||||
|
strikethrough: 9,
|
||||||
|
no_underline: 24,
|
||||||
|
}.freeze
|
||||||
|
|
||||||
|
SPECIAL_CODES = {
|
||||||
|
up: "1A",
|
||||||
|
down: "1B",
|
||||||
|
right: "1C",
|
||||||
|
left: "1D",
|
||||||
|
erase_line: "K",
|
||||||
|
erase_char: "P",
|
||||||
|
}.freeze
|
||||||
|
|
||||||
|
CODES = COLOR_CODES.merge(STYLE_CODES).freeze
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
extend T::Sig
|
extend T::Sig
|
||||||
|
|
||||||
@ -42,36 +72,6 @@ module Tty
|
|||||||
(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 = {
|
|
||||||
red: 31,
|
|
||||||
green: 32,
|
|
||||||
yellow: 33,
|
|
||||||
blue: 34,
|
|
||||||
magenta: 35,
|
|
||||||
cyan: 36,
|
|
||||||
default: 39,
|
|
||||||
}.freeze
|
|
||||||
|
|
||||||
STYLE_CODES = {
|
|
||||||
reset: 0,
|
|
||||||
bold: 1,
|
|
||||||
italic: 3,
|
|
||||||
underline: 4,
|
|
||||||
strikethrough: 9,
|
|
||||||
no_underline: 24,
|
|
||||||
}.freeze
|
|
||||||
|
|
||||||
SPECIAL_CODES = {
|
|
||||||
up: "1A",
|
|
||||||
down: "1B",
|
|
||||||
right: "1C",
|
|
||||||
left: "1D",
|
|
||||||
erase_line: "K",
|
|
||||||
erase_char: "P",
|
|
||||||
}.freeze
|
|
||||||
|
|
||||||
CODES = COLOR_CODES.merge(STYLE_CODES).freeze
|
|
||||||
|
|
||||||
sig { returns(String) }
|
sig { returns(String) }
|
||||||
def current_escape_sequence
|
def current_escape_sequence
|
||||||
return "" if @escape_sequence.nil?
|
return "" if @escape_sequence.nil?
|
||||||
|
|||||||
60
Library/Homebrew/utils/tty.rbi
Normal file
60
Library/Homebrew/utils/tty.rbi
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
# typed: strict
|
||||||
|
|
||||||
|
module Tty
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.blue; end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.bold; end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.cyan; end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.default; end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.down; end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.erase_char; end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.erase_line; end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.green; end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.italic; end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.left; end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.magenta; end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.no_underline; end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.red; end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.reset; end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.right; end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.strikethrough; end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.underline; end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.up; end
|
||||||
|
|
||||||
|
sig { returns(String) }
|
||||||
|
def self.yellow; end
|
||||||
|
end
|
||||||
Loading…
x
Reference in New Issue
Block a user