Douglas Eichelberger 08af78a2a5 brew style --fix
2023-04-25 09:26:24 -07:00

43 lines
1008 B
Ruby

# typed: true
# frozen_string_literal: true
require_relative "../../global"
require_relative "../../env_config"
File.open("#{__dir__}/../../env_config.rbi", "w") do |file|
file.write(<<~RUBY)
# typed: strict
module Homebrew::EnvConfig
RUBY
dynamic_methods = {}
Homebrew::EnvConfig::ENVS.each do |env, hash|
next if Homebrew::EnvConfig::CUSTOM_IMPLEMENTATIONS.include?(env)
name = Homebrew::EnvConfig.env_method_name(env, hash)
dynamic_methods[name] = { default: hash[:default] }
end
methods = Homebrew::EnvConfig.methods(false).map(&:to_s).select { |method| dynamic_methods.key?(method) }.sort
methods.each do |method|
return_type = if method.end_with?("?")
T::Boolean
elsif (default = dynamic_methods[method][:default])
default.class
else
T.nilable(String)
end
file.write(<<-RUBY)
sig { returns(#{return_type}) }
def self.#{method}; end
RUBY
file.write("\n") if method != methods.last
end
file.puts "end"
end