mirror of
https://github.com/Homebrew/brew.git
synced 2025-07-14 16:09:03 +08:00
Keep only the parts of rubocop.rbi
that we actually use
- This file was _massive_ - over 60k lines and we had to bump the file size limit for pushes to the repo! - This was because by default Tapioca, when it encounters a `require "rubocop"` during RBI generation, loads all of the cops ever because they're all classes inside `RuboCop::Cop`. - There wasn't an easy way to control this at Tapioca generation time (we tried), so now we parse the generated RBI file and delete classes and method definitions that we don't use. - I regenerated the RBIs (`brew tc --update rubocop`) and added new things to the allowlist until Sorbet came back green. - Now the file is ~7k lines and 240K - much better!
This commit is contained in:
parent
52d66f206a
commit
836d85277f
@ -68,6 +68,9 @@ module Homebrew
|
|||||||
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
|
||||||
|
|
||||||
|
ohai "Trimming RuboCop RBI because by default it's massive..."
|
||||||
|
trim_rubocop_rbi
|
||||||
|
|
||||||
if args.suggest_typed?
|
if args.suggest_typed?
|
||||||
ohai "Checking if we can bump Sorbet `typed` sigils..."
|
ohai "Checking if we can bump Sorbet `typed` sigils..."
|
||||||
# --sorbet needed because of https://github.com/Shopify/spoom/issues/488
|
# --sorbet needed because of https://github.com/Shopify/spoom/issues/488
|
||||||
@ -116,6 +119,157 @@ module Homebrew
|
|||||||
Homebrew.failed = true
|
Homebrew.failed = true
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
sig { params(path: T.any(String, Pathname)).void }
|
||||||
|
def trim_rubocop_rbi(path: HOMEBREW_LIBRARY_PATH/"sorbet/rbi/gems/rubocop@*.rbi")
|
||||||
|
rbi_file = Dir.glob(path).first
|
||||||
|
return unless rbi_file.present?
|
||||||
|
return unless (rbi_path = Pathname.new(rbi_file)).exist?
|
||||||
|
|
||||||
|
require "prism"
|
||||||
|
original_content = rbi_path.read
|
||||||
|
parsed = Prism.parse(original_content)
|
||||||
|
return unless parsed.success?
|
||||||
|
|
||||||
|
allowlist = %w[
|
||||||
|
Parser::Source
|
||||||
|
RuboCop::AST::Node
|
||||||
|
RuboCop::AST::NodePattern
|
||||||
|
RuboCop::AST::ProcessedSource
|
||||||
|
RuboCop::CLI
|
||||||
|
RuboCop::Config
|
||||||
|
RuboCop::Cop::AllowedPattern
|
||||||
|
RuboCop::Cop::AllowedMethods
|
||||||
|
RuboCop::Cop::AutoCorrector
|
||||||
|
RuboCop::Cop::AutocorrectLogic
|
||||||
|
RuboCop::Cop::Base
|
||||||
|
RuboCop::Cop::CommentsHelp
|
||||||
|
RuboCop::Cop::ConfigurableFormatting
|
||||||
|
RuboCop::Cop::ConfigurableNaming
|
||||||
|
RuboCop::Cop::Corrector
|
||||||
|
RuboCop::Cop::IgnoredMethods
|
||||||
|
RuboCop::Cop::IgnoredNode
|
||||||
|
RuboCop::Cop::IgnoredPattern
|
||||||
|
RuboCop::Cop::MethodPreference
|
||||||
|
RuboCop::Cop::Offense
|
||||||
|
RuboCop::Cop::RangeHelp
|
||||||
|
RuboCop::Cop::Registry
|
||||||
|
RuboCop::Cop::Util
|
||||||
|
RuboCop::DirectiveComment
|
||||||
|
RuboCop::Error
|
||||||
|
RuboCop::ExcludeLimit
|
||||||
|
RuboCop::Ext::Comment
|
||||||
|
RuboCop::Ext::ProcessedSource
|
||||||
|
RuboCop::Ext::Range
|
||||||
|
RuboCop::FileFinder
|
||||||
|
RuboCop::Formatter::TextUtil
|
||||||
|
RuboCop::Formatter::PathUtil
|
||||||
|
RuboCop::Options
|
||||||
|
RuboCop::ResultCache
|
||||||
|
RuboCop::Runner
|
||||||
|
RuboCop::TargetFinder
|
||||||
|
RuboCop::Version
|
||||||
|
].freeze
|
||||||
|
|
||||||
|
nodes_to_keep = Set.new
|
||||||
|
|
||||||
|
parsed.value.statements.body.each do |node|
|
||||||
|
case node
|
||||||
|
when Prism::ModuleNode, Prism::ClassNode
|
||||||
|
# Keep if it's in our allowlist or is a top-level essential node.
|
||||||
|
full_name = extract_full_name(node)
|
||||||
|
nodes_to_keep << node if full_name.blank? || allowlist.any? { |name| full_name.start_with?(name) }
|
||||||
|
when Prism::ConstantWriteNode # Keep essential constants.
|
||||||
|
nodes_to_keep << node if node.name.to_s.match?(/^[[:digit:][:upper:]_]+$/)
|
||||||
|
else # Keep other top-level nodes (comments, etc.)
|
||||||
|
nodes_to_keep << node
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
new_content = generate_trimmed_rbi(original_content, nodes_to_keep, parsed)
|
||||||
|
rbi_path.write(new_content)
|
||||||
|
end
|
||||||
|
|
||||||
|
private
|
||||||
|
|
||||||
|
sig { params(node: Prism::Node).returns(String) }
|
||||||
|
def extract_full_name(node)
|
||||||
|
case node
|
||||||
|
when Prism::ModuleNode, Prism::ClassNode
|
||||||
|
parts = []
|
||||||
|
|
||||||
|
constant_path = node.constant_path
|
||||||
|
if constant_path.is_a?(Prism::ConstantReadNode)
|
||||||
|
parts << constant_path.name.to_s
|
||||||
|
elsif constant_path.is_a?(Prism::ConstantPathNode)
|
||||||
|
parts.concat(extract_constant_path_parts(constant_path))
|
||||||
|
end
|
||||||
|
|
||||||
|
parts.join("::")
|
||||||
|
else
|
||||||
|
""
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
sig { params(constant_path: T.any(Prism::ConstantPathNode, Prism::Node)).returns(T::Array[String]) }
|
||||||
|
def extract_constant_path_parts(constant_path)
|
||||||
|
parts = []
|
||||||
|
current = T.let(constant_path, T.nilable(Prism::Node))
|
||||||
|
|
||||||
|
while current
|
||||||
|
case current
|
||||||
|
when Prism::ConstantPathNode
|
||||||
|
parts.unshift(current.name.to_s)
|
||||||
|
current = current.parent
|
||||||
|
when Prism::ConstantReadNode
|
||||||
|
parts.unshift(current.name.to_s)
|
||||||
|
break
|
||||||
|
else
|
||||||
|
break
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
parts
|
||||||
|
end
|
||||||
|
|
||||||
|
sig {
|
||||||
|
params(
|
||||||
|
original_content: String,
|
||||||
|
nodes_to_keep: T::Set[Prism::Node],
|
||||||
|
parsed: Prism::ParseResult,
|
||||||
|
).returns(String)
|
||||||
|
}
|
||||||
|
def generate_trimmed_rbi(original_content, nodes_to_keep, parsed)
|
||||||
|
lines = original_content.lines
|
||||||
|
output_lines = []
|
||||||
|
|
||||||
|
first_node = parsed.value.statements.body.first
|
||||||
|
if first_node
|
||||||
|
first_line = first_node.location.start_line - 1
|
||||||
|
(0...first_line).each { |i| output_lines << lines[i] if lines[i] }
|
||||||
|
end
|
||||||
|
|
||||||
|
parsed.value.statements.body.each do |node|
|
||||||
|
next unless nodes_to_keep.include?(node)
|
||||||
|
|
||||||
|
start_line = node.location.start_line - 1
|
||||||
|
end_line = node.location.end_line - 1
|
||||||
|
|
||||||
|
(start_line..end_line).each { |i| output_lines << lines[i] if lines[i] }
|
||||||
|
output_lines << "\n"
|
||||||
|
end
|
||||||
|
|
||||||
|
header = <<~EOS.chomp
|
||||||
|
# typed: true
|
||||||
|
|
||||||
|
# This file is autogenerated. Do not edit it by hand.
|
||||||
|
# To regenerate, run `brew typecheck --update rubocop`.
|
||||||
|
EOS
|
||||||
|
|
||||||
|
return header if output_lines.empty?
|
||||||
|
|
||||||
|
output_lines.join
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -7508,28 +7508,28 @@ class RuboCop::AST::YieldNode < ::RuboCop::AST::Node
|
|||||||
end
|
end
|
||||||
|
|
||||||
class RuboCop::CommentConfig
|
class RuboCop::CommentConfig
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#34
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#34
|
||||||
def initialize(processed_source); end
|
def initialize(processed_source); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#63
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#63
|
||||||
def comment_only_line?(line_number); end
|
def comment_only_line?(line_number); end
|
||||||
|
|
||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
def config(*_arg0, **_arg1, &_arg2); end
|
def config(*_arg0, **_arg1, &_arg2); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#51
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#51
|
||||||
def cop_disabled_line_ranges; end
|
def cop_disabled_line_ranges; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#39
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#39
|
||||||
def cop_enabled_at_line?(cop, line_number); end
|
def cop_enabled_at_line?(cop, line_number); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#47
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#47
|
||||||
def cop_opted_in?(cop); end
|
def cop_opted_in?(cop); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#55
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#55
|
||||||
def extra_enabled_comments; end
|
def extra_enabled_comments; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#30
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#30
|
||||||
def processed_source; end
|
def processed_source; end
|
||||||
|
|
||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
@ -7537,51 +7537,51 @@ class RuboCop::CommentConfig
|
|||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#96
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#96
|
||||||
def analyze; end
|
def analyze; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#124
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#124
|
||||||
def analyze_cop(analysis, directive); end
|
def analyze_cop(analysis, directive); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#144
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#144
|
||||||
def analyze_disabled(analysis, directive); end
|
def analyze_disabled(analysis, directive); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#155
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#155
|
||||||
def analyze_rest(analysis, directive); end
|
def analyze_rest(analysis, directive); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#135
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#135
|
||||||
def analyze_single_line(analysis, directive); end
|
def analyze_single_line(analysis, directive); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#164
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#164
|
||||||
def cop_line_ranges(analysis); end
|
def cop_line_ranges(analysis); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#170
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#170
|
||||||
def each_directive; end
|
def each_directive; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#69
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#69
|
||||||
def extra_enabled_comments_with_names(extras:, names:); end
|
def extra_enabled_comments_with_names(extras:, names:); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#190
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#190
|
||||||
def handle_enable_all(directive, names, extras); end
|
def handle_enable_all(directive, names, extras); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#204
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#204
|
||||||
def handle_switch(directive, names, extras); end
|
def handle_switch(directive, names, extras); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#115
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#115
|
||||||
def inject_disabled_cops_directives(analyses); end
|
def inject_disabled_cops_directives(analyses); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#183
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#183
|
||||||
def non_comment_token_line_numbers; end
|
def non_comment_token_line_numbers; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#83
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#83
|
||||||
def opt_in_cops; end
|
def opt_in_cops; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/comment_config.rb#179
|
# source://rubocop/1.75.6/lib/rubocop/comment_config.rb#179
|
||||||
def qualified_cop_name(cop_name); end
|
def qualified_cop_name(cop_name); end
|
||||||
end
|
end
|
||||||
|
|
||||||
class RuboCop::Config
|
class RuboCop::Config
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#31
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#31
|
||||||
def initialize(hash = T.unsafe(nil), loaded_path = T.unsafe(nil)); end
|
def initialize(hash = T.unsafe(nil), loaded_path = T.unsafe(nil)); end
|
||||||
|
|
||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
@ -7590,40 +7590,40 @@ class RuboCop::Config
|
|||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
def []=(*_arg0, **_arg1, &_arg2); end
|
def []=(*_arg0, **_arg1, &_arg2); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#212
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#212
|
||||||
def active_support_extensions_enabled?; end
|
def active_support_extensions_enabled?; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#127
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#127
|
||||||
def add_excludes_from_higher_level(highest_config); end
|
def add_excludes_from_higher_level(highest_config); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#239
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#239
|
||||||
def allowed_camel_case_file?(file); end
|
def allowed_camel_case_file?(file); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#283
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#283
|
||||||
def base_dir_for_path_parameters; end
|
def base_dir_for_path_parameters; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#313
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#313
|
||||||
def bundler_lock_file_path; end
|
def bundler_lock_file_path; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#85
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#85
|
||||||
def check; end
|
def check; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#180
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#180
|
||||||
def clusivity_config_for_badge?(badge); end
|
def clusivity_config_for_badge?(badge); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#200
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#200
|
||||||
def cop_enabled?(name); end
|
def cop_enabled?(name); end
|
||||||
|
|
||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
def delete(*_arg0, **_arg1, &_arg2); end
|
def delete(*_arg0, **_arg1, &_arg2); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#139
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#139
|
||||||
def deprecation_check; end
|
def deprecation_check; end
|
||||||
|
|
||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
def dig(*_arg0, **_arg1, &_arg2); end
|
def dig(*_arg0, **_arg1, &_arg2); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#204
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#204
|
||||||
def disabled_new_cops?; end
|
def disabled_new_cops?; end
|
||||||
|
|
||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
@ -7632,40 +7632,40 @@ class RuboCop::Config
|
|||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
def each_key(*_arg0, **_arg1, &_arg2); end
|
def each_key(*_arg0, **_arg1, &_arg2); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#208
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#208
|
||||||
def enabled_new_cops?; end
|
def enabled_new_cops?; end
|
||||||
|
|
||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
def fetch(*_arg0, **_arg1, &_arg2); end
|
def fetch(*_arg0, **_arg1, &_arg2); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#261
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#261
|
||||||
def file_to_exclude?(file); end
|
def file_to_exclude?(file); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#220
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#220
|
||||||
def file_to_include?(file); end
|
def file_to_include?(file); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#196
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#196
|
||||||
def for_all_cops; end
|
def for_all_cops; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#166
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#166
|
||||||
def for_badge(badge); end
|
def for_badge(badge); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#153
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#153
|
||||||
def for_cop(cop); end
|
def for_cop(cop); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#191
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#191
|
||||||
def for_department(department_name); end
|
def for_department(department_name); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#160
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#160
|
||||||
def for_enabled_cop(cop); end
|
def for_enabled_cop(cop); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#338
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#338
|
||||||
def gem_versions_in_target; end
|
def gem_versions_in_target; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#342
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#342
|
||||||
def inspect; end
|
def inspect; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#110
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#110
|
||||||
def internal?; end
|
def internal?; end
|
||||||
|
|
||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
@ -7674,16 +7674,16 @@ class RuboCop::Config
|
|||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
def keys(*_arg0, **_arg1, &_arg2); end
|
def keys(*_arg0, **_arg1, &_arg2); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#81
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#81
|
||||||
def loaded_features; end
|
def loaded_features; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#21
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#21
|
||||||
def loaded_path; end
|
def loaded_path; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#77
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#77
|
||||||
def loaded_plugins; end
|
def loaded_plugins; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#115
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#115
|
||||||
def make_excludes_absolute; end
|
def make_excludes_absolute; end
|
||||||
|
|
||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
@ -7692,37 +7692,37 @@ class RuboCop::Config
|
|||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
def merge(*_arg0, **_arg1, &_arg2); end
|
def merge(*_arg0, **_arg1, &_arg2); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#293
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#293
|
||||||
def parser_engine; end
|
def parser_engine; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#274
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#274
|
||||||
def path_relative_to_config(path); end
|
def path_relative_to_config(path); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#270
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#270
|
||||||
def patterns_to_exclude; end
|
def patterns_to_exclude; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#266
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#266
|
||||||
def patterns_to_include; end
|
def patterns_to_include; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#324
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#324
|
||||||
def pending_cops; end
|
def pending_cops; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#253
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#253
|
||||||
def possibly_include_hidden?; end
|
def possibly_include_hidden?; end
|
||||||
|
|
||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
def replace(*_arg0, **_arg1, &_arg2); end
|
def replace(*_arg0, **_arg1, &_arg2); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#105
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#105
|
||||||
def signature; end
|
def signature; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#308
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#308
|
||||||
def smart_loaded_path; end
|
def smart_loaded_path; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#216
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#216
|
||||||
def string_literals_frozen_by_default?; end
|
def string_literals_frozen_by_default?; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#297
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#297
|
||||||
def target_rails_version; end
|
def target_rails_version; end
|
||||||
|
|
||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
@ -7734,7 +7734,7 @@ class RuboCop::Config
|
|||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
def to_hash(*_arg0, **_arg1, &_arg2); end
|
def to_hash(*_arg0, **_arg1, &_arg2); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#101
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#101
|
||||||
def to_s; end
|
def to_s; end
|
||||||
|
|
||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
@ -7743,37 +7743,37 @@ class RuboCop::Config
|
|||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
def validate(*_arg0, **_arg1, &_arg2); end
|
def validate(*_arg0, **_arg1, &_arg2); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#92
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#92
|
||||||
def validate_after_resolution; end
|
def validate_after_resolution; end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#392
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#392
|
||||||
def department_of(qualified_cop_name); end
|
def department_of(qualified_cop_name); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#380
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#380
|
||||||
def enable_cop?(qualified_cop_name, cop_options); end
|
def enable_cop?(qualified_cop_name, cop_options); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#367
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#367
|
||||||
def gem_version_to_major_minor_float(gem_version); end
|
def gem_version_to_major_minor_float(gem_version); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#373
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#373
|
||||||
def read_gem_versions_from_target_lockfile; end
|
def read_gem_versions_from_target_lockfile; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#354
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#354
|
||||||
def read_rails_version_from_bundler_lock_file; end
|
def read_rails_version_from_bundler_lock_file; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#349
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#349
|
||||||
def target_rails_version_from_bundler_lock_file; end
|
def target_rails_version_from_bundler_lock_file; end
|
||||||
|
|
||||||
class << self
|
class << self
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config.rb#23
|
# source://rubocop/1.75.6/lib/rubocop/config.rb#23
|
||||||
def create(hash, path, check: T.unsafe(nil)); end
|
def create(hash, path, check: T.unsafe(nil)); end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
class RuboCop::ConfigValidator
|
class RuboCop::ConfigValidator
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#28
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#28
|
||||||
def initialize(config); end
|
def initialize(config); end
|
||||||
|
|
||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
@ -7782,66 +7782,66 @@ class RuboCop::ConfigValidator
|
|||||||
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
# source://rubocop-ast//lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
def smart_loaded_path(*_arg0, **_arg1, &_arg2); end
|
def smart_loaded_path(*_arg0, **_arg1, &_arg2); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#65
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#65
|
||||||
def target_ruby_version; end
|
def target_ruby_version; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#34
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#34
|
||||||
def validate; end
|
def validate; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#61
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#61
|
||||||
def validate_after_resolution; end
|
def validate_after_resolution; end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#100
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#100
|
||||||
def alert_about_unrecognized_cops(invalid_cop_names); end
|
def alert_about_unrecognized_cops(invalid_cop_names); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#264
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#263
|
||||||
def check_cop_config_value(hash, parent = T.unsafe(nil)); end
|
def check_cop_config_value(hash, parent = T.unsafe(nil)); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#73
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#73
|
||||||
def check_obsoletions; end
|
def check_obsoletions; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#80
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#80
|
||||||
def check_target_ruby; end
|
def check_target_ruby; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#205
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#205
|
||||||
def each_invalid_parameter(cop_name); end
|
def each_invalid_parameter(cop_name); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#116
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#116
|
||||||
def list_unknown_cops(invalid_cop_names); end
|
def list_unknown_cops(invalid_cop_names); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#284
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#284
|
||||||
def param_error_message(parent, key, value, supposed_values); end
|
def param_error_message(parent, key, value, supposed_values); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#252
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#252
|
||||||
def reject_conflicting_safe_settings; end
|
def reject_conflicting_safe_settings; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#243
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#243
|
||||||
def reject_mutually_exclusive_defaults; end
|
def reject_mutually_exclusive_defaults; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#139
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#139
|
||||||
def suggestion(name); end
|
def suggestion(name); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#71
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#71
|
||||||
def target_ruby; end
|
def target_ruby; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#217
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#217
|
||||||
def validate_enforced_styles(valid_cop_names); end
|
def validate_enforced_styles(valid_cop_names); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#166
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#166
|
||||||
def validate_new_cops_parameter; end
|
def validate_new_cops_parameter; end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#191
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#191
|
||||||
def validate_parameter_names(valid_cop_names); end
|
def validate_parameter_names(valid_cop_names); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#177
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#177
|
||||||
def validate_parameter_shape(valid_cop_names); end
|
def validate_parameter_shape(valid_cop_names); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#237
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#237
|
||||||
def validate_support_and_has_list(name, formats, valid); end
|
def validate_support_and_has_list(name, formats, valid); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/config_validator.rb#155
|
# source://rubocop/1.75.6/lib/rubocop/config_validator.rb#155
|
||||||
def validate_syntax_cop; end
|
def validate_syntax_cop; end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -4046,7 +4046,7 @@ class RuboCop::Cop::RSpec::MultipleExpectations < ::RuboCop::Cop::RSpec::Base
|
|||||||
# source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_expectations.rb#86
|
# source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_expectations.rb#86
|
||||||
def expect?(param0 = T.unsafe(nil)); end
|
def expect?(param0 = T.unsafe(nil)); end
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/cop/exclude_limit.rb#11
|
# source://rubocop/1.75.6/lib/rubocop/cop/exclude_limit.rb#11
|
||||||
def max=(value); end
|
def max=(value); end
|
||||||
|
|
||||||
# source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_expectations.rb#93
|
# source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_expectations.rb#93
|
||||||
@ -4161,7 +4161,7 @@ RuboCop::Cop::RSpec::MultipleExpectations::TRUE_NODE = T.let(T.unsafe(nil), Proc
|
|||||||
class RuboCop::Cop::RSpec::MultipleMemoizedHelpers < ::RuboCop::Cop::RSpec::Base
|
class RuboCop::Cop::RSpec::MultipleMemoizedHelpers < ::RuboCop::Cop::RSpec::Base
|
||||||
include ::RuboCop::Cop::RSpec::Variable
|
include ::RuboCop::Cop::RSpec::Variable
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/cop/exclude_limit.rb#11
|
# source://rubocop/1.75.6/lib/rubocop/cop/exclude_limit.rb#11
|
||||||
def max=(value); end
|
def max=(value); end
|
||||||
|
|
||||||
# source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#91
|
# source://rubocop-rspec//lib/rubocop/cop/rspec/multiple_memoized_helpers.rb#91
|
||||||
@ -4503,7 +4503,7 @@ end
|
|||||||
class RuboCop::Cop::RSpec::NestedGroups < ::RuboCop::Cop::RSpec::Base
|
class RuboCop::Cop::RSpec::NestedGroups < ::RuboCop::Cop::RSpec::Base
|
||||||
include ::RuboCop::Cop::RSpec::TopLevelGroup
|
include ::RuboCop::Cop::RSpec::TopLevelGroup
|
||||||
|
|
||||||
# source://rubocop/1.75.2/lib/rubocop/cop/exclude_limit.rb#11
|
# source://rubocop/1.75.6/lib/rubocop/cop/exclude_limit.rb#11
|
||||||
def max=(value); end
|
def max=(value); end
|
||||||
|
|
||||||
# source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#107
|
# source://rubocop-rspec//lib/rubocop/cop/rspec/nested_groups.rb#107
|
||||||
|
File diff suppressed because it is too large
Load Diff
@ -5,4 +5,32 @@ require "dev-cmd/typecheck"
|
|||||||
|
|
||||||
RSpec.describe Homebrew::DevCmd::Typecheck do
|
RSpec.describe Homebrew::DevCmd::Typecheck do
|
||||||
it_behaves_like "parseable arguments"
|
it_behaves_like "parseable arguments"
|
||||||
|
|
||||||
|
describe "#trim_rubocop_rbi" do
|
||||||
|
let(:rbi_file) { Pathname.new("#{TEST_FIXTURE_DIR}/rubocop@x.x.x.rbi") }
|
||||||
|
let(:typecheck) { described_class.new([]) }
|
||||||
|
|
||||||
|
before do
|
||||||
|
allow(Dir).to receive(:glob).and_return([rbi_file.to_s])
|
||||||
|
end
|
||||||
|
|
||||||
|
it "trims RuboCop RBI file to only include allowlisted classes" do
|
||||||
|
old_content = rbi_file.read
|
||||||
|
|
||||||
|
typecheck.trim_rubocop_rbi(path: rbi_file.to_s)
|
||||||
|
|
||||||
|
new_content = rbi_file.read
|
||||||
|
|
||||||
|
expect(new_content).to include("RuboCop::Config")
|
||||||
|
expect(new_content).to include("RuboCop::Cop::Base")
|
||||||
|
expect(new_content).to include("Parser::Source")
|
||||||
|
expect(new_content).to include("VERSION")
|
||||||
|
expect(new_content).to include("SOME_CONSTANT")
|
||||||
|
expect(new_content).not_to include("SomeUnusedCop")
|
||||||
|
expect(new_content).not_to include("UnusedModule")
|
||||||
|
expect(new_content).not_to include("CompletelyUnrelated")
|
||||||
|
|
||||||
|
rbi_file.write(old_content)
|
||||||
|
end
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
78
Library/Homebrew/test/support/fixtures/rubocop@x.x.x.rbi
Normal file
78
Library/Homebrew/test/support/fixtures/rubocop@x.x.x.rbi
Normal file
@ -0,0 +1,78 @@
|
|||||||
|
# typed: strict
|
||||||
|
|
||||||
|
# This file is autogenerated. Do not edit it by hand.
|
||||||
|
# To regenerate, run `brew typecheck --update rubocop`.
|
||||||
|
|
||||||
|
class Parser::Source::Comment
|
||||||
|
include ::RuboCop::Ext::Comment
|
||||||
|
end
|
||||||
|
|
||||||
|
class Parser::Source::Range
|
||||||
|
include ::RuboCop::Ext::Range
|
||||||
|
end
|
||||||
|
|
||||||
|
RuboCop::CLI::STATUS_OFFENSES = T.let(T.unsafe(nil), Integer)
|
||||||
|
|
||||||
|
RuboCop::CLI::STATUS_SUCCESS = T.let(T.unsafe(nil), Integer)
|
||||||
|
|
||||||
|
RuboCop::CommentConfig::CONFIG_DISABLED_LINE_RANGE_MIN = T.let(T.unsafe(nil), Float)
|
||||||
|
|
||||||
|
class RuboCop::Config
|
||||||
|
include ::RuboCop::PathUtil
|
||||||
|
include ::RuboCop::FileFinder
|
||||||
|
extend ::RuboCop::SimpleForwardable
|
||||||
|
|
||||||
|
# @return [Config] a new instance of Config
|
||||||
|
#
|
||||||
|
# source://rubocop//lib/rubocop/config.rb#31
|
||||||
|
def initialize(hash = T.unsafe(nil), loaded_path = T.unsafe(nil)); end
|
||||||
|
|
||||||
|
# source://rubocop-ast/1.44.1/lib/rubocop/ast/utilities/simple_forwardable.rb#19
|
||||||
|
def [](*_arg0, **_arg1, &_arg2); end
|
||||||
|
end
|
||||||
|
|
||||||
|
RuboCop::Token = RuboCop::AST::Token
|
||||||
|
|
||||||
|
class RuboCop::Cop::Base
|
||||||
|
include ::RuboCop::AST::Sexp
|
||||||
|
include ::RuboCop::PathUtil
|
||||||
|
include ::RuboCop::Cop::Util
|
||||||
|
include ::RuboCop::Cop::IgnoredNode
|
||||||
|
include ::RuboCop::Cop::AutocorrectLogic
|
||||||
|
extend ::RuboCop::AST::Sexp
|
||||||
|
extend ::RuboCop::AST::NodePattern::Macros
|
||||||
|
extend ::RuboCop::ExcludeLimit
|
||||||
|
|
||||||
|
# @return [Base] a new instance of Base
|
||||||
|
#
|
||||||
|
# source://rubocop//lib/rubocop/cop/base.rb#156
|
||||||
|
def initialize(config = T.unsafe(nil), options = T.unsafe(nil)); end
|
||||||
|
end
|
||||||
|
|
||||||
|
class RuboCop::Cop::SomeUnusedCop < RuboCop::Cop::Base
|
||||||
|
def on_send(_node); end
|
||||||
|
end
|
||||||
|
|
||||||
|
module RuboCop::Cop::UnusedModule; end
|
||||||
|
|
||||||
|
class CompletelyUnrelated
|
||||||
|
def bananas; end
|
||||||
|
end
|
||||||
|
|
||||||
|
module RuboCop::Version
|
||||||
|
class << self
|
||||||
|
# @api private
|
||||||
|
#
|
||||||
|
# source://rubocop//lib/rubocop/version.rb#121
|
||||||
|
def config_for_pwd(env); end
|
||||||
|
|
||||||
|
# @api private
|
||||||
|
#
|
||||||
|
# source://rubocop//lib/rubocop/version.rb#151
|
||||||
|
def document_version; end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
VERSION = "x.x.x"
|
||||||
|
|
||||||
|
SOME_CONSTANT = "some constant value"
|
Loading…
x
Reference in New Issue
Block a user