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 << "--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..."
|
||||
safe_system "bundle", "exec", "tapioca", "gem", *tapioca_args
|
||||
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
|
||||
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
|
||||
include ::URI::RFC2396_REGEXP
|
||||
end
|
||||
|
||||
@ -9,6 +9,36 @@ require "env_config"
|
||||
module Tty
|
||||
@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
|
||||
extend T::Sig
|
||||
|
||||
@ -42,36 +72,6 @@ module Tty
|
||||
(w = width).zero? ? string.to_s : (string.to_s[0, w - 4] || "")
|
||||
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) }
|
||||
def current_escape_sequence
|
||||
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