sorbet/rbi/gems/rubocop@1.68.0.rbi
# typed: true
# DO NOT EDIT MANUALLY
# This is an autogenerated file for types exported from the `rubocop` gem.
# Please instead update this file by running `bin/tapioca gem rubocop`.
class Parser::Source::Comment
include ::RuboCop::Ext::Comment
end
class Parser::Source::Range
include ::RuboCop::Ext::Range
end
class Regexp::Expression::Base
include ::RuboCop::Ext::RegexpParser::Expression::Base
end
class Regexp::Expression::CharacterSet < ::Regexp::Expression::Subexpression
include ::RuboCop::Ext::RegexpParser::Expression::CharacterSet
end
class Regexp::Expression::Quantifier
include ::RuboCop::Ext::RegexpParser::Expression::Base
end
# source://rubocop//lib/rubocop/version.rb#3
module RuboCop; end
class RuboCop::AST::ProcessedSource
include ::RuboCop::Ext::ProcessedSource
end
class RuboCop::AST::RegexpNode < ::RuboCop::AST::Node
include ::RuboCop::Ext::RegexpNode
end
# This is a class that reads optional command line arguments to rubocop from environment variable.
#
# @api private
#
# source://rubocop//lib/rubocop/arguments_env.rb#6
class RuboCop::ArgumentsEnv
class << self
# @api private
#
# source://rubocop//lib/rubocop/arguments_env.rb#7
def read_as_arguments; end
end
end
# This is a class that reads optional command line arguments to rubocop from .rubocop file.
#
# @api private
#
# source://rubocop//lib/rubocop/arguments_file.rb#6
class RuboCop::ArgumentsFile
class << self
# @api private
#
# source://rubocop//lib/rubocop/arguments_file.rb#7
def read_as_arguments; end
end
end
# The CLI is a class responsible of handling all the command line interface
# logic.
#
# source://rubocop//lib/rubocop/cli.rb#8
class RuboCop::CLI
# @return [CLI] a new instance of CLI
#
# source://rubocop//lib/rubocop/cli.rb#24
def initialize; end
# Returns the value of attribute config_store.
#
# source://rubocop//lib/rubocop/cli.rb#22
def config_store; end
# Returns the value of attribute options.
#
# source://rubocop//lib/rubocop/cli.rb#22
def options; end
# Entry point for the application logic. Here we
# do the command line arguments processing and inspect
# the target files.
#
#
# @api public
# @param args [Array<String>] command line arguments
# @return [Integer] UNIX exit code
#
# source://rubocop//lib/rubocop/cli.rb#39
def run(args = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cli.rb#156
def act_on_options; end
# source://rubocop//lib/rubocop/cli.rb#198
def apply_default_formatter; end
# source://rubocop//lib/rubocop/cli.rb#125
def execute_runners; end
# source://rubocop//lib/rubocop/cli.rb#182
def handle_editor_mode; end
# @raise [Finished]
#
# source://rubocop//lib/rubocop/cli.rb#187
def handle_exiting_options; end
# source://rubocop//lib/rubocop/cli.rb#144
def parallel_by_default!; end
# source://rubocop//lib/rubocop/cli.rb#80
def profile_if_needed; end
# source://rubocop//lib/rubocop/cli.rb#113
def require_gem(name); end
# source://rubocop//lib/rubocop/cli.rb#121
def run_command(name); end
# source://rubocop//lib/rubocop/cli.rb#174
def set_options_to_config_loader; end
# source://rubocop//lib/rubocop/cli.rb#133
def suggest_extensions; end
# @raise [OptionArgumentError]
#
# source://rubocop//lib/rubocop/cli.rb#137
def validate_options_vs_config; end
end
# Home of subcommands in the CLI.
#
# @api private
#
# source://rubocop//lib/rubocop/cli/command.rb#7
module RuboCop::CLI::Command
class << self
# Find the command with a given name and run it in an environment.
#
# @api private
#
# source://rubocop//lib/rubocop/cli/command.rb#10
def run(env, name); end
private
# @api private
#
# source://rubocop//lib/rubocop/cli/command.rb#16
def class_for(name); end
end
end
# Generate a configuration file acting as a TODO list.
#
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#8
class RuboCop::CLI::Command::AutoGenerateConfig < ::RuboCop::CLI::Command::Base
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#25
def run; end
private
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#107
def add_formatter; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#115
def add_inheritance_from_auto_generated_file(config_file); end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#111
def execute_runner; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#136
def existing_configuration(config_file); end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#65
def line_length_cop(config); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#53
def line_length_enabled?(config); end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#61
def max_line_length(config); end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#34
def maybe_run_line_length_cop; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#73
def only_exclude?; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#69
def options_has_only_flag?; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#153
def relative_path_to_todo_from_options_config; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#100
def reset_config_and_auto_gen_file; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#91
def run_all_cops(line_length_contents); end
# Do an initial run with only Layout/LineLength so that cops that
# depend on Layout/LineLength:Max get the correct value for that
# parameter.
#
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#80
def run_line_length_cop; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#57
def same_max_line_length?(config1, config2); end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#48
def skip_line_length_cop(reason); end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#142
def write_config_file(file_name, file_string, rubocop_yml_contents); end
end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#11
RuboCop::CLI::Command::AutoGenerateConfig::AUTO_GENERATED_FILE = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#15
RuboCop::CLI::Command::AutoGenerateConfig::PHASE_1 = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#19
RuboCop::CLI::Command::AutoGenerateConfig::PHASE_1_DISABLED = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#18
RuboCop::CLI::Command::AutoGenerateConfig::PHASE_1_OVERRIDDEN = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#20
RuboCop::CLI::Command::AutoGenerateConfig::PHASE_1_SKIPPED_ONLY_COPS = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#22
RuboCop::CLI::Command::AutoGenerateConfig::PHASE_1_SKIPPED_ONLY_EXCLUDE = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#16
RuboCop::CLI::Command::AutoGenerateConfig::PHASE_2 = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#13
RuboCop::CLI::Command::AutoGenerateConfig::PLACEHOLDER = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/cli/command/auto_generate_config.rb#12
RuboCop::CLI::Command::AutoGenerateConfig::YAML_OPTIONAL_DOC_START = T.let(T.unsafe(nil), Regexp)
# A subcommand in the CLI.
#
# @api private
#
# source://rubocop//lib/rubocop/cli/command/base.rb#8
class RuboCop::CLI::Command::Base
# @api private
# @return [Base] a new instance of Base
#
# source://rubocop//lib/rubocop/cli/command/base.rb#26
def initialize(env); end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/base.rb#9
def env; end
class << self
# @api private
#
# source://rubocop//lib/rubocop/cli/command/base.rb#21
def by_command_name(name); end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/base.rb#14
def command_name; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/base.rb#14
def command_name=(_arg0); end
# @api private
# @private
#
# source://rubocop//lib/rubocop/cli/command/base.rb#16
def inherited(subclass); end
end
end
# Run all the selected cops and report the result.
#
# @api private
#
# source://rubocop//lib/rubocop/cli/command/execute_runner.rb#8
class RuboCop::CLI::Command::ExecuteRunner < ::RuboCop::CLI::Command::Base
include ::RuboCop::Formatter::TextUtil
# @api private
#
# source://rubocop//lib/rubocop/cli/command/execute_runner.rb#16
def run; end
private
# @api private
#
# source://rubocop//lib/rubocop/cli/command/execute_runner.rb#85
def bug_tracker_uri; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/execute_runner.rb#69
def display_error_summary(errors); end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/execute_runner.rb#56
def display_summary(runner); end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/execute_runner.rb#61
def display_warning_summary(warnings); end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/execute_runner.rb#22
def execute_runner(paths); end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/execute_runner.rb#91
def maybe_print_corrected_source; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/execute_runner.rb#42
def with_redirect; end
end
# Combination of short and long formatter names.
#
# @api private
#
# source://rubocop//lib/rubocop/cli/command/execute_runner.rb#12
RuboCop::CLI::Command::ExecuteRunner::INTEGRATION_FORMATTERS = T.let(T.unsafe(nil), Array)
# Generate a .rubocop.yml file in the current directory.
#
# @api private
#
# source://rubocop//lib/rubocop/cli/command/init_dotfile.rb#8
class RuboCop::CLI::Command::InitDotfile < ::RuboCop::CLI::Command::Base
# @api private
#
# source://rubocop//lib/rubocop/cli/command/init_dotfile.rb#13
def run; end
end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/init_dotfile.rb#9
RuboCop::CLI::Command::InitDotfile::DOTFILE = T.let(T.unsafe(nil), String)
# Start Language Server Protocol of RuboCop.
#
# @api private
#
# source://rubocop//lib/rubocop/cli/command/lsp.rb#8
class RuboCop::CLI::Command::LSP < ::RuboCop::CLI::Command::Base
# @api private
#
# source://rubocop//lib/rubocop/cli/command/lsp.rb#11
def run; end
end
# Shows the given cops, or all cops by default, and their configurations
# for the current directory.
#
# @api private
#
# source://rubocop//lib/rubocop/cli/command/show_cops.rb#9
class RuboCop::CLI::Command::ShowCops < ::RuboCop::CLI::Command::Base
# @api private
# @return [ShowCops] a new instance of ShowCops
#
# source://rubocop//lib/rubocop/cli/command/show_cops.rb#12
def initialize(env); end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/show_cops.rb#19
def run; end
private
# @api private
#
# source://rubocop//lib/rubocop/cli/command/show_cops.rb#67
def config_lines(cop); end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/show_cops.rb#63
def cops_of_department(cops, department); end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/show_cops.rb#25
def print_available_cops; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/show_cops.rb#48
def print_cop_details(cops); end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/show_cops.rb#36
def print_cops_of_department(registry, department, show_all); end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/show_cops.rb#57
def selected_cops_of_department(cops, department); end
end
# Prints out url to documentation of provided cops
# or documentation base url by default.
#
# @api private
#
# source://rubocop//lib/rubocop/cli/command/show_docs_url.rb#9
class RuboCop::CLI::Command::ShowDocsUrl < ::RuboCop::CLI::Command::Base
# @api private
# @return [ShowDocsUrl] a new instance of ShowDocsUrl
#
# source://rubocop//lib/rubocop/cli/command/show_docs_url.rb#12
def initialize(env); end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/show_docs_url.rb#18
def run; end
private
# @api private
#
# source://rubocop//lib/rubocop/cli/command/show_docs_url.rb#38
def cops_array; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/show_docs_url.rb#24
def print_documentation_url; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/show_docs_url.rb#42
def registry_hash; end
end
# Suggest RuboCop extensions to install based on Gemfile dependencies.
# Only primary dependencies are evaluated, so if a dependency depends on a
# gem with an extension, it is not suggested. However, if an extension is
# a transitive dependency, it will not be suggested.
#
# @api private
#
# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#11
class RuboCop::CLI::Command::SuggestExtensions < ::RuboCop::CLI::Command::Base
# @api private
#
# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#17
def run; end
private
# @api private
#
# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#73
def all_extensions; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#69
def current_formatter; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#111
def dependent_gems; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#87
def extensions; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#103
def installed_and_not_loaded_extensions; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#91
def installed_extensions; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#115
def installed_gems; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#99
def loaded_extensions; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#107
def lockfile; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#95
def not_installed_extensions; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#41
def print_install_suggestions; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#51
def print_load_suggestions; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#60
def print_opt_out_instruction; end
# @api private
#
# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#119
def puts(*args); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#30
def skip?; end
end
# Combination of short and long formatter names.
#
# @api private
#
# source://rubocop//lib/rubocop/cli/command/suggest_extensions.rb#13
RuboCop::CLI::Command::SuggestExtensions::INCLUDED_FORMATTERS = T.let(T.unsafe(nil), Array)
# Display version.
#
# @api private
#
# source://rubocop//lib/rubocop/cli/command/version.rb#8
class RuboCop::CLI::Command::Version < ::RuboCop::CLI::Command::Base
# @api private
#
# source://rubocop//lib/rubocop/cli/command/version.rb#11
def run; end
end
# source://rubocop//lib/rubocop/cli.rb#13
RuboCop::CLI::DEFAULT_PARALLEL_OPTIONS = T.let(T.unsafe(nil), Array)
# Execution environment for a CLI command.
#
# @api private
#
# source://rubocop//lib/rubocop/cli/environment.rb#7
class RuboCop::CLI::Environment
# @api private
# @return [Environment] a new instance of Environment
#
# source://rubocop//lib/rubocop/cli/environment.rb#10
def initialize(options, config_store, paths); end
# @api private
#
# source://rubocop//lib/rubocop/cli/environment.rb#8
def config_store; end
# @api private
#
# source://rubocop//lib/rubocop/cli/environment.rb#8
def options; end
# @api private
#
# source://rubocop//lib/rubocop/cli/environment.rb#8
def paths; end
# Run a command in this environment.
#
# @api private
#
# source://rubocop//lib/rubocop/cli/environment.rb#17
def run(name); end
end
# source://rubocop//lib/rubocop/cli.rb#20
class RuboCop::CLI::Finished < ::StandardError; end
# source://rubocop//lib/rubocop/cli.rb#11
RuboCop::CLI::STATUS_ERROR = T.let(T.unsafe(nil), Integer)
# source://rubocop//lib/rubocop/cli.rb#12
RuboCop::CLI::STATUS_INTERRUPTED = T.let(T.unsafe(nil), Integer)
# source://rubocop//lib/rubocop/cli.rb#10
RuboCop::CLI::STATUS_OFFENSES = T.let(T.unsafe(nil), Integer)
# source://rubocop//lib/rubocop/cli.rb#9
RuboCop::CLI::STATUS_SUCCESS = T.let(T.unsafe(nil), Integer)
# This class represents the cache config of the caching RuboCop runs.
#
# @api private
#
# source://rubocop//lib/rubocop/cache_config.rb#6
class RuboCop::CacheConfig
class << self
# @api private
#
# source://rubocop//lib/rubocop/cache_config.rb#7
def root_dir; end
end
end
# Converts RuboCop objects to and from the serialization format JSON.
#
# @api private
#
# source://rubocop//lib/rubocop/cached_data.rb#8
class RuboCop::CachedData
# @api private
# @return [CachedData] a new instance of CachedData
#
# source://rubocop//lib/rubocop/cached_data.rb#9
def initialize(filename); end
# @api private
#
# source://rubocop//lib/rubocop/cached_data.rb#13
def from_json(text); end
# @api private
#
# source://rubocop//lib/rubocop/cached_data.rb#17
def to_json(offenses); end
private
# Restore an offense object loaded from a JSON file.
#
# @api private
#
# source://rubocop//lib/rubocop/cached_data.rb#47
def deserialize_offenses(offenses); end
# @api private
#
# source://rubocop//lib/rubocop/cached_data.rb#54
def location_from_source_buffer(offense); end
# @api private
#
# source://rubocop//lib/rubocop/cached_data.rb#40
def message(offense); end
# @api private
#
# source://rubocop//lib/rubocop/cached_data.rb#23
def serialize_offense(offense); end
# Delay creation until needed. Some type of offenses will have no buffer associated with them
# and be global only. For these, trying to create the buffer will likely fail, for example
# because of unknown encoding comments.
#
# @api private
#
# source://rubocop//lib/rubocop/cached_data.rb#67
def source_buffer; end
end
# and provides a way to check if each cop is enabled at arbitrary line.
#
# source://rubocop//lib/rubocop/comment_config.rb#6
class RuboCop::CommentConfig
extend ::RuboCop::SimpleForwardable
# @return [CommentConfig] a new instance of CommentConfig
#
# source://rubocop//lib/rubocop/comment_config.rb#34
def initialize(processed_source); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/comment_config.rb#63
def comment_only_line?(line_number); end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def config(*_arg0, **_arg1, &_arg2); end
# source://rubocop//lib/rubocop/comment_config.rb#51
def cop_disabled_line_ranges; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/comment_config.rb#39
def cop_enabled_at_line?(cop, line_number); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/comment_config.rb#47
def cop_opted_in?(cop); end
# source://rubocop//lib/rubocop/comment_config.rb#55
def extra_enabled_comments; end
# Returns the value of attribute processed_source.
#
# source://rubocop//lib/rubocop/comment_config.rb#30
def processed_source; end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def registry(*_arg0, **_arg1, &_arg2); end
private
# source://rubocop//lib/rubocop/comment_config.rb#96
def analyze; end
# source://rubocop//lib/rubocop/comment_config.rb#124
def analyze_cop(analysis, directive); end
# source://rubocop//lib/rubocop/comment_config.rb#144
def analyze_disabled(analysis, directive); end
# source://rubocop//lib/rubocop/comment_config.rb#155
def analyze_rest(analysis, directive); end
# source://rubocop//lib/rubocop/comment_config.rb#135
def analyze_single_line(analysis, directive); end
# source://rubocop//lib/rubocop/comment_config.rb#164
def cop_line_ranges(analysis); end
# source://rubocop//lib/rubocop/comment_config.rb#170
def each_directive; end
# source://rubocop//lib/rubocop/comment_config.rb#69
def extra_enabled_comments_with_names(extras:, names:); end
# source://rubocop//lib/rubocop/comment_config.rb#190
def handle_enable_all(directive, names, extras); end
# Collect cops that have been disabled or enabled by name in a directive comment
# so that `Lint/RedundantCopEnableDirective` can register offenses correctly.
#
# source://rubocop//lib/rubocop/comment_config.rb#204
def handle_switch(directive, names, extras); end
# source://rubocop//lib/rubocop/comment_config.rb#115
def inject_disabled_cops_directives(analyses); end
# source://rubocop//lib/rubocop/comment_config.rb#183
def non_comment_token_line_numbers; end
# source://rubocop//lib/rubocop/comment_config.rb#83
def opt_in_cops; end
# source://rubocop//lib/rubocop/comment_config.rb#179
def qualified_cop_name(cop_name); end
end
# source://rubocop//lib/rubocop/comment_config.rb#9
RuboCop::CommentConfig::CONFIG_DISABLED_LINE_RANGE_MIN = T.let(T.unsafe(nil), Float)
# This class provides an API compatible with RuboCop::DirectiveComment
# to be used for cops that are disabled in the config file
#
# source://rubocop//lib/rubocop/comment_config.rb#13
class RuboCop::CommentConfig::ConfigDisabledCopDirectiveComment
include ::RuboCop::Ext::Comment
# @return [ConfigDisabledCopDirectiveComment] a new instance of ConfigDisabledCopDirectiveComment
#
# source://rubocop//lib/rubocop/comment_config.rb#21
def initialize(cop_name); end
# Returns the value of attribute line_number.
#
# source://rubocop//lib/rubocop/comment_config.rb#16
def line_number; end
# Returns the value of attribute loc.
#
# source://rubocop//lib/rubocop/comment_config.rb#16
def loc; end
# Returns the value of attribute text.
#
# source://rubocop//lib/rubocop/comment_config.rb#16
def text; end
end
# source://rubocop//lib/rubocop/comment_config.rb#19
class RuboCop::CommentConfig::ConfigDisabledCopDirectiveComment::Expression < ::Struct
# Returns the value of attribute line
#
# @return [Object] the current value of line
def line; end
# Sets the attribute line
#
# @param value [Object] the value to set the attribute line to.
# @return [Object] the newly set value
def line=(_); end
class << self
def [](*_arg0); end
def inspect; end
def keyword_init?; end
def members; end
def new(*_arg0); end
end
end
# source://rubocop//lib/rubocop/comment_config.rb#18
class RuboCop::CommentConfig::ConfigDisabledCopDirectiveComment::Loc < ::Struct
# Returns the value of attribute expression
#
# @return [Object] the current value of expression
def expression; end
# Sets the attribute expression
#
# @param value [Object] the value to set the attribute expression to.
# @return [Object] the newly set value
def expression=(_); end
class << self
def [](*_arg0); end
def inspect; end
def keyword_init?; end
def members; end
def new(*_arg0); end
end
end
# source://rubocop//lib/rubocop/comment_config.rb#28
class RuboCop::CommentConfig::CopAnalysis < ::Struct
# Returns the value of attribute line_ranges
#
# @return [Object] the current value of line_ranges
def line_ranges; end
# Sets the attribute line_ranges
#
# @param value [Object] the value to set the attribute line_ranges to.
# @return [Object] the newly set value
def line_ranges=(_); end
# Returns the value of attribute start_line_number
#
# @return [Object] the current value of start_line_number
def start_line_number; end
# Sets the attribute start_line_number
#
# @param value [Object] the value to set the attribute start_line_number to.
# @return [Object] the newly set value
def start_line_number=(_); end
class << self
def [](*_arg0); end
def inspect; end
def keyword_init?; end
def members; end
def new(*_arg0); end
end
end
# This class represents the configuration of the RuboCop application
# and all its cops. A Config is associated with a YAML configuration
# file from which it was read. Several different Configs can be used
# during a run of the rubocop program, if files in several
# directories are inspected.
#
# source://rubocop//lib/rubocop/config.rb#12
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#30
def initialize(hash = T.unsafe(nil), loaded_path = T.unsafe(nil)); end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def [](*_arg0, **_arg1, &_arg2); end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def []=(*_arg0, **_arg1, &_arg2); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config.rb#170
def active_support_extensions_enabled?; end
# source://rubocop//lib/rubocop/config.rb#96
def add_excludes_from_higher_level(highest_config); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config.rb#197
def allowed_camel_case_file?(file); end
# Paths specified in configuration files starting with .rubocop are
# relative to the directory where that file is. Paths in other config files
# are relative to the current directory. This is so that paths in
# config/default.yml, for example, are not relative to RuboCop's config
# directory since that wouldn't work.
#
# source://rubocop//lib/rubocop/config.rb#241
def base_dir_for_path_parameters; end
# @return [String, nil]
#
# source://rubocop//lib/rubocop/config.rb#271
def bundler_lock_file_path; end
# source://rubocop//lib/rubocop/config.rb#51
def check; end
# @api private
# @return [Boolean] whether config for this badge has 'Include' or 'Exclude' keys
#
# source://rubocop//lib/rubocop/config.rb#142
def clusivity_config_for_badge?(badge); end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def delete(*_arg0, **_arg1, &_arg2); end
# source://rubocop//lib/rubocop/config.rb#108
def deprecation_check; end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def dig(*_arg0, **_arg1, &_arg2); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config.rb#162
def disabled_new_cops?; end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def each(*_arg0, **_arg1, &_arg2); end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def each_key(*_arg0, **_arg1, &_arg2); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config.rb#166
def enabled_new_cops?; end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def fetch(*_arg0, **_arg1, &_arg2); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config.rb#219
def file_to_exclude?(file); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config.rb#178
def file_to_include?(file); end
# source://rubocop//lib/rubocop/config.rb#158
def for_all_cops; end
# Note: the 'Enabled' attribute is same as that returned by `for_cop`
#
# @return [Config] for the given cop merged with that of its department (if any)
#
# source://rubocop//lib/rubocop/config.rb#128
def for_badge(badge); end
# Note: the 'Enabled' attribute is calculated according to the department's
# and 'AllCops' configuration; other attributes are not inherited.
#
# @return [Config] for the given cop / cop name.
#
# source://rubocop//lib/rubocop/config.rb#122
def for_cop(cop); end
# Note: the 'Enabled' attribute will be present only if specified
# at the department's level
#
# @return [Config] for the given department name.
#
# source://rubocop//lib/rubocop/config.rb#153
def for_department(department_name); end
# Returns target's locked gem versions (i.e. from Gemfile.lock or gems.locked)
#
# source://rubocop//lib/rubocop/config.rb#296
def gem_versions_in_target; end
# source://rubocop//lib/rubocop/config.rb#300
def inspect; end
# True if this is a config file that is shipped with RuboCop
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config.rb#76
def internal?; end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def key?(*_arg0, **_arg1, &_arg2); end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def keys(*_arg0, **_arg1, &_arg2); end
# source://rubocop//lib/rubocop/config.rb#47
def loaded_features; end
# Returns the value of attribute loaded_path.
#
# source://rubocop//lib/rubocop/config.rb#20
def loaded_path; end
# source://rubocop//lib/rubocop/config.rb#81
def make_excludes_absolute; end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def map(*_arg0, **_arg1, &_arg2); end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def merge(*_arg0, **_arg1, &_arg2); end
# source://rubocop//lib/rubocop/config.rb#251
def parser_engine; end
# source://rubocop//lib/rubocop/config.rb#232
def path_relative_to_config(path); end
# source://rubocop//lib/rubocop/config.rb#228
def patterns_to_exclude; end
# source://rubocop//lib/rubocop/config.rb#224
def patterns_to_include; end
# source://rubocop//lib/rubocop/config.rb#282
def pending_cops; end
# Returns true if there's a chance that an Include pattern matches hidden
# files, false if that's definitely not possible.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config.rb#211
def possibly_include_hidden?; end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def replace(*_arg0, **_arg1, &_arg2); end
# source://rubocop//lib/rubocop/config.rb#71
def signature; end
# source://rubocop//lib/rubocop/config.rb#266
def smart_loaded_path; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config.rb#174
def string_literals_frozen_by_default?; end
# source://rubocop//lib/rubocop/config.rb#255
def target_rails_version; end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def target_ruby_version(*_arg0, **_arg1, &_arg2); end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def to_h(*_arg0, **_arg1, &_arg2); end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def to_hash(*_arg0, **_arg1, &_arg2); end
# source://rubocop//lib/rubocop/config.rb#67
def to_s; end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def transform_values(*_arg0, **_arg1, &_arg2); end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def validate(*_arg0, **_arg1, &_arg2); end
# source://rubocop//lib/rubocop/config.rb#58
def validate_after_resolution; end
private
# source://rubocop//lib/rubocop/config.rb#350
def department_of(qualified_cop_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config.rb#338
def enable_cop?(qualified_cop_name, cop_options); end
# @param gem_version [Gem::Version] an object like `Gem::Version.new("7.1.2.3")`
# @return [Float] The major and minor version, like `7.1`
#
# source://rubocop//lib/rubocop/config.rb#325
def gem_version_to_major_minor_float(gem_version); end
# source://rubocop//lib/rubocop/config.rb#331
def read_gem_versions_from_target_lockfile; end
# @return [Float, nil] The Rails version as a `major.minor` Float.
#
# source://rubocop//lib/rubocop/config.rb#312
def read_rails_version_from_bundler_lock_file; end
# @return [Float, nil] The Rails version as a `major.minor` Float.
#
# source://rubocop//lib/rubocop/config.rb#307
def target_rails_version_from_bundler_lock_file; end
class << self
# source://rubocop//lib/rubocop/config.rb#22
def create(hash, path, check: T.unsafe(nil)); end
end
end
# source://rubocop//lib/rubocop/config.rb#17
class RuboCop::Config::CopConfig < ::Struct
# Returns the value of attribute metadata
#
# @return [Object] the current value of metadata
def metadata; end
# Sets the attribute metadata
#
# @param value [Object] the value to set the attribute metadata to.
# @return [Object] the newly set value
def metadata=(_); end
# Returns the value of attribute name
#
# @return [Object] the current value of name
def name; end
# Sets the attribute name
#
# @param value [Object] the value to set the attribute name to.
# @return [Object] the newly set value
def name=(_); end
class << self
def [](*_arg0); end
def inspect; end
def keyword_init?; end
def members; end
def new(*_arg0); end
end
end
# source://rubocop//lib/rubocop/config.rb#19
RuboCop::Config::DEFAULT_RAILS_VERSION = T.let(T.unsafe(nil), Float)
# This class has methods related to finding configuration path.
#
# @api private
#
# source://rubocop//lib/rubocop/config_finder.rb#8
class RuboCop::ConfigFinder
extend ::RuboCop::FileFinder
class << self
# @api private
#
# source://rubocop//lib/rubocop/config_finder.rb#19
def find_config_path(target_dir); end
# Returns the path RuboCop inferred as the root of the project. No file
# searches will go past this directory.
#
# @api private
#
# source://rubocop//lib/rubocop/config_finder.rb#26
def project_root; end
# @api private
#
# source://rubocop//lib/rubocop/config_finder.rb#17
def project_root=(_arg0); end
private
# @api private
#
# source://rubocop//lib/rubocop/config_finder.rb#69
def expand_path(path); end
# @api private
#
# source://rubocop//lib/rubocop/config_finder.rb#40
def find_project_dotfile(target_dir); end
# @api private
#
# source://rubocop//lib/rubocop/config_finder.rb#32
def find_project_root; end
# @api private
#
# source://rubocop//lib/rubocop/config_finder.rb#44
def find_project_root_dot_config; end
# @api private
#
# source://rubocop//lib/rubocop/config_finder.rb#54
def find_user_dotfile; end
# @api private
#
# source://rubocop//lib/rubocop/config_finder.rb#62
def find_user_xdg_config; end
end
end
# @api private
#
# source://rubocop//lib/rubocop/config_finder.rb#12
RuboCop::ConfigFinder::DEFAULT_FILE = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/config_finder.rb#9
RuboCop::ConfigFinder::DOTFILE = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/config_finder.rb#11
RuboCop::ConfigFinder::RUBOCOP_HOME = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/config_finder.rb#10
RuboCop::ConfigFinder::XDG_CONFIG = T.let(T.unsafe(nil), String)
# This class represents the configuration of the RuboCop application
# and all its cops. A Config is associated with a YAML configuration
# file from which it was read. Several different Configs can be used
# during a run of the rubocop program, if files in several
# directories are inspected.
#
# source://rubocop//lib/rubocop/config_loader.rb#17
class RuboCop::ConfigLoader
extend ::RuboCop::FileFinder
class << self
# source://rubocop//lib/rubocop/config_loader.rb#137
def add_excludes_from_files(config, config_file); end
# Used to add features that were required inside a config or from
# the CLI using `--require`.
#
# @api private
#
# source://rubocop//lib/rubocop/config_loader.rb#198
def add_loaded_features(loaded_features); end
# source://rubocop//lib/rubocop/config_loader.rb#80
def add_missing_namespaces(path, hash); end
# source://rubocop//lib/rubocop/config_loader.rb#41
def clear_options; end
# Returns the path of .rubocop.yml searching upwards in the
# directory structure starting at the given directory where the
# inspected file is. If no .rubocop.yml is found there, the
# user's home directory is checked. If there's no .rubocop.yml
# there either, the path to the default file is returned.
#
# source://rubocop//lib/rubocop/config_loader.rb#104
def configuration_file_for(target_dir); end
# source://rubocop//lib/rubocop/config_loader.rb#108
def configuration_from_file(config_file, check: T.unsafe(nil)); end
# Returns the value of attribute debug.
#
# source://rubocop//lib/rubocop/config_loader.rb#33
def debug; end
# Sets the attribute debug
#
# @param value the value to set the attribute debug to.
#
# source://rubocop//lib/rubocop/config_loader.rb#33
def debug=(_arg0); end
# Returns the value of attribute debug.
#
# source://rubocop//lib/rubocop/config_loader.rb#33
def debug?; end
# source://rubocop//lib/rubocop/config_loader.rb#147
def default_configuration; end
# Sets the attribute default_configuration
#
# @param value the value to set the attribute default_configuration to.
#
# source://rubocop//lib/rubocop/config_loader.rb#35
def default_configuration=(_arg0); end
# Returns the value of attribute disable_pending_cops.
#
# source://rubocop//lib/rubocop/config_loader.rb#33
def disable_pending_cops; end
# Sets the attribute disable_pending_cops
#
# @param value the value to set the attribute disable_pending_cops to.
#
# source://rubocop//lib/rubocop/config_loader.rb#33
def disable_pending_cops=(_arg0); end
# Returns the value of attribute enable_pending_cops.
#
# source://rubocop//lib/rubocop/config_loader.rb#33
def enable_pending_cops; end
# Sets the attribute enable_pending_cops
#
# @param value the value to set the attribute enable_pending_cops to.
#
# source://rubocop//lib/rubocop/config_loader.rb#33
def enable_pending_cops=(_arg0); end
# Returns the value of attribute ignore_parent_exclusion.
#
# source://rubocop//lib/rubocop/config_loader.rb#33
def ignore_parent_exclusion; end
# Sets the attribute ignore_parent_exclusion
#
# @param value the value to set the attribute ignore_parent_exclusion to.
#
# source://rubocop//lib/rubocop/config_loader.rb#33
def ignore_parent_exclusion=(_arg0); end
# Returns the value of attribute ignore_parent_exclusion.
#
# source://rubocop//lib/rubocop/config_loader.rb#33
def ignore_parent_exclusion?; end
# Returns the value of attribute ignore_unrecognized_cops.
#
# source://rubocop//lib/rubocop/config_loader.rb#33
def ignore_unrecognized_cops; end
# Sets the attribute ignore_unrecognized_cops
#
# @param value the value to set the attribute ignore_unrecognized_cops to.
#
# source://rubocop//lib/rubocop/config_loader.rb#33
def ignore_unrecognized_cops=(_arg0); end
# @api private
#
# source://rubocop//lib/rubocop/config_loader.rb#155
def inject_defaults!(project_root); end
# source://rubocop//lib/rubocop/config_loader.rb#47
def load_file(file, check: T.unsafe(nil)); end
# @raise [TypeError]
#
# source://rubocop//lib/rubocop/config_loader.rb#67
def load_yaml_configuration(absolute_path); end
# Returns the value of attribute loaded_features.
#
# source://rubocop//lib/rubocop/config_loader.rb#36
def loaded_features; end
# Return a recursive merge of two hashes. That is, a normal hash merge,
# with the addition that any value that is a hash, and occurs in both
# arguments, will also be merged. And so on.
#
# source://rubocop//lib/rubocop/config_loader.rb#95
def merge(base_hash, derived_hash); end
# Merges the given configuration with the default one.
#
# source://rubocop//lib/rubocop/config_loader.rb#191
def merge_with_default(config, config_file, unset_nil: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/config_loader.rb#128
def pending_cops_only_qualified(pending_cops); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_loader.rb#132
def possible_new_cops?(config); end
# Returns the path RuboCop inferred as the root of the project. No file
# searches will go past this directory.
#
# @deprecated Use `RuboCop::ConfigFinder.project_root` instead.
#
# source://rubocop//lib/rubocop/config_loader.rb#166
def project_root; end
# source://rubocop//lib/rubocop/config_loader.rb#175
def warn_on_pending_cops(pending_cops); end
# source://rubocop//lib/rubocop/config_loader.rb#183
def warn_pending_cop(cop); end
private
# source://rubocop//lib/rubocop/config_loader.rb#212
def check_duplication(yaml_code, absolute_path); end
# source://rubocop//lib/rubocop/config_loader.rb#204
def file_path(file); end
# Read the specified file, or exit with a friendly, concise message on
# stderr. Care is taken to use the standard OS exit code for a "file not
# found" error.
#
# source://rubocop//lib/rubocop/config_loader.rb#232
def read_file(absolute_path); end
# source://rubocop//lib/rubocop/config_loader.rb#208
def resolver; end
# source://rubocop//lib/rubocop/config_loader.rb#238
def yaml_tree_to_hash(yaml_tree); end
# source://rubocop//lib/rubocop/config_loader.rb#248
def yaml_tree_to_hash!(yaml_tree); end
end
end
# source://rubocop//lib/rubocop/config_loader.rb#20
RuboCop::ConfigLoader::DEFAULT_FILE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/config_loader.rb#18
RuboCop::ConfigLoader::DOTFILE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/config_loader.rb#19
RuboCop::ConfigLoader::RUBOCOP_HOME = T.let(T.unsafe(nil), String)
# A help class for ConfigLoader that handles configuration resolution.
#
# @api private
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#9
class RuboCop::ConfigLoaderResolver
# When one .rubocop.yml file inherits from another .rubocop.yml file, the Include paths in the
# base configuration are relative to the directory where the base configuration file is. For the
# derived configuration, we need to make those paths relative to where the derived configuration
# file is.
#
# @api private
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#45
def fix_include_paths(base_config_path, hash, path, key, value); end
# Return a recursive merge of two hashes. That is, a normal hash merge,
# with the addition that any value that is a hash, and occurs in both
# arguments, will also be merged. And so on.
#
#
# @api private
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#99
def merge(base_hash, derived_hash, **opts); end
# Merges the given configuration with the default one. If
# AllCops:DisabledByDefault is true, it changes the Enabled params so that
# only cops from user configuration are enabled. If
# AllCops:EnabledByDefault is true, it changes the Enabled params so that
# only cops explicitly disabled in user configuration are disabled.
#
# @api private
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#75
def merge_with_default(config, config_file, unset_nil:); end
# An `Enabled: true` setting in user configuration for a cop overrides an
# `Enabled: false` setting for its department.
#
# @api private
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#119
def override_department_setting_for_cops(base_hash, derived_hash); end
# If a cop was previously explicitly enabled, but then superseded by the
# department being disabled, disable it.
#
# @api private
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#136
def override_enabled_for_disabled_departments(base_hash, derived_hash); end
# @api private
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#19
def resolve_inheritance(path, hash, file, debug); end
# @api private
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#55
def resolve_inheritance_from_gems(hash); end
# @api private
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#10
def resolve_requires(path, hash); end
private
# @api private
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#208
def base_configs(path, inherit_from, file); end
# @api private
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#176
def determine_inherit_mode(hash, key); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#152
def disabled?(hash, department); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#156
def duplicate_setting?(base_hash, derived_hash, key, inherited_file); end
# @api private
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#267
def gem_config_path(gem_name, relative_config_path); end
# @api private
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#245
def handle_disabled_by_default(config, new_default_configuration); end
# @api private
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#220
def inherited_file(path, inherit_from, file); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#204
def merge_hashes?(base_hash, derived_hash, key); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#241
def remote_file?(uri); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#196
def should_merge?(mode, key); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#200
def should_override?(mode, key); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#182
def should_union?(derived_hash, base_hash, root_mode, key); end
# @api private
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#263
def transform(config, &block); end
# @api private
#
# source://rubocop//lib/rubocop/config_loader_resolver.rb#165
def warn_on_duplicate_setting(base_hash, derived_hash, key, **opts); end
end
# Raised when a RuboCop configuration file is not found.
#
# source://rubocop//lib/rubocop/config_loader.rb#9
class RuboCop::ConfigNotFoundError < ::RuboCop::Error; end
# This class handles obsolete configuration.
#
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/rule.rb#4
class RuboCop::ConfigObsoletion
# @api private
# @return [ConfigObsoletion] a new instance of ConfigObsoletion
#
# source://rubocop//lib/rubocop/config_obsoletion.rb#35
def initialize(config); end
# @api private
# @raise [ValidationError]
#
# source://rubocop//lib/rubocop/config_obsoletion.rb#41
def reject_obsolete!; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion.rb#21
def rules; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion.rb#21
def warnings; end
private
# Cop rules are keyed by the name of the original cop
#
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion.rb#72
def load_cop_rules(rules); end
# Parameter rules may apply to multiple cops and multiple parameters
# and are given as an array. Each combination is turned into a separate
# rule object.
#
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion.rb#85
def load_parameter_rules(rules); end
# Default rules for obsoletions are in config/obsoletion.yml
# Additional rules files can be added with `RuboCop::ConfigObsoletion.files << filename`
#
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion.rb#52
def load_rules; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion.rb#98
def obsoletions; end
class << self
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion.rb#24
def files; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion.rb#24
def files=(_arg0); end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion.rb#26
def legacy_cop_names; end
end
end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion.rb#8
RuboCop::ConfigObsoletion::COP_RULE_CLASSES = T.let(T.unsafe(nil), Hash)
# Encapsulation of a ConfigObsoletion rule for changing a parameter
#
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/changed_enforced_styles.rb#7
class RuboCop::ConfigObsoletion::ChangedEnforcedStyles < ::RuboCop::ConfigObsoletion::ParameterRule
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/changed_enforced_styles.rb#14
def message; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_obsoletion/changed_enforced_styles.rb#10
def violated?; end
private
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/changed_enforced_styles.rb#28
def value; end
end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/changed_enforced_styles.rb#8
RuboCop::ConfigObsoletion::ChangedEnforcedStyles::BASE_MESSAGE = T.let(T.unsafe(nil), String)
# Encapsulation of a ConfigObsoletion rule for changing a parameter
#
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/changed_parameter.rb#7
class RuboCop::ConfigObsoletion::ChangedParameter < ::RuboCop::ConfigObsoletion::ParameterRule
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/changed_parameter.rb#10
def message; end
end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/changed_parameter.rb#8
RuboCop::ConfigObsoletion::ChangedParameter::BASE_MESSAGE = T.let(T.unsafe(nil), String)
# Base class for ConfigObsoletion rules relating to cops
#
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/cop_rule.rb#7
class RuboCop::ConfigObsoletion::CopRule < ::RuboCop::ConfigObsoletion::Rule
# @api private
# @return [CopRule] a new instance of CopRule
#
# source://rubocop//lib/rubocop/config_obsoletion/cop_rule.rb#10
def initialize(config, old_name); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_obsoletion/cop_rule.rb#15
def cop_rule?; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/cop_rule.rb#19
def message; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/cop_rule.rb#8
def old_name; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_obsoletion/cop_rule.rb#28
def violated?; end
# Cop rules currently can only be failures, not warnings
#
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_obsoletion/cop_rule.rb#24
def warning?; end
end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion.rb#7
RuboCop::ConfigObsoletion::DEFAULT_RULES_FILE = T.let(T.unsafe(nil), String)
# Encapsulation of a ConfigObsoletion rule for splitting a cop's
# functionality into multiple new cops.
#
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/extracted_cop.rb#8
class RuboCop::ConfigObsoletion::ExtractedCop < ::RuboCop::ConfigObsoletion::CopRule
# @api private
# @return [ExtractedCop] a new instance of ExtractedCop
#
# source://rubocop//lib/rubocop/config_obsoletion/extracted_cop.rb#11
def initialize(config, old_name, gem); end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/extracted_cop.rb#9
def department; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/extracted_cop.rb#9
def gem; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/extracted_cop.rb#23
def rule_message; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_obsoletion/extracted_cop.rb#17
def violated?; end
private
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/extracted_cop.rb#32
def affected_cops; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_obsoletion/extracted_cop.rb#41
def feature_loaded?; end
end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion.rb#18
RuboCop::ConfigObsoletion::LOAD_RULES_CACHE = T.let(T.unsafe(nil), Hash)
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion.rb#14
RuboCop::ConfigObsoletion::PARAMETER_RULE_CLASSES = T.let(T.unsafe(nil), Hash)
# Base class for ConfigObsoletion rules relating to parameters
#
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#7
class RuboCop::ConfigObsoletion::ParameterRule < ::RuboCop::ConfigObsoletion::Rule
# @api private
# @return [ParameterRule] a new instance of ParameterRule
#
# source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#10
def initialize(config, cop, parameter, metadata); end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#8
def cop; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#8
def metadata; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#8
def parameter; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#17
def parameter_rule?; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#21
def violated?; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#25
def warning?; end
private
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#39
def alternative; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#43
def alternatives; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#31
def applies_to_current_ruby_version?; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#47
def reason; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/parameter_rule.rb#51
def severity; end
end
# Encapsulation of a ConfigObsoletion rule for removing
# a previously defined cop.
#
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/removed_cop.rb#8
class RuboCop::ConfigObsoletion::RemovedCop < ::RuboCop::ConfigObsoletion::CopRule
# @api private
# @return [RemovedCop] a new instance of RemovedCop
#
# source://rubocop//lib/rubocop/config_obsoletion/removed_cop.rb#13
def initialize(config, old_name, metadata); end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/removed_cop.rb#9
def metadata; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/removed_cop.rb#9
def old_name; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/removed_cop.rb#18
def rule_message; end
private
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/removed_cop.rb#36
def alternatives; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/removed_cop.rb#32
def reason; end
end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/removed_cop.rb#11
RuboCop::ConfigObsoletion::RemovedCop::BASE_MESSAGE = T.let(T.unsafe(nil), String)
# Encapsulation of a ConfigObsoletion rule for renaming
# a cop or moving it to a new department.
#
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/renamed_cop.rb#8
class RuboCop::ConfigObsoletion::RenamedCop < ::RuboCop::ConfigObsoletion::CopRule
# @api private
# @return [RenamedCop] a new instance of RenamedCop
#
# source://rubocop//lib/rubocop/config_obsoletion/renamed_cop.rb#11
def initialize(config, old_name, new_name); end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/renamed_cop.rb#9
def new_name; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/renamed_cop.rb#16
def rule_message; end
private
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_obsoletion/renamed_cop.rb#22
def moved?; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/renamed_cop.rb#29
def verb; end
end
# Abstract base class for ConfigObsoletion rules
#
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/rule.rb#7
class RuboCop::ConfigObsoletion::Rule
# @api private
# @return [Rule] a new instance of Rule
#
# source://rubocop//lib/rubocop/config_obsoletion/rule.rb#8
def initialize(config); end
# Does this rule relate to cops?
#
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_obsoletion/rule.rb#13
def cop_rule?; end
# Does this rule relate to parameters?
#
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_obsoletion/rule.rb#18
def parameter_rule?; end
# @api private
# @raise [NotImplementedError]
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_obsoletion/rule.rb#22
def violated?; end
private
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/rule.rb#28
def config; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/rule.rb#36
def smart_loaded_path; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/rule.rb#30
def to_sentence(collection, connector: T.unsafe(nil)); end
end
# Encapsulation of a ConfigObsoletion rule for splitting a cop's
# functionality into multiple new cops.
#
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/split_cop.rb#8
class RuboCop::ConfigObsoletion::SplitCop < ::RuboCop::ConfigObsoletion::CopRule
# @api private
# @return [SplitCop] a new instance of SplitCop
#
# source://rubocop//lib/rubocop/config_obsoletion/split_cop.rb#11
def initialize(config, old_name, metadata); end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/split_cop.rb#9
def metadata; end
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/split_cop.rb#16
def rule_message; end
private
# @api private
#
# source://rubocop//lib/rubocop/config_obsoletion/split_cop.rb#22
def alternatives; end
end
# This class handles collecting the options for regenerating a TODO file.
#
# @api private
#
# source://rubocop//lib/rubocop/config_regeneration.rb#6
class RuboCop::ConfigRegeneration
# Get options from the comment in the TODO file, and parse them as options
#
# @api private
#
# source://rubocop//lib/rubocop/config_regeneration.rb#12
def options; end
private
# @api private
#
# source://rubocop//lib/rubocop/config_regeneration.rb#29
def generation_command; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/config_regeneration.rb#25
def todo_exists?; end
end
# @api private
#
# source://rubocop//lib/rubocop/config_regeneration.rb#7
RuboCop::ConfigRegeneration::AUTO_GENERATED_FILE = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/config_regeneration.rb#8
RuboCop::ConfigRegeneration::COMMAND_REGEX = T.let(T.unsafe(nil), Regexp)
# @api private
#
# source://rubocop//lib/rubocop/config_regeneration.rb#9
RuboCop::ConfigRegeneration::DEFAULT_OPTIONS = T.let(T.unsafe(nil), Hash)
# Handles caching of configurations and association of inspected
# ruby files to configurations.
#
# source://rubocop//lib/rubocop/config_store.rb#6
class RuboCop::ConfigStore
# @return [ConfigStore] a new instance of ConfigStore
#
# source://rubocop//lib/rubocop/config_store.rb#10
def initialize; end
# If type (file/dir) is known beforehand,
# prefer using #for_file or #for_dir for improved performance
#
# source://rubocop//lib/rubocop/config_store.rb#52
def for(file_or_dir); end
# source://rubocop//lib/rubocop/config_store.rb#61
def for_dir(dir); end
# source://rubocop//lib/rubocop/config_store.rb#42
def for_file(file); end
# source://rubocop//lib/rubocop/config_store.rb#46
def for_pwd; end
# source://rubocop//lib/rubocop/config_store.rb#33
def force_default_config!; end
# source://rubocop//lib/rubocop/config_store.rb#28
def options_config=(options_config); end
# source://rubocop//lib/rubocop/config_store.rb#37
def unvalidated; end
# Returns the value of attribute validated.
#
# source://rubocop//lib/rubocop/config_store.rb#7
def validated; end
# Returns the value of attribute validated.
#
# source://rubocop//lib/rubocop/config_store.rb#7
def validated?; end
end
# Handles validation of configuration, for example cop names, parameter
# names, and Ruby versions.
#
# source://rubocop//lib/rubocop/config_validator.rb#6
class RuboCop::ConfigValidator
extend ::RuboCop::SimpleForwardable
# @return [ConfigValidator] a new instance of ConfigValidator
#
# source://rubocop//lib/rubocop/config_validator.rb#27
def initialize(config); end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def for_all_cops(*_arg0, **_arg1, &_arg2); end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def smart_loaded_path(*_arg0, **_arg1, &_arg2); end
# source://rubocop//lib/rubocop/config_validator.rb#63
def target_ruby_version; end
# source://rubocop//lib/rubocop/config_validator.rb#33
def validate; end
# Validations that should only be run after all config resolving has
# taken place:
# * The target ruby version is only checked once the entire inheritance
# chain has been loaded so that only the final value is validated, and
# any obsolete but overridden values are ignored.
#
# source://rubocop//lib/rubocop/config_validator.rb#59
def validate_after_resolution; end
# @raise [ValidationError]
#
# source://rubocop//lib/rubocop/config_validator.rb#67
def validate_section_presence(name); end
private
# @raise [ValidationError]
#
# source://rubocop//lib/rubocop/config_validator.rb#104
def alert_about_unrecognized_cops(invalid_cop_names); end
# source://rubocop//lib/rubocop/config_validator.rb#254
def check_cop_config_value(hash, parent = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/config_validator.rb#77
def check_obsoletions; end
# @raise [ValidationError]
#
# source://rubocop//lib/rubocop/config_validator.rb#84
def check_target_ruby; end
# source://rubocop//lib/rubocop/config_validator.rb#195
def each_invalid_parameter(cop_name); end
# source://rubocop//lib/rubocop/config_validator.rb#120
def list_unknown_cops(invalid_cop_names); end
# FIXME: Handling colors in exception messages like this is ugly.
#
# source://rubocop//lib/rubocop/config_validator.rb#274
def param_error_message(parent, key, value, supposed_values); end
# source://rubocop//lib/rubocop/config_validator.rb#242
def reject_conflicting_safe_settings; end
# @raise [ValidationError]
#
# source://rubocop//lib/rubocop/config_validator.rb#233
def reject_mutually_exclusive_defaults; end
# source://rubocop//lib/rubocop/config_validator.rb#142
def suggestion(name); end
# Returns the value of attribute target_ruby.
#
# source://rubocop//lib/rubocop/config_validator.rb#75
def target_ruby; end
# source://rubocop//lib/rubocop/config_validator.rb#207
def validate_enforced_styles(valid_cop_names); end
# @raise [ValidationError]
#
# source://rubocop//lib/rubocop/config_validator.rb#169
def validate_new_cops_parameter; end
# source://rubocop//lib/rubocop/config_validator.rb#180
def validate_parameter_names(valid_cop_names); end
# source://rubocop//lib/rubocop/config_validator.rb#227
def validate_support_and_has_list(name, formats, valid); end
# @raise [ValidationError]
#
# source://rubocop//lib/rubocop/config_validator.rb#158
def validate_syntax_cop; end
end
# @api private
#
# source://rubocop//lib/rubocop/config_validator.rb#10
RuboCop::ConfigValidator::COMMON_PARAMS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/config_validator.rb#22
RuboCop::ConfigValidator::CONFIG_CHECK_AUTOCORRECTS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/config_validator.rb#21
RuboCop::ConfigValidator::CONFIG_CHECK_DEPARTMENTS = T.let(T.unsafe(nil), Array)
# @api private
#
# source://rubocop//lib/rubocop/config_validator.rb#20
RuboCop::ConfigValidator::CONFIG_CHECK_KEYS = T.let(T.unsafe(nil), Set)
# @api private
#
# source://rubocop//lib/rubocop/config_validator.rb#13
RuboCop::ConfigValidator::INTERNAL_PARAMS = T.let(T.unsafe(nil), Array)
# @api private
#
# source://rubocop//lib/rubocop/config_validator.rb#17
RuboCop::ConfigValidator::NEW_COPS_VALUES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/util.rb#4
module RuboCop::Cop; end
# This module checks for nodes that should be aligned to the left or right.
# This amount is determined by the instance variable @column_delta.
#
# source://rubocop//lib/rubocop/cop/mixin/alignment.rb#7
module RuboCop::Cop::Alignment
private
# source://rubocop//lib/rubocop/cop/mixin/alignment.rb#26
def check_alignment(items, base_column = T.unsafe(nil)); end
# Returns the value of attribute column_delta.
#
# source://rubocop//lib/rubocop/cop/mixin/alignment.rb#12
def column_delta; end
# source://rubocop//lib/rubocop/cop/mixin/alignment.rb#14
def configured_indentation_width; end
# @api public
#
# source://rubocop//lib/rubocop/cop/mixin/alignment.rb#58
def display_column(range); end
# @api private
#
# source://rubocop//lib/rubocop/cop/mixin/alignment.rb#45
def each_bad_alignment(items, base_column); end
# @deprecated Use processed_source.line_with_comment?(line)
#
# source://rubocop//lib/rubocop/cop/mixin/alignment.rb#69
def end_of_line_comment(line); end
# source://rubocop//lib/rubocop/cop/mixin/alignment.rb#18
def indentation(node); end
# source://rubocop//lib/rubocop/cop/mixin/alignment.rb#22
def offset(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/mixin/alignment.rb#78
def register_offense(offense_node, message_node); end
# @api public
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/alignment.rb#64
def within?(inner, outer); end
end
# source://rubocop//lib/rubocop/cop/mixin/alignment.rb#10
RuboCop::Cop::Alignment::SPACE = T.let(T.unsafe(nil), String)
# This class does autocorrection of nodes that should just be moved to
# the left or to the right, amount being determined by the instance
# variable column_delta.
#
# source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#8
class RuboCop::Cop::AlignmentCorrector
extend ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::Alignment
class << self
# source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#29
def align_end(corrector, processed_source, node, align_to); end
# source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#15
def correct(corrector, processed_source, node, column_delta); end
# Returns the value of attribute processed_source.
#
# source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#13
def processed_source; end
private
# source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#113
def alignment_column(align_to); end
# source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#40
def autocorrect_line(corrector, line_begin_pos, expr, column_delta, taboo_ranges); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#81
def block_comment_within?(expr); end
# source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#87
def calculate_range(expr, line_begin_pos, column_delta); end
# Some special kinds of string literals are not composed of literal
# characters between two delimiters:
# - The source map of `?a` responds to :begin and :end but its end is
# nil.
# - The source map of `__FILE__` responds to neither :begin nor :end.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#75
def delimited_string_literal?(node); end
# source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#99
def each_line(expr); end
# source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#60
def inside_string_range(node); end
# source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#54
def inside_string_ranges(node); end
# source://rubocop//lib/rubocop/cop/correctors/alignment_corrector.rb#107
def whitespace_range(node); end
end
end
# This module encapsulates the ability to allow certain identifiers in a cop.
#
# source://rubocop//lib/rubocop/cop/mixin/allowed_identifiers.rb#6
module RuboCop::Cop::AllowedIdentifiers
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/allowed_identifiers.rb#9
def allowed_identifier?(name); end
# source://rubocop//lib/rubocop/cop/mixin/allowed_identifiers.rb#13
def allowed_identifiers; end
end
# if a variable starts with a sigil it will be removed
#
# source://rubocop//lib/rubocop/cop/mixin/allowed_identifiers.rb#7
RuboCop::Cop::AllowedIdentifiers::SIGILS = T.let(T.unsafe(nil), String)
# This module encapsulates the ability to allow certain methods when
# parsing. Even if the code is in offense, if it contains methods
# that are allowed. This module is equivalent to the IgnoredMethods module,
# which will be deprecated in RuboCop 2.0.
#
# source://rubocop//lib/rubocop/cop/mixin/allowed_methods.rb#9
module RuboCop::Cop::AllowedMethods
private
# @api public
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/allowed_methods.rb#13
def allowed_method?(name); end
# @api public
#
# source://rubocop//lib/rubocop/cop/mixin/allowed_methods.rb#27
def allowed_methods; end
# source://rubocop//lib/rubocop/cop/mixin/allowed_methods.rb#35
def cop_config_allowed_methods; end
# source://rubocop//lib/rubocop/cop/mixin/allowed_methods.rb#39
def cop_config_deprecated_values; end
# @deprecated Use allowed_method? instead
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/allowed_methods.rb#18
def ignored_method?; end
end
# This module encapsulates the ability to ignore certain lines when
# parsing.
#
# source://rubocop//lib/rubocop/cop/mixin/allowed_pattern.rb#7
module RuboCop::Cop::AllowedPattern
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/allowed_pattern.rb#10
def allowed_line?(line); end
# source://rubocop//lib/rubocop/cop/mixin/allowed_pattern.rb#42
def allowed_patterns; end
# source://rubocop//lib/rubocop/cop/mixin/allowed_pattern.rb#58
def cop_config_deprecated_methods_values; end
# source://rubocop//lib/rubocop/cop/mixin/allowed_pattern.rb#52
def cop_config_patterns_values; end
# @deprecated Use allowed_line? instead
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/allowed_pattern.rb#21
def ignored_line?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/allowed_pattern.rb#29
def matches_allowed_pattern?(line); end
# @deprecated Use matches_allowed_pattern? instead
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/allowed_pattern.rb#34
def matches_ignored_pattern?; end
end
# This module encapsulates the ability to allow certain receivers in a cop.
#
# source://rubocop//lib/rubocop/cop/mixin/allowed_receivers.rb#6
module RuboCop::Cop::AllowedReceivers
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/allowed_receivers.rb#7
def allowed_receiver?(receiver); end
# source://rubocop//lib/rubocop/cop/mixin/allowed_receivers.rb#29
def allowed_receivers; end
# source://rubocop//lib/rubocop/cop/mixin/allowed_receivers.rb#13
def receiver_name(receiver); end
end
# Error raised when an unqualified cop name is used that could
# refer to two or more cops under different departments
#
# source://rubocop//lib/rubocop/cop/registry.rb#7
class RuboCop::Cop::AmbiguousCopName < ::RuboCop::Error
# @return [AmbiguousCopName] a new instance of AmbiguousCopName
#
# source://rubocop//lib/rubocop/cop/registry.rb#11
def initialize(name, origin, badges); end
end
# source://rubocop//lib/rubocop/cop/registry.rb#8
RuboCop::Cop::AmbiguousCopName::MSG = T.let(T.unsafe(nil), String)
# Representation of an annotation comment in source code (eg. `# TODO: blah blah blah`).
#
# source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#6
class RuboCop::Cop::AnnotationComment
# @param comment [Parser::Source::Comment]
# @param keywords [Array<String>]
# @return [AnnotationComment] a new instance of AnnotationComment
#
# source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#11
def initialize(comment, keywords); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#17
def annotation?; end
# Returns the range bounds for just the annotation
#
# source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#29
def bounds; end
# Returns the value of attribute colon.
#
# source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#7
def colon; end
# Returns the value of attribute comment.
#
# source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#7
def comment; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#21
def correct?(colon:); end
# Returns the value of attribute keyword.
#
# source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#7
def keyword; end
# Returns the value of attribute margin.
#
# source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#7
def margin; end
# Returns the value of attribute note.
#
# source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#7
def note; end
# Returns the value of attribute space.
#
# source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#7
def space; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#65
def just_keyword_of_sentence?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#61
def keyword_appearance?; end
# Returns the value of attribute keywords.
#
# source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#37
def keywords; end
# source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#51
def regex; end
# source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#39
def split_comment(comment); end
end
# source://rubocop//lib/rubocop/cop/mixin/annotation_comment.rb#48
RuboCop::Cop::AnnotationComment::KEYWORDS_REGEX_CACHE = T.let(T.unsafe(nil), Hash)
# Handles the `MinSize` configuration option for array-based cops
# `Style/SymbolArray` and `Style/WordArray`, which check for use of the
# relevant percent literal syntax such as `%i[...]` and `%w[...]`
#
# source://rubocop//lib/rubocop/cop/mixin/array_min_size.rb#8
module RuboCop::Cop::ArrayMinSize
private
# source://rubocop//lib/rubocop/cop/mixin/array_min_size.rb#19
def array_style_detected(style, ary_size); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/array_min_size.rb#11
def below_array_length?(node); end
# source://rubocop//lib/rubocop/cop/mixin/array_min_size.rb#38
def largest_brackets_size(style, ary_size); end
# source://rubocop//lib/rubocop/cop/mixin/array_min_size.rb#15
def min_size_config; end
# source://rubocop//lib/rubocop/cop/mixin/array_min_size.rb#48
def smallest_percent_size(style, ary_size); end
end
# Common code for ordinary arrays with [] that can be written with %
# syntax.
#
# source://rubocop//lib/rubocop/cop/mixin/array_syntax.rb#7
module RuboCop::Cop::ArraySyntax
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/array_syntax.rb#10
def bracketed_array_of?(element_type, node); end
end
# extend this module to signal autocorrection support
#
# source://rubocop//lib/rubocop/cop/mixin/auto_corrector.rb#6
module RuboCop::Cop::AutoCorrector
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/auto_corrector.rb#7
def support_autocorrect?; end
end
# This module encapsulates the logic for autocorrect behavior for a cop.
#
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#6
module RuboCop::Cop::AutocorrectLogic
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#7
def autocorrect?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#31
def autocorrect_enabled?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#15
def autocorrect_requested?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#11
def autocorrect_with_disable_uncorrectable?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#19
def correctable?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#23
def disable_uncorrectable?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#27
def safe_autocorrect?; end
private
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#51
def disable_offense(offense_range); end
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#138
def disable_offense_at_end_of_line(range, eol_comment); end
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#142
def disable_offense_before_and_after(range_by_lines); end
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#63
def disable_offense_with_eol_or_surround_comment(range); end
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#134
def max_line_length; end
# Expand the given range to include all of any lines it covers. Does not
# include newline at end of the last line.
#
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#124
def range_by_lines(range); end
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#115
def range_of_first_line(range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#107
def range_overlaps_offense?(offense_range, range); end
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#97
def string_continuation(offense_range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#111
def string_continuation?(node); end
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#74
def surrounding_heredoc(offense_range); end
# source://rubocop//lib/rubocop/cop/autocorrect_logic.rb#85
def surrounding_percent_array(offense_range); end
end
# Identifier of all cops containing a department and cop name.
#
# All cops are identified by their badge. For example, the badge for
# `RuboCop::Cop::Layout::IndentationStyle` is `Layout/IndentationStyle`.
# Badges can be parsed as either `Department/CopName` or just `CopName` to
# allow for badge references in source files that omit the department for
# RuboCop to infer.
#
# source://rubocop//lib/rubocop/cop/badge.rb#12
class RuboCop::Cop::Badge
# @return [Badge] a new instance of Badge
#
# source://rubocop//lib/rubocop/cop/badge.rb#34
def initialize(class_name_parts); end
# source://rubocop//lib/rubocop/cop/badge.rb#41
def ==(other); end
# Returns the value of attribute cop_name.
#
# source://rubocop//lib/rubocop/cop/badge.rb#13
def cop_name; end
# Returns the value of attribute department.
#
# source://rubocop//lib/rubocop/cop/badge.rb#13
def department; end
# Returns the value of attribute department_name.
#
# source://rubocop//lib/rubocop/cop/badge.rb#13
def department_name; end
# source://rubocop//lib/rubocop/cop/badge.rb#41
def eql?(other); end
# source://rubocop//lib/rubocop/cop/badge.rb#46
def hash; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/badge.rb#51
def match?(other); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/badge.rb#59
def qualified?; end
# source://rubocop//lib/rubocop/cop/badge.rb#55
def to_s; end
# source://rubocop//lib/rubocop/cop/badge.rb#63
def with_department(department); end
class << self
# source://rubocop//lib/rubocop/cop/badge.rb#27
def camel_case(name_part); end
# source://rubocop//lib/rubocop/cop/badge.rb#15
def for(class_name); end
# source://rubocop//lib/rubocop/cop/badge.rb#23
def parse(identifier); end
end
end
# A scaffold for concrete cops.
#
# The Cop::Base class is meant to be extended.
#
# Cops track offenses and can autocorrect them on the fly.
#
# A commissioner object is responsible for traversing the AST and invoking
# the specific callbacks on each cop.
#
# First the callback `on_new_investigation` is called;
# if a cop needs to do its own processing of the AST or depends on
# something else.
#
# Then callbacks like `on_def`, `on_send` (see AST::Traversal) are called
# with their respective nodes.
#
# Finally the callback `on_investigation_end` is called.
#
# Within these callbacks, cops are meant to call `add_offense` or
# `add_global_offense`. Use the `processed_source` method to
# get the currently processed source being investigated.
#
# In case of invalid syntax / unparsable content,
# the callback `on_other_file` is called instead of all the other
# `on_...` callbacks.
#
# Private methods are not meant for custom cops consumption,
# nor are any instance variables.
#
# source://rubocop//lib/rubocop/cop/base.rb#34
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
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/base.rb#272
def active_support_extensions_enabled?; end
# Adds an offense that has no particular location.
# No correction can be applied to global offenses
#
# source://rubocop//lib/rubocop/cop/base.rb#189
def add_global_offense(message = T.unsafe(nil), severity: T.unsafe(nil)); end
# Adds an offense on the specified range (or node with an expression)
# Unless that offense is disabled for this range, a corrector will be yielded
# to provide the cop the opportunity to autocorrect the offense.
# If message is not specified, the method `message` will be called.
#
# source://rubocop//lib/rubocop/cop/base.rb#201
def add_offense(node_or_range, message: T.unsafe(nil), severity: T.unsafe(nil), &block); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/base.rb#351
def always_autocorrect?; end
# Called before any investigation
#
# @api private
#
# source://rubocop//lib/rubocop/cop/base.rb#337
def begin_investigation(processed_source, offset: T.unsafe(nil), original: T.unsafe(nil)); end
# @api private
#
# source://rubocop//lib/rubocop/cop/base.rb#318
def callbacks_needed; end
# Returns the value of attribute config.
#
# source://rubocop//lib/rubocop/cop/base.rb#43
def config; end
# source://rubocop//lib/rubocop/cop/base.rb#252
def config_to_allow_offenses; end
# source://rubocop//lib/rubocop/cop/base.rb#256
def config_to_allow_offenses=(hash); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/base.rb#357
def contextual_autocorrect?; end
# Configuration Helpers
#
# source://rubocop//lib/rubocop/cop/base.rb#246
def cop_config; end
# source://rubocop//lib/rubocop/cop/base.rb#238
def cop_name; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/base.rb#289
def excluded_file?(file); end
# This method should be overridden when a cop's behavior depends
# on state that lives outside of these locations:
#
# (1) the file under inspection
# (2) the cop's source code
# (3) the config (eg a .rubocop.yml file)
#
# For example, some cops may want to look at other parts of
# the codebase being inspected to find violations. A cop may
# use the presence or absence of file `foo.rb` to determine
# whether a certain violation exists in `bar.rb`.
#
# Overriding this method allows the cop to indicate to RuboCop's
# ResultCache system when those external dependencies change,
# ie when the ResultCache should be invalidated.
#
# source://rubocop//lib/rubocop/cop/base.rb#234
def external_dependency_checksum; end
# source://rubocop//lib/rubocop/cop/base.rb#361
def inspect; end
# Gets called if no message is specified when calling `add_offense` or
# `add_global_offense`
# Cops are discouraged to override this; instead pass your message directly
#
# source://rubocop//lib/rubocop/cop/base.rb#183
def message(_range = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/base.rb#238
def name; end
# @deprecated Make potential errors with previous API more obvious
#
# source://rubocop//lib/rubocop/cop/base.rb#309
def offenses; end
# Called after all on_... have been called
# When refining this method, always call `super`
#
# source://rubocop//lib/rubocop/cop/base.rb#170
def on_investigation_end; end
# Called before all on_... have been called
# When refining this method, always call `super`
#
# source://rubocop//lib/rubocop/cop/base.rb#164
def on_new_investigation; end
# Called instead of all on_... callbacks for unrecognized files / syntax errors
# When refining this method, always call `super`
#
# source://rubocop//lib/rubocop/cop/base.rb#176
def on_other_file; end
# There should be very limited reasons for a Cop to do it's own parsing
#
# source://rubocop//lib/rubocop/cop/base.rb#294
def parse(source, path = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/base.rb#264
def parser_engine; end
# Returns the value of attribute processed_source.
#
# source://rubocop//lib/rubocop/cop/base.rb#43
def processed_source; end
# Called between investigations
#
# @api private
#
# source://rubocop//lib/rubocop/cop/base.rb#300
def ready; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/base.rb#280
def relevant_file?(file); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/base.rb#276
def string_literals_frozen_by_default?; end
# source://rubocop//lib/rubocop/cop/base.rb#268
def target_rails_version; end
# source://rubocop//lib/rubocop/cop/base.rb#260
def target_ruby_version; end
private
# source://rubocop//lib/rubocop/cop/base.rb#479
def annotate(message); end
# source://rubocop//lib/rubocop/cop/base.rb#373
def apply_correction(corrector); end
# @return [Symbol] offense status
#
# source://rubocop//lib/rubocop/cop/base.rb#443
def attempt_correction(range, corrector); end
# Reserved for Cop::Cop
#
# source://rubocop//lib/rubocop/cop/base.rb#369
def callback_argument(range); end
# Called to complete an investigation
#
# source://rubocop//lib/rubocop/cop/base.rb#402
def complete_investigation; end
# @return [Symbol, Corrector] offense status
#
# source://rubocop//lib/rubocop/cop/base.rb#417
def correct(range); end
# source://rubocop//lib/rubocop/cop/base.rb#387
def current_corrector; end
# Reserved for Commissioner:
#
# source://rubocop//lib/rubocop/cop/base.rb#379
def current_offense_locations; end
# source://rubocop//lib/rubocop/cop/base.rb#391
def current_offenses; end
# source://rubocop//lib/rubocop/cop/base.rb#383
def currently_disabled_lines; end
# source://rubocop//lib/rubocop/cop/base.rb#507
def custom_severity; end
# source://rubocop//lib/rubocop/cop/base.rb#503
def default_severity; end
# source://rubocop//lib/rubocop/cop/base.rb#457
def disable_uncorrectable(range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/base.rb#493
def enabled_line?(line_number); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/base.rb#485
def file_name_matches_any?(file, parameter, default_result); end
# source://rubocop//lib/rubocop/cop/base.rb#475
def find_message(range, message); end
# source://rubocop//lib/rubocop/cop/base.rb#499
def find_severity(_range, severity); end
# source://rubocop//lib/rubocop/cop/base.rb#520
def range_for_original(range); end
# source://rubocop//lib/rubocop/cop/base.rb#464
def range_from_node_or_range(node_or_range); end
# Actually private methods
#
# source://rubocop//lib/rubocop/cop/base.rb#412
def reset_investigation; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/base.rb#528
def target_satisfies_all_gem_version_requirements?; end
# @return [Symbol] offense status
#
# source://rubocop//lib/rubocop/cop/base.rb#432
def use_corrector(range, corrector); end
class << self
# List of cops that should not try to autocorrect at the same
# time as this cop
#
# @api public
# @return [Array<RuboCop::Cop::Base>]
#
# source://rubocop//lib/rubocop/cop/base.rb#59
def autocorrect_incompatible_with; end
# Naming
#
# source://rubocop//lib/rubocop/cop/base.rb#93
def badge; end
# @api private
#
# source://rubocop//lib/rubocop/cop/base.rb#323
def callbacks_needed; end
# source://rubocop//lib/rubocop/cop/base.rb#97
def cop_name; end
# source://rubocop//lib/rubocop/cop/base.rb#101
def department; end
# Returns an url to view this cops documentation online.
# Requires 'DocumentationBaseURL' to be set for your department.
# Will follow the convention of RuboCops own documentation structure,
# overwrite this method to accommodate your custom layout.
#
# @api public
# @return [String, nil]
#
# source://rubocop//lib/rubocop/cop/base.rb#70
def documentation_url(config = T.unsafe(nil)); end
# Call for abstract Cop classes
#
# source://rubocop//lib/rubocop/cop/base.rb#81
def exclude_from_registry; end
# Returns the value of attribute gem_requirements.
#
# source://rubocop//lib/rubocop/cop/base.rb#138
def gem_requirements; end
# @private
#
# source://rubocop//lib/rubocop/cop/base.rb#74
def inherited(subclass); end
# Override and return the Force class(es) you need to join
#
# source://rubocop//lib/rubocop/cop/base.rb#118
def joining_forces; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/base.rb#105
def lint?; end
# Returns true if the cop name or the cop namespace matches any of the
# given names.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/base.rb#111
def match?(given_names); end
# Register a version requirement for the given gem name.
# This cop will be skipped unless the target satisfies *all* requirements.
#
# @api public
# @param gem_name [String]
# @param version_requirements [Array<String>] The version requirements,
# using the same syntax as a Gemfile, e.g. ">= 1.2.3"
#
# If omitted, any version of the gem will be accepted.
#
# https://guides.rubygems.org/patterns/#declaring-dependencies
#
# source://rubocop//lib/rubocop/cop/base.rb#151
def requires_gem(gem_name, *version_requirements); end
# Returns if class supports autocorrect.
# It is recommended to extend AutoCorrector instead of overriding
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/base.rb#87
def support_autocorrect?; end
# Override if your cop should be called repeatedly for multiple investigations
# Between calls to `on_new_investigation` and `on_investigation_end`,
# the result of `processed_source` will remain constant.
# You should invalidate any caches that depend on the current `processed_source`
# in the `on_new_investigation` callback.
# If your cop does autocorrections, be aware that your instance may be called
# multiple times with the same `processed_source.path` but different content.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/base.rb#129
def support_multiple_source?; end
private
# source://rubocop//lib/rubocop/cop/base.rb#395
def restrict_on_send; end
end
end
# source://rubocop//lib/rubocop/cop/base.rb#399
RuboCop::Cop::Base::EMPTY_OFFENSES = T.let(T.unsafe(nil), Array)
# Reports of an investigation.
# Immutable
# Consider creation API private
#
# source://rubocop//lib/rubocop/cop/base.rb#48
class RuboCop::Cop::Base::InvestigationReport < ::Struct
# Returns the value of attribute cop
#
# @return [Object] the current value of cop
def cop; end
# Sets the attribute cop
#
# @param value [Object] the value to set the attribute cop to.
# @return [Object] the newly set value
def cop=(_); end
# Returns the value of attribute corrector
#
# @return [Object] the current value of corrector
def corrector; end
# Sets the attribute corrector
#
# @param value [Object] the value to set the attribute corrector to.
# @return [Object] the newly set value
def corrector=(_); end
# Returns the value of attribute offenses
#
# @return [Object] the current value of offenses
def offenses; end
# Sets the attribute offenses
#
# @param value [Object] the value to set the attribute offenses to.
# @return [Object] the newly set value
def offenses=(_); end
# Returns the value of attribute processed_source
#
# @return [Object] the current value of processed_source
def processed_source; end
# Sets the attribute processed_source
#
# @param value [Object] the value to set the attribute processed_source to.
# @return [Object] the newly set value
def processed_source=(_); end
class << self
def [](*_arg0); end
def inspect; end
def keyword_init?; end
def members; end
def new(*_arg0); end
end
end
# List of methods names to restrict calls for `on_send` / `on_csend`
#
# source://rubocop//lib/rubocop/cop/base.rb#51
RuboCop::Cop::Base::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Set)
# source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#5
module RuboCop::Cop::Bundler; end
# A Gem's requirements should be listed only once in a Gemfile.
#
# @example
# # bad
# gem 'rubocop'
# gem 'rubocop'
#
# # bad
# group :development do
# gem 'rubocop'
# end
#
# group :test do
# gem 'rubocop'
# end
#
# # good
# group :development, :test do
# gem 'rubocop'
# end
#
# # good
# gem 'rubocop', groups: [:development, :test]
#
# # good - conditional declaration
# if Dir.exist?(local)
# gem 'rubocop', path: local
# elsif ENV['RUBOCOP_VERSION'] == 'master'
# gem 'rubocop', git: 'https://github.com/rubocop/rubocop.git'
# else
# gem 'rubocop', '~> 0.90.0'
# end
#
# source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#39
class RuboCop::Cop::Bundler::DuplicatedGem < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
# source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#58
def gem_declarations(param0); end
# source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#45
def on_new_investigation; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#67
def conditional_declaration?(nodes); end
# source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#60
def duplicated_gem_nodes; end
# source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#81
def register_offense(node, gem_name, line_of_first_occurrence); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#75
def within_conditional?(node, conditional_node); end
end
# source://rubocop//lib/rubocop/cop/bundler/duplicated_gem.rb#42
RuboCop::Cop::Bundler::DuplicatedGem::MSG = T.let(T.unsafe(nil), String)
# A Gem group, or a set of groups, should be listed only once in a Gemfile.
#
# For example, if the values of `source`, `git`, `platforms`, or `path`
# surrounding `group` are different, no offense will be registered:
#
# [source,ruby]
# -----
# platforms :ruby do
# group :default do
# gem 'openssl'
# end
# end
#
# platforms :jruby do
# group :default do
# gem 'jruby-openssl'
# end
# end
# -----
#
# @example
# # bad
# group :development do
# gem 'rubocop'
# end
#
# group :development do
# gem 'rubocop-rails'
# end
#
# # bad (same set of groups declared twice)
# group :development, :test do
# gem 'rubocop'
# end
#
# group :test, :development do
# gem 'rspec'
# end
#
# # good
# group :development do
# gem 'rubocop'
# end
#
# group :development, :test do
# gem 'rspec'
# end
#
# # good
# gem 'rubocop', groups: [:development, :test]
# gem 'rspec', groups: [:development, :test]
#
# source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#58
class RuboCop::Cop::Bundler::DuplicatedGroup < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
# source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#66
def group_declarations(param0); end
# source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#68
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#82
def duplicated_group_nodes; end
# source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#105
def find_source_key(node); end
# source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#115
def group_attributes(node); end
# source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#94
def register_offense(node, group_name, line_of_first_occurrence); end
end
# source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#61
RuboCop::Cop::Bundler::DuplicatedGroup::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/bundler/duplicated_group.rb#63
RuboCop::Cop::Bundler::DuplicatedGroup::SOURCE_BLOCK_NAMES = T.let(T.unsafe(nil), Array)
# Each gem in the Gemfile should have a comment explaining
# its purpose in the project, or the reason for its version
# or source.
#
# The optional "OnlyFor" configuration array
# can be used to only register offenses when the gems
# use certain options or have version specifiers.
#
# When "version_specifiers" is included, a comment
# will be enforced if the gem has any version specifier.
#
# When "restrictive_version_specifiers" is included, a comment
# will be enforced if the gem has a version specifier that
# holds back the version of the gem.
#
# For any other value in the array, a comment will be enforced for
# a gem if an option by the same name is present.
# A useful use case is to enforce a comment when using
# options that change the source of a gem:
#
# - `bitbucket`
# - `gist`
# - `git`
# - `github`
# - `source`
#
# For a full list of options supported by bundler,
# see https://bundler.io/man/gemfile.5.html
# .
#
# @example OnlyFor: [] (default)
# # bad
#
# gem 'foo'
#
# # good
#
# # Helpers for the foo things.
# gem 'foo'
# @example OnlyFor: ['version_specifiers']
# # bad
#
# gem 'foo', '< 2.1'
#
# # good
#
# # Version 2.1 introduces breaking change baz
# gem 'foo', '< 2.1'
# @example OnlyFor: ['restrictive_version_specifiers']
# # bad
#
# gem 'foo', '< 2.1'
#
# # good
#
# gem 'foo', '>= 1.0'
#
# # Version 2.1 introduces breaking change baz
# gem 'foo', '< 2.1'
# @example OnlyFor: ['version_specifiers', 'github']
# # bad
#
# gem 'foo', github: 'some_account/some_fork_of_foo'
#
# gem 'bar', '< 2.1'
#
# # good
#
# # Using this fork because baz
# gem 'foo', github: 'some_account/some_fork_of_foo'
#
# # Version 2.1 introduces breaking change baz
# gem 'bar', '< 2.1'
#
# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#83
class RuboCop::Cop::Bundler::GemComment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::VisibilityHelp
include ::RuboCop::Cop::DefNode
include ::RuboCop::Cop::GemDeclaration
# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#94
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#135
def checked_options_present?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#109
def commented?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#105
def commented_any_descendant?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#159
def contains_checked_options?(node); end
# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#163
def gem_options(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#130
def ignored_gem?(node); end
# The args node1 & node2 may represent a RuboCop::AST::Node
# or a Parser::Source::Comment. Both respond to #loc.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#116
def precede?(node1, node2); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#126
def preceding_comment?(node1, node2); end
# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#120
def preceding_lines(node); end
# Version specifications that restrict all updates going forward. This excludes versions
# like ">= 1.0" or "!= 2.0.3".
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#152
def restrictive_version_specified_gem?(node); end
# Besides the gem name, all other *positional* arguments to `gem` are version specifiers,
# as long as it has one we know there's at least one version specifier.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#145
def version_specified_gem?(node); end
end
# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#88
RuboCop::Cop::Bundler::GemComment::CHECKED_OPTIONS_CONFIG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#87
RuboCop::Cop::Bundler::GemComment::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#91
RuboCop::Cop::Bundler::GemComment::RESTRICTIVE_VERSION_PATTERN = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#90
RuboCop::Cop::Bundler::GemComment::RESTRICTIVE_VERSION_SPECIFIERS_OPTION = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#92
RuboCop::Cop::Bundler::GemComment::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/bundler/gem_comment.rb#89
RuboCop::Cop::Bundler::GemComment::VERSION_SPECIFIERS_OPTION = T.let(T.unsafe(nil), String)
# Verifies that a project contains Gemfile or gems.rb file and correct
# associated lock file based on the configuration.
#
# @example EnforcedStyle: Gemfile (default)
# # bad
# Project contains gems.rb and gems.locked files
#
# # bad
# Project contains Gemfile and gems.locked file
#
# # good
# Project contains Gemfile and Gemfile.lock
# @example EnforcedStyle: gems.rb
# # bad
# Project contains Gemfile and Gemfile.lock files
#
# # bad
# Project contains gems.rb and Gemfile.lock file
#
# # good
# Project contains gems.rb and gems.locked files
#
# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#28
class RuboCop::Cop::Bundler::GemFilename < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#43
def on_new_investigation; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#88
def expected_gemfile?(basename); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#80
def gemfile_offense?(basename); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#93
def gemfile_required?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#84
def gems_rb_offense?(basename); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#97
def gems_rb_required?; end
# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#58
def register_gemfile_offense(file_path, basename); end
# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#69
def register_gems_rb_offense(file_path, basename); end
# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#53
def register_offense(file_path, basename); end
end
# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#40
RuboCop::Cop::Bundler::GemFilename::GEMFILE_FILES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#41
RuboCop::Cop::Bundler::GemFilename::GEMS_RB_FILES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#36
RuboCop::Cop::Bundler::GemFilename::MSG_GEMFILE_MISMATCHED = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#32
RuboCop::Cop::Bundler::GemFilename::MSG_GEMFILE_REQUIRED = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#38
RuboCop::Cop::Bundler::GemFilename::MSG_GEMS_RB_MISMATCHED = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/bundler/gem_filename.rb#34
RuboCop::Cop::Bundler::GemFilename::MSG_GEMS_RB_REQUIRED = T.let(T.unsafe(nil), String)
# Enforce that Gem version specifications or a commit reference (branch,
# ref, or tag) are either required or forbidden.
#
# @example EnforcedStyle: required (default)
# # bad
# gem 'rubocop'
#
# # good
# gem 'rubocop', '~> 1.12'
#
# # good
# gem 'rubocop', '>= 1.10.0'
#
# # good
# gem 'rubocop', '>= 1.5.0', '< 1.10.0'
#
# # good
# gem 'rubocop', branch: 'feature-branch'
#
# # good
# gem 'rubocop', ref: '74b5bfbb2c4b6fd6cdbbc7254bd7084b36e0c85b'
#
# # good
# gem 'rubocop', tag: 'v1.17.0'
# @example EnforcedStyle: forbidden
# # good
# gem 'rubocop'
#
# # bad
# gem 'rubocop', '~> 1.12'
#
# # bad
# gem 'rubocop', '>= 1.10.0'
#
# # bad
# gem 'rubocop', '>= 1.5.0', '< 1.10.0'
#
# # bad
# gem 'rubocop', branch: 'feature-branch'
#
# # bad
# gem 'rubocop', ref: '74b5bfbb2c4b6fd6cdbbc7254bd7084b36e0c85b'
#
# # bad
# gem 'rubocop', tag: 'v1.17.0'
#
# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#53
class RuboCop::Cop::Bundler::GemVersion < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::GemDeclaration
# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#68
def includes_commit_reference?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#63
def includes_version_specification?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#72
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#86
def allowed_gem?(node); end
# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#90
def allowed_gems; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#112
def forbidden_offense?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#118
def forbidden_style?; end
# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#94
def message(_range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#102
def offense?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#106
def required_offense?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#122
def required_style?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#126
def version_specification?(expression); end
end
# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#58
RuboCop::Cop::Bundler::GemVersion::FORBIDDEN_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#57
RuboCop::Cop::Bundler::GemVersion::REQUIRED_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#59
RuboCop::Cop::Bundler::GemVersion::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/bundler/gem_version.rb#60
RuboCop::Cop::Bundler::GemVersion::VERSION_SPECIFICATION_REGEX = T.let(T.unsafe(nil), Regexp)
# Passing symbol arguments to `source` (e.g. `source :rubygems`) is
# deprecated because they default to using HTTP requests. Instead, specify
# `'https://rubygems.org'` if possible, or `'http://rubygems.org'` if not.
#
# When autocorrecting, this cop will replace symbol arguments with
# `'https://rubygems.org'`.
#
# This cop will not replace existing sources that use `http://`. This may
# be necessary where HTTPS is not available. For example, where using an
# internal gem server via an intranet, or where HTTPS is prohibited.
# However, you should strongly prefer `https://` where possible, as it is
# more secure.
#
# If you don't allow `http://`, please set `false` to `AllowHttpProtocol`.
# This option is `true` by default for safe autocorrection.
#
# @example
# # bad
# source :gemcutter
# source :rubygems
# source :rubyforge
#
# # good
# source 'https://rubygems.org' # strongly recommended
# @example AllowHttpProtocol: true (default)
#
# # good
# source 'http://rubygems.org' # use only if HTTPS is unavailable
# @example AllowHttpProtocol: false
#
# # bad
# source 'http://rubygems.org'
#
# source://rubocop//lib/rubocop/cop/bundler/insecure_protocol_source.rb#41
class RuboCop::Cop::Bundler::InsecureProtocolSource < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/bundler/insecure_protocol_source.rb#54
def insecure_protocol_source?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/bundler/insecure_protocol_source.rb#59
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/bundler/insecure_protocol_source.rb#80
def allow_http_protocol?; end
end
# source://rubocop//lib/rubocop/cop/bundler/insecure_protocol_source.rb#45
RuboCop::Cop::Bundler::InsecureProtocolSource::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/bundler/insecure_protocol_source.rb#49
RuboCop::Cop::Bundler::InsecureProtocolSource::MSG_HTTP_PROTOCOL = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/bundler/insecure_protocol_source.rb#51
RuboCop::Cop::Bundler::InsecureProtocolSource::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Gems should be alphabetically sorted within groups.
#
# @example
# # bad
# gem 'rubocop'
# gem 'rspec'
#
# # good
# gem 'rspec'
# gem 'rubocop'
#
# # good
# gem 'rubocop'
#
# gem 'rspec'
# @example TreatCommentsAsGroupSeparators: true (default)
# # good
# # For code quality
# gem 'rubocop'
# # For tests
# gem 'rspec'
# @example TreatCommentsAsGroupSeparators: false
# # bad
# # For code quality
# gem 'rubocop'
# # For tests
# gem 'rspec'
#
# source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#35
class RuboCop::Cop::Bundler::OrderedGems < ::RuboCop::Cop::Base
include ::RuboCop::Cop::OrderedGemNode
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#64
def gem_declarations(param0); end
# source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#43
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#57
def previous_declaration(node); end
end
# source://rubocop//lib/rubocop/cop/bundler/ordered_gems.rb#39
RuboCop::Cop::Bundler::OrderedGems::MSG = T.let(T.unsafe(nil), String)
# Common functionality for checking assignment nodes.
#
# source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#6
module RuboCop::Cop::CheckAssignment
# source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#7
def on_and_asgn(node); end
# source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#7
def on_casgn(node); end
# source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#7
def on_cvasgn(node); end
# source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#7
def on_gvasgn(node); end
# source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#7
def on_ivasgn(node); end
# source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#7
def on_lvasgn(node); end
# source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#7
def on_masgn(node); end
# source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#7
def on_op_asgn(node); end
# source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#7
def on_or_asgn(node); end
# source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#19
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#29
def extract_rhs(node); end
class << self
# source://rubocop//lib/rubocop/cop/mixin/check_assignment.rb#29
def extract_rhs(node); end
end
end
# This mixin detects collections that are safe to "break"
# by inserting new lines. This is useful for breaking
# up long lines.
#
# Let's look at hashes as an example:
#
# We know hash keys are safe to break across lines. We can add
# linebreaks into hashes on lines longer than the specified maximum.
# Then in further passes cops can clean up the multi-line hash.
# For example, say the maximum line length is as indicated below:
#
# |
# v
# {foo: "0000000000", bar: "0000000000", baz: "0000000000"}
#
# In a LineLength autocorrection pass, a line is added before
# the first key that exceeds the column limit:
#
# {foo: "0000000000", bar: "0000000000",
# baz: "0000000000"}
#
# In a MultilineHashKeyLineBreaks pass, lines are inserted
# before all keys:
#
# {foo: "0000000000",
# bar: "0000000000",
# baz: "0000000000"}
#
# Then in future passes FirstHashElementLineBreak,
# MultilineHashBraceLayout, and TrailingCommaInHashLiteral will
# manipulate as well until we get:
#
# {
# foo: "0000000000",
# bar: "0000000000",
# baz: "0000000000",
# }
#
# (Note: Passes may not happen exactly in this sequence.)
#
# source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#44
module RuboCop::Cop::CheckLineBreakable
# source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#45
def extract_breakable_node(node, max); end
private
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#202
def all_on_same_line?(nodes); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#222
def already_on_multiple_lines?(node); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#135
def breakable_collection?(node, elements); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#228
def chained_to_heredoc?(node); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#189
def children_could_be_broken_up?(children); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#152
def contained_by_breakable_collection_on_same_line?(node); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#172
def contained_by_multiline_collection_that_could_be_broken_up?(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#62
def extract_breakable_node_from_elements(node, elements, max); end
# @api private
#
# source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#74
def extract_first_element_over_column_limit(node, elements, max); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#94
def first_argument_is_heredoc?(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#209
def process_args(args); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#119
def safe_to_ignore?(node); end
# If a send node contains a heredoc argument, splitting cannot happen
# after the heredoc or else it will cause a syntax error.
#
# @api private
#
# source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#103
def shift_elements_for_heredoc_arg(node, elements, index); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/check_line_breakable.rb#114
def within_column_limit?(element, max, line); end
end
# Common functionality for checking length of code segments.
#
# source://rubocop//lib/rubocop/cop/mixin/code_length.rb#6
module RuboCop::Cop::CodeLength
extend ::RuboCop::ExcludeLimit
# source://rubocop//lib/rubocop/cop/exclude_limit.rb#11
def max=(value); end
private
# source://rubocop//lib/rubocop/cop/mixin/code_length.rb#49
def build_code_length_calculator(node); end
# source://rubocop//lib/rubocop/cop/mixin/code_length.rb#31
def check_code_length(node); end
# source://rubocop//lib/rubocop/cop/mixin/code_length.rb#27
def count_as_one; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/code_length.rb#23
def count_comments?; end
# Returns true for lines that shall not be included in the count.
#
# source://rubocop//lib/rubocop/cop/mixin/code_length.rb#45
def irrelevant_line(source_line); end
# source://rubocop//lib/rubocop/cop/mixin/code_length.rb#58
def location(node); end
# source://rubocop//lib/rubocop/cop/mixin/code_length.rb#19
def max_length; end
# source://rubocop//lib/rubocop/cop/mixin/code_length.rb#15
def message(length, max_length); end
end
# source://rubocop//lib/rubocop/cop/mixin/code_length.rb#9
RuboCop::Cop::CodeLength::MSG = T.let(T.unsafe(nil), String)
# Help methods for working with nodes containing comments.
#
# source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#6
module RuboCop::Cop::CommentsHelp
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#25
def comments_contain_disables?(node, cop_name); end
# source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#18
def comments_in_range(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#14
def contains_comments?(node); end
# source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#7
def source_range_with_comment(node); end
private
# source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#44
def begin_pos_with_comment(node); end
# source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#58
def buffer; end
# source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#39
def end_position_for(node); end
# Returns the end line of a node, which might be a comment and not part of the AST
# End line is considered either the line at which another node starts, or
# the line at which the parent node ends.
#
# source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#66
def find_end_line(node); end
# source://rubocop//lib/rubocop/cop/mixin/comments_help.rb#54
def start_line_position(node); end
end
# Commissioner class is responsible for processing the AST and delegating
# work to the specified cops.
#
# source://rubocop//lib/rubocop/cop/commissioner.rb#7
class RuboCop::Cop::Commissioner
include ::RuboCop::AST::Traversal
# @return [Commissioner] a new instance of Commissioner
#
# source://rubocop//lib/rubocop/cop/commissioner.rb#44
def initialize(cops, forces = T.unsafe(nil), options = T.unsafe(nil)); end
# Returns the value of attribute errors.
#
# source://rubocop//lib/rubocop/cop/commissioner.rb#42
def errors; end
# @return [InvestigationReport]
#
# source://rubocop//lib/rubocop/cop/commissioner.rb#79
def investigate(processed_source, offset: T.unsafe(nil), original: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on___ENCODING__(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on___FILE__(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on___LINE__(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_alias(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_and(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_and_asgn(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_arg(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_arg_expr(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_args(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_array(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_array_pattern(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_array_pattern_with_tail(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_back_ref(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_begin(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_block(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_block_pass(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_blockarg(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_break(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_case(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_case_match(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_casgn(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_cbase(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_class(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_complex(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_const(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_const_pattern(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_cvar(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_cvasgn(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_def(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_defined?(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_dstr(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_dsym(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_eflipflop(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_empty_else(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_ensure(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_erange(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_false(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_find_pattern(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_float(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_for(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_forward_arg(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_forward_args(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_forwarded_args(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_forwarded_kwrestarg(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_forwarded_restarg(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_gvar(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_gvasgn(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_hash(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_hash_pattern(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_if(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_if_guard(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_iflipflop(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_in_match(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_in_pattern(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_index(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_indexasgn(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_int(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_irange(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_ivar(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_ivasgn(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_kwarg(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_kwargs(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_kwbegin(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_kwnilarg(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_kwoptarg(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_kwrestarg(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_kwsplat(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_lambda(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_lvar(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_lvasgn(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_masgn(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_match_alt(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_match_as(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_match_current_line(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_match_nil_pattern(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_match_pattern(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_match_pattern_p(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_match_rest(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_match_var(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_match_with_lvasgn(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_match_with_trailing_comma(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_mlhs(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_module(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_next(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_nil(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_not(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_nth_ref(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_op_asgn(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_optarg(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_or(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_or_asgn(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_pair(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_pin(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_postexe(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_preexe(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_procarg0(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_rational(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_redo(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_regexp(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_regopt(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_resbody(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_rescue(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_restarg(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_retry(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_return(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_sclass(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_self(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_send(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_shadowarg(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_splat(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_str(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_super(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_sym(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_true(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_undef(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_unless_guard(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_until(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_until_post(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_when(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_while(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_while_post(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_xstr(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_yield(node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#68
def on_zsuper(node); end
private
# source://rubocop//lib/rubocop/cop/commissioner.rb#98
def begin_investigation(processed_source, offset:, original:); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#121
def build_callbacks(cops); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#116
def initialize_callbacks; end
# source://rubocop//lib/rubocop/cop/commissioner.rb#159
def invoke(callback, cops); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#163
def invoke_with_argument(callback, cops, arg); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#112
def reset; end
# source://rubocop//lib/rubocop/cop/commissioner.rb#131
def restrict_callbacks(callbacks); end
# NOTE: mutates `callbacks` in place
#
# source://rubocop//lib/rubocop/cop/commissioner.rb#149
def restricted_map(callbacks); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#104
def trigger_responding_cops(callback, node); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#139
def trigger_restricted_cops(event, node); end
# Allow blind rescues here, since we're absorbing and packaging or
# re-raising exceptions that can be raised from within the individual
# cops' `#investigate` methods.
#
# source://rubocop//lib/rubocop/cop/commissioner.rb#170
def with_cop_error_handling(cop, node = T.unsafe(nil)); end
end
# How a Commissioner returns the results of the investigation
# as a list of Cop::InvestigationReport and any errors caught
# during the investigation.
# Immutable
# Consider creation API private
#
# source://rubocop//lib/rubocop/cop/commissioner.rb#18
class RuboCop::Cop::Commissioner::InvestigationReport < ::Struct
# Returns the value of attribute cop_reports
#
# @return [Object] the current value of cop_reports
def cop_reports; end
# Sets the attribute cop_reports
#
# @param value [Object] the value to set the attribute cop_reports to.
# @return [Object] the newly set value
def cop_reports=(_); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#19
def cops; end
# source://rubocop//lib/rubocop/cop/commissioner.rb#27
def correctors; end
# Returns the value of attribute errors
#
# @return [Object] the current value of errors
def errors; end
# Sets the attribute errors
#
# @param value [Object] the value to set the attribute errors to.
# @return [Object] the newly set value
def errors=(_); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#35
def merge(investigation); end
# source://rubocop//lib/rubocop/cop/commissioner.rb#31
def offenses; end
# source://rubocop//lib/rubocop/cop/commissioner.rb#23
def offenses_per_cop; end
# Returns the value of attribute processed_source
#
# @return [Object] the current value of processed_source
def processed_source; end
# Sets the attribute processed_source
#
# @param value [Object] the value to set the attribute processed_source to.
# @return [Object] the newly set value
def processed_source=(_); end
class << self
def [](*_arg0); end
def inspect; end
def keyword_init?; end
def members; end
def new(*_arg0); end
end
end
# source://rubocop//lib/rubocop/cop/commissioner.rb#10
RuboCop::Cop::Commissioner::RESTRICTED_CALLBACKS = T.let(T.unsafe(nil), Array)
# This class does condition autocorrection
#
# source://rubocop//lib/rubocop/cop/correctors/condition_corrector.rb#6
class RuboCop::Cop::ConditionCorrector
class << self
# source://rubocop//lib/rubocop/cop/correctors/condition_corrector.rb#8
def correct_negative_condition(corrector, node); end
private
# source://rubocop//lib/rubocop/cop/correctors/condition_corrector.rb#17
def negated_condition(node); end
end
end
# Handles `EnforcedStyle` configuration parameters.
#
# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#6
module RuboCop::Cop::ConfigurableEnforcedStyle
# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#88
def alternative_style; end
# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#96
def alternative_styles; end
# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#19
def ambiguous_style_detected(*possibilities); end
# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#60
def conflicting_styles_detected; end
# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#11
def correct_style_detected; end
# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#64
def detected_style; end
# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#68
def detected_style=(style); end
# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#60
def no_acceptable_style!; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#56
def no_acceptable_style?; end
# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#7
def opposite_style_detected; end
# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#79
def style; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#75
def style_configured?; end
# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#29
def style_detected(detected); end
# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#107
def style_parameter_name; end
# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#100
def supported_styles; end
# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#15
def unexpected_style_detected(unexpected); end
# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#60
def unrecognized_style_detected; end
end
# source://rubocop//lib/rubocop/cop/mixin/configurable_enforced_style.rb#23
RuboCop::Cop::ConfigurableEnforcedStyle::SYMBOL_TO_STRING_CACHE = T.let(T.unsafe(nil), Hash)
# Shared functionality between mixins that enforce naming conventions
#
# source://rubocop//lib/rubocop/cop/mixin/configurable_formatting.rb#6
module RuboCop::Cop::ConfigurableFormatting
include ::RuboCop::Cop::ConfigurableEnforcedStyle
# source://rubocop//lib/rubocop/cop/mixin/configurable_formatting.rb#9
def check_name(node, name, name_range); end
# A class emitter method is a singleton method in a class/module, where
# the method has the same name as a class defined in the class/module.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/configurable_formatting.rb#30
def class_emitter_method?(node, name); end
# source://rubocop//lib/rubocop/cop/mixin/configurable_formatting.rb#17
def report_opposing_styles(node, name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/configurable_formatting.rb#24
def valid_name?(node, name, given_style = T.unsafe(nil)); end
end
# Handles `Max` configuration parameters, especially setting them to an
# appropriate value with --auto-gen-config.
#
# @deprecated Use `exclude_limit <ParameterName>` instead.
#
# source://rubocop//lib/rubocop/cop/mixin/configurable_max.rb#8
module RuboCop::Cop::ConfigurableMax
private
# source://rubocop//lib/rubocop/cop/mixin/configurable_max.rb#11
def max=(value); end
# source://rubocop//lib/rubocop/cop/mixin/configurable_max.rb#23
def max_parameter_name; end
end
# This module provides functionality for checking if names match the
# configured EnforcedStyle.
#
# source://rubocop//lib/rubocop/cop/mixin/configurable_naming.rb#7
module RuboCop::Cop::ConfigurableNaming
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::ConfigurableFormatting
end
# source://rubocop//lib/rubocop/cop/mixin/configurable_naming.rb#10
RuboCop::Cop::ConfigurableNaming::FORMATS = T.let(T.unsafe(nil), Hash)
# This module provides functionality for checking if numbering match the
# configured EnforcedStyle.
#
# source://rubocop//lib/rubocop/cop/mixin/configurable_numbering.rb#7
module RuboCop::Cop::ConfigurableNumbering
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::ConfigurableFormatting
end
# source://rubocop//lib/rubocop/cop/mixin/configurable_numbering.rb#11
RuboCop::Cop::ConfigurableNumbering::FORMATS = T.let(T.unsafe(nil), Hash)
# Monkey-patch Cop for tests to provide easy access to messages and
# highlights.
#
# source://rubocop//lib/rubocop/cop/cop.rb#11
class RuboCop::Cop::Cop < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/cop.rb#73
def add_offense(node_or_range, location: T.unsafe(nil), message: T.unsafe(nil), severity: T.unsafe(nil), &block); end
# Called before any investigation
#
# @api private
#
# source://rubocop//lib/rubocop/cop/cop.rb#129
def begin_investigation(processed_source, offset: T.unsafe(nil), original: T.unsafe(nil)); end
# @deprecated
#
# source://rubocop//lib/rubocop/cop/cop.rb#105
def corrections; end
# source://rubocop//lib/rubocop/cop/cop.rb#90
def find_location(node, loc); end
# Returns the value of attribute offenses.
#
# source://rubocop//lib/rubocop/cop/cop.rb#12
def offenses; end
# Called after all on_... have been called
#
# source://rubocop//lib/rubocop/cop/cop.rb#122
def on_investigation_end; end
# Called before all on_... have been called
#
# source://rubocop//lib/rubocop/cop/cop.rb#116
def on_new_investigation; end
# @deprecated Use class method
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/cop.rb#96
def support_autocorrect?; end
private
# source://rubocop//lib/rubocop/cop/cop.rb#147
def apply_correction(corrector); end
# Override Base
#
# source://rubocop//lib/rubocop/cop/cop.rb#143
def callback_argument(_range); end
# source://rubocop//lib/rubocop/cop/cop.rb#164
def correction_lambda; end
# source://rubocop//lib/rubocop/cop/cop.rb#170
def dedupe_on_node(node); end
# Just for legacy
#
# @yield [corrector]
#
# source://rubocop//lib/rubocop/cop/cop.rb#152
def emulate_v0_callsequence(corrector); end
# source://rubocop//lib/rubocop/cop/cop.rb#183
def range_for_original(range); end
# source://rubocop//lib/rubocop/cop/cop.rb#177
def suppress_clobbering; end
class << self
# @deprecated Use Registry.all
#
# source://rubocop//lib/rubocop/cop/cop.rb#56
def all; end
# @private
#
# source://rubocop//lib/rubocop/cop/cop.rb#25
def inherited(_subclass); end
# source://rubocop//lib/rubocop/cop/cop.rb#37
def joining_forces; end
# @deprecated Use Registry.qualified_cop_name
#
# source://rubocop//lib/rubocop/cop/cop.rb#65
def qualified_cop_name(name, origin); end
# @deprecated Use Registry.global
#
# source://rubocop//lib/rubocop/cop/cop.rb#47
def registry; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/cop.rb#33
def support_autocorrect?; end
end
end
# @deprecated
#
# source://rubocop//lib/rubocop/cop/cop.rb#17
class RuboCop::Cop::Cop::Correction < ::Struct
# source://rubocop//lib/rubocop/cop/cop.rb#18
def call(corrector); end
# Returns the value of attribute cop
#
# @return [Object] the current value of cop
def cop; end
# Sets the attribute cop
#
# @param value [Object] the value to set the attribute cop to.
# @return [Object] the newly set value
def cop=(_); end
# Returns the value of attribute lambda
#
# @return [Object] the current value of lambda
def lambda; end
# Sets the attribute lambda
#
# @param value [Object] the value to set the attribute lambda to.
# @return [Object] the newly set value
def lambda=(_); end
# Returns the value of attribute node
#
# @return [Object] the current value of node
def node; end
# Sets the attribute node
#
# @param value [Object] the value to set the attribute node to.
# @return [Object] the newly set value
def node=(_); end
class << self
def [](*_arg0); end
def inspect; end
def keyword_init?; end
def members; end
def new(*_arg0); end
end
end
# This class takes a source buffer and rewrite its source
# based on the different correction rules supplied.
#
# Important!
# The nodes modified by the corrections should be part of the
# AST of the source_buffer.
#
# source://rubocop//lib/rubocop/cop/corrector.rb#11
class RuboCop::Cop::Corrector < ::Parser::Source::TreeRewriter
# corrector = Corrector.new(cop)
#
# @param source [Parser::Source::Buffer, or anything
# leading to one via `(processed_source.)buffer`]
# @return [Corrector] a new instance of Corrector
#
# source://rubocop//lib/rubocop/cop/corrector.rb#32
def initialize(source); end
# Removes `size` characters from the beginning of the given range.
# If `size` is greater than the size of `range`, the removed region can
# overrun the end of `range`.
#
# @param range [Parser::Source::Range, RuboCop::AST::Node] or node
# @param size [Integer]
#
# source://rubocop//lib/rubocop/cop/corrector.rb#63
def remove_leading(node_or_range, size); end
# Removes `size` characters prior to the source range.
#
# @param range [Parser::Source::Range, RuboCop::AST::Node] or node
# @param size [Integer]
#
# source://rubocop//lib/rubocop/cop/corrector.rb#51
def remove_preceding(node_or_range, size); end
# Removes `size` characters from the end of the given range.
# If `size` is greater than the size of `range`, the removed region can
# overrun the beginning of `range`.
#
# @param range [Parser::Source::Range, RuboCop::AST::Node] or node
# @param size [Integer]
#
# source://rubocop//lib/rubocop/cop/corrector.rb#75
def remove_trailing(node_or_range, size); end
# Legacy
#
# source://parser/3.3.5.1/lib/parser/source/tree_rewriter.rb#252
def rewrite; end
# Swaps sources at the given ranges.
#
# @param node_or_range1 [Parser::Source::Range, RuboCop::AST::Node]
# @param node_or_range2 [Parser::Source::Range, RuboCop::AST::Node]
#
# source://rubocop//lib/rubocop/cop/corrector.rb#85
def swap(node_or_range1, node_or_range2); end
private
# source://rubocop//lib/rubocop/cop/corrector.rb#119
def check_range_validity(node_or_range); end
# source://rubocop//lib/rubocop/cop/corrector.rb#104
def to_range(node_or_range); end
# source://rubocop//lib/rubocop/cop/corrector.rb#123
def validate_buffer(buffer); end
class << self
# Duck typing for get to a ::Parser::Source::Buffer
#
# source://rubocop//lib/rubocop/cop/corrector.rb#15
def source_buffer(source); end
end
end
# noop
#
# source://rubocop//lib/rubocop/cop/corrector.rb#12
RuboCop::Cop::Corrector::NOOP_CONSUMER = T.let(T.unsafe(nil), Proc)
# Common functionality for checking def nodes.
#
# source://rubocop//lib/rubocop/cop/mixin/def_node.rb#6
module RuboCop::Cop::DefNode
include ::RuboCop::Cop::VisibilityHelp
extend ::RuboCop::AST::NodePattern::Macros
# source://rubocop//lib/rubocop/cop/mixin/def_node.rb#21
def non_public_modifier?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/def_node.rb#12
def non_public?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/def_node.rb#16
def preceding_non_public_modifier?(node); end
end
# Helpers for builtin documentation
#
# source://rubocop//lib/rubocop/cop/documentation.rb#6
module RuboCop::Cop::Documentation
private
# @api private
#
# source://rubocop//lib/rubocop/cop/documentation.rb#25
def base_url_for(cop_class, config); end
# @api private
#
# source://rubocop//lib/rubocop/cop/documentation.rb#57
def builtin?(cop_class); end
# @api private
#
# source://rubocop//lib/rubocop/cop/documentation.rb#47
def default_base_url; end
# @api private
#
# source://rubocop//lib/rubocop/cop/documentation.rb#52
def default_extension; end
# @api private
#
# source://rubocop//lib/rubocop/cop/documentation.rb#10
def department_to_basename(department); end
# @api private
#
# source://rubocop//lib/rubocop/cop/documentation.rb#36
def extension_for(cop_class, config); end
# @api private
#
# source://rubocop//lib/rubocop/cop/documentation.rb#15
def url_for(cop_class, config = T.unsafe(nil)); end
class << self
# @api private
#
# source://rubocop//lib/rubocop/cop/documentation.rb#25
def base_url_for(cop_class, config); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/documentation.rb#57
def builtin?(cop_class); end
# @api private
#
# source://rubocop//lib/rubocop/cop/documentation.rb#47
def default_base_url; end
# @api private
#
# source://rubocop//lib/rubocop/cop/documentation.rb#52
def default_extension; end
# @api private
#
# source://rubocop//lib/rubocop/cop/documentation.rb#10
def department_to_basename(department); end
# @api private
#
# source://rubocop//lib/rubocop/cop/documentation.rb#36
def extension_for(cop_class, config); end
# @api private
#
# source://rubocop//lib/rubocop/cop/documentation.rb#15
def url_for(cop_class, config = T.unsafe(nil)); end
end
end
# Common functionality for checking documentation.
#
# source://rubocop//lib/rubocop/cop/mixin/documentation_comment.rb#6
module RuboCop::Cop::DocumentationComment
extend ::RuboCop::AST::NodePattern::Macros
private
# source://rubocop//lib/rubocop/cop/mixin/documentation_comment.rb#47
def annotation_keywords; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/documentation_comment.rb#11
def documentation_comment?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/documentation_comment.rb#39
def interpreter_directive_comment?(comment); end
# The args node1 & node2 may represent a RuboCop::AST::Node
# or a Parser::Source::Comment. Both respond to #loc.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/documentation_comment.rb#31
def precede?(node1, node2); end
# The args node1 & node2 may represent a RuboCop::AST::Node
# or a Parser::Source::Comment. Both respond to #loc.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/documentation_comment.rb#25
def preceding_comment?(node1, node2); end
# source://rubocop//lib/rubocop/cop/mixin/documentation_comment.rb#35
def preceding_lines(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/documentation_comment.rb#43
def rubocop_directive_comment?(comment); end
end
# Common functionality for dealing with duplication.
#
# source://rubocop//lib/rubocop/cop/mixin/duplication.rb#6
module RuboCop::Cop::Duplication
private
# Returns the consecutive duplicates, leaving out the first instance of
# the duplicated elements.
#
# @param collection [Array] an array to return consecutive duplicates for
# @return [Array] the consecutive duplicates
#
# source://rubocop//lib/rubocop/cop/mixin/duplication.rb#31
def consecutive_duplicates(collection); end
# Returns all duplicates, including the first instance of the duplicated
# elements.
#
# @param collection [Array] an array to return duplicates for
# @return [Array] all the duplicates
#
# source://rubocop//lib/rubocop/cop/mixin/duplication.rb#22
def duplicates(collection); end
# Whether the `collection` contains any duplicates.
#
# @param collection [Array] an array to check for duplicates
# @return [Boolean] whether the array contains any duplicates
#
# source://rubocop//lib/rubocop/cop/mixin/duplication.rb#13
def duplicates?(collection); end
# Returns a hash of grouped duplicates. The key will be the first
# instance of the element, and the value an `array` of the initial
# element and all duplicate instances.
#
# @param collection [Array] an array to group duplicates for
# @return [Array] the grouped duplicates
#
# source://rubocop//lib/rubocop/cop/mixin/duplication.rb#41
def grouped_duplicates(collection); end
end
# This class autocorrects `#each` enumeration to `for` iteration.
#
# source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#6
class RuboCop::Cop::EachToForCorrector
extend ::RuboCop::AST::NodePattern::Macros
# @return [EachToForCorrector] a new instance of EachToForCorrector
#
# source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#12
def initialize(block_node); end
# source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#18
def call(corrector); end
private
# Returns the value of attribute argument_node.
#
# source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#24
def argument_node; end
# Returns the value of attribute block_node.
#
# source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#24
def block_node; end
# Returns the value of attribute collection_node.
#
# source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#24
def collection_node; end
# source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#26
def correction; end
# source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#36
def offending_range; end
end
# source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#10
RuboCop::Cop::EachToForCorrector::CORRECTION_WITHOUT_ARGUMENTS = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/correctors/each_to_for_corrector.rb#9
RuboCop::Cop::EachToForCorrector::CORRECTION_WITH_ARGUMENTS = T.let(T.unsafe(nil), String)
# This class does empty line autocorrection
#
# source://rubocop//lib/rubocop/cop/correctors/empty_line_corrector.rb#6
class RuboCop::Cop::EmptyLineCorrector
class << self
# source://rubocop//lib/rubocop/cop/correctors/empty_line_corrector.rb#8
def correct(corrector, node); end
# source://rubocop//lib/rubocop/cop/correctors/empty_line_corrector.rb#19
def insert_before(corrector, node); end
end
end
# Common code for empty parameter cops.
#
# source://rubocop//lib/rubocop/cop/mixin/empty_parameter.rb#6
module RuboCop::Cop::EmptyParameter
extend ::RuboCop::AST::NodePattern::Macros
# source://rubocop//lib/rubocop/cop/mixin/empty_parameter.rb#12
def empty_arguments?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/mixin/empty_parameter.rb#16
def check(node); end
end
# Functions for checking the alignment of the `end` keyword.
#
# source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#6
module RuboCop::Cop::EndKeywordAlignment
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#60
def accept_end_kw_alignment?(end_loc); end
# source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#50
def add_offense_for_misalignment(node, align_with); end
# source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#19
def check_end_kw_alignment(node, align_ranges); end
# source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#15
def check_end_kw_in_node(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#75
def line_break_before_keyword?(whole_expression, rhs); end
# source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#35
def matching_ranges(end_loc, align_ranges); end
# source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#41
def start_line_range(node); end
# source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#65
def style_parameter_name; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#69
def variable_alignment?(whole_expression, rhs, end_alignment_style); end
end
# source://rubocop//lib/rubocop/cop/mixin/end_keyword_alignment.rb#10
RuboCop::Cop::EndKeywordAlignment::MSG = T.let(T.unsafe(nil), String)
# Common functionality for rewriting endless methods to normal method definitions
#
# source://rubocop//lib/rubocop/cop/mixin/endless_method_rewriter.rb#6
module RuboCop::Cop::EndlessMethodRewriter
# source://rubocop//lib/rubocop/cop/mixin/endless_method_rewriter.rb#7
def correct_to_multiline(corrector, node); end
private
# source://rubocop//lib/rubocop/cop/mixin/endless_method_rewriter.rb#19
def arguments(node, missing = T.unsafe(nil)); end
end
# Common functionality for enforcing a specific superclass.
#
# IMPORTANT: RuboCop core depended on this module when it supported Rails department.
# Rails department has been extracted to RuboCop Rails gem.
#
# It will not be updated to `RuboCop::Cop::Base` v1 API to maintain compatibility
# with existing RuboCop Rails 2.8 or lower.
#
# @api private
# @deprecated This module is deprecated and will be removed by RuboCop 2.0.
#
# source://rubocop//lib/rubocop/cop/mixin/enforce_superclass.rb#15
module RuboCop::Cop::EnforceSuperclass
# @api private
#
# source://rubocop-rails/2.27.0/lib/rubocop/cop/mixin/enforce_superclass.rb#19
def on_class(node); end
# @api private
#
# source://rubocop-rails/2.27.0/lib/rubocop/cop/mixin/enforce_superclass.rb#25
def on_send(node); end
private
# source://rubocop-rails/2.27.0/lib/rubocop/cop/mixin/enforce_superclass.rb#33
def register_offense(offense_node); end
class << self
# @api private
# @private
#
# source://rubocop-rails/2.27.0/lib/rubocop/cop/mixin/enforce_superclass.rb#7
def included(base); end
end
end
# Common functionality for checking for a line break before the first
# element in a multi-line collection.
#
# source://rubocop//lib/rubocop/cop/mixin/first_element_line_break.rb#7
module RuboCop::Cop::FirstElementLineBreak
private
# source://rubocop//lib/rubocop/cop/mixin/first_element_line_break.rb#23
def check_children_line_break(node, children, start = T.unsafe(nil), ignore_last: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/mixin/first_element_line_break.rb#10
def check_method_line_break(node, children, ignore_last: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/mixin/first_element_line_break.rb#37
def first_by_line(nodes); end
# source://rubocop//lib/rubocop/cop/mixin/first_element_line_break.rb#41
def last_line(nodes, ignore_last:); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/first_element_line_break.rb#18
def method_uses_parens?(node, limit); end
end
# This class autocorrects `for` iteration to `#each` enumeration.
#
# source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#6
class RuboCop::Cop::ForToEachCorrector
extend ::RuboCop::AST::NodePattern::Macros
# @return [ForToEachCorrector] a new instance of ForToEachCorrector
#
# source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#11
def initialize(for_node); end
# source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#17
def call(corrector); end
private
# source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#57
def collection_end; end
# Returns the value of attribute collection_node.
#
# source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#25
def collection_node; end
# source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#31
def collection_source; end
# source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#27
def correction; end
# source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#45
def end_range; end
# Returns the value of attribute for_node.
#
# source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#25
def for_node; end
# source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#53
def keyword_begin; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#39
def requires_parentheses?; end
# Returns the value of attribute variable_node.
#
# source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#25
def variable_node; end
end
# source://rubocop//lib/rubocop/cop/correctors/for_to_each_corrector.rb#9
RuboCop::Cop::ForToEachCorrector::CORRECTION = T.let(T.unsafe(nil), String)
# A scaffold for concrete forces.
#
# source://rubocop//lib/rubocop/cop/force.rb#6
class RuboCop::Cop::Force
# @return [Force] a new instance of Force
#
# source://rubocop//lib/rubocop/cop/force.rb#32
def initialize(cops); end
# Returns the value of attribute cops.
#
# source://rubocop//lib/rubocop/cop/force.rb#17
def cops; end
# source://rubocop//lib/rubocop/cop/force.rb#50
def investigate(_processed_source); end
# source://rubocop//lib/rubocop/cop/force.rb#36
def name; end
# source://rubocop//lib/rubocop/cop/force.rb#40
def run_hook(method_name, *args); end
class << self
# source://rubocop//lib/rubocop/cop/force.rb#19
def all; end
# source://rubocop//lib/rubocop/cop/force.rb#28
def force_name; end
# @private
#
# source://rubocop//lib/rubocop/cop/force.rb#23
def inherited(subclass); end
end
end
# @api private
#
# source://rubocop//lib/rubocop/cop/force.rb#8
class RuboCop::Cop::Force::HookError < ::StandardError
# @api private
# @return [HookError] a new instance of HookError
#
# source://rubocop//lib/rubocop/cop/force.rb#11
def initialize(joining_cop); end
# @api private
#
# source://rubocop//lib/rubocop/cop/force.rb#9
def joining_cop; end
end
# Common functionality for dealing with frozen string literals.
#
# source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#6
module RuboCop::Cop::FrozenStringLiteral
private
# source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#37
def frozen_heredoc?(node); end
# source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#21
def frozen_string_literal?(node); end
# source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#15
def frozen_string_literal_comment_exists?; end
# source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#78
def frozen_string_literal_specified?; end
# source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#72
def frozen_string_literals_disabled?; end
# source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#44
def frozen_string_literals_enabled?; end
# source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#88
def leading_comment_lines; end
# source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#84
def leading_magic_comments; end
# source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#37
def uninterpolated_heredoc?(node); end
# source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#31
def uninterpolated_string?(node); end
class << self
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#15
def frozen_string_literal_comment_exists?; end
end
end
# source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#9
RuboCop::Cop::FrozenStringLiteral::FROZEN_STRING_LITERAL = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#10
RuboCop::Cop::FrozenStringLiteral::FROZEN_STRING_LITERAL_ENABLED = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/mixin/frozen_string_literal.rb#11
RuboCop::Cop::FrozenStringLiteral::FROZEN_STRING_LITERAL_TYPES_RUBY27 = T.let(T.unsafe(nil), Array)
# Common functionality for checking gem declarations.
#
# source://rubocop//lib/rubocop/cop/mixin/gem_declaration.rb#6
module RuboCop::Cop::GemDeclaration
extend ::RuboCop::AST::NodePattern::Macros
# source://rubocop//lib/rubocop/cop/mixin/gem_declaration.rb#10
def gem_declaration?(param0 = T.unsafe(nil)); end
end
# source://rubocop//lib/rubocop/cop/gemspec/add_runtime_dependency.rb#5
module RuboCop::Cop::Gemspec; end
# Prefer `add_dependency` over `add_runtime_dependency` as the latter is
# considered soft-deprecated.
#
# @example
#
# # bad
# Gem::Specification.new do |spec|
# spec.add_runtime_dependency('rubocop')
# end
#
# # good
# Gem::Specification.new do |spec|
# spec.add_dependency('rubocop')
# end
#
# source://rubocop//lib/rubocop/cop/gemspec/add_runtime_dependency.rb#21
class RuboCop::Cop::Gemspec::AddRuntimeDependency < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/gemspec/add_runtime_dependency.rb#28
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/gemspec/add_runtime_dependency.rb#24
RuboCop::Cop::Gemspec::AddRuntimeDependency::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/gemspec/add_runtime_dependency.rb#26
RuboCop::Cop::Gemspec::AddRuntimeDependency::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Enforce that gem dependency version specifications or a commit reference (branch,
# ref, or tag) are either required or forbidden.
#
# @example EnforcedStyle: required (default)
#
# # bad
# Gem::Specification.new do |spec|
# spec.add_dependency 'parser'
# end
#
# # bad
# Gem::Specification.new do |spec|
# spec.add_development_dependency 'parser'
# end
#
# # good
# Gem::Specification.new do |spec|
# spec.add_dependency 'parser', '>= 2.3.3.1', '< 3.0'
# end
#
# # good
# Gem::Specification.new do |spec|
# spec.add_development_dependency 'parser', '>= 2.3.3.1', '< 3.0'
# end
# @example EnforcedStyle: forbidden
#
# # bad
# Gem::Specification.new do |spec|
# spec.add_dependency 'parser', '>= 2.3.3.1', '< 3.0'
# end
#
# # bad
# Gem::Specification.new do |spec|
# spec.add_development_dependency 'parser', '>= 2.3.3.1', '< 3.0'
# end
#
# # good
# Gem::Specification.new do |spec|
# spec.add_dependency 'parser'
# end
#
# # good
# Gem::Specification.new do |spec|
# spec.add_development_dependency 'parser'
# end
#
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#53
class RuboCop::Cop::Gemspec::DependencyVersion < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::GemspecHelp
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#67
def add_dependency_method_declaration?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#78
def includes_commit_reference?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#73
def includes_version_specification?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#82
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#118
def add_dependency_method?(method_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#96
def allowed_gem?(node); end
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#100
def allowed_gems; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#132
def forbidden_offense?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#138
def forbidden_style?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#112
def match_block_variable_name?(receiver_name); end
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#104
def message(_range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#122
def offense?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#126
def required_offense?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#142
def required_style?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#146
def version_specification?(expression); end
end
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#61
RuboCop::Cop::Gemspec::DependencyVersion::ADD_DEPENDENCY_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#58
RuboCop::Cop::Gemspec::DependencyVersion::FORBIDDEN_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#57
RuboCop::Cop::Gemspec::DependencyVersion::REQUIRED_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#64
RuboCop::Cop::Gemspec::DependencyVersion::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/gemspec/dependency_version.rb#59
RuboCop::Cop::Gemspec::DependencyVersion::VERSION_SPECIFICATION_REGEX = T.let(T.unsafe(nil), Regexp)
# Checks that deprecated attributes are not set in a gemspec file.
# Removing deprecated attributes allows the user to receive smaller packed gems.
#
# @example
#
# # bad
# Gem::Specification.new do |spec|
# spec.name = 'your_cool_gem_name'
# spec.test_files = Dir.glob('test/**/*')
# end
#
# # bad
# Gem::Specification.new do |spec|
# spec.name = 'your_cool_gem_name'
# spec.test_files += Dir.glob('test/**/*')
# end
#
# # good
# Gem::Specification.new do |spec|
# spec.name = 'your_cool_gem_name'
# end
#
# source://rubocop//lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb#28
class RuboCop::Cop::Gemspec::DeprecatedAttributeAssignment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb#35
def gem_specification(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb#43
def on_block(block_node); end
private
# source://rubocop//lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb#86
def format_message_from; end
# source://rubocop//lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb#63
def node_and_method_name(node, attribute); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb#72
def use_deprecated_attributes?(node, block_parameter); end
end
# source://rubocop//lib/rubocop/cop/gemspec/deprecated_attribute_assignment.rb#32
RuboCop::Cop::Gemspec::DeprecatedAttributeAssignment::MSG = T.let(T.unsafe(nil), String)
# Enforce that development dependencies for a gem are specified in
# `Gemfile`, rather than in the `gemspec` using
# `add_development_dependency`. Alternatively, using `EnforcedStyle:
# gemspec`, enforce that all dependencies are specified in `gemspec`,
# rather than in `Gemfile`.
#
# @example EnforcedStyle: Gemfile (default)
# # Specify runtime dependencies in your gemspec,
# # but all other dependencies in your Gemfile.
#
# # bad
# # example.gemspec
# s.add_development_dependency "foo"
#
# # good
# # Gemfile
# gem "foo"
#
# # good
# # gems.rb
# gem "foo"
#
# # good (with AllowedGems: ["bar"])
# # example.gemspec
# s.add_development_dependency "bar"
# @example EnforcedStyle: gems.rb
# # Specify runtime dependencies in your gemspec,
# # but all other dependencies in your Gemfile.
# #
# # Identical to `EnforcedStyle: Gemfile`, but with a different error message.
# # Rely on Bundler/GemFilename to enforce the use of `Gemfile` vs `gems.rb`.
#
# # bad
# # example.gemspec
# s.add_development_dependency "foo"
#
# # good
# # Gemfile
# gem "foo"
#
# # good
# # gems.rb
# gem "foo"
#
# # good (with AllowedGems: ["bar"])
# # example.gemspec
# s.add_development_dependency "bar"
# @example EnforcedStyle: gemspec
# # Specify all dependencies in your gemspec.
#
# # bad
# # Gemfile
# gem "foo"
#
# # good
# # example.gemspec
# s.add_development_dependency "foo"
#
# # good (with AllowedGems: ["bar"])
# # Gemfile
# gem "bar"
#
# source://rubocop//lib/rubocop/cop/gemspec/development_dependencies.rb#70
class RuboCop::Cop::Gemspec::DevelopmentDependencies < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
# source://rubocop//lib/rubocop/cop/gemspec/development_dependencies.rb#77
def add_development_dependency?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/gemspec/development_dependencies.rb#82
def gem?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/gemspec/development_dependencies.rb#86
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/gemspec/development_dependencies.rb#97
def forbidden_gem?(gem_name); end
# source://rubocop//lib/rubocop/cop/gemspec/development_dependencies.rb#101
def message(_range); end
end
# source://rubocop//lib/rubocop/cop/gemspec/development_dependencies.rb#73
RuboCop::Cop::Gemspec::DevelopmentDependencies::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/gemspec/development_dependencies.rb#74
RuboCop::Cop::Gemspec::DevelopmentDependencies::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# An attribute assignment method calls should be listed only once
# in a gemspec.
#
# Assigning to an attribute with the same name using `spec.foo =` will be
# an unintended usage. On the other hand, duplication of methods such
# as `spec.requirements`, `spec.add_runtime_dependency`, and others are
# permitted because it is the intended use of appending values.
#
# @example
# # bad
# Gem::Specification.new do |spec|
# spec.name = 'rubocop'
# spec.name = 'rubocop2'
# end
#
# # good
# Gem::Specification.new do |spec|
# spec.name = 'rubocop'
# end
#
# # good
# Gem::Specification.new do |spec|
# spec.requirements << 'libmagick, v6.0'
# spec.requirements << 'A good graphics card'
# end
#
# # good
# Gem::Specification.new do |spec|
# spec.add_dependency('parallel', '~> 1.10')
# spec.add_dependency('parser', '>= 2.3.3.1', '< 3.0')
# end
#
# source://rubocop//lib/rubocop/cop/gemspec/duplicated_assignment.rb#37
class RuboCop::Cop::Gemspec::DuplicatedAssignment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::GemspecHelp
# source://rubocop//lib/rubocop/cop/gemspec/duplicated_assignment.rb#45
def assignment_method_declarations(param0); end
# source://rubocop//lib/rubocop/cop/gemspec/duplicated_assignment.rb#50
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/gemspec/duplicated_assignment.rb#68
def duplicated_assignment_method_nodes; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/gemspec/duplicated_assignment.rb#62
def match_block_variable_name?(receiver_name); end
# source://rubocop//lib/rubocop/cop/gemspec/duplicated_assignment.rb#76
def register_offense(node, assignment, line_of_first_occurrence); end
end
# source://rubocop//lib/rubocop/cop/gemspec/duplicated_assignment.rb#41
RuboCop::Cop::Gemspec::DuplicatedAssignment::MSG = T.let(T.unsafe(nil), String)
# Dependencies in the gemspec should be alphabetically sorted.
#
# @example
# # bad
# spec.add_dependency 'rubocop'
# spec.add_dependency 'rspec'
#
# # good
# spec.add_dependency 'rspec'
# spec.add_dependency 'rubocop'
#
# # good
# spec.add_dependency 'rubocop'
#
# spec.add_dependency 'rspec'
#
# # bad
# spec.add_development_dependency 'rubocop'
# spec.add_development_dependency 'rspec'
#
# # good
# spec.add_development_dependency 'rspec'
# spec.add_development_dependency 'rubocop'
#
# # good
# spec.add_development_dependency 'rubocop'
#
# spec.add_development_dependency 'rspec'
#
# # bad
# spec.add_runtime_dependency 'rubocop'
# spec.add_runtime_dependency 'rspec'
#
# # good
# spec.add_runtime_dependency 'rspec'
# spec.add_runtime_dependency 'rubocop'
#
# # good
# spec.add_runtime_dependency 'rubocop'
#
# spec.add_runtime_dependency 'rspec'
# @example TreatCommentsAsGroupSeparators: true (default)
# # good
# # For code quality
# spec.add_dependency 'rubocop'
# # For tests
# spec.add_dependency 'rspec'
# @example TreatCommentsAsGroupSeparators: false
# # bad
# # For code quality
# spec.add_dependency 'rubocop'
# # For tests
# spec.add_dependency 'rspec'
#
# source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#61
class RuboCop::Cop::Gemspec::OrderedDependencies < ::RuboCop::Cop::Base
include ::RuboCop::Cop::OrderedGemNode
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#95
def dependency_declarations(param0); end
# source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#69
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#90
def get_dependency_name(node); end
# source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#84
def previous_declaration(node); end
end
# source://rubocop//lib/rubocop/cop/gemspec/ordered_dependencies.rb#65
RuboCop::Cop::Gemspec::OrderedDependencies::MSG = T.let(T.unsafe(nil), String)
# Requires a gemspec to have `rubygems_mfa_required` metadata set.
#
# This setting tells RubyGems that MFA (Multi-Factor Authentication) is
# required for accounts to be able perform privileged operations, such as
# (see RubyGems' documentation for the full list of privileged
# operations):
#
# * `gem push`
# * `gem yank`
# * `gem owner --add/remove`
# * adding or removing owners using gem ownership page
#
# This helps make your gem more secure, as users can be more
# confident that gem updates were pushed by maintainers.
#
# @example
# # bad
# Gem::Specification.new do |spec|
# # no `rubygems_mfa_required` metadata specified
# end
#
# # good
# Gem::Specification.new do |spec|
# spec.metadata = {
# 'rubygems_mfa_required' => 'true'
# }
# end
#
# # good
# Gem::Specification.new do |spec|
# spec.metadata['rubygems_mfa_required'] = 'true'
# end
#
# # bad
# Gem::Specification.new do |spec|
# spec.metadata = {
# 'rubygems_mfa_required' => 'false'
# }
# end
#
# # good
# Gem::Specification.new do |spec|
# spec.metadata = {
# 'rubygems_mfa_required' => 'true'
# }
# end
#
# # bad
# Gem::Specification.new do |spec|
# spec.metadata['rubygems_mfa_required'] = 'false'
# end
#
# # good
# Gem::Specification.new do |spec|
# spec.metadata['rubygems_mfa_required'] = 'true'
# end
#
# source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#63
class RuboCop::Cop::Gemspec::RequireMFA < ::RuboCop::Cop::Base
include ::RuboCop::Cop::GemspecHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#70
def metadata(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#87
def on_block(node); end
# source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#78
def rubygems_mfa_required(param0); end
# source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#83
def true_string?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#115
def autocorrect(corrector, node, block_var, metadata); end
# source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#139
def change_value(corrector, value); end
# source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#125
def correct_metadata(corrector, metadata); end
# source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#133
def insert_mfa_required(corrector, node, block_var); end
# source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#108
def mfa_value(metadata_value); end
end
# source://rubocop//lib/rubocop/cop/gemspec/require_mfa.rb#67
RuboCop::Cop::Gemspec::RequireMFA::MSG = T.let(T.unsafe(nil), String)
# Checks that `required_ruby_version` in a gemspec file is set to a valid
# value (non-blank) and matches `TargetRubyVersion` as set in RuboCop's
# configuration for the gem.
#
# This ensures that RuboCop is using the same Ruby version as the gem.
#
# @example
# # When `TargetRubyVersion` of .rubocop.yml is `2.5`.
#
# # bad
# Gem::Specification.new do |spec|
# # no `required_ruby_version` specified
# end
#
# # bad
# Gem::Specification.new do |spec|
# spec.required_ruby_version = '>= 2.4.0'
# end
#
# # bad
# Gem::Specification.new do |spec|
# spec.required_ruby_version = '>= 2.6.0'
# end
#
# # bad
# Gem::Specification.new do |spec|
# spec.required_ruby_version = ''
# end
#
# # good
# Gem::Specification.new do |spec|
# spec.required_ruby_version = '>= 2.5.0'
# end
#
# # good
# Gem::Specification.new do |spec|
# spec.required_ruby_version = '>= 2.5'
# end
#
# # accepted but not recommended
# Gem::Specification.new do |spec|
# spec.required_ruby_version = ['>= 2.5.0', '< 2.7.0']
# end
#
# # accepted but not recommended, since
# # Ruby does not really follow semantic versioning
# Gem::Specification.new do |spec|
# spec.required_ruby_version = '~> 2.5'
# end
#
# source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#55
class RuboCop::Cop::Gemspec::RequiredRubyVersion < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
# source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#70
def defined_ruby_version(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#78
def on_new_investigation; end
# source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#84
def on_send(node); end
# source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#65
def required_ruby_version?(param0); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#96
def dynamic_version?(node); end
# source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#102
def extract_ruby_version(required_ruby_version); end
# source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#120
def not_equal_message(required_ruby_version, target_ruby_version); end
end
# source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#62
RuboCop::Cop::Gemspec::RequiredRubyVersion::MISSING_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#59
RuboCop::Cop::Gemspec::RequiredRubyVersion::NOT_EQUAL_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/gemspec/required_ruby_version.rb#58
RuboCop::Cop::Gemspec::RequiredRubyVersion::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks that `RUBY_VERSION` constant is not used in gemspec.
# Using `RUBY_VERSION` is dangerous because value of the
# constant is determined by `rake release`.
# It's possible to have dependency based on ruby version used
# to execute `rake release` and not user's ruby version.
#
# @example
#
# # bad
# Gem::Specification.new do |spec|
# if RUBY_VERSION >= '3.0'
# spec.add_dependency 'gem_a'
# else
# spec.add_dependency 'gem_b'
# end
# end
#
# # good
# Gem::Specification.new do |spec|
# spec.add_dependency 'gem_a'
# end
#
# source://rubocop//lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb#28
class RuboCop::Cop::Gemspec::RubyVersionGlobalsUsage < ::RuboCop::Cop::Base
include ::RuboCop::Cop::GemspecHelp
# source://rubocop//lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb#36
def on_const(node); end
# source://rubocop//lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb#34
def ruby_version?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb#44
def gem_spec_with_ruby_version?(node); end
end
# source://rubocop//lib/rubocop/cop/gemspec/ruby_version_globals_usage.rb#31
RuboCop::Cop::Gemspec::RubyVersionGlobalsUsage::MSG = T.let(T.unsafe(nil), String)
# Common functionality for checking gem declarations.
#
# source://rubocop//lib/rubocop/cop/mixin/gemspec_help.rb#6
module RuboCop::Cop::GemspecHelp
extend ::RuboCop::AST::NodePattern::Macros
# source://rubocop//lib/rubocop/cop/mixin/gemspec_help.rb#20
def gem_specification(param0); end
# source://rubocop//lib/rubocop/cop/mixin/gemspec_help.rb#10
def gem_specification?(param0 = T.unsafe(nil)); end
end
# Source and spec generator for new cops
#
# This generator will take a cop name and generate a source file
# and spec file when given a valid qualified cop name.
#
# @api private
#
# source://rubocop//lib/rubocop/cop/generator.rb#10
class RuboCop::Cop::Generator
# @api private
# @raise [ArgumentError]
# @return [Generator] a new instance of Generator
#
# source://rubocop//lib/rubocop/cop/generator.rb#113
def initialize(name, output: T.unsafe(nil)); end
# @api private
#
# source://rubocop//lib/rubocop/cop/generator.rb#133
def inject_config(config_file_path: T.unsafe(nil), version_added: T.unsafe(nil)); end
# @api private
#
# source://rubocop//lib/rubocop/cop/generator.rb#129
def inject_require(root_file_path: T.unsafe(nil)); end
# @api private
#
# source://rubocop//lib/rubocop/cop/generator.rb#146
def todo; end
# @api private
#
# source://rubocop//lib/rubocop/cop/generator.rb#121
def write_source; end
# @api private
#
# source://rubocop//lib/rubocop/cop/generator.rb#125
def write_spec; end
private
# @api private
#
# source://rubocop//lib/rubocop/cop/generator.rb#160
def badge; end
# @api private
#
# source://rubocop//lib/rubocop/cop/generator.rb#183
def generate(template); end
# @api private
#
# source://rubocop//lib/rubocop/cop/generator.rb#175
def generated_source; end
# @api private
#
# source://rubocop//lib/rubocop/cop/generator.rb#179
def generated_spec; end
# @api private
#
# source://rubocop//lib/rubocop/cop/generator.rb#160
def output; end
# @api private
#
# source://rubocop//lib/rubocop/cop/generator.rb#208
def snake_case(camel_case_string); end
# @api private
#
# source://rubocop//lib/rubocop/cop/generator.rb#198
def source_path; end
# @api private
#
# source://rubocop//lib/rubocop/cop/generator.rb#188
def spec_path; end
# @api private
#
# source://rubocop//lib/rubocop/cop/generator.rb#162
def write_unless_file_exists(path, contents); end
end
# @api private
#
# source://rubocop//lib/rubocop/cop/generator.rb#109
RuboCop::Cop::Generator::CONFIGURATION_ADDED_MESSAGE = T.let(T.unsafe(nil), String)
# A class that injects a require directive into the root RuboCop file.
# It looks for other directives that require files in the same (cop)
# namespace and injects the provided one in alpha
#
# source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#9
class RuboCop::Cop::Generator::ConfigurationInjector
# @return [ConfigurationInjector] a new instance of ConfigurationInjector
#
# source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#17
def initialize(configuration_file_path:, badge:, version_added: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#24
def inject; end
private
# Returns the value of attribute badge.
#
# source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#39
def badge; end
# source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#41
def configuration_entries; end
# Returns the value of attribute configuration_file_path.
#
# source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#39
def configuration_file_path; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#59
def cop_name_line?(yaml); end
# source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#49
def find_target_line; end
# source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#45
def new_configuration_entry; end
# Returns the value of attribute output.
#
# source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#39
def output; end
# Returns the value of attribute version_added.
#
# source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#39
def version_added; end
end
# source://rubocop//lib/rubocop/cop/generator/configuration_injector.rb#10
RuboCop::Cop::Generator::ConfigurationInjector::TEMPLATE = T.let(T.unsafe(nil), String)
# A class that injects a require directive into the root RuboCop file.
# It looks for other directives that require files in the same (cop)
# namespace and injects the provided one in alpha
#
# source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#9
class RuboCop::Cop::Generator::RequireFileInjector
# @return [RequireFileInjector] a new instance of RequireFileInjector
#
# source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#12
def initialize(source_path:, root_file_path:, output: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#19
def inject; end
private
# source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#64
def injectable_require_directive; end
# Returns the value of attribute output.
#
# source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#29
def output; end
# Returns the value of attribute require_entries.
#
# source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#29
def require_entries; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#31
def require_exists?; end
# source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#68
def require_path; end
# source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#58
def require_path_fragments(require_directive); end
# Returns the value of attribute root_file_path.
#
# source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#29
def root_file_path; end
# Returns the value of attribute source_path.
#
# source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#29
def source_path; end
# source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#39
def target_line; end
# source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#35
def updated_directives; end
end
# source://rubocop//lib/rubocop/cop/generator/require_file_injector.rb#10
RuboCop::Cop::Generator::RequireFileInjector::REQUIRE_PATH = T.let(T.unsafe(nil), Regexp)
# @api private
#
# source://rubocop//lib/rubocop/cop/generator.rb#11
RuboCop::Cop::Generator::SOURCE_TEMPLATE = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/cop/generator.rb#85
RuboCop::Cop::Generator::SPEC_TEMPLATE = T.let(T.unsafe(nil), String)
# Common functionality for checking hash alignment.
#
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#6
module RuboCop::Cop::HashAlignmentStyles; end
# Handles calculation of deltas when the enforced style is 'key'.
#
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#8
class RuboCop::Cop::HashAlignmentStyles::KeyAlignment
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#9
def checkable_layout?(_node); end
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#20
def deltas(first_pair, current_pair); end
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#13
def deltas_for_first_pair(first_pair, _node); end
private
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#34
def separator_delta(pair); end
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#45
def value_delta(pair); end
end
# Handles calculation of deltas for `kwsplat` nodes.
# This is a special case that just ensures the kwsplat is aligned with the rest of the hash
# since a `kwsplat` does not have a key, separator or value.
#
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#145
class RuboCop::Cop::HashAlignmentStyles::KeywordSplatAlignment
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#146
def deltas(first_pair, current_pair); end
end
# Handles calculation of deltas when the enforced style is 'separator'.
#
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#120
class RuboCop::Cop::HashAlignmentStyles::SeparatorAlignment
include ::RuboCop::Cop::HashAlignmentStyles::ValueAlignment
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#123
def deltas_for_first_pair(*_nodes); end
private
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#133
def hash_rocket_delta(first_pair, current_pair); end
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#129
def key_delta(first_pair, current_pair); end
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#137
def value_delta(first_pair, current_pair); end
end
# Handles calculation of deltas when the enforced style is 'table'.
#
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#81
class RuboCop::Cop::HashAlignmentStyles::TableAlignment
include ::RuboCop::Cop::HashAlignmentStyles::ValueAlignment
# @return [TableAlignment] a new instance of TableAlignment
#
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#84
def initialize; end
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#88
def deltas_for_first_pair(first_pair, node); end
private
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#106
def hash_rocket_delta(first_pair, current_pair); end
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#102
def key_delta(first_pair, current_pair); end
# Returns the value of attribute max_key_width.
#
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#100
def max_key_width; end
# Sets the attribute max_key_width
#
# @param value the value to set the attribute max_key_width to.
#
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#100
def max_key_width=(_arg0); end
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#110
def value_delta(first_pair, current_pair); end
end
# Common functionality for checking alignment of hash values.
#
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#56
module RuboCop::Cop::HashAlignmentStyles::ValueAlignment
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#57
def checkable_layout?(node); end
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#61
def deltas(first_pair, current_pair); end
private
# source://rubocop//lib/rubocop/cop/mixin/hash_alignment_styles.rb#71
def separator_delta(first_pair, current_pair, key_delta); end
end
# This module checks for Ruby 3.1's hash value omission syntax.
#
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#7
module RuboCop::Cop::HashShorthandSyntax
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#14
def on_hash_for_mixed_shorthand(hash_node); end
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#26
def on_pair(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#126
def brackets?(method_dispatch_node); end
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#156
def breakdown_value_types_of_hash(hash_node); end
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#103
def def_node_that_require_parentheses(node); end
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#185
def each_omittable_value_pair(hash_value_type_breakdown, &block); end
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#181
def each_omitted_value_pair(hash_value_type_breakdown, &block); end
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#81
def enforced_shorthand_syntax; end
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#118
def find_ancestor_method_dispatch_node(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#168
def hash_with_mixed_shorthand_syntax?(hash_value_type_breakdown); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#172
def hash_with_values_that_cant_be_omitted?(hash_value_type_breakdown); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#176
def ignore_explicit_omissible_hash_shorthand_syntax?(hash_value_type_breakdown); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#75
def ignore_hash_shorthand_syntax?(pair_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#69
def ignore_mixed_hash_shorthand_syntax?(hash_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#141
def last_expression?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#149
def method_dispatch_as_argument?(method_dispatch_node); end
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#189
def mixed_shorthand_syntax_check(hash_value_type_breakdown); end
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#205
def no_mixed_shorthand_syntax_check(hash_value_type_breakdown); end
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#49
def register_offense(node, message, replacement); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#85
def require_hash_value?(hash_key_source, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#94
def require_hash_value_for_around_hash_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#130
def use_element_of_hash_literal_as_receiver?(ancestor, parent); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#135
def use_modifier_form_without_parenthesized_method_call?(ancestor); end
end
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#12
RuboCop::Cop::HashShorthandSyntax::DO_NOT_MIX_EXPLICIT_VALUE_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#10
RuboCop::Cop::HashShorthandSyntax::DO_NOT_MIX_MSG_PREFIX = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#11
RuboCop::Cop::HashShorthandSyntax::DO_NOT_MIX_OMIT_VALUE_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#216
class RuboCop::Cop::HashShorthandSyntax::DefNode < ::Struct
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#225
def first_argument; end
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#229
def last_argument; end
# Returns the value of attribute node
#
# @return [Object] the current value of node
def node; end
# Sets the attribute node
#
# @param value [Object] the value to set the attribute node to.
# @return [Object] the newly set value
def node=(_); end
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#217
def selector; end
class << self
def [](*_arg0); end
def inspect; end
def keyword_init?; end
def members; end
def new(*_arg0); end
end
end
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#9
RuboCop::Cop::HashShorthandSyntax::EXPLICIT_HASH_VALUE_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/mixin/hash_shorthand_syntax.rb#8
RuboCop::Cop::HashShorthandSyntax::OMIT_HASH_VALUE_MSG = T.let(T.unsafe(nil), String)
# Common functionality for Style/HashTransformKeys and
# Style/HashTransformValues
#
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#7
module RuboCop::Cop::HashTransformMethod
extend ::RuboCop::AST::NodePattern::Macros
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#13
def array_receiver?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#17
def on_block(node); end
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#34
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#27
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#108
def execute_correction(corrector, node, correction); end
# @abstract
# @raise [NotImplementedError]
# @return [Captures]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#83
def extract_captures(_match); end
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#60
def handle_possible_offense(node, match, match_desc); end
# @abstract
# @raise [NotImplementedError]
# @return [String]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#90
def new_method_name; end
# @abstract Implemented with `def_node_matcher`
# @raise [NotImplementedError]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#41
def on_bad_each_with_object(_node); end
# @abstract Implemented with `def_node_matcher`
# @raise [NotImplementedError]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#46
def on_bad_hash_brackets_map(_node); end
# @abstract Implemented with `def_node_matcher`
# @raise [NotImplementedError]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#51
def on_bad_map_to_h(_node); end
# @abstract Implemented with `def_node_matcher`
# @raise [NotImplementedError]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#56
def on_bad_to_h(_node); end
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#94
def prepare_correction(node); end
end
# Internal helper class to hold autocorrect data
#
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#136
class RuboCop::Cop::HashTransformMethod::Autocorrection < ::Struct
# Returns the value of attribute block_node
#
# @return [Object] the current value of block_node
def block_node; end
# Sets the attribute block_node
#
# @param value [Object] the value to set the attribute block_node to.
# @return [Object] the newly set value
def block_node=(_); end
# Returns the value of attribute leading
#
# @return [Object] the current value of leading
def leading; end
# Sets the attribute leading
#
# @param value [Object] the value to set the attribute leading to.
# @return [Object] the newly set value
def leading=(_); end
# Returns the value of attribute match
#
# @return [Object] the current value of match
def match; end
# Sets the attribute match
#
# @param value [Object] the value to set the attribute match to.
# @return [Object] the newly set value
def match=(_); end
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#177
def set_new_arg_name(transformed_argname, corrector); end
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#181
def set_new_body_expression(transforming_body_expr, corrector); end
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#167
def set_new_method_name(new_method_name, corrector); end
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#161
def strip_prefix_and_suffix(node, corrector); end
# Returns the value of attribute trailing
#
# @return [Object] the current value of trailing
def trailing; end
# Sets the attribute trailing
#
# @param value [Object] the value to set the attribute trailing to.
# @return [Object] the newly set value
def trailing=(_); end
class << self
def [](*_arg0); end
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#137
def from_each_with_object(node, match); end
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#141
def from_hash_brackets_map(node, match); end
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#145
def from_map_to_h(node, match); end
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#157
def from_to_h(node, match); end
def inspect; end
def keyword_init?; end
def members; end
def new(*_arg0); end
end
end
# Internal helper class to hold match data
#
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#118
class RuboCop::Cop::HashTransformMethod::Captures < ::Struct
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#119
def noop_transformation?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#124
def transformation_uses_both_args?; end
# Returns the value of attribute transformed_argname
#
# @return [Object] the current value of transformed_argname
def transformed_argname; end
# Sets the attribute transformed_argname
#
# @param value [Object] the value to set the attribute transformed_argname to.
# @return [Object] the newly set value
def transformed_argname=(_); end
# Returns the value of attribute transforming_body_expr
#
# @return [Object] the current value of transforming_body_expr
def transforming_body_expr; end
# Sets the attribute transforming_body_expr
#
# @param value [Object] the value to set the attribute transforming_body_expr to.
# @return [Object] the newly set value
def transforming_body_expr=(_); end
# Returns the value of attribute unchanged_body_expr
#
# @return [Object] the current value of unchanged_body_expr
def unchanged_body_expr; end
# Sets the attribute unchanged_body_expr
#
# @param value [Object] the value to set the attribute unchanged_body_expr to.
# @return [Object] the newly set value
def unchanged_body_expr=(_); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#128
def use_transformed_argname?; end
class << self
def [](*_arg0); end
def inspect; end
def keyword_init?; end
def members; end
def new(*_arg0); end
end
end
# source://rubocop//lib/rubocop/cop/mixin/hash_transform_method.rb#10
RuboCop::Cop::HashTransformMethod::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Common functionality for working with heredoc strings.
#
# source://rubocop//lib/rubocop/cop/mixin/heredoc.rb#6
module RuboCop::Cop::Heredoc
# source://rubocop//lib/rubocop/cop/mixin/heredoc.rb#9
def on_dstr(node); end
# @raise [NotImplementedError]
#
# source://rubocop//lib/rubocop/cop/mixin/heredoc.rb#17
def on_heredoc(_node); end
# source://rubocop//lib/rubocop/cop/mixin/heredoc.rb#9
def on_str(node); end
# source://rubocop//lib/rubocop/cop/mixin/heredoc.rb#9
def on_xstr(node); end
private
# source://rubocop//lib/rubocop/cop/mixin/heredoc.rb#28
def delimiter_string(node); end
# source://rubocop//lib/rubocop/cop/mixin/heredoc.rb#34
def heredoc_type(node); end
# source://rubocop//lib/rubocop/cop/mixin/heredoc.rb#23
def indent_level(str); end
end
# source://rubocop//lib/rubocop/cop/mixin/heredoc.rb#7
RuboCop::Cop::Heredoc::OPENING_DELIMITER = T.let(T.unsafe(nil), Regexp)
# This class autocorrects `if...then` structures to a multiline `if` statement
#
# source://rubocop//lib/rubocop/cop/correctors/if_then_corrector.rb#6
class RuboCop::Cop::IfThenCorrector
# @return [IfThenCorrector] a new instance of IfThenCorrector
#
# source://rubocop//lib/rubocop/cop/correctors/if_then_corrector.rb#9
def initialize(if_node, indentation: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/correctors/if_then_corrector.rb#14
def call(corrector); end
private
# source://rubocop//lib/rubocop/cop/correctors/if_then_corrector.rb#50
def branch_body_indentation; end
# Returns the value of attribute if_node.
#
# source://rubocop//lib/rubocop/cop/correctors/if_then_corrector.rb#20
def if_node; end
# Returns the value of attribute indentation.
#
# source://rubocop//lib/rubocop/cop/correctors/if_then_corrector.rb#20
def indentation; end
# source://rubocop//lib/rubocop/cop/correctors/if_then_corrector.rb#22
def replacement(node = T.unsafe(nil), indentation = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/correctors/if_then_corrector.rb#36
def rewrite_else_branch(else_branch, indentation); end
end
# source://rubocop//lib/rubocop/cop/correctors/if_then_corrector.rb#7
RuboCop::Cop::IfThenCorrector::DEFAULT_INDENTATION_WIDTH = T.let(T.unsafe(nil), Integer)
# @deprecated IgnoredMethods class has been replaced with AllowedMethods.
#
# source://rubocop//lib/rubocop/cop/mixin/allowed_methods.rb#46
RuboCop::Cop::IgnoredMethods = RuboCop::Cop::AllowedMethods
# Handles adding and checking ignored nodes.
#
# source://rubocop//lib/rubocop/cop/ignored_node.rb#6
module RuboCop::Cop::IgnoredNode
# source://rubocop//lib/rubocop/cop/ignored_node.rb#7
def ignore_node(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/ignored_node.rb#24
def ignored_node?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/ignored_node.rb#11
def part_of_ignored_node?(node); end
private
# source://rubocop//lib/rubocop/cop/ignored_node.rb#31
def ignored_nodes; end
end
# @deprecated IgnoredPattern class has been replaced with AllowedPattern.
#
# source://rubocop//lib/rubocop/cop/mixin/allowed_pattern.rb#66
RuboCop::Cop::IgnoredPattern = RuboCop::Cop::AllowedPattern
# Common functionality for checking integer nodes.
#
# source://rubocop//lib/rubocop/cop/mixin/integer_node.rb#6
module RuboCop::Cop::IntegerNode
private
# source://rubocop//lib/rubocop/cop/mixin/integer_node.rb#9
def integer_part(node); end
end
# Common functionality for working with string interpolations.
#
# @abstract Subclasses are expected to implement {#on_interpolation}.
#
# source://rubocop//lib/rubocop/cop/mixin/interpolation.rb#8
module RuboCop::Cop::Interpolation
# source://rubocop//lib/rubocop/cop/mixin/interpolation.rb#9
def on_dstr(node); end
# source://rubocop//lib/rubocop/cop/mixin/interpolation.rb#9
def on_dsym(node); end
# source://rubocop//lib/rubocop/cop/mixin/interpolation.rb#17
def on_node_with_interpolations(node); end
# source://rubocop//lib/rubocop/cop/mixin/interpolation.rb#9
def on_regexp(node); end
# source://rubocop//lib/rubocop/cop/mixin/interpolation.rb#9
def on_xstr(node); end
end
# This class autocorrects lambda literal to method notation.
#
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#6
class RuboCop::Cop::LambdaLiteralToMethodCorrector
# @return [LambdaLiteralToMethodCorrector] a new instance of LambdaLiteralToMethodCorrector
#
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#7
def initialize(block_node); end
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#13
def call(corrector); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#118
def arg_to_unparenthesized_call?; end
# Returns the value of attribute arguments.
#
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#34
def arguments; end
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#102
def arguments_begin_pos; end
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#98
def arguments_end_pos; end
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#110
def block_begin; end
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#106
def block_end; end
# Returns the value of attribute block_node.
#
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#34
def block_node; end
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#59
def insert_arguments(corrector); end
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#43
def insert_separating_space(corrector); end
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#88
def lambda_arg_string; end
# Returns the value of attribute method.
#
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#34
def method; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#92
def needs_separating_space?; end
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#53
def remove_arguments(corrector); end
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#66
def remove_leading_whitespace(corrector); end
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#74
def remove_trailing_whitespace(corrector); end
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#36
def remove_unparenthesized_whitespace(corrector); end
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#79
def replace_delimiters(corrector); end
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#49
def replace_selector(corrector); end
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#114
def selector_end; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/correctors/lambda_literal_to_method_corrector.rb#134
def separating_space?; end
end
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#5
module RuboCop::Cop::Layout; end
# Bare access modifiers (those not applying to specific methods) should be
# indented as deep as method definitions, or as deep as the class/module
# keyword, depending on configuration.
#
# @example EnforcedStyle: indent (default)
# # bad
# class Plumbus
# private
# def smooth; end
# end
#
# # good
# class Plumbus
# private
# def smooth; end
# end
# @example EnforcedStyle: outdent
# # bad
# class Plumbus
# private
# def smooth; end
# end
#
# # good
# class Plumbus
# private
# def smooth; end
# end
#
# source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#35
class RuboCop::Cop::Layout::AccessModifierIndentation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#43
def on_block(node); end
# source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#43
def on_class(node); end
# source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#43
def on_module(node); end
# source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#43
def on_sclass(node); end
private
# source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#54
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#58
def check_body(body, node); end
# source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#69
def check_modifier(send_node, end_range); end
# source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#92
def expected_indent_offset; end
# source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#88
def message(range); end
# An offset that is not expected, but correct if the configuration is
# changed.
#
# source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#98
def unexpected_indent_offset; end
end
# source://rubocop//lib/rubocop/cop/layout/access_modifier_indentation.rb#41
RuboCop::Cop::Layout::AccessModifierIndentation::MSG = T.let(T.unsafe(nil), String)
# Here we check if the arguments on a multi-line method
# definition are aligned.
#
# @example EnforcedStyle: with_first_argument (default)
# # good
#
# foo :bar,
# :baz,
# key: value
#
# foo(
# :bar,
# :baz,
# key: value
# )
#
# # bad
#
# foo :bar,
# :baz,
# key: value
#
# foo(
# :bar,
# :baz,
# key: value
# )
# @example EnforcedStyle: with_fixed_indentation
# # good
#
# foo :bar,
# :baz,
# key: value
#
# # bad
#
# foo :bar,
# :baz,
# key: value
#
# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#46
class RuboCop::Cop::Layout::ArgumentAlignment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#55
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#55
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#92
def arguments_or_first_arg_pairs(node); end
# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#80
def arguments_with_last_arg_pairs(node); end
# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#108
def autocorrect(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#68
def autocorrect_incompatible_with_other_cops?; end
# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#124
def base_column(node, first_argument); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#144
def enforce_hash_argument_with_separator?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#116
def fixed_indentation?; end
# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#72
def flattened_arguments(node); end
# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#152
def hash_argument_config; end
# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#112
def message(_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#101
def multiple_arguments?(node); end
# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#135
def target_method_lineno(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#120
def with_first_argument_style?; end
end
# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#50
RuboCop::Cop::Layout::ArgumentAlignment::ALIGN_PARAMS_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/argument_alignment.rb#52
RuboCop::Cop::Layout::ArgumentAlignment::FIXED_INDENT_MSG = T.let(T.unsafe(nil), String)
# Here we check if the elements of a multi-line array literal are
# aligned.
#
# @example EnforcedStyle: with_first_element (default)
# # good
#
# array = [1, 2, 3,
# 4, 5, 6]
# array = ['run',
# 'forrest',
# 'run']
#
# # bad
#
# array = [1, 2, 3,
# 4, 5, 6]
# array = ['run',
# 'forrest',
# 'run']
# @example EnforcedStyle: with_fixed_indentation
# # good
#
# array = [1, 2, 3,
# 4, 5, 6]
#
# # bad
#
# array = [1, 2, 3,
# 4, 5, 6]
#
# source://rubocop//lib/rubocop/cop/layout/array_alignment.rb#36
class RuboCop::Cop::Layout::ArrayAlignment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/array_alignment.rb#46
def on_array(node); end
private
# source://rubocop//lib/rubocop/cop/layout/array_alignment.rb#55
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/array_alignment.rb#67
def base_column(node, args); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/array_alignment.rb#63
def fixed_indentation?; end
# source://rubocop//lib/rubocop/cop/layout/array_alignment.rb#59
def message(_range); end
# source://rubocop//lib/rubocop/cop/layout/array_alignment.rb#78
def target_method_lineno(node); end
end
# source://rubocop//lib/rubocop/cop/layout/array_alignment.rb#40
RuboCop::Cop::Layout::ArrayAlignment::ALIGN_ELEMENTS_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/array_alignment.rb#43
RuboCop::Cop::Layout::ArrayAlignment::FIXED_INDENT_MSG = T.let(T.unsafe(nil), String)
# Checks the indentation of the first line of the
# right-hand-side of a multi-line assignment.
#
# The indentation of the remaining lines can be corrected with
# other cops such as `Layout/IndentationConsistency` and `Layout/EndAlignment`.
#
# @example
# # bad
# value =
# if foo
# 'bar'
# end
#
# # good
# value =
# if foo
# 'bar'
# end
#
# source://rubocop//lib/rubocop/cop/layout/assignment_indentation.rb#25
class RuboCop::Cop::Layout::AssignmentIndentation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::CheckAssignment
include ::RuboCop::Cop::Alignment
extend ::RuboCop::Cop::AutoCorrector
private
# source://rubocop//lib/rubocop/cop/layout/assignment_indentation.rb#43
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/assignment_indentation.rb#34
def check_assignment(node, rhs); end
# source://rubocop//lib/rubocop/cop/layout/assignment_indentation.rb#47
def leftmost_multiple_assignment(node); end
end
# source://rubocop//lib/rubocop/cop/layout/assignment_indentation.rb#30
RuboCop::Cop::Layout::AssignmentIndentation::MSG = T.let(T.unsafe(nil), String)
# Checks whether the end keyword of `begin` is aligned properly.
#
# Two modes are supported through the `EnforcedStyleAlignWith` configuration
# parameter. If it's set to `start_of_line` (which is the default), the
# `end` shall be aligned with the start of the line where the `begin`
# keyword is. If it's set to `begin`, the `end` shall be aligned with the
# `begin` keyword.
#
# `Layout/EndAlignment` cop aligns with keywords (e.g. `if`, `while`, `case`)
# by default. On the other hand, `||= begin` that this cop targets tends to
# align with the start of the line, it defaults to `EnforcedStyleAlignWith: start_of_line`.
# These style can be configured by each cop.
#
# @example EnforcedStyleAlignWith: start_of_line (default)
# # bad
# foo ||= begin
# do_something
# end
#
# # good
# foo ||= begin
# do_something
# end
# @example EnforcedStyleAlignWith: begin
# # bad
# foo ||= begin
# do_something
# end
#
# # good
# foo ||= begin
# do_something
# end
#
# source://rubocop//lib/rubocop/cop/layout/begin_end_alignment.rb#41
class RuboCop::Cop::Layout::BeginEndAlignment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::EndKeywordAlignment
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/begin_end_alignment.rb#48
def on_kwbegin(node); end
private
# source://rubocop//lib/rubocop/cop/layout/begin_end_alignment.rb#63
def alignment_node(node); end
# source://rubocop//lib/rubocop/cop/layout/begin_end_alignment.rb#59
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/begin_end_alignment.rb#54
def check_begin_alignment(node); end
end
# source://rubocop//lib/rubocop/cop/layout/begin_end_alignment.rb#46
RuboCop::Cop::Layout::BeginEndAlignment::MSG = T.let(T.unsafe(nil), String)
# Checks whether the end keywords are aligned properly for do
# end blocks.
#
# Three modes are supported through the `EnforcedStyleAlignWith`
# configuration parameter:
#
# `start_of_block` : the `end` shall be aligned with the
# start of the line where the `do` appeared.
#
# `start_of_line` : the `end` shall be aligned with the
# start of the line where the expression started.
#
# `either` (which is the default) : the `end` is allowed to be in either
# location. The autocorrect will default to `start_of_line`.
#
# @example EnforcedStyleAlignWith: either (default)
# # bad
#
# foo.bar
# .each do
# baz
# end
#
# # good
#
# foo.bar
# .each do
# baz
# end
# @example EnforcedStyleAlignWith: start_of_block
# # bad
#
# foo.bar
# .each do
# baz
# end
#
# # good
#
# foo.bar
# .each do
# baz
# end
# @example EnforcedStyleAlignWith: start_of_line
# # bad
#
# foo.bar
# .each do
# baz
# end
#
# # good
#
# foo.bar
# .each do
# baz
# end
#
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#66
class RuboCop::Cop::Layout::BlockAlignment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#74
def block_end_align_target?(param0 = T.unsafe(nil), param1); end
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#83
def on_block(node); end
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#83
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#89
def style_parameter_name; end
private
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#246
def add_space_before(corrector, loc, delta); end
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#223
def alt_start_msg(start_loc, source_line_column); end
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#145
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#95
def block_end_align_target(node); end
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#113
def check_block_alignment(start_node, block_node); end
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#196
def compute_do_source_line_column(node, end_loc); end
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#238
def compute_start_col(ancestor_node, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#109
def disqualified_parent?(parent, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#105
def end_align_target?(node, parent); end
# In offense message, we want to show the assignment LHS rather than
# the entire assignment.
#
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#191
def find_lhs_node(node); end
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#162
def format_message(start_loc, end_loc, do_source_line_column, error_source_line_column); end
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#233
def format_source_line_column(source_line_column); end
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#215
def loc_to_source_line_column(loc); end
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#126
def register_offense(block_node, start_loc, end_loc, do_source_line_column); end
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#250
def remove_space_before(corrector, end_pos, delta); end
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#172
def start_for_block_node(block_node); end
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#179
def start_for_line_node(block_node); end
end
# source://rubocop//lib/rubocop/cop/layout/block_alignment.rb#71
RuboCop::Cop::Layout::BlockAlignment::MSG = T.let(T.unsafe(nil), String)
# Checks whether the end statement of a do..end block
# is on its own line.
#
# @example
# # bad
# blah do |i|
# foo(i) end
#
# # good
# blah do |i|
# foo(i)
# end
#
# # bad
# blah { |i|
# foo(i) }
#
# # good
# blah { |i|
# foo(i)
# }
#
# source://rubocop//lib/rubocop/cop/layout/block_end_newline.rb#27
class RuboCop::Cop::Layout::BlockEndNewline < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/block_end_newline.rb#33
def on_block(node); end
# source://rubocop//lib/rubocop/cop/layout/block_end_newline.rb#33
def on_numblock(node); end
private
# source://rubocop//lib/rubocop/cop/layout/block_end_newline.rb#66
def last_heredoc_argument(node); end
# source://rubocop//lib/rubocop/cop/layout/block_end_newline.rb#62
def message(node); end
# source://rubocop//lib/rubocop/cop/layout/block_end_newline.rb#76
def offense_range(node); end
# source://rubocop//lib/rubocop/cop/layout/block_end_newline.rb#49
def register_offense(node, offense_range); end
end
# source://rubocop//lib/rubocop/cop/layout/block_end_newline.rb#31
RuboCop::Cop::Layout::BlockEndNewline::MSG = T.let(T.unsafe(nil), String)
# Checks how the `when` and ``in``s of a `case` expression
# are indented in relation to its `case` or `end` keyword.
#
# It will register a separate offense for each misaligned `when` and `in`.
#
# @example
# # If Layout/EndAlignment is set to keyword style (default)
# # *case* and *end* should always be aligned to same depth,
# # and therefore *when* should always be aligned to both -
# # regardless of configuration.
#
# # bad for all styles
# case n
# when 0
# x * 2
# else
# y / 3
# end
#
# case n
# in pattern
# x * 2
# else
# y / 3
# end
#
# # good for all styles
# case n
# when 0
# x * 2
# else
# y / 3
# end
#
# case n
# in pattern
# x * 2
# else
# y / 3
# end
# @example EnforcedStyle: case (default)
# # if EndAlignment is set to other style such as
# # start_of_line (as shown below), then *when* alignment
# # configuration does have an effect.
#
# # bad
# a = case n
# when 0
# x * 2
# else
# y / 3
# end
#
# a = case n
# in pattern
# x * 2
# else
# y / 3
# end
#
# # good
# a = case n
# when 0
# x * 2
# else
# y / 3
# end
#
# a = case n
# in pattern
# x * 2
# else
# y / 3
# end
# @example EnforcedStyle: end
# # bad
# a = case n
# when 0
# x * 2
# else
# y / 3
# end
#
# a = case n
# in pattern
# x * 2
# else
# y / 3
# end
#
# # good
# a = case n
# when 0
# x * 2
# else
# y / 3
# end
#
# a = case n
# in pattern
# x * 2
# else
# y / 3
# end
#
# source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#112
class RuboCop::Cop::Layout::CaseIndentation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#120
def on_case(case_node); end
# source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#127
def on_case_match(case_match_node); end
private
# source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#193
def base_column(case_node, base); end
# source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#150
def check_when(when_node, branch_type); end
# source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#182
def detect_incorrect_style(when_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#136
def end_and_last_conditional_same_line?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#146
def enforced_style_end?; end
# source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#169
def incorrect_style(when_node, branch_type); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#161
def indent_one_step?; end
# source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#165
def indentation_width; end
# source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#207
def replacement(node); end
# source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#200
def whitespace_range(node); end
end
# source://rubocop//lib/rubocop/cop/layout/case_indentation.rb#118
RuboCop::Cop::Layout::CaseIndentation::MSG = T.let(T.unsafe(nil), String)
# Checks if the code style follows the ExpectedOrder configuration:
#
# `Categories` allows us to map macro names into a category.
#
# Consider an example of code style that covers the following order:
#
# * Module inclusion (include, prepend, extend)
# * Constants
# * Associations (has_one, has_many)
# * Public attribute macros (attr_accessor, attr_writer, attr_reader)
# * Other macros (validates, validate)
# * Public class methods
# * Initializer
# * Public instance methods
# * Protected attribute macros (attr_accessor, attr_writer, attr_reader)
# * Protected instance methods
# * Private attribute macros (attr_accessor, attr_writer, attr_reader)
# * Private instance methods
#
# You can configure the following order:
#
# [source,yaml]
# ----
# Layout/ClassStructure:
# ExpectedOrder:
# - module_inclusion
# - constants
# - association
# - public_attribute_macros
# - public_delegate
# - macros
# - public_class_methods
# - initializer
# - public_methods
# - protected_attribute_macros
# - protected_methods
# - private_attribute_macros
# - private_delegate
# - private_methods
# ----
#
# Instead of putting all literals in the expected order, is also
# possible to group categories of macros. Visibility levels are handled
# automatically.
#
# [source,yaml]
# ----
# Layout/ClassStructure:
# Categories:
# association:
# - has_many
# - has_one
# attribute_macros:
# - attr_accessor
# - attr_reader
# - attr_writer
# macros:
# - validates
# - validate
# module_inclusion:
# - include
# - prepend
# - extend
# ----
#
# @example
# # bad
# # Expect extend be before constant
# class Person < ApplicationRecord
# has_many :orders
# ANSWER = 42
#
# extend SomeModule
# include AnotherModule
# end
#
# # good
# class Person
# # extend and include go first
# extend SomeModule
# include AnotherModule
#
# # inner classes
# CustomError = Class.new(StandardError)
#
# # constants are next
# SOME_CONSTANT = 20
#
# # afterwards we have public attribute macros
# attr_reader :name
#
# # followed by other macros (if any)
# validates :name
#
# # then we have public delegate macros
# delegate :to_s, to: :name
#
# # public class methods are next in line
# def self.some_method
# end
#
# # initialization goes between class methods and instance methods
# def initialize
# end
#
# # followed by other public instance methods
# def some_method
# end
#
# # protected attribute macros and methods go next
# protected
#
# attr_reader :protected_name
#
# def some_protected_method
# end
#
# # private attribute macros, delegate macros and methods
# # are grouped near the end
# private
#
# attr_reader :private_name
#
# delegate :some_private_delegate, to: :name
#
# def some_private_method
# end
# end
#
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#142
class RuboCop::Cop::Layout::ClassStructure < ::RuboCop::Cop::Base
include ::RuboCop::Cop::VisibilityHelp
include ::RuboCop::Cop::CommentsHelp
extend ::RuboCop::Cop::AutoCorrector
# Validates code style on class declaration.
# Add offense when find a node out of expected order.
#
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#158
def on_class(class_node); end
# Validates code style on class declaration.
# Add offense when find a node out of expected order.
#
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#158
def on_sclass(class_node); end
private
# Autocorrect by swapping between two nodes autocorrecting them
#
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#174
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#305
def begin_pos_with_comment(node); end
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#328
def buffer; end
# Setting categories hash allow you to group methods in group to match
# in the {expected_order}.
#
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#340
def categories; end
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#234
def class_elements(class_node); end
# Classifies a node to match with something in the {expected_order}
#
# @param node to be analysed
# @return String when the node type is a `:block` then
# {classify} recursively with the first children
# @return String when the node type is a `:send` then {find_category}
# by method name
# @return String otherwise trying to {humanize_node} of the current node
#
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#194
def classify(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#271
def dynamic_constant?(node); end
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#295
def end_position_for(node); end
# Load expected order from `ExpectedOrder` config.
# Define new terms in the expected order by adding new {categories}.
#
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#334
def expected_order; end
# Categorize a node according to the {expected_order}
# Try to match {categories} values against the node's method_name given
# also its visibility.
#
# @param node to be analysed.
# @return [String] with the key category or the `method_name` as string
#
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#212
def find_category(node); end
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#324
def find_heredoc(node); end
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#262
def humanize_node(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#246
def ignore?(node, classification); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#253
def ignore_for_autocorrect?(node, sibling); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#289
def marked_as_private_constant?(node, name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#279
def private_constant?(node); end
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#320
def start_line_position(node); end
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#225
def walk_over_nested_class_definition(class_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#316
def whole_line_comment_at_line?(line); end
end
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#147
RuboCop::Cop::Layout::ClassStructure::HUMANIZED_NODE_TYPE = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/layout/class_structure.rb#154
RuboCop::Cop::Layout::ClassStructure::MSG = T.let(T.unsafe(nil), String)
# Checks the indentation of here document closings.
#
# @example
#
# # bad
# class Foo
# def bar
# <<~SQL
# 'Hi'
# SQL
# end
# end
#
# # good
# class Foo
# def bar
# <<~SQL
# 'Hi'
# SQL
# end
# end
#
# # bad
#
# # heredoc contents is before closing heredoc.
# foo arg,
# <<~EOS
# Hi
# EOS
#
# # good
# foo arg,
# <<~EOS
# Hi
# EOS
#
# # good
# foo arg,
# <<~EOS
# Hi
# EOS
#
# source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#48
class RuboCop::Cop::Layout::ClosingHeredocIndentation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Heredoc
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#57
def on_heredoc(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#74
def argument_indentation_correct?(node); end
# source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#82
def closing_indentation(node); end
# source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#101
def find_node_used_heredoc_argument(node); end
# source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#90
def heredoc_closing(node); end
# source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#86
def heredoc_opening(node); end
# source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#117
def indent_level(source_line); end
# source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#94
def indented_end(node); end
# source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#109
def message(node); end
# source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#70
def opening_indentation(node); end
end
# source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#53
RuboCop::Cop::Layout::ClosingHeredocIndentation::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#54
RuboCop::Cop::Layout::ClosingHeredocIndentation::MSG_ARG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/closing_heredoc_indentation.rb#52
RuboCop::Cop::Layout::ClosingHeredocIndentation::SIMPLE_HEREDOC = T.let(T.unsafe(nil), String)
# Checks the indentation of hanging closing parentheses in
# method calls, method definitions, and grouped expressions. A hanging
# closing parenthesis means `)` preceded by a line break.
#
# @example
#
# # bad
# some_method(
# a,
# b
# )
#
# some_method(
# a, b
# )
#
# some_method(a, b, c
# )
#
# some_method(a,
# b,
# c
# )
#
# some_method(a,
# x: 1,
# y: 2
# )
#
# # Scenario 1: When First Parameter Is On Its Own Line
#
# # good: when first param is on a new line, right paren is *always*
# # outdented by IndentationWidth
# some_method(
# a,
# b
# )
#
# # good
# some_method(
# a, b
# )
#
# # Scenario 2: When First Parameter Is On The Same Line
#
# # good: when all other params are also on the same line, outdent
# # right paren by IndentationWidth
# some_method(a, b, c
# )
#
# # good: when all other params are on multiple lines, but are lined
# # up, align right paren with left paren
# some_method(a,
# b,
# c
# )
#
# # good: when other params are not lined up on multiple lines, outdent
# # right paren by IndentationWidth
# some_method(a,
# x: 1,
# y: 2
# )
#
# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#71
class RuboCop::Cop::Layout::ClosingParenthesisIndentation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#84
def on_begin(node); end
# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#79
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#88
def on_def(node); end
# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#88
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#79
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#157
def all_elements_aligned?(elements); end
# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#95
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#99
def check(node, elements); end
# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#107
def check_for_elements(node, elements); end
# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#125
def check_for_no_elements(node); end
# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#171
def correct_column_candidates(node, left_paren); end
# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#144
def expected_column(left_paren, elements); end
# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#167
def first_argument_line(elements); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#187
def line_break_after_left_paren?(left_paren, elements); end
# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#179
def message(correct_column, left_paren, right_paren); end
end
# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#77
RuboCop::Cop::Layout::ClosingParenthesisIndentation::MSG_ALIGN = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/closing_parenthesis_indentation.rb#75
RuboCop::Cop::Layout::ClosingParenthesisIndentation::MSG_INDENT = T.let(T.unsafe(nil), String)
# Checks the indentation of comments.
#
# @example
# # bad
# # comment here
# def method_name
# end
#
# # comment here
# a = 'hello'
#
# # yet another comment
# if true
# true
# end
#
# # good
# # comment here
# def method_name
# end
#
# # comment here
# a = 'hello'
#
# # yet another comment
# if true
# true
# end
# @example AllowForAlignment: false (default)
# # bad
# a = 1 # A really long comment
# # spanning two lines.
#
# # good
# # A really long comment spanning one line.
# a = 1
# @example AllowForAlignment: true
# # good
# a = 1 # A really long comment
# # spanning two lines.
#
# source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#48
class RuboCop::Cop::Layout::CommentIndentation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#55
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#61
def autocorrect(corrector, comment); end
# source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#88
def autocorrect_one(corrector, comment); end
# Corrects all comment lines that occur immediately before the given
# comment and have the same indentation. This is to avoid a long chain
# of correcting, saving the file, parsing and inspecting again, and
# then correcting one more line, and so on.
#
# source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#71
def autocorrect_preceding_comments(corrector, comment); end
# source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#92
def check(comment, comment_index); end
# source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#145
def correct_indentation(next_line); end
# Returns true if:
# a) the cop is configured to allow extra indentation for alignment, and
# b) the currently inspected comment is aligned with the nearest preceding end-of-line
# comment.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#121
def correctly_aligned_with_preceding_comment?(comment_index, column); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#156
def less_indented?(line); end
# source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#140
def line_after_comment(comment); end
# source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#131
def message(column, correct_comment_indentation); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#135
def own_line_comment?(comment); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#82
def should_correct?(preceding_comment, reference_comment); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#162
def two_alternatives?(line); end
end
# source://rubocop//lib/rubocop/cop/layout/comment_indentation.rb#52
RuboCop::Cop::Layout::CommentIndentation::MSG = T.let(T.unsafe(nil), String)
# Checks for conditions that are not on the same line as
# if/while/until.
#
# @example
#
# # bad
# if
# some_condition
# do_something
# end
#
# # good
# if some_condition
# do_something
# end
#
# source://rubocop//lib/rubocop/cop/layout/condition_position.rb#21
class RuboCop::Cop::Layout::ConditionPosition < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/condition_position.rb#27
def on_if(node); end
# source://rubocop//lib/rubocop/cop/layout/condition_position.rb#33
def on_until(node); end
# source://rubocop//lib/rubocop/cop/layout/condition_position.rb#33
def on_while(node); end
private
# source://rubocop//lib/rubocop/cop/layout/condition_position.rb#40
def check(node); end
# source://rubocop//lib/rubocop/cop/layout/condition_position.rb#54
def message(condition); end
end
# source://rubocop//lib/rubocop/cop/layout/condition_position.rb#25
RuboCop::Cop::Layout::ConditionPosition::MSG = T.let(T.unsafe(nil), String)
# Checks whether the end keywords of method definitions are
# aligned properly.
#
# Two modes are supported through the EnforcedStyleAlignWith configuration
# parameter. If it's set to `start_of_line` (which is the default), the
# `end` shall be aligned with the start of the line where the `def`
# keyword is. If it's set to `def`, the `end` shall be aligned with the
# `def` keyword.
#
# @example EnforcedStyleAlignWith: start_of_line (default)
# # bad
#
# private def foo
# end
#
# # good
#
# private def foo
# end
# @example EnforcedStyleAlignWith: def
# # bad
#
# private def foo
# end
#
# # good
#
# private def foo
# end
#
# source://rubocop//lib/rubocop/cop/layout/def_end_alignment.rb#36
class RuboCop::Cop::Layout::DefEndAlignment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::EndKeywordAlignment
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/def_end_alignment.rb#43
def on_def(node); end
# source://rubocop//lib/rubocop/cop/layout/def_end_alignment.rb#43
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/layout/def_end_alignment.rb#48
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/layout/def_end_alignment.rb#63
def autocorrect(corrector, node); end
end
# source://rubocop//lib/rubocop/cop/layout/def_end_alignment.rb#41
RuboCop::Cop::Layout::DefEndAlignment::MSG = T.let(T.unsafe(nil), String)
# Checks the . position in multi-line method calls.
#
# @example EnforcedStyle: leading (default)
# # bad
# something.
# method
#
# # good
# something
# .method
# @example EnforcedStyle: trailing
# # bad
# something
# .method
#
# # good
# something.
# method
#
# source://rubocop//lib/rubocop/cop/layout/dot_position.rb#25
class RuboCop::Cop::Layout::DotPosition < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/dot_position.rb#34
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/layout/dot_position.rb#34
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/layout/dot_position.rb#49
def autocorrect(corrector, dot, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/dot_position.rb#99
def correct_dot_position_style?(dot_line, selector_line); end
# source://rubocop//lib/rubocop/cop/layout/dot_position.rb#126
def end_range(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/dot_position.rb#122
def heredoc?(node); end
# source://rubocop//lib/rubocop/cop/layout/dot_position.rb#114
def last_heredoc_line(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/dot_position.rb#95
def line_between?(first_line, second_line); end
# source://rubocop//lib/rubocop/cop/layout/dot_position.rb#64
def message(dot); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/dot_position.rb#74
def proper_dot_position?(node); end
# source://rubocop//lib/rubocop/cop/layout/dot_position.rb#106
def receiver_end_line(node); end
# source://rubocop//lib/rubocop/cop/layout/dot_position.rb#130
def selector_range(node); end
class << self
# source://rubocop//lib/rubocop/cop/layout/dot_position.rb#30
def autocorrect_incompatible_with; end
end
end
# Checks the alignment of else keywords. Normally they should
# be aligned with an if/unless/while/until/begin/def/rescue keyword, but there
# are special cases when they should follow the same rules as the
# alignment of end.
#
# @example
# # bad
# if something
# code
# else
# code
# end
#
# # bad
# if something
# code
# elsif something
# code
# end
#
# # good
# if something
# code
# else
# code
# end
#
# source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#32
class RuboCop::Cop::Layout::ElseAlignment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::EndKeywordAlignment
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::CheckAssignment
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#57
def on_case(node); end
# source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#63
def on_case_match(node); end
# source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#40
def on_if(node, base = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#51
def on_rescue(node); end
private
# source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#147
def assignment_node(node); end
# source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#71
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#106
def base_for_method_definition(node); end
# source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#80
def base_range_of_if(node, base); end
# source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#89
def base_range_of_rescue(node); end
# source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#131
def check_alignment(base_range, else_range); end
# source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#115
def check_assignment(node, rhs); end
# source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#75
def check_nested(node, base); end
end
# source://rubocop//lib/rubocop/cop/layout/else_alignment.rb#38
RuboCop::Cop::Layout::ElseAlignment::MSG = T.let(T.unsafe(nil), String)
# Checks empty comment.
#
# @example
# # bad
#
# #
# class Foo
# end
#
# # good
#
# #
# # Description of `Foo` class.
# #
# class Foo
# end
# @example AllowBorderComment: true (default)
# # good
#
# def foo
# end
#
# #################
#
# def bar
# end
# @example AllowBorderComment: false
# # bad
#
# def foo
# end
#
# #################
#
# def bar
# end
# @example AllowMarginComment: true (default)
# # good
#
# #
# # Description of `Foo` class.
# #
# class Foo
# end
# @example AllowMarginComment: false
# # bad
#
# #
# # Description of `Foo` class.
# #
# class Foo
# end
#
# source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#63
class RuboCop::Cop::Layout::EmptyComment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#69
def on_new_investigation; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#133
def allow_border_comment?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#137
def allow_margin_comment?; end
# source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#97
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#129
def comment_text(comment); end
# source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#108
def concat_consecutive_comments(comments); end
# source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#141
def current_token(comment); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#119
def empty_comment_only?(comment_text); end
# source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#85
def investigate(comments); end
# source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#145
def previous_token(node); end
end
# source://rubocop//lib/rubocop/cop/layout/empty_comment.rb#67
RuboCop::Cop::Layout::EmptyComment::MSG = T.let(T.unsafe(nil), String)
# Enforces empty line after guard clause.
#
# This cop allows `# :nocov:` directive after guard clause because
# SimpleCov excludes code from the coverage report by wrapping it in `# :nocov:`:
#
# [source,ruby]
# ----
# def foo
# # :nocov:
# return if condition
# # :nocov:
# bar
# end
# ----
#
# Refer to SimpleCov's documentation for more details:
# https://github.com/simplecov-ruby/simplecov#ignoringskipping-code
#
# @example
#
# # bad
# def foo
# return if need_return?
# bar
# end
#
# # good
# def foo
# return if need_return?
#
# bar
# end
#
# # good
# def foo
# return if something?
# return if something_different?
#
# bar
# end
#
# # also good
# def foo
# if something?
# do_something
# return if need_return?
# end
# end
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#54
class RuboCop::Cop::Layout::EmptyLineAfterGuardClause < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::PathUtil
extend ::RuboCop::Cop::Util
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#63
def on_if(node); end
private
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#84
def autocorrect(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#106
def contains_guard_clause?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#99
def correct_style?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#181
def heredoc?(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#174
def heredoc_line(node, heredoc_node); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#148
def last_heredoc_argument(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#162
def last_heredoc_argument_node(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#199
def multiple_statements_on_line?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#121
def next_line_allowed_directive_comment?(line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#117
def next_line_empty?(line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#110
def next_line_empty_or_allowed_directive_comment?(line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#127
def next_line_rescue_or_ensure?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#141
def next_sibling_empty_or_guard_clause?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#132
def next_sibling_parent_empty_or_else?(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#191
def offense_location(node); end
# SimpleCov excludes code from the coverage report by wrapping it in `# :nocov:`:
# https://github.com/simplecov-ruby/simplecov#ignoringskipping-code
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#208
def simplecov_directive_comment?(comment); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#185
def use_heredoc_in_condition?(condition); end
end
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#60
RuboCop::Cop::Layout::EmptyLineAfterGuardClause::END_OF_HEREDOC_LINE = T.let(T.unsafe(nil), Integer)
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#59
RuboCop::Cop::Layout::EmptyLineAfterGuardClause::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_guard_clause.rb#61
RuboCop::Cop::Layout::EmptyLineAfterGuardClause::SIMPLE_DIRECTIVE_COMMENT_PATTERN = T.let(T.unsafe(nil), Regexp)
# Checks for a newline after the final magic comment.
#
# @example
# # good
# # frozen_string_literal: true
#
# # Some documentation for Person
# class Person
# # Some code
# end
#
# # bad
# # frozen_string_literal: true
# # Some documentation for Person
# class Person
# # Some code
# end
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_magic_comment.rb#23
class RuboCop::Cop::Layout::EmptyLineAfterMagicComment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_magic_comment.rb#29
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_magic_comment.rb#61
def comments_before_code(source); end
# Find the last magic comment in the source file.
#
# Take all comments that precede the first line of code (or just take
# them all in the case when there is no code), select the
# magic comments, and return the last magic comment in the file.
#
# @return [Parser::Source::Comment] if magic comments exist before code
# @return [nil] otherwise
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_magic_comment.rb#55
def last_magic_comment(source); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_magic_comment.rb#43
def offending_range(last_magic_comment); end
end
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_magic_comment.rb#27
RuboCop::Cop::Layout::EmptyLineAfterMagicComment::MSG = T.let(T.unsafe(nil), String)
# Enforces empty line after multiline condition.
#
# @example
# # bad
# if multiline &&
# condition
# do_something
# end
#
# # good
# if multiline &&
# condition
#
# do_something
# end
#
# # bad
# case x
# when foo,
# bar
# do_something
# end
#
# # good
# case x
# when foo,
# bar
#
# do_something
# end
#
# # bad
# begin
# do_something
# rescue FooError,
# BarError
# handle_error
# end
#
# # good
# begin
# do_something
# rescue FooError,
# BarError
#
# handle_error
# end
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#54
class RuboCop::Cop::Layout::EmptyLineAfterMultilineCondition < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#82
def on_case(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#60
def on_if(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#93
def on_rescue(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#70
def on_until(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#75
def on_until_post(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#70
def on_while(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#75
def on_while_post(node); end
private
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#127
def autocorrect(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#105
def check_condition(condition); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#120
def multiline_rescue_exceptions?(exception_nodes); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#116
def multiline_when_condition?(when_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#112
def next_line_empty?(line); end
end
# source://rubocop//lib/rubocop/cop/layout/empty_line_after_multiline_condition.rb#58
RuboCop::Cop::Layout::EmptyLineAfterMultilineCondition::MSG = T.let(T.unsafe(nil), String)
# Checks whether class/module/method definitions are
# separated by one or more empty lines.
#
# `NumberOfEmptyLines` can be an integer (default is 1) or
# an array (e.g. [1, 2]) to specify a minimum and maximum
# number of empty lines permitted.
#
# `AllowAdjacentOneLineDefs` configures whether adjacent
# one-line definitions are considered an offense.
#
# @example EmptyLineBetweenMethodDefs: true (default)
# # checks for empty lines between method definitions.
#
# # bad
# def a
# end
# def b
# end
# @example
#
# # good
# def a
# end
#
# def b
# end
# @example EmptyLineBetweenClassDefs: true (default)
# # checks for empty lines between class definitions.
#
# # bad
# class A
# end
# class B
# end
# def b
# end
# @example
#
# # good
# class A
# end
#
# class B
# end
#
# def b
# end
# @example EmptyLineBetweenModuleDefs: true (default)
# # checks for empty lines between module definitions.
#
# # bad
# module A
# end
# module B
# end
# def b
# end
# @example
#
# # good
# module A
# end
#
# module B
# end
#
# def b
# end
# @example AllowAdjacentOneLineDefs: true (default)
#
# # good
# class ErrorA < BaseError; end
# class ErrorB < BaseError; end
# class ErrorC < BaseError; end
#
# # good
# class ErrorA < BaseError; end
#
# class ErrorB < BaseError; end
#
# class ErrorC < BaseError; end
# @example AllowAdjacentOneLineDefs: false
#
# # bad
# class ErrorA < BaseError; end
# class ErrorB < BaseError; end
# class ErrorC < BaseError; end
#
# # good
# class ErrorA < BaseError; end
#
# class ErrorB < BaseError; end
#
# class ErrorC < BaseError; end
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#108
class RuboCop::Cop::Layout::EmptyLineBetweenDefs < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#145
def autocorrect(corrector, prev_def, node, count); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#130
def check_defs(nodes); end
# We operate on `begin` nodes, instead of using `OnMethodDef`,
# so that we can walk over pairs of consecutive nodes and
# efficiently access a node's predecessor; #prev_node ends up
# doing a linear scan over siblings, so we don't want to call
# it on each def.
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#123
def on_begin(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#291
def allowance_range?; end
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#275
def autocorrect_insert_lines(corrector, newline_pos, count); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#268
def autocorrect_remove_lines(corrector, newline_pos, count); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#228
def blank_lines_count_between(first_def_node, second_def_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#172
def candidate?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#192
def class_candidate?(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#256
def def_end(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#164
def def_location(correction_node); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#248
def def_start(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#179
def empty_line_between_macros; end
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#260
def end_loc(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#206
def expected_lines; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#224
def line_count_allowed?(count); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#240
def lines_between_defs(first_def_node, second_def_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#183
def macro_candidate?(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#236
def maximum_empty_lines; end
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#200
def message(node, count: T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#188
def method_candidate?(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#232
def minimum_empty_lines; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#196
def module_candidate?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#215
def multiple_blank_lines_groups?(first_def_node, second_def_node); end
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#282
def node_type(node); end
class << self
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#114
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/layout/empty_line_between_defs.rb#112
RuboCop::Cop::Layout::EmptyLineBetweenDefs::MSG = T.let(T.unsafe(nil), String)
# Checks for two or more consecutive blank lines.
#
# @example
#
# # bad - It has two empty lines.
# some_method
# # one empty line
# # two empty lines
# some_method
#
# # good
# some_method
# # one empty line
# some_method
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines.rb#21
class RuboCop::Cop::Layout::EmptyLines < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/empty_lines.rb#28
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/layout/empty_lines.rb#45
def each_extra_empty_line(lines); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines.rb#63
def exceeds_line_offset?(line_diff); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines.rb#67
def previous_and_current_lines_empty?(line); end
end
# source://rubocop//lib/rubocop/cop/layout/empty_lines.rb#26
RuboCop::Cop::Layout::EmptyLines::LINE_OFFSET = T.let(T.unsafe(nil), Integer)
# source://rubocop//lib/rubocop/cop/layout/empty_lines.rb#25
RuboCop::Cop::Layout::EmptyLines::MSG = T.let(T.unsafe(nil), String)
# Access modifiers should be surrounded by blank lines.
#
# @example EnforcedStyle: around (default)
#
# # bad
# class Foo
# def bar; end
# private
# def baz; end
# end
#
# # good
# class Foo
# def bar; end
#
# private
#
# def baz; end
# end
# @example EnforcedStyle: only_before
#
# # bad
# class Foo
# def bar; end
# private
# def baz; end
# end
#
# # good
# class Foo
# def bar; end
#
# private
# def baz; end
# end
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#43
class RuboCop::Cop::Layout::EmptyLinesAroundAccessModifier < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# @return [EmptyLinesAroundAccessModifier] a new instance of EmptyLinesAroundAccessModifier
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#56
def initialize(config = T.unsafe(nil), options = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#81
def on_block(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#62
def on_class(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#71
def on_module(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#81
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#76
def on_sclass(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#87
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#115
def allowed_only_before_style?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#164
def block_start?(line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#170
def body_end?(line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#158
def class_def?(line); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#124
def correct_next_line_if_denied_style(corrector, node, line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#154
def empty_lines_around?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#104
def expected_empty_lines?(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#180
def message(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#189
def message_for_around_style(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#199
def message_for_only_before_style(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#176
def next_empty_line_range(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#148
def next_line_empty?(last_send_line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#141
def previous_line_empty?(send_line); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#137
def previous_line_ignoring_comments(processed_source, send_line); end
end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#48
RuboCop::Cop::Layout::EmptyLinesAroundAccessModifier::MSG_AFTER = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#52
RuboCop::Cop::Layout::EmptyLinesAroundAccessModifier::MSG_AFTER_FOR_ONLY_BEFORE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#49
RuboCop::Cop::Layout::EmptyLinesAroundAccessModifier::MSG_BEFORE_AND_AFTER = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#51
RuboCop::Cop::Layout::EmptyLinesAroundAccessModifier::MSG_BEFORE_FOR_ONLY_BEFORE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_access_modifier.rb#54
RuboCop::Cop::Layout::EmptyLinesAroundAccessModifier::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks if empty lines exist around the arguments
# of a method invocation.
#
# @example
# # bad
# do_something(
# foo
#
# )
#
# process(bar,
#
# baz: qux,
# thud: fred)
#
# some_method(
#
# [1,2,3],
# x: y
# )
#
# # good
# do_something(
# foo
# )
#
# process(bar,
# baz: qux,
# thud: fred)
#
# some_method(
# [1,2,3],
# x: y
# )
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#41
class RuboCop::Cop::Layout::EmptyLinesAroundArguments < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#47
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#47
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#65
def empty_lines(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#71
def extra_lines(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#93
def inner_lines(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#84
def line_numbers(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#97
def outer_lines(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#78
def processed_lines(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#61
def receiver_and_method_call_on_different_lines?(node); end
end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_arguments.rb#45
RuboCop::Cop::Layout::EmptyLinesAroundArguments::MSG = T.let(T.unsafe(nil), String)
# Checks for a newline after an attribute accessor or a group of them.
# `alias` syntax and `alias_method`, `public`, `protected`, and `private` methods are allowed
# by default. These are customizable with `AllowAliasSyntax` and `AllowedMethods` options.
#
# @example
# # bad
# attr_accessor :foo
# def do_something
# end
#
# # good
# attr_accessor :foo
#
# def do_something
# end
#
# # good
# attr_accessor :foo
# attr_reader :bar
# attr_writer :baz
# attr :qux
#
# def do_something
# end
# @example AllowAliasSyntax: true (default)
# # good
# attr_accessor :foo
# alias :foo? :foo
#
# def do_something
# end
# @example AllowAliasSyntax: false
# # bad
# attr_accessor :foo
# alias :foo? :foo
#
# def do_something
# end
#
# # good
# attr_accessor :foo
#
# alias :foo? :foo
#
# def do_something
# end
# @example AllowedMethods: ['private']
# # good
# attr_accessor :foo
# private :foo
#
# def do_something
# end
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#63
class RuboCop::Cop::Layout::EmptyLinesAroundAttributeAccessor < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::AllowedMethods
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#70
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#123
def allow_alias?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#133
def allow_alias_syntax?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#127
def attribute_or_allowed_method?(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#83
def autocorrect(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#107
def next_line_empty?(line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#94
def next_line_empty_or_enable_directive_comment?(line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#101
def next_line_enable_directive_comment?(line); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#117
def next_line_node(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#111
def require_empty_line?(node); end
end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_attribute_accessor.rb#68
RuboCop::Cop::Layout::EmptyLinesAroundAttributeAccessor::MSG = T.let(T.unsafe(nil), String)
# Checks if empty lines exist around the bodies of begin-end
# blocks.
#
# @example
#
# # good
#
# begin
# # ...
# end
#
# # bad
#
# begin
#
# # ...
#
# end
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_begin_body.rb#24
class RuboCop::Cop::Layout::EmptyLinesAroundBeginBody < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::Layout::EmptyLinesAroundBody
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_begin_body.rb#30
def on_kwbegin(node); end
private
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_begin_body.rb#36
def style; end
end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_begin_body.rb#28
RuboCop::Cop::Layout::EmptyLinesAroundBeginBody::KIND = T.let(T.unsafe(nil), String)
# Checks if empty lines around the bodies of blocks match
# the configuration.
#
# @example EnforcedStyle: no_empty_lines (default)
# # good
#
# foo do |bar|
# # ...
# end
# @example EnforcedStyle: empty_lines
# # good
#
# foo do |bar|
#
# # ...
#
# end
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_block_body.rb#24
class RuboCop::Cop::Layout::EmptyLinesAroundBlockBody < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::Layout::EmptyLinesAroundBody
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_block_body.rb#30
def on_block(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_block_body.rb#30
def on_numblock(node); end
end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_block_body.rb#28
RuboCop::Cop::Layout::EmptyLinesAroundBlockBody::KIND = T.let(T.unsafe(nil), String)
# Common functionality for checking if presence/absence of empty lines
# around some kind of body matches the configuration.
#
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#8
module RuboCop::Cop::Layout::EmptyLinesAroundBody
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::AST::NodePattern::Macros
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#20
def constant_definition?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#23
def empty_line_required?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#26
def check(node, body, adjusted_first_line: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#81
def check_beginning(style, first_line); end
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#67
def check_both(style, first_line, last_line); end
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#108
def check_deferred_empty_line(body); end
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#43
def check_empty_lines_except_namespace(body, first_line, last_line); end
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#51
def check_empty_lines_special(body, first_line, last_line); end
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#85
def check_ending(style, last_line); end
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#98
def check_line(style, line, msg); end
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#89
def check_source(style, line_no, desc); end
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#159
def deferred_message(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#132
def first_child_requires_empty_line?(body); end
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#140
def first_empty_line_required_child(body); end
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#155
def message(type, desc); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#122
def namespace?(body, with_one_child: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#148
def previous_line_ignoring_comments(send_line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#163
def valid_body_style?(body); end
end
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#15
RuboCop::Cop::Layout::EmptyLinesAroundBody::MSG_DEFERRED = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#13
RuboCop::Cop::Layout::EmptyLinesAroundBody::MSG_EXTRA = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/mixin/empty_lines_around_body.rb#14
RuboCop::Cop::Layout::EmptyLinesAroundBody::MSG_MISSING = T.let(T.unsafe(nil), String)
# Checks if empty lines around the bodies of classes match
# the configuration.
#
# @example EnforcedStyle: no_empty_lines (default)
# # good
#
# class Foo
# def bar
# # ...
# end
# end
# @example EnforcedStyle: empty_lines
# # good
#
# class Foo
#
# def bar
# # ...
# end
#
# end
# @example EnforcedStyle: empty_lines_except_namespace
# # good
#
# class Foo
# class Bar
#
# # ...
#
# end
# end
# @example EnforcedStyle: empty_lines_special
# # good
# class Foo
#
# def bar; end
#
# end
# @example EnforcedStyle: beginning_only
# # good
#
# class Foo
#
# def bar
# # ...
# end
# end
# @example EnforcedStyle: ending_only
# # good
#
# class Foo
# def bar
# # ...
# end
#
# end
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_class_body.rb#67
class RuboCop::Cop::Layout::EmptyLinesAroundClassBody < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::Layout::EmptyLinesAroundBody
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_class_body.rb#73
def on_class(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_class_body.rb#79
def on_sclass(node); end
end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_class_body.rb#71
RuboCop::Cop::Layout::EmptyLinesAroundClassBody::KIND = T.let(T.unsafe(nil), String)
# Checks if empty lines exist around the bodies of `begin`
# sections. This cop doesn't check empty lines at `begin` body
# beginning/end and around method definition body.
# `Style/EmptyLinesAroundBeginBody` or `Style/EmptyLinesAroundMethodBody`
# can be used for this purpose.
#
# @example
#
# # good
#
# begin
# do_something
# rescue
# do_something2
# else
# do_something3
# ensure
# do_something4
# end
#
# # good
#
# def foo
# do_something
# rescue
# do_something2
# end
#
# # bad
#
# begin
# do_something
#
# rescue
#
# do_something2
#
# else
#
# do_something3
#
# ensure
#
# do_something4
# end
#
# # bad
#
# def foo
# do_something
#
# rescue
#
# do_something2
# end
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#61
class RuboCop::Cop::Layout::EmptyLinesAroundExceptionHandlingKeywords < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::Layout::EmptyLinesAroundBody
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#67
def on_block(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#67
def on_def(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#67
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#74
def on_kwbegin(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#67
def on_numblock(node); end
private
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#81
def check_body(body, line_of_def_or_kwbegin); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#113
def keyword_locations(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#130
def keyword_locations_in_ensure(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#126
def keyword_locations_in_rescue(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#96
def last_body_and_end_on_same_line?(body); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#105
def message(location, keyword); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#109
def style; end
end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_exception_handling_keywords.rb#65
RuboCop::Cop::Layout::EmptyLinesAroundExceptionHandlingKeywords::MSG = T.let(T.unsafe(nil), String)
# Checks if empty lines exist around the bodies of methods.
#
# @example
#
# # good
#
# def foo
# # ...
# end
#
# # bad
#
# def bar
#
# # ...
#
# end
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_method_body.rb#23
class RuboCop::Cop::Layout::EmptyLinesAroundMethodBody < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::Layout::EmptyLinesAroundBody
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_method_body.rb#29
def on_def(node); end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_method_body.rb#29
def on_defs(node); end
private
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_method_body.rb#36
def style; end
end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_method_body.rb#27
RuboCop::Cop::Layout::EmptyLinesAroundMethodBody::KIND = T.let(T.unsafe(nil), String)
# Checks if empty lines around the bodies of modules match
# the configuration.
#
# @example EnforcedStyle: no_empty_lines (default)
# # good
#
# module Foo
# def bar
# # ...
# end
# end
# @example EnforcedStyle: empty_lines
# # good
#
# module Foo
#
# def bar
# # ...
# end
#
# end
# @example EnforcedStyle: empty_lines_except_namespace
# # good
#
# module Foo
# module Bar
#
# # ...
#
# end
# end
# @example EnforcedStyle: empty_lines_special
# # good
# module Foo
#
# def bar; end
#
# end
#
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_module_body.rb#47
class RuboCop::Cop::Layout::EmptyLinesAroundModuleBody < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::Layout::EmptyLinesAroundBody
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_module_body.rb#53
def on_module(node); end
end
# source://rubocop//lib/rubocop/cop/layout/empty_lines_around_module_body.rb#51
RuboCop::Cop::Layout::EmptyLinesAroundModuleBody::KIND = T.let(T.unsafe(nil), String)
# Checks whether the end keywords are aligned properly.
#
# Three modes are supported through the `EnforcedStyleAlignWith`
# configuration parameter:
#
# If it's set to `keyword` (which is the default), the `end`
# shall be aligned with the start of the keyword (if, class, etc.).
#
# If it's set to `variable` the `end` shall be aligned with the
# left-hand-side of the variable assignment, if there is one.
#
# If it's set to `start_of_line`, the `end` shall be aligned with the
# start of the line where the matching keyword appears.
#
# This `Layout/EndAlignment` cop aligns with keywords (e.g. `if`, `while`, `case`)
# by default. On the other hand, `Layout/BeginEndAlignment` cop aligns with
# `EnforcedStyleAlignWith: start_of_line` by default due to `||= begin` tends
# to align with the start of the line. `Layout/DefEndAlignment` cop also aligns with
# `EnforcedStyleAlignWith: start_of_line` by default.
# These style can be configured by each cop.
#
# @example EnforcedStyleAlignWith: keyword (default)
# # bad
#
# variable = if true
# end
#
# # good
#
# variable = if true
# end
#
# variable =
# if true
# end
# @example EnforcedStyleAlignWith: variable
# # bad
#
# variable = if true
# end
#
# # good
#
# variable = if true
# end
#
# variable =
# if true
# end
# @example EnforcedStyleAlignWith: start_of_line
# # bad
#
# variable = if true
# end
#
# puts(if true
# end)
#
# # good
#
# variable = if true
# end
#
# puts(if true
# end)
#
# variable =
# if true
# end
#
# source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#77
class RuboCop::Cop::Layout::EndAlignment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::CheckAssignment
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::EndKeywordAlignment
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#111
def on_case(node); end
# source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#111
def on_case_match(node); end
# source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#83
def on_class(node); end
# source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#99
def on_if(node); end
# source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#95
def on_module(node); end
# source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#87
def on_sclass(node); end
# source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#107
def on_until(node); end
# source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#103
def on_while(node); end
private
# source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#167
def alignment_node(node); end
# source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#184
def alignment_node_for_variable_style(node); end
# source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#148
def asgn_variable_align_with(outer_node, inner_node); end
# source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#202
def assignment_or_operator_method(node); end
# source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#122
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#137
def check_asgn_alignment(outer_node, inner_node); end
# source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#126
def check_assignment(node, rhs); end
# source://rubocop//lib/rubocop/cop/layout/end_alignment.rb#158
def check_other_alignment(node); end
end
# Checks for Windows-style line endings in the source code.
#
# @example EnforcedStyle: native (default)
# # The `native` style means that CR+LF (Carriage Return + Line Feed) is
# # enforced on Windows, and LF is enforced on other platforms.
#
# # bad
# puts 'Hello' # Return character is LF on Windows.
# puts 'Hello' # Return character is CR+LF on other than Windows.
#
# # good
# puts 'Hello' # Return character is CR+LF on Windows.
# puts 'Hello' # Return character is LF on other than Windows.
# @example EnforcedStyle: lf
# # The `lf` style means that LF (Line Feed) is enforced on
# # all platforms.
#
# # bad
# puts 'Hello' # Return character is CR+LF on all platforms.
#
# # good
# puts 'Hello' # Return character is LF on all platforms.
# @example EnforcedStyle: crlf
# # The `crlf` style means that CR+LF (Carriage Return + Line Feed) is
# # enforced on all platforms.
#
# # bad
# puts 'Hello' # Return character is LF on all platforms.
#
# # good
# puts 'Hello' # Return character is CR+LF on all platforms.
#
# source://rubocop//lib/rubocop/cop/layout/end_of_line.rb#40
class RuboCop::Cop::Layout::EndOfLine < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
# source://rubocop//lib/rubocop/cop/layout/end_of_line.rb#71
def offense_message(line); end
# source://rubocop//lib/rubocop/cop/layout/end_of_line.rb#47
def on_new_investigation; end
# If there is no LF on the last line, we don't care if there's no CR.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/end_of_line.rb#67
def unimportant_missing_cr?(index, last_line, line); end
private
# source://rubocop//lib/rubocop/cop/layout/end_of_line.rb#85
def last_line(processed_source); end
end
# source://rubocop//lib/rubocop/cop/layout/end_of_line.rb#44
RuboCop::Cop::Layout::EndOfLine::MSG_DETECTED = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/end_of_line.rb#45
RuboCop::Cop::Layout::EndOfLine::MSG_MISSING = T.let(T.unsafe(nil), String)
# Checks for extra/unnecessary whitespace.
#
# @example
#
# # good if AllowForAlignment is true
# name = "RuboCop"
# # Some comment and an empty line
#
# website += "/rubocop/rubocop" unless cond
# puts "rubocop" if debug
#
# # bad for any configuration
# set_app("RuboCop")
# website = "https://github.com/rubocop/rubocop"
#
# # good only if AllowBeforeTrailingComments is true
# object.method(arg) # this is a comment
#
# # good even if AllowBeforeTrailingComments is false or not set
# object.method(arg) # this is a comment
#
# # good with either AllowBeforeTrailingComments or AllowForAlignment
# object.method(arg) # this is a comment
# another_object.method(arg) # this is another comment
# some_object.method(arg) # this is some comment
#
# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#31
class RuboCop::Cop::Layout::ExtraSpacing < ::RuboCop::Cop::Base
include ::RuboCop::Cop::PrecedingFollowingAlignment
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#39
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#170
def align_column(asgn_token); end
# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#147
def align_equal_sign(corrector, token, align_to); end
# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#137
def align_equal_signs(range, corrector); end
# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#52
def aligned_locations(locs); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#103
def aligned_tok?(token); end
# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#159
def all_relevant_assignment_lines(line_number); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#179
def allow_for_trailing_comments?; end
# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#72
def check_assignment(token); end
# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#81
def check_other(token1, token2, ast); end
# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#62
def check_tokens(ast, token1, token2); end
# @yield [range_between(start_pos, end_pos)]
#
# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#91
def extra_space_range(token1, token2); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#133
def force_equal_sign_alignment?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#111
def ignored_range?(ast, start_pos); end
# Returns an array of ranges that should not be reported. It's the
# extra spaces between the keys and values in a multiline hash,
# since those are handled by the Layout/HashAlignment cop.
#
# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#118
def ignored_ranges(ast); end
end
# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#37
RuboCop::Cop::Layout::ExtraSpacing::MSG_UNALIGNED_ASGN = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/extra_spacing.rb#36
RuboCop::Cop::Layout::ExtraSpacing::MSG_UNNECESSARY = T.let(T.unsafe(nil), String)
# Checks the indentation of the first argument in a method call.
# Arguments after the first one are checked by `Layout/ArgumentAlignment`,
# not by this cop.
#
# For indenting the first parameter of method _definitions_, check out
# `Layout/FirstParameterIndentation`.
#
# This cop will respect `Layout/ArgumentAlignment` and will not work when
# `EnforcedStyle: with_fixed_indentation` is specified for `Layout/ArgumentAlignment`.
#
# @example
#
# # bad
# some_method(
# first_param,
# second_param)
#
# foo = some_method(
# first_param,
# second_param)
#
# foo = some_method(nested_call(
# nested_first_param),
# second_param)
#
# foo = some_method(
# nested_call(
# nested_first_param),
# second_param)
#
# some_method nested_call(
# nested_first_param),
# second_param
# @example EnforcedStyle: special_for_inner_method_call_in_parentheses (default)
# # Same as `special_for_inner_method_call` except that the special rule
# # only applies if the outer method call encloses its arguments in
# # parentheses.
#
# # good
# some_method(
# first_param,
# second_param)
#
# foo = some_method(
# first_param,
# second_param)
#
# foo = some_method(nested_call(
# nested_first_param),
# second_param)
#
# foo = some_method(
# nested_call(
# nested_first_param),
# second_param)
#
# some_method nested_call(
# nested_first_param),
# second_param
# @example EnforcedStyle: consistent
# # The first argument should always be indented one step more than the
# # preceding line.
#
# # good
# some_method(
# first_param,
# second_param)
#
# foo = some_method(
# first_param,
# second_param)
#
# foo = some_method(nested_call(
# nested_first_param),
# second_param)
#
# foo = some_method(
# nested_call(
# nested_first_param),
# second_param)
#
# some_method nested_call(
# nested_first_param),
# second_param
# @example EnforcedStyle: consistent_relative_to_receiver
# # The first argument should always be indented one level relative to
# # the parent that is receiving the argument
#
# # good
# some_method(
# first_param,
# second_param)
#
# foo = some_method(
# first_param,
# second_param)
#
# foo = some_method(nested_call(
# nested_first_param),
# second_param)
#
# foo = some_method(
# nested_call(
# nested_first_param),
# second_param)
#
# some_method nested_call(
# nested_first_param),
# second_params
# @example EnforcedStyle: special_for_inner_method_call
# # The first argument should normally be indented one step more than
# # the preceding line, but if it's an argument for a method call that
# # is itself an argument in a method call, then the inner argument
# # should be indented relative to the inner method.
#
# # good
# some_method(
# first_param,
# second_param)
#
# foo = some_method(
# first_param,
# second_param)
#
# foo = some_method(nested_call(
# nested_first_param),
# second_param)
#
# foo = some_method(
# nested_call(
# nested_first_param),
# second_param)
#
# some_method nested_call(
# nested_first_param),
# second_param
#
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#147
class RuboCop::Cop::Layout::FirstArgumentIndentation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#222
def eligible_method_call?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#155
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#155
def on_send(node); end
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#155
def on_super(node); end
private
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#281
def argument_alignment_config; end
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#174
def autocorrect(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#178
def bare_operator?(node); end
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#198
def base_indentation(node); end
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#226
def base_range(send_node, arg_node); end
# Returns the column of the given range. For single line ranges, this
# is simple. For ranges with line breaks, we look a the last code line.
#
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#238
def column_of(range); end
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#259
def comment_lines; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#277
def enable_layout_first_method_argument_line_break?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#271
def enforce_first_argument_with_fixed_indentation?; end
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#182
def message(arg_node); end
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#267
def on_new_investigation; end
# Takes the line number of a given code line and returns a string
# containing the previous line that's not a comment line or a blank
# line.
#
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#250
def previous_code_line(line_number); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#170
def should_check?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#206
def special_inner_call_indentation?(node); end
end
# source://rubocop//lib/rubocop/cop/layout/first_argument_indentation.rb#153
RuboCop::Cop::Layout::FirstArgumentIndentation::MSG = T.let(T.unsafe(nil), String)
# Checks the indentation of the first element in an array literal
# where the opening bracket and the first element are on separate lines.
# The other elements' indentations are handled by `Layout/ArrayAlignment` cop.
#
# This cop will respect `Layout/ArrayAlignment` and will not work when
# `EnforcedStyle: with_fixed_indentation` is specified for `Layout/ArrayAlignment`.
#
# By default, array literals that are arguments in a method call with
# parentheses, and where the opening square bracket of the array is on the
# same line as the opening parenthesis of the method call, shall have
# their first element indented one step (two spaces) more than the
# position inside the opening parenthesis.
#
# Other array literals shall have their first element indented one step
# more than the start of the line where the opening square bracket is.
#
# This default style is called 'special_inside_parentheses'. Alternative
# styles are 'consistent' and 'align_brackets'. Here are examples:
#
# @example EnforcedStyle: special_inside_parentheses (default)
# # The `special_inside_parentheses` style enforces that the first
# # element in an array literal where the opening bracket and first
# # element are on separate lines is indented one step (two spaces) more
# # than the position inside the opening parenthesis.
#
# # bad
# array = [
# :value
# ]
# and_in_a_method_call([
# :no_difference
# ])
#
# # good
# array = [
# :value
# ]
# but_in_a_method_call([
# :its_like_this
# ])
# @example EnforcedStyle: consistent
# # The `consistent` style enforces that the first element in an array
# # literal where the opening bracket and the first element are on
# # separate lines is indented the same as an array literal which is not
# # defined inside a method call.
#
# # bad
# array = [
# :value
# ]
# but_in_a_method_call([
# :its_like_this
# ])
#
# # good
# array = [
# :value
# ]
# and_in_a_method_call([
# :no_difference
# ])
# @example EnforcedStyle: align_brackets
# # The `align_brackets` style enforces that the opening and closing
# # brackets are indented to the same position.
#
# # bad
# and_now_for_something = [
# :completely_different
# ]
#
# # good
# and_now_for_something = [
# :completely_different
# ]
#
# source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#82
class RuboCop::Cop::Layout::FirstArrayElementIndentation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::MultilineElementIndentation
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#91
def on_array(node); end
# source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#97
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#97
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#188
def array_alignment_config; end
# source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#108
def autocorrect(corrector, node); end
# Returns the description of what the correct indentation is based on.
#
# source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#146
def base_description(indent_base_type); end
# source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#112
def brace_alignment_style; end
# source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#116
def check(array_node, left_parenthesis); end
# source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#130
def check_right_bracket(right_bracket, first_elem, left_bracket, left_parenthesis); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#182
def enforce_first_argument_with_fixed_indentation?; end
# source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#159
def message(base_description); end
# source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#167
def message_for_right_bracket(indent_base_type); end
end
# source://rubocop//lib/rubocop/cop/layout/first_array_element_indentation.rb#88
RuboCop::Cop::Layout::FirstArrayElementIndentation::MSG = T.let(T.unsafe(nil), String)
# Checks for a line break before the first element in a
# multi-line array.
#
# @example
#
# # bad
# [ :a,
# :b]
#
# # good
# [
# :a,
# :b]
#
# # good
# [:a, :b]
# @example AllowMultilineFinalElement: false (default)
#
# # bad
# [ :a, {
# :b => :c
# }]
#
# # good
# [
# :a, {
# :b => :c
# }]
# @example AllowMultilineFinalElement: true
#
# # good
# [:a, {
# :b => :c
# }]
#
# source://rubocop//lib/rubocop/cop/layout/first_array_element_line_break.rb#43
class RuboCop::Cop::Layout::FirstArrayElementLineBreak < ::RuboCop::Cop::Base
include ::RuboCop::Cop::FirstElementLineBreak
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/first_array_element_line_break.rb#49
def on_array(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/first_array_element_line_break.rb#57
def assignment_on_same_line?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/first_array_element_line_break.rb#62
def ignore_last_element?; end
end
# source://rubocop//lib/rubocop/cop/layout/first_array_element_line_break.rb#47
RuboCop::Cop::Layout::FirstArrayElementLineBreak::MSG = T.let(T.unsafe(nil), String)
# Checks the indentation of the first key in a hash literal
# where the opening brace and the first key are on separate lines. The
# other keys' indentations are handled by the HashAlignment cop.
#
# By default, Hash literals that are arguments in a method call with
# parentheses, and where the opening curly brace of the hash is on the
# same line as the opening parenthesis of the method call, shall have
# their first key indented one step (two spaces) more than the position
# inside the opening parenthesis.
#
# Other hash literals shall have their first key indented one step more
# than the start of the line where the opening curly brace is.
#
# This default style is called 'special_inside_parentheses'. Alternative
# styles are 'consistent' and 'align_braces'. Here are examples:
#
# @example EnforcedStyle: special_inside_parentheses (default)
# # The `special_inside_parentheses` style enforces that the first key
# # in a hash literal where the opening brace and the first key are on
# # separate lines is indented one step (two spaces) more than the
# # position inside the opening parentheses.
#
# # bad
# hash = {
# key: :value
# }
# and_in_a_method_call({
# no: :difference
# })
# takes_multi_pairs_hash(x: {
# a: 1,
# b: 2
# },
# y: {
# c: 1,
# d: 2
# })
#
# # good
# special_inside_parentheses
# hash = {
# key: :value
# }
# but_in_a_method_call({
# its_like: :this
# })
# takes_multi_pairs_hash(x: {
# a: 1,
# b: 2
# },
# y: {
# c: 1,
# d: 2
# })
# @example EnforcedStyle: consistent
# # The `consistent` style enforces that the first key in a hash
# # literal where the opening brace and the first key are on
# # separate lines is indented the same as a hash literal which is not
# # defined inside a method call.
#
# # bad
# hash = {
# key: :value
# }
# but_in_a_method_call({
# its_like: :this
# })
#
# # good
# hash = {
# key: :value
# }
# and_in_a_method_call({
# no: :difference
# })
# @example EnforcedStyle: align_braces
# # The `align_brackets` style enforces that the opening and closing
# # braces are indented to the same position.
#
# # bad
# and_now_for_something = {
# completely: :different
# }
# takes_multi_pairs_hash(x: {
# a: 1,
# b: 2
# },
# y: {
# c: 1,
# d: 2
# })
#
# # good
# and_now_for_something = {
# completely: :different
# }
# takes_multi_pairs_hash(x: {
# a: 1,
# b: 2
# },
# y: {
# c: 1,
# d: 2
# })
#
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#113
class RuboCop::Cop::Layout::FirstHashElementIndentation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::MultilineElementIndentation
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#126
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#122
def on_hash(node); end
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#126
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#233
def argument_alignment_config; end
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#137
def autocorrect(corrector, node); end
# Returns the description of what the correct indentation is based on.
#
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#191
def base_description(indent_base_type); end
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#141
def brace_alignment_style; end
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#145
def check(hash_node, left_parenthesis); end
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#184
def check_based_on_longest_key(hash_node, left_brace, left_parenthesis); end
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#164
def check_right_brace(right_brace, first_pair, left_brace, left_parenthesis); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#227
def enforce_first_argument_with_fixed_indentation?; end
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#204
def message(base_description); end
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#212
def message_for_right_brace(indent_base_type); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#178
def separator_style?(first_pair); end
end
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_indentation.rb#119
RuboCop::Cop::Layout::FirstHashElementIndentation::MSG = T.let(T.unsafe(nil), String)
# Checks for a line break before the first element in a
# multi-line hash.
#
# @example
#
# # bad
# { a: 1,
# b: 2}
#
# # good
# {
# a: 1,
# b: 2 }
#
# # good
# {
# a: 1, b: {
# c: 3
# }}
# @example AllowMultilineFinalElement: false (default)
#
# # bad
# { a: 1, b: {
# c: 3
# }}
# @example AllowMultilineFinalElement: true
#
# # bad
# { a: 1,
# b: {
# c: 3
# }}
#
# # good
# { a: 1, b: {
# c: 3
# }}
#
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_line_break.rb#46
class RuboCop::Cop::Layout::FirstHashElementLineBreak < ::RuboCop::Cop::Base
include ::RuboCop::Cop::FirstElementLineBreak
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_line_break.rb#52
def on_hash(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_line_break.rb#62
def ignore_last_element?; end
end
# source://rubocop//lib/rubocop/cop/layout/first_hash_element_line_break.rb#50
RuboCop::Cop::Layout::FirstHashElementLineBreak::MSG = T.let(T.unsafe(nil), String)
# Checks for a line break before the first argument in a
# multi-line method call.
#
# @example
#
# # bad
# method(foo, bar,
# baz)
#
# # good
# method(
# foo, bar,
# baz)
#
# # ignored
# method foo, bar,
# baz
# @example AllowMultilineFinalElement: false (default)
#
# # bad
# method(foo, bar, {
# baz: "a",
# qux: "b",
# })
#
# # good
# method(
# foo, bar, {
# baz: "a",
# qux: "b",
# })
# @example AllowMultilineFinalElement: true
#
# # bad
# method(foo,
# bar,
# {
# baz: "a",
# qux: "b",
# }
# )
#
# # good
# method(foo, bar, {
# baz: "a",
# qux: "b",
# })
#
# # good
# method(
# foo,
# bar,
# {
# baz: "a",
# qux: "b",
# }
# )
# @example AllowedMethods: ['some_method']
#
# # good
# some_method(foo, bar,
# baz)
#
# source://rubocop//lib/rubocop/cop/layout/first_method_argument_line_break.rb#71
class RuboCop::Cop::Layout::FirstMethodArgumentLineBreak < ::RuboCop::Cop::Base
include ::RuboCop::Cop::FirstElementLineBreak
include ::RuboCop::Cop::AllowedMethods
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/first_method_argument_line_break.rb#78
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/layout/first_method_argument_line_break.rb#78
def on_send(node); end
# source://rubocop//lib/rubocop/cop/layout/first_method_argument_line_break.rb#78
def on_super(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/first_method_argument_line_break.rb#99
def ignore_last_element?; end
end
# source://rubocop//lib/rubocop/cop/layout/first_method_argument_line_break.rb#76
RuboCop::Cop::Layout::FirstMethodArgumentLineBreak::MSG = T.let(T.unsafe(nil), String)
# Checks for a line break before the first parameter in a
# multi-line method parameter definition.
#
# @example
#
# # bad
# def method(foo, bar,
# baz)
# do_something
# end
#
# # good
# def method(
# foo, bar,
# baz)
# do_something
# end
#
# # ignored
# def method foo,
# bar
# do_something
# end
# @example AllowMultilineFinalElement: false (default)
#
# # bad
# def method(foo, bar, baz = {
# :a => "b",
# })
# do_something
# end
#
# # good
# def method(
# foo, bar, baz = {
# :a => "b",
# })
# do_something
# end
# @example AllowMultilineFinalElement: true
#
# # good
# def method(foo, bar, baz = {
# :a => "b",
# })
# do_something
# end
#
# source://rubocop//lib/rubocop/cop/layout/first_method_parameter_line_break.rb#56
class RuboCop::Cop::Layout::FirstMethodParameterLineBreak < ::RuboCop::Cop::Base
include ::RuboCop::Cop::FirstElementLineBreak
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/first_method_parameter_line_break.rb#62
def on_def(node); end
# source://rubocop//lib/rubocop/cop/layout/first_method_parameter_line_break.rb#62
def on_defs(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/first_method_parameter_line_break.rb#69
def ignore_last_element?; end
end
# source://rubocop//lib/rubocop/cop/layout/first_method_parameter_line_break.rb#60
RuboCop::Cop::Layout::FirstMethodParameterLineBreak::MSG = T.let(T.unsafe(nil), String)
# Checks the indentation of the first parameter in a method
# definition. Parameters after the first one are checked by
# Layout/ParameterAlignment, not by this cop.
#
# For indenting the first argument of method _calls_, check out
# Layout/FirstArgumentIndentation, which supports options related to
# nesting that are irrelevant for method _definitions_.
#
# @example
#
# # bad
# def some_method(
# first_param,
# second_param)
# 123
# end
# @example EnforcedStyle: consistent (default)
# # The first parameter should always be indented one step more than the
# # preceding line.
#
# # good
# def some_method(
# first_param,
# second_param)
# 123
# end
# @example EnforcedStyle: align_parentheses
# # The first parameter should always be indented one step more than the
# # opening parenthesis.
#
# # good
# def some_method(
# first_param,
# second_param)
# 123
# end
#
# source://rubocop//lib/rubocop/cop/layout/first_parameter_indentation.rb#44
class RuboCop::Cop::Layout::FirstParameterIndentation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::MultilineElementIndentation
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/first_parameter_indentation.rb#53
def on_def(node); end
# source://rubocop//lib/rubocop/cop/layout/first_parameter_indentation.rb#53
def on_defs(node); end
private
# source://rubocop//lib/rubocop/cop/layout/first_parameter_indentation.rb#63
def autocorrect(corrector, node); end
# Returns the description of what the correct indentation is based on.
#
# source://rubocop//lib/rubocop/cop/layout/first_parameter_indentation.rb#83
def base_description(_); end
# source://rubocop//lib/rubocop/cop/layout/first_parameter_indentation.rb#67
def brace_alignment_style; end
# source://rubocop//lib/rubocop/cop/layout/first_parameter_indentation.rb#71
def check(def_node); end
# source://rubocop//lib/rubocop/cop/layout/first_parameter_indentation.rb#91
def message(base_description); end
end
# source://rubocop//lib/rubocop/cop/layout/first_parameter_indentation.rb#50
RuboCop::Cop::Layout::FirstParameterIndentation::MSG = T.let(T.unsafe(nil), String)
# Check that the keys, separators, and values of a multi-line hash
# literal are aligned according to configuration. The configuration
# options are:
#
# * key (left align keys, one space before hash rockets and values)
# * separator (align hash rockets and colons, right align keys)
# * table (left align keys, hash rockets, and values)
#
# The treatment of hashes passed as the last argument to a method call
# can also be configured. The options are:
#
# * always_inspect
# * always_ignore
# * ignore_implicit (without curly braces)
#
# Alternatively you can specify multiple allowed styles. That's done by
# passing a list of styles to EnforcedStyles.
#
# @example EnforcedHashRocketStyle: key (default)
# # bad
# {
# :foo => bar,
# :ba => baz
# }
# {
# :foo => bar,
# :ba => baz
# }
#
# # good
# {
# :foo => bar,
# :ba => baz
# }
# @example EnforcedHashRocketStyle: separator
# # bad
# {
# :foo => bar,
# :ba => baz
# }
# {
# :foo => bar,
# :ba => baz
# }
#
# # good
# {
# :foo => bar,
# :ba => baz
# }
# @example EnforcedHashRocketStyle: table
# # bad
# {
# :foo => bar,
# :ba => baz
# }
#
# # good
# {
# :foo => bar,
# :ba => baz
# }
# @example EnforcedColonStyle: key (default)
# # bad
# {
# foo: bar,
# ba: baz
# }
# {
# foo: bar,
# ba: baz
# }
#
# # good
# {
# foo: bar,
# ba: baz
# }
# @example EnforcedColonStyle: separator
# # bad
# {
# foo: bar,
# ba: baz
# }
#
# # good
# {
# foo: bar,
# ba: baz
# }
# @example EnforcedColonStyle: table
# # bad
# {
# foo: bar,
# ba: baz
# }
#
# # good
# {
# foo: bar,
# ba: baz
# }
# @example EnforcedLastArgumentHashStyle: always_inspect (default)
# # Inspect both implicit and explicit hashes.
#
# # bad
# do_something(foo: 1,
# bar: 2)
#
# # bad
# do_something({foo: 1,
# bar: 2})
#
# # good
# do_something(foo: 1,
# bar: 2)
#
# # good
# do_something(
# foo: 1,
# bar: 2
# )
#
# # good
# do_something({foo: 1,
# bar: 2})
#
# # good
# do_something({
# foo: 1,
# bar: 2
# })
# @example EnforcedLastArgumentHashStyle: always_ignore
# # Ignore both implicit and explicit hashes.
#
# # good
# do_something(foo: 1,
# bar: 2)
#
# # good
# do_something({foo: 1,
# bar: 2})
# @example EnforcedLastArgumentHashStyle: ignore_implicit
# # Ignore only implicit hashes.
#
# # bad
# do_something({foo: 1,
# bar: 2})
#
# # good
# do_something(foo: 1,
# bar: 2)
# @example EnforcedLastArgumentHashStyle: ignore_explicit
# # Ignore only explicit hashes.
#
# # bad
# do_something(foo: 1,
# bar: 2)
#
# # good
# do_something({foo: 1,
# bar: 2})
#
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#178
class RuboCop::Cop::Layout::HashAlignment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::HashAlignmentStyles
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# Returns the value of attribute column_deltas.
#
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#218
def column_deltas; end
# Sets the attribute column_deltas
#
# @param value the value to set the attribute column_deltas to.
#
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#218
def column_deltas=(_arg0); end
# Returns the value of attribute offenses_by.
#
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#218
def offenses_by; end
# Sets the attribute offenses_by
#
# @param value the value to set the attribute offenses_by to.
#
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#218
def offenses_by=(_arg0); end
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#208
def on_hash(node); end
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#195
def on_send(node); end
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#195
def on_super(node); end
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#195
def on_yield(node); end
private
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#265
def add_offenses; end
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#371
def adjust(corrector, delta, range); end
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#300
def alignment_for(pair); end
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#314
def alignment_for_colons; end
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#310
def alignment_for_hash_rockets; end
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#390
def argument_alignment_config; end
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#233
def argument_before_hash(hash_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#222
def autocorrect_incompatible_with_other_cops?(node); end
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#283
def check_delta(delta, node:, alignment:); end
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#246
def check_pairs(node); end
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#337
def correct_key_value(corrector, delta, key, value, separator); end
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#333
def correct_no_value(corrector, key_delta, key); end
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#318
def correct_node(corrector, node, delta); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#242
def double_splat?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#384
def enforce_first_argument_with_fixed_indentation?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#380
def good_alignment?(column_deltas); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#291
def ignore_hash_argument?(node); end
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#353
def new_alignment(key); end
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#273
def register_offenses_with_format(offenses, format); end
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#237
def reset!; end
end
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#183
RuboCop::Cop::Layout::HashAlignment::MESSAGES = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/layout/hash_alignment.rb#193
RuboCop::Cop::Layout::HashAlignment::SEPARATOR_ALIGNMENT_STYLES = T.let(T.unsafe(nil), Array)
# Checks for the placement of the closing parenthesis
# in a method call that passes a HEREDOC string as an argument.
# It should be placed at the end of the line containing the
# opening HEREDOC tag.
#
# @example
# # bad
#
# foo(<<-SQL
# bar
# SQL
# )
#
# foo(<<-SQL, 123, <<-NOSQL,
# bar
# SQL
# baz
# NOSQL
# )
#
# foo(
# bar(<<-SQL
# baz
# SQL
# ),
# 123,
# )
#
# # good
#
# foo(<<-SQL)
# bar
# SQL
#
# foo(<<-SQL, 123, <<-NOSQL)
# bar
# SQL
# baz
# NOSQL
#
# foo(
# bar(<<-SQL),
# baz
# SQL
# 123,
# )
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#53
class RuboCop::Cop::Layout::HeredocArgumentClosingParenthesis < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#64
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#184
def add_correct_closing_paren(node, corrector); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#271
def add_correct_external_trailing_comma(node, corrector); end
# Autocorrection note:
#
# Commas are a bit tricky to handle when the method call is
# embedded in another expression. Here's an example:
#
# [
# first_array_value,
# foo(<<-SQL, 123, 456,
# SELECT * FROM db
# SQL
# ),
# third_array_value,
# ]
#
# The "internal" trailing comma is after `456`.
# The "external" trailing comma is after `)`.
#
# To autocorrect, we remove the latter, and move the former up:
#
# [
# first_array_value,
# foo(<<-SQL, 123, 456),
# SELECT * FROM db
# SQL
# third_array_value,
# ]
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#107
def autocorrect(corrector, node); end
# Closing parenthesis helpers.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#162
def end_keyword_before_closing_parenthesis?(parenthesized_send_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#222
def exist_argument_between_heredoc_end_and_closing_parentheses?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#289
def external_trailing_comma?(node); end
# Returns nil if no trailing external comma.
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#294
def external_trailing_comma_offset_from_loc_end(node); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#137
def extract_heredoc(node); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#133
def extract_heredoc_argument(node); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#230
def find_most_bottom_of_heredoc_end(arguments); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#179
def fix_closing_parenthesis(node, corrector); end
# External trailing comma helpers.
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#266
def fix_external_trailing_comma(node, corrector); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#149
def heredoc_node?(node); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#197
def incorrect_parenthesis_removal_begin(node); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#213
def incorrect_parenthesis_removal_end(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#244
def internal_trailing_comma?(node); end
# Returns nil if no trailing internal comma.
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#249
def internal_trailing_comma_offset_from_last_arg(node); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#115
def outermost_send_on_same_line(heredoc); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#188
def remove_incorrect_closing_paren(node, corrector); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#277
def remove_incorrect_external_trailing_comma(node, corrector); end
# Internal trailing comma helpers.
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#238
def remove_internal_trailing_comma(node, corrector); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#207
def safe_to_remove_line_containing_closing_paren?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#126
def send_missing_closing_parens?(parent, child, heredoc); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#153
def single_line_send_with_heredoc_receiver?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#305
def space?(pos); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#168
def subsequent_closing_parentheses_in_same_line?(outermost_send); end
class << self
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#60
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/layout/heredoc_argument_closing_parenthesis.rb#57
RuboCop::Cop::Layout::HeredocArgumentClosingParenthesis::MSG = T.let(T.unsafe(nil), String)
# Checks the indentation of the here document bodies. The bodies
# are indented one step.
#
# NOTE: When ``Layout/LineLength``'s `AllowHeredoc` is false (not default),
# this cop does not add any offenses for long here documents to
# avoid ``Layout/LineLength``'s offenses.
#
# @example
# # bad
# <<-RUBY
# something
# RUBY
#
# # good
# <<~RUBY
# something
# RUBY
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#24
class RuboCop::Cop::Layout::HeredocIndentation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::Heredoc
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#36
def on_heredoc(node); end
private
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#120
def adjust_minus(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#115
def adjust_squiggly(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#144
def base_indent_level(node); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#155
def heredoc_body(node); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#159
def heredoc_end(node); end
# Returns '~', '-' or nil
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#151
def heredoc_indent_type(node); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#126
def indented_body(node); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#133
def indented_end(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#91
def line_too_long?(node); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#103
def longest_line(lines); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#111
def max_line_length; end
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#69
def message(heredoc_indent_type); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#57
def register_offense(node, heredoc_indent_type); end
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#79
def type_message(indentation_width, current_indent_type); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#107
def unlimited_heredoc_length?; end
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#87
def width_message(indentation_width); end
end
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#32
RuboCop::Cop::Layout::HeredocIndentation::TYPE_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/heredoc_indentation.rb#34
RuboCop::Cop::Layout::HeredocIndentation::WIDTH_MSG = T.let(T.unsafe(nil), String)
# Checks for inconsistent indentation.
#
# The difference between `indented_internal_methods` and `normal` is
# that the `indented_internal_methods` style prescribes that in
# classes and modules the `protected` and `private` modifier keywords
# shall be indented the same as public methods and that protected and
# private members shall be indented one step more than the modifiers.
# Other than that, both styles mean that entities on the same logical
# depth shall have the same indentation.
#
# @example EnforcedStyle: normal (default)
# # bad
# class A
# def test
# puts 'hello'
# puts 'world'
# end
# end
#
# # bad
# class A
# def test
# puts 'hello'
# puts 'world'
# end
#
# protected
#
# def foo
# end
#
# private
#
# def bar
# end
# end
#
# # good
# class A
# def test
# puts 'hello'
# puts 'world'
# end
# end
#
# # good
# class A
# def test
# puts 'hello'
# puts 'world'
# end
#
# protected
#
# def foo
# end
#
# private
#
# def bar
# end
# end
# @example EnforcedStyle: indented_internal_methods
# # bad
# class A
# def test
# puts 'hello'
# puts 'world'
# end
# end
#
# # bad
# class A
# def test
# puts 'hello'
# puts 'world'
# end
#
# protected
#
# def foo
# end
#
# private
#
# def bar
# end
# end
#
# # good
# class A
# def test
# puts 'hello'
# puts 'world'
# end
# end
#
# # good
# class A
# def test
# puts 'hello'
# puts 'world'
# end
#
# protected
#
# def foo
# end
#
# private
#
# def bar
# end
# end
#
# source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#121
class RuboCop::Cop::Layout::IndentationConsistency < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#128
def on_begin(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#132
def on_kwbegin(node); end
private
# source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#138
def autocorrect(corrector, node); end
# Not all nodes define `bare_access_modifier?` (for example,
# `RuboCop::AST::DefNode` does not), so we must check `send_type?` first
# to avoid a NoMethodError.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#145
def bare_access_modifier?(node); end
# Returns an integer representing the correct indentation, or nil to
# indicate that the correct indentation is that of the first child that
# is not an access modifier.
#
# source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#152
def base_column_for_normal_style(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#172
def check(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#187
def check_indented_internal_methods_style(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#180
def check_normal_style(node); end
end
# source://rubocop//lib/rubocop/cop/layout/indentation_consistency.rb#126
RuboCop::Cop::Layout::IndentationConsistency::MSG = T.let(T.unsafe(nil), String)
# Checks that the indentation method is consistent.
# Either tabs only or spaces only are used for indentation.
#
# @example EnforcedStyle: spaces (default)
# # bad
# # This example uses a tab to indent bar.
# def foo
# bar
# end
#
# # good
# # This example uses spaces to indent bar.
# def foo
# bar
# end
# @example EnforcedStyle: tabs
# # bad
# # This example uses spaces to indent bar.
# def foo
# bar
# end
#
# # good
# # This example uses a tab to indent bar.
# def foo
# bar
# end
#
# source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#34
class RuboCop::Cop::Layout::IndentationStyle < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#42
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#58
def autocorrect(corrector, range); end
# source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#82
def autocorrect_lambda_for_spaces(corrector, range); end
# source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#77
def autocorrect_lambda_for_tabs(corrector, range); end
# source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#66
def find_offense(line, lineno); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#88
def in_string_literal?(ranges, tabs_range); end
# source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#109
def message(_node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#92
def string_literal_ranges(ast); end
end
# source://rubocop//lib/rubocop/cop/layout/indentation_style.rb#40
RuboCop::Cop::Layout::IndentationStyle::MSG = T.let(T.unsafe(nil), String)
# Checks for indentation that doesn't use the specified number of spaces.
# The indentation width can be configured using the `Width` setting. The default width is 2.
#
# See also the `Layout/IndentationConsistency` cop which is the companion to this one.
#
# @example Width: 2 (default)
# # bad
# class A
# def test
# puts 'hello'
# end
# end
#
# # good
# class A
# def test
# puts 'hello'
# end
# end
# @example AllowedPatterns: ['^\s*module']
# # bad
# module A
# class B
# def test
# puts 'hello'
# end
# end
# end
#
# # good
# module A
# class B
# def test
# puts 'hello'
# end
# end
# end
#
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#44
class RuboCop::Cop::Layout::IndentationWidth < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::EndKeywordAlignment
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::CheckAssignment
include ::RuboCop::Cop::AllowedPattern
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#56
def access_modifier?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#80
def on_block(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#137
def on_case(case_node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#145
def on_case_match(case_match); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#94
def on_class(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#103
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#120
def on_def(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#120
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#65
def on_ensure(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#65
def on_for(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#155
def on_if(node, base = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#72
def on_kwbegin(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#94
def on_module(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#80
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#65
def on_resbody(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#60
def on_rescue(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#94
def on_sclass(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#103
def on_send(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#127
def on_until(node, base = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#127
def on_while(node, base = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#226
def access_modifier_indentation_style; end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#164
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#234
def check_assignment(node, rhs); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#254
def check_if(node, body, else_clause, base_loc); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#267
def check_indentation(base_loc, body_node, style = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#168
def check_members(base, members); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#192
def check_members_for_indented_internal_methods_style(members); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#198
def check_members_for_normal_style(base, members); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#340
def check_rescue?(rescue_node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#376
def configured_indentation_width; end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#206
def each_member(members); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#230
def indentation_consistency_style; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#322
def indentation_to_check?(base_loc, body_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#218
def indented_internal_methods_style?; end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#380
def leftmost_modifier_of(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#301
def message(configured_indentation_width, indentation, name); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#359
def offending_range(body_node, indentation); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#277
def offense(body_node, indentation, style); end
# Returns true if the given node is within another node that has
# already been marked for autocorrection by this cop.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#312
def other_offense_in_same_range?(node); end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#180
def select_check_member(member); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#344
def skip_check?(base_loc, body_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#222
def special_modifier?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#367
def starts_with_access_modifier?(body_node); end
end
# source://rubocop//lib/rubocop/cop/layout/indentation_width.rb#52
RuboCop::Cop::Layout::IndentationWidth::MSG = T.let(T.unsafe(nil), String)
# Checks for indentation of the first non-blank non-comment
# line in a file.
#
# @example
# # bad
# class A
# def foo; end
# end
#
# # good
# class A
# def foo; end
# end
#
# source://rubocop//lib/rubocop/cop/layout/initial_indentation.rb#20
class RuboCop::Cop::Layout::InitialIndentation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/initial_indentation.rb#26
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/layout/initial_indentation.rb#36
def first_token; end
# @yield [range_between(space_range.begin_pos, token.begin_pos)]
#
# source://rubocop//lib/rubocop/cop/layout/initial_indentation.rb#40
def space_before(token); end
end
# source://rubocop//lib/rubocop/cop/layout/initial_indentation.rb#24
RuboCop::Cop::Layout::InitialIndentation::MSG = T.let(T.unsafe(nil), String)
# Checks whether comments have a leading space after the
# `#` denoting the start of the comment. The leading space is not
# required for some RDoc special syntax, like `#++`, `#--`,
# `#:nodoc`, `=begin`- and `=end` comments, "shebang" directives,
# or rackup options.
#
# @example
#
# # bad
# #Some comment
#
# # good
# # Some comment
# @example AllowDoxygenCommentStyle: false (default)
#
# # bad
#
# #**
# # Some comment
# # Another line of comment
# #*
# @example AllowDoxygenCommentStyle: true
#
# # good
#
# #**
# # Some comment
# # Another line of comment
# #*
# @example AllowGemfileRubyComment: false (default)
#
# # bad
#
# #ruby=2.7.0
# #ruby-gemset=myproject
# @example AllowGemfileRubyComment: true
#
# # good
#
# #ruby=2.7.0
# #ruby-gemset=myproject
# @example AllowRBSInlineAnnotation: false (default)
#
# # bad
#
# include Enumerable #[Integer]
#
# attr_reader :name #: String
# attr_reader :age #: Integer?
# @example AllowRBSInlineAnnotation: true
#
# # good
#
# include Enumerable #[Integer]
#
# attr_reader :name #: String
# attr_reader :age #: Integer?
# @example AllowSteepAnnotation: false (default)
#
# # bad
# [1, 2, 3].each_with_object([]) do |n, list| #$ Array[Integer]
# list << n
# end
#
# name = 'John' #: String
# @example AllowSteepAnnotation: true
#
# # good
#
# [1, 2, 3].each_with_object([]) do |n, list| #$ Array[Integer]
# list << n
# end
#
# name = 'John' #: String
#
# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#89
class RuboCop::Cop::Layout::LeadingCommentSpace < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#95
def on_new_investigation; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#134
def allow_doxygen_comment?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#142
def allow_gemfile_ruby_comment?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#158
def allow_rbs_inline_annotation?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#166
def allow_steep_annotation?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#118
def allowed_on_first_line?(comment); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#138
def doxygen_comment_style?(comment); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#146
def gemfile?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#154
def gemfile_ruby_comment?(comment); end
# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#114
def hash_mark(expr); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#130
def rackup_config_file?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#126
def rackup_options?(comment); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#162
def rbs_inline_annotation?(comment); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#150
def ruby_comment_in_gemfile?(comment); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#122
def shebang?(comment); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#170
def steep_annotation?(comment); end
end
# source://rubocop//lib/rubocop/cop/layout/leading_comment_space.rb#93
RuboCop::Cop::Layout::LeadingCommentSpace::MSG = T.let(T.unsafe(nil), String)
# Checks for unnecessary leading blank lines at the beginning
# of a file.
#
# @example
#
# # bad
# # (start of file)
#
# class Foo
# end
#
# # bad
# # (start of file)
#
# # a comment
#
# # good
# # (start of file)
# class Foo
# end
#
# # good
# # (start of file)
# # a comment
#
# source://rubocop//lib/rubocop/cop/layout/leading_empty_lines.rb#30
class RuboCop::Cop::Layout::LeadingEmptyLines < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/leading_empty_lines.rb#35
def on_new_investigation; end
end
# source://rubocop//lib/rubocop/cop/layout/leading_empty_lines.rb#33
RuboCop::Cop::Layout::LeadingEmptyLines::MSG = T.let(T.unsafe(nil), String)
# Checks that strings broken over multiple lines (by a backslash) contain
# trailing spaces instead of leading spaces (default) or leading spaces
# instead of trailing spaces.
#
# @example EnforcedStyle: trailing (default)
# # bad
# 'this text contains a lot of' \
# ' spaces'
#
# # good
# 'this text contains a lot of ' \
# 'spaces'
#
# # bad
# 'this text is too' \
# ' long'
#
# # good
# 'this text is too ' \
# 'long'
# @example EnforcedStyle: leading
# # bad
# 'this text contains a lot of ' \
# 'spaces'
#
# # good
# 'this text contains a lot of' \
# ' spaces'
#
# # bad
# 'this text is too ' \
# 'long'
#
# # good
# 'this text is too' \
# ' long'
#
# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#43
class RuboCop::Cop::Layout::LineContinuationLeadingSpace < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#54
def on_dstr(node); end
private
# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#113
def autocorrect(corrector, offense_range, insert_pos, spaces); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#106
def continuation?(line, line_num, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#138
def enforced_style_leading?; end
# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#76
def investigate(first_line, second_line, end_of_first_line); end
# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#84
def investigate_leading_style(first_line, second_line, end_of_first_line); end
# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#95
def investigate_trailing_style(first_line, second_line, end_of_first_line); end
# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#118
def leading_offense_range(end_of_first_line, matches); end
# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#130
def message(_range); end
# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#72
def raw_lines(node); end
# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#124
def trailing_offense_range(end_of_first_line, matches); end
end
# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#49
RuboCop::Cop::Layout::LineContinuationLeadingSpace::LEADING_STYLE_OFFENSE = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#47
RuboCop::Cop::Layout::LineContinuationLeadingSpace::LINE_1_ENDING = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#48
RuboCop::Cop::Layout::LineContinuationLeadingSpace::LINE_2_BEGINNING = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/layout/line_continuation_leading_space.rb#50
RuboCop::Cop::Layout::LineContinuationLeadingSpace::TRAILING_STYLE_OFFENSE = T.let(T.unsafe(nil), Regexp)
# Checks that the backslash of a line continuation is separated from
# preceding text by exactly one space (default) or zero spaces.
#
# @example EnforcedStyle: space (default)
# # bad
# 'a'\
# 'b' \
# 'c'
#
# # good
# 'a' \
# 'b' \
# 'c'
# @example EnforcedStyle: no_space
# # bad
# 'a' \
# 'b' \
# 'c'
#
# # good
# 'a'\
# 'b'\
# 'c'
#
# source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#30
class RuboCop::Cop::Layout::LineContinuationSpacing < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#34
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#81
def autocorrect(corrector, range); end
# source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#111
def comment_ranges(comments); end
# source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#65
def find_offensive_spacing(line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#121
def ignore_range?(backtick_range); end
# source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#91
def ignored_literal_ranges(ast); end
# source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#125
def ignored_ranges; end
# source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#49
def investigate(line, line_number); end
# source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#115
def last_line(processed_source); end
# source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#73
def message(_range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#130
def no_space_style?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/line_continuation_spacing.rb#134
def space_style?; end
end
# Checks the indentation of the next line after a line that ends with a string
# literal and a backslash.
#
# If `EnforcedStyle: aligned` is set, the concatenated string parts shall be aligned with the
# first part. There are some exceptions, such as implicit return values, where the
# concatenated string parts shall be indented regardless of `EnforcedStyle` configuration.
#
# If `EnforcedStyle: indented` is set, it's the second line that shall be indented one step
# more than the first line. Lines 3 and forward shall be aligned with line 2.
#
# @example
# # bad
# def some_method
# 'x' \
# 'y' \
# 'z'
# end
#
# my_hash = {
# first: 'a message' \
# 'in two parts'
# }
#
# # good
# def some_method
# 'x' \
# 'y' \
# 'z'
# end
# @example EnforcedStyle: aligned (default)
# # bad
# puts 'x' \
# 'y'
#
# my_hash = {
# first: 'a message' \
# 'in two parts'
# }
#
# # good
# puts 'x' \
# 'y'
#
# my_hash = {
# first: 'a message' \
# 'in two parts'
# }
# @example EnforcedStyle: indented
# # bad
# result = 'x' \
# 'y'
#
# my_hash = {
# first: 'a message' \
# 'in two parts'
# }
#
# # good
# result = 'x' \
# 'y'
#
# my_hash = {
# first: 'a message' \
# 'in two parts'
# }
#
# source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#74
class RuboCop::Cop::Layout::LineEndStringConcatenationIndentation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::Alignment
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#97
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#83
def on_dstr(node); end
private
# source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#137
def add_offense_and_correction(node, message); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#109
def always_indented?(dstr_node); end
# source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#128
def base_column(child); end
# source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#113
def check_aligned(children, start_index); end
# source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#122
def check_indented(children); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#103
def strings_concatenated_with_backslash?(dstr_node); end
end
# source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#79
RuboCop::Cop::Layout::LineEndStringConcatenationIndentation::MSG_ALIGN = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#80
RuboCop::Cop::Layout::LineEndStringConcatenationIndentation::MSG_INDENT = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/line_end_string_concatenation_indentation.rb#81
RuboCop::Cop::Layout::LineEndStringConcatenationIndentation::PARENT_TYPES_FOR_INDENTED = T.let(T.unsafe(nil), Array)
# Checks the length of lines in the source code.
# The maximum length is configurable.
# The tab size is configured in the `IndentationWidth`
# of the `Layout/IndentationStyle` cop.
# It also ignores a shebang line by default.
#
# This cop has some autocorrection capabilities.
# It can programmatically shorten certain long lines by
# inserting line breaks into expressions that can be safely
# split across lines. These include arrays, hashes, and
# method calls with argument lists.
#
# If autocorrection is enabled, the following cops
# are recommended to further format the broken lines.
# (Many of these are enabled by default.)
#
# * `Layout/ArgumentAlignment`
# * `Layout/ArrayAlignment`
# * `Layout/BlockAlignment`
# * `Layout/BlockEndNewline`
# * `Layout/ClosingParenthesisIndentation`
# * `Layout/FirstArgumentIndentation`
# * `Layout/FirstArrayElementIndentation`
# * `Layout/FirstHashElementIndentation`
# * `Layout/FirstParameterIndentation`
# * `Layout/HashAlignment`
# * `Layout/IndentationWidth`
# * `Layout/MultilineArrayLineBreaks`
# * `Layout/MultilineBlockLayout`
# * `Layout/MultilineHashBraceLayout`
# * `Layout/MultilineHashKeyLineBreaks`
# * `Layout/MultilineMethodArgumentLineBreaks`
# * `Layout/MultilineMethodParameterLineBreaks`
# * `Layout//ParameterAlignment`
# * `Style/BlockDelimiters`
#
# Together, these cops will pretty print hashes, arrays,
# method calls, etc. For example, let's say the max columns
# is 25:
#
# @example
#
# # bad
# {foo: "0000000000", bar: "0000000000", baz: "0000000000"}
#
# # good
# {foo: "0000000000",
# bar: "0000000000", baz: "0000000000"}
#
# # good (with recommended cops enabled)
# {
# foo: "0000000000",
# bar: "0000000000",
# baz: "0000000000",
# }
#
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#63
class RuboCop::Cop::Layout::LineLength < ::RuboCop::Cop::Base
include ::RuboCop::Cop::CheckLineBreakable
include ::RuboCop::Cop::AllowedPattern
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::LineLengthHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/exclude_limit.rb#11
def max=(value); end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#80
def on_array(node); end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#74
def on_block(node); end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#80
def on_def(node); end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#80
def on_hash(node); end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#94
def on_investigation_end; end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#88
def on_new_investigation; end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#74
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#80
def on_potential_breakable_node(node); end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#80
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#219
def allow_heredoc?; end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#223
def allowed_heredoc; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#183
def allowed_line?(line, line_index); end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#135
def breakable_block_range(block_node); end
# Returns the value of attribute breakable_range.
#
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#102
def breakable_range; end
# Sets the attribute breakable_range
#
# @param value the value to set the attribute breakable_range to.
#
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#102
def breakable_range=(_arg0); end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#143
def breakable_range_after_semicolon(semicolon_token); end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#156
def breakable_range_by_line_index; end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#250
def check_directive_line(line, line_index); end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#125
def check_for_breakable_block(block_node); end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#104
def check_for_breakable_node(node); end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#117
def check_for_breakable_semicolons(processed_source); end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#171
def check_line(line, line_index); end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#267
def check_uri_line(line, line_index); end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#204
def excess_range(uri_range, line, line_index); end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#227
def extract_heredocs(ast); end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#160
def heredocs; end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#164
def highlight_start(line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#246
def line_in_heredoc?(line_number); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#237
def line_in_permitted_heredoc?(line_number); end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#215
def max; end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#193
def register_offense(loc, line, line_index, length: T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#189
def shebang?(line, line_index); end
end
# source://rubocop//lib/rubocop/cop/layout/line_length.rb#72
RuboCop::Cop::Layout::LineLength::MSG = T.let(T.unsafe(nil), String)
# Checks that the closing brace in an array literal is either
# on the same line as the last array element or on a new line.
#
# When using the `symmetrical` (default) style:
#
# If an array's opening brace is on the same line as the first element
# of the array, then the closing brace should be on the same line as
# the last element of the array.
#
# If an array's opening brace is on the line above the first element
# of the array, then the closing brace should be on the line below
# the last element of the array.
#
# When using the `new_line` style:
#
# The closing brace of a multi-line array literal must be on the line
# after the last element of the array.
#
# When using the `same_line` style:
#
# The closing brace of a multi-line array literal must be on the same
# line as the last element of the array.
#
# @example EnforcedStyle: symmetrical (default)
# # bad
# [ :a,
# :b
# ]
#
# # bad
# [
# :a,
# :b ]
#
# # good
# [ :a,
# :b ]
#
# # good
# [
# :a,
# :b
# ]
# @example EnforcedStyle: new_line
# # bad
# [
# :a,
# :b ]
#
# # bad
# [ :a,
# :b ]
#
# # good
# [ :a,
# :b
# ]
#
# # good
# [
# :a,
# :b
# ]
# @example EnforcedStyle: same_line
# # bad
# [ :a,
# :b
# ]
#
# # bad
# [
# :a,
# :b
# ]
#
# # good
# [
# :a,
# :b ]
#
# # good
# [ :a,
# :b ]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_array_brace_layout.rb#91
class RuboCop::Cop::Layout::MultilineArrayBraceLayout < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::MultilineLiteralBraceLayout
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/multiline_array_brace_layout.rb#109
def on_array(node); end
end
# source://rubocop//lib/rubocop/cop/layout/multiline_array_brace_layout.rb#103
RuboCop::Cop::Layout::MultilineArrayBraceLayout::ALWAYS_NEW_LINE_MESSAGE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/multiline_array_brace_layout.rb#106
RuboCop::Cop::Layout::MultilineArrayBraceLayout::ALWAYS_SAME_LINE_MESSAGE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/multiline_array_brace_layout.rb#99
RuboCop::Cop::Layout::MultilineArrayBraceLayout::NEW_LINE_MESSAGE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/multiline_array_brace_layout.rb#95
RuboCop::Cop::Layout::MultilineArrayBraceLayout::SAME_LINE_MESSAGE = T.let(T.unsafe(nil), String)
# Ensures that each item in a multi-line array
# starts on a separate line.
#
# @example
#
# # bad
# [
# a, b,
# c
# ]
#
# # good
# [
# a,
# b,
# c
# ]
#
# # good
# [
# a,
# b,
# foo(
# bar
# )
# ]
# @example AllowMultilineFinalElement: false (default)
#
# # bad
# [a, b, foo(
# bar
# )]
# @example AllowMultilineFinalElement: true
#
# # good
# [a, b, foo(
# bar
# )]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_array_line_breaks.rb#47
class RuboCop::Cop::Layout::MultilineArrayLineBreaks < ::RuboCop::Cop::Base
include ::RuboCop::Cop::MultilineElementLineBreaks
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/multiline_array_line_breaks.rb#53
def on_array(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_array_line_breaks.rb#59
def ignore_last_element?; end
end
# source://rubocop//lib/rubocop/cop/layout/multiline_array_line_breaks.rb#51
RuboCop::Cop::Layout::MultilineArrayLineBreaks::MSG = T.let(T.unsafe(nil), String)
# Checks whether the multiline assignments have a newline
# after the assignment operator.
#
# @example EnforcedStyle: new_line (default)
# # bad
# foo = if expression
# 'bar'
# end
#
# # good
# foo =
# if expression
# 'bar'
# end
#
# # good
# foo =
# begin
# compute
# rescue => e
# nil
# end
# @example EnforcedStyle: same_line
# # good
# foo = if expression
# 'bar'
# end
# @example SupportedTypes: ['block', 'case', 'class', 'if', 'kwbegin', 'module'] (default)
# # good
# foo =
# if expression
# 'bar'
# end
#
# # good
# foo =
# [1].map do |i|
# i + 1
# end
# @example SupportedTypes: ['block']
# # good
# foo = if expression
# 'bar'
# end
#
# # good
# foo =
# [1].map do |i|
# 'bar' * i
# end
#
# source://rubocop//lib/rubocop/cop/layout/multiline_assignment_layout.rb#60
class RuboCop::Cop::Layout::MultilineAssignmentLayout < ::RuboCop::Cop::Base
include ::RuboCop::Cop::CheckAssignment
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/multiline_assignment_layout.rb#72
def check_assignment(node, rhs); end
# source://rubocop//lib/rubocop/cop/layout/multiline_assignment_layout.rb#81
def check_by_enforced_style(node, rhs); end
# source://rubocop//lib/rubocop/cop/layout/multiline_assignment_layout.rb#90
def check_new_line_offense(node, rhs); end
# source://rubocop//lib/rubocop/cop/layout/multiline_assignment_layout.rb#98
def check_same_line_offense(node, rhs); end
private
# source://rubocop//lib/rubocop/cop/layout/multiline_assignment_layout.rb#111
def supported_types; end
end
# source://rubocop//lib/rubocop/cop/layout/multiline_assignment_layout.rb#66
RuboCop::Cop::Layout::MultilineAssignmentLayout::NEW_LINE_OFFENSE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/multiline_assignment_layout.rb#69
RuboCop::Cop::Layout::MultilineAssignmentLayout::SAME_LINE_OFFENSE = T.let(T.unsafe(nil), String)
# Checks whether the multiline do end blocks have a newline
# after the start of the block. Additionally, it checks whether the block
# arguments, if any, are on the same line as the start of the
# block. Putting block arguments on separate lines, because the whole
# line would otherwise be too long, is accepted.
#
# @example
# # bad
# blah do |i| foo(i)
# bar(i)
# end
#
# # bad
# blah do
# |i| foo(i)
# bar(i)
# end
#
# # good
# blah do |i|
# foo(i)
# bar(i)
# end
#
# # bad
# blah { |i| foo(i)
# bar(i)
# }
#
# # good
# blah { |i|
# foo(i)
# bar(i)
# }
#
# # good
# blah { |
# long_list,
# of_parameters,
# that_would_not,
# fit_on_one_line
# |
# foo(i)
# bar(i)
# }
#
# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#51
class RuboCop::Cop::Layout::MultilineBlockLayout < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#59
def on_block(node); end
# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#59
def on_numblock(node); end
private
# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#98
def add_offense_for_expression(node, expr, msg); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#75
def args_on_beginning_line?(node); end
# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#105
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#120
def autocorrect_arguments(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#130
def autocorrect_body(corrector, node, block_body); end
# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#142
def block_arg_string(node, args); end
# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#90
def characters_needed_for_space_and_pipes(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#154
def include_trailing_comma?(args); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#79
def line_break_necessary_in_args?(node); end
# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#83
def needed_length_for_args(node); end
end
# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#56
RuboCop::Cop::Layout::MultilineBlockLayout::ARG_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#55
RuboCop::Cop::Layout::MultilineBlockLayout::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/multiline_block_layout.rb#57
RuboCop::Cop::Layout::MultilineBlockLayout::PIPE_SIZE = T.let(T.unsafe(nil), Integer)
# Checks that the closing brace in a hash literal is either
# on the same line as the last hash element, or a new line.
#
# When using the `symmetrical` (default) style:
#
# If a hash's opening brace is on the same line as the first element
# of the hash, then the closing brace should be on the same line as
# the last element of the hash.
#
# If a hash's opening brace is on the line above the first element
# of the hash, then the closing brace should be on the line below
# the last element of the hash.
#
# When using the `new_line` style:
#
# The closing brace of a multi-line hash literal must be on the line
# after the last element of the hash.
#
# When using the `same_line` style:
#
# The closing brace of a multi-line hash literal must be on the same
# line as the last element of the hash.
#
# @example EnforcedStyle: symmetrical (default)
#
# # bad
# { a: 1,
# b: 2
# }
# # bad
# {
# a: 1,
# b: 2 }
#
# # good
# { a: 1,
# b: 2 }
#
# # good
# {
# a: 1,
# b: 2
# }
# @example EnforcedStyle: new_line
# # bad
# {
# a: 1,
# b: 2 }
#
# # bad
# { a: 1,
# b: 2 }
#
# # good
# { a: 1,
# b: 2
# }
#
# # good
# {
# a: 1,
# b: 2
# }
# @example EnforcedStyle: same_line
# # bad
# { a: 1,
# b: 2
# }
#
# # bad
# {
# a: 1,
# b: 2
# }
#
# # good
# {
# a: 1,
# b: 2 }
#
# # good
# { a: 1,
# b: 2 }
#
# source://rubocop//lib/rubocop/cop/layout/multiline_hash_brace_layout.rb#91
class RuboCop::Cop::Layout::MultilineHashBraceLayout < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::MultilineLiteralBraceLayout
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/multiline_hash_brace_layout.rb#109
def on_hash(node); end
end
# source://rubocop//lib/rubocop/cop/layout/multiline_hash_brace_layout.rb#103
RuboCop::Cop::Layout::MultilineHashBraceLayout::ALWAYS_NEW_LINE_MESSAGE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/multiline_hash_brace_layout.rb#106
RuboCop::Cop::Layout::MultilineHashBraceLayout::ALWAYS_SAME_LINE_MESSAGE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/multiline_hash_brace_layout.rb#99
RuboCop::Cop::Layout::MultilineHashBraceLayout::NEW_LINE_MESSAGE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/multiline_hash_brace_layout.rb#95
RuboCop::Cop::Layout::MultilineHashBraceLayout::SAME_LINE_MESSAGE = T.let(T.unsafe(nil), String)
# Ensures that each key in a multi-line hash
# starts on a separate line.
#
# @example
#
# # bad
# {
# a: 1, b: 2,
# c: 3
# }
#
# # good
# {
# a: 1,
# b: 2,
# c: 3
# }
#
# # good
# {
# a: 1,
# b: {
# c: 3,
# }
# }
# @example AllowMultilineFinalElement: false (default)
#
# # bad
# { a: 1, b: {
# c: 3,
# }}
# @example AllowMultilineFinalElement: true
#
# # good
# { a: 1, b: {
# c: 3,
# }}
#
# source://rubocop//lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb#46
class RuboCop::Cop::Layout::MultilineHashKeyLineBreaks < ::RuboCop::Cop::Base
include ::RuboCop::Cop::MultilineElementLineBreaks
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb#52
def on_hash(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb#68
def ignore_last_element?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb#64
def starts_with_curly_brace?(node); end
end
# source://rubocop//lib/rubocop/cop/layout/multiline_hash_key_line_breaks.rb#50
RuboCop::Cop::Layout::MultilineHashKeyLineBreaks::MSG = T.let(T.unsafe(nil), String)
# Ensures that each argument in a multi-line method call
# starts on a separate line.
#
# NOTE: This cop does not move the first argument, if you want that to
# be on a separate line, see `Layout/FirstMethodArgumentLineBreak`.
#
# @example
#
# # bad
# foo(a, b,
# c
# )
#
# # bad
# foo(a, b, {
# foo: "bar",
# })
#
# # good
# foo(
# a,
# b,
# c
# )
#
# # good
# foo(a, b, c)
# @example AllowMultilineFinalElement: false (default)
#
# # good
# foo(
# a,
# b,
# {
# foo: "bar",
# }
# )
# @example AllowMultilineFinalElement: true
#
# # good
# foo(
# a,
# b,
# {
# foo: "bar",
# }
# )
#
# source://rubocop//lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb#56
class RuboCop::Cop::Layout::MultilineMethodArgumentLineBreaks < ::RuboCop::Cop::Base
include ::RuboCop::Cop::MultilineElementLineBreaks
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb#62
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb#81
def ignore_last_element?; end
end
# source://rubocop//lib/rubocop/cop/layout/multiline_method_argument_line_breaks.rb#60
RuboCop::Cop::Layout::MultilineMethodArgumentLineBreaks::MSG = T.let(T.unsafe(nil), String)
# Checks that the closing brace in a method call is either
# on the same line as the last method argument, or a new line.
#
# When using the `symmetrical` (default) style:
#
# If a method call's opening brace is on the same line as the first
# argument of the call, then the closing brace should be on the same
# line as the last argument of the call.
#
# If an method call's opening brace is on the line above the first
# argument of the call, then the closing brace should be on the line
# below the last argument of the call.
#
# When using the `new_line` style:
#
# The closing brace of a multi-line method call must be on the line
# after the last argument of the call.
#
# When using the `same_line` style:
#
# The closing brace of a multi-line method call must be on the same
# line as the last argument of the call.
#
# @example EnforcedStyle: symmetrical (default)
# # bad
# foo(a,
# b
# )
#
# # bad
# foo(
# a,
# b)
#
# # good
# foo(a,
# b)
#
# # good
# foo(
# a,
# b
# )
# @example EnforcedStyle: new_line
# # bad
# foo(
# a,
# b)
#
# # bad
# foo(a,
# b)
#
# # good
# foo(a,
# b
# )
#
# # good
# foo(
# a,
# b
# )
# @example EnforcedStyle: same_line
# # bad
# foo(a,
# b
# )
#
# # bad
# foo(
# a,
# b
# )
#
# # good
# foo(
# a,
# b)
#
# # good
# foo(a,
# b)
#
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb#91
class RuboCop::Cop::Layout::MultilineMethodCallBraceLayout < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::MultilineLiteralBraceLayout
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb#109
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb#115
def children(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb#119
def ignored_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb#123
def single_line_ignoring_receiver?(node); end
end
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb#103
RuboCop::Cop::Layout::MultilineMethodCallBraceLayout::ALWAYS_NEW_LINE_MESSAGE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb#106
RuboCop::Cop::Layout::MultilineMethodCallBraceLayout::ALWAYS_SAME_LINE_MESSAGE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb#99
RuboCop::Cop::Layout::MultilineMethodCallBraceLayout::NEW_LINE_MESSAGE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_brace_layout.rb#95
RuboCop::Cop::Layout::MultilineMethodCallBraceLayout::SAME_LINE_MESSAGE = T.let(T.unsafe(nil), String)
# Checks the indentation of the method name part in method calls
# that span more than one line.
#
# @example EnforcedStyle: aligned (default)
# # bad
# while myvariable
# .b
# # do something
# end
#
# # good
# while myvariable
# .b
# # do something
# end
#
# # good
# Thing.a
# .b
# .c
# @example EnforcedStyle: indented
# # good
# while myvariable
# .b
#
# # do something
# end
# @example EnforcedStyle: indented_relative_to_receiver
# # good
# while myvariable
# .a
# .b
#
# # do something
# end
#
# # good
# myvariable = Thing
# .a
# .b
# .c
#
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#49
class RuboCop::Cop::Layout::MultilineMethodCallIndentation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::MultilineExpressionIndentation
extend ::RuboCop::Cop::AutoCorrector
# @raise [ValidationError]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#55
def validate_config; end
private
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#136
def align_with_base_message(rhs); end
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#152
def alignment_base(node, rhs, given_style); end
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#67
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#140
def base_source; end
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#101
def extra_indentation(given_style, parent); end
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#226
def find_multiline_block_chain_node(node); end
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#237
def first_call_has_a_dot(node); end
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#217
def get_dot_right_above(node); end
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#113
def message(node, lhs, rhs); end
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#144
def no_base_message(lhs, rhs, node); end
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#87
def offending_range(node, lhs, rhs, given_style); end
# @yield [operation_rhs.first_argument]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#247
def operation_rhs(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#257
def operator_rhs?(node, receiver); end
# a
# .b
# .c
#
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#193
def receiver_alignment_base(node); end
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#131
def relative_to_receiver_message(rhs); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#71
def relevant_node?(send_node); end
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#75
def right_hand_side(send_node); end
# a.b
# .c
#
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#181
def semantic_alignment_base(node, rhs); end
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#201
def semantic_alignment_node(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#127
def should_align_with_base?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#123
def should_indent_relative_to_receiver?; end
# source://rubocop//lib/rubocop/cop/layout/multiline_method_call_indentation.rb#163
def syntactic_alignment_base(lhs, rhs); end
end
# Checks that the closing brace in a method definition is either
# on the same line as the last method parameter, or a new line.
#
# When using the `symmetrical` (default) style:
#
# If a method definition's opening brace is on the same line as the
# first parameter of the definition, then the closing brace should be
# on the same line as the last parameter of the definition.
#
# If an method definition's opening brace is on the line above the first
# parameter of the definition, then the closing brace should be on the
# line below the last parameter of the definition.
#
# When using the `new_line` style:
#
# The closing brace of a multi-line method definition must be on the line
# after the last parameter of the definition.
#
# When using the `same_line` style:
#
# The closing brace of a multi-line method definition must be on the same
# line as the last parameter of the definition.
#
# @example EnforcedStyle: symmetrical (default)
# # bad
# def foo(a,
# b
# )
# end
#
# # bad
# def foo(
# a,
# b)
# end
#
# # good
# def foo(a,
# b)
# end
#
# # good
# def foo(
# a,
# b
# )
# end
# @example EnforcedStyle: new_line
# # bad
# def foo(
# a,
# b)
# end
#
# # bad
# def foo(a,
# b)
# end
#
# # good
# def foo(a,
# b
# )
# end
#
# # good
# def foo(
# a,
# b
# )
# end
# @example EnforcedStyle: same_line
# # bad
# def foo(a,
# b
# )
# end
#
# # bad
# def foo(
# a,
# b
# )
# end
#
# # good
# def foo(
# a,
# b)
# end
#
# # good
# def foo(a,
# b)
# end
#
# source://rubocop//lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb#103
class RuboCop::Cop::Layout::MultilineMethodDefinitionBraceLayout < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::MultilineLiteralBraceLayout
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb#121
def on_def(node); end
# source://rubocop//lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb#121
def on_defs(node); end
end
# source://rubocop//lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb#115
RuboCop::Cop::Layout::MultilineMethodDefinitionBraceLayout::ALWAYS_NEW_LINE_MESSAGE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb#118
RuboCop::Cop::Layout::MultilineMethodDefinitionBraceLayout::ALWAYS_SAME_LINE_MESSAGE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb#111
RuboCop::Cop::Layout::MultilineMethodDefinitionBraceLayout::NEW_LINE_MESSAGE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/multiline_method_definition_brace_layout.rb#107
RuboCop::Cop::Layout::MultilineMethodDefinitionBraceLayout::SAME_LINE_MESSAGE = T.let(T.unsafe(nil), String)
# Ensures that each parameter in a multi-line method definition
# starts on a separate line.
#
# NOTE: This cop does not move the first argument, if you want that to
# be on a separate line, see `Layout/FirstMethodParameterLineBreak`.
#
# @example
#
# # bad
# def foo(a, b,
# c
# )
# end
#
# # good
# def foo(
# a,
# b,
# c
# )
# end
#
# # good
# def foo(
# a,
# b = {
# foo: "bar",
# }
# )
# end
#
# # good
# def foo(a, b, c)
# end
# @example AllowMultilineFinalElement: false (default)
#
# # bad
# def foo(a, b = {
# foo: "bar",
# })
# end
# @example AllowMultilineFinalElement: true
#
# # good
# def foo(a, b = {
# foo: "bar",
# })
# end
#
# source://rubocop//lib/rubocop/cop/layout/multiline_method_parameter_line_breaks.rb#57
class RuboCop::Cop::Layout::MultilineMethodParameterLineBreaks < ::RuboCop::Cop::Base
include ::RuboCop::Cop::MultilineElementLineBreaks
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/multiline_method_parameter_line_breaks.rb#63
def on_def(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_method_parameter_line_breaks.rb#71
def ignore_last_element?; end
end
# source://rubocop//lib/rubocop/cop/layout/multiline_method_parameter_line_breaks.rb#61
RuboCop::Cop::Layout::MultilineMethodParameterLineBreaks::MSG = T.let(T.unsafe(nil), String)
# Checks the indentation of the right hand side operand in binary operations that
# span more than one line.
#
# The `aligned` style checks that operators are aligned if they are part of an `if` or `while`
# condition, an explicit `return` statement, etc. In other contexts, the second operand should
# be indented regardless of enforced style.
#
# @example EnforcedStyle: aligned (default)
# # bad
# if a +
# b
# something &&
# something_else
# end
#
# # good
# if a +
# b
# something &&
# something_else
# end
# @example EnforcedStyle: indented
# # bad
# if a +
# b
# something &&
# something_else
# end
#
# # good
# if a +
# b
# something &&
# something_else
# end
#
# source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#43
class RuboCop::Cop::Layout::MultilineOperationIndentation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::MultilineExpressionIndentation
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#49
def on_and(node); end
# source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#53
def on_or(node); end
# @raise [ValidationError]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#57
def validate_config; end
private
# source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#68
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#78
def check_and_or(node); end
# source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#110
def message(node, lhs, rhs); end
# source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#84
def offending_range(node, lhs, rhs, given_style); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#72
def relevant_node?(node); end
# source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#121
def right_hand_side(send_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/multiline_operation_indentation.rb#97
def should_align?(node, rhs, given_style); end
end
# Here we check if the parameters on a multi-line method call or
# definition are aligned.
#
# To set the alignment of the first argument, use the cop
# FirstParameterIndentation.
#
# @example EnforcedStyle: with_first_parameter (default)
# # good
#
# def foo(bar,
# baz)
# 123
# end
#
# def foo(
# bar,
# baz
# )
# 123
# end
#
# # bad
#
# def foo(bar,
# baz)
# 123
# end
#
# # bad
#
# def foo(
# bar,
# baz)
# 123
# end
# @example EnforcedStyle: with_fixed_indentation
# # good
#
# def foo(bar,
# baz)
# 123
# end
#
# def foo(
# bar,
# baz
# )
# 123
# end
#
# # bad
#
# def foo(bar,
# baz)
# 123
# end
#
# # bad
#
# def foo(
# bar,
# baz)
# 123
# end
#
# source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#71
class RuboCop::Cop::Layout::ParameterAlignment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#81
def on_def(node); end
# source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#81
def on_defs(node); end
private
# source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#90
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#102
def base_column(node, args); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#98
def fixed_indentation?; end
# source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#94
def message(_node); end
# source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#113
def target_method_lineno(node); end
end
# source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#75
RuboCop::Cop::Layout::ParameterAlignment::ALIGN_PARAMS_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/parameter_alignment.rb#78
RuboCop::Cop::Layout::ParameterAlignment::FIXED_INDENT_MSG = T.let(T.unsafe(nil), String)
# Checks whether certain expressions, e.g. method calls, that could fit
# completely on a single line, are broken up into multiple lines unnecessarily.
#
# @example any configuration
# # bad
# foo(
# a,
# b
# )
#
# puts 'string that fits on ' \
# 'a single line'
#
# things
# .select { |thing| thing.cond? }
# .join('-')
#
# # good
# foo(a, b)
#
# puts 'string that fits on a single line'
#
# things.select { |thing| thing.cond? }.join('-')
# @example InspectBlocks: false (default)
# # good
# foo(a) do |x|
# puts x
# end
# @example InspectBlocks: true
# # bad
# foo(a) do |x|
# puts x
# end
#
# # good
# foo(a) { |x| puts x }
#
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#45
class RuboCop::Cop::Layout::RedundantLineBreak < ::RuboCop::Cop::Base
include ::RuboCop::Cop::CheckAssignment
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#55
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#51
def on_lvasgn(node); end
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#55
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#73
def check_assignment(node, _rhs); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#133
def comment_within?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#103
def configured_to_not_be_inspected?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#127
def convertible_block?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#69
def end_with_percent_blank_string?(processed_source); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#97
def index_access_call_chained?(node); end
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#155
def max_line_length; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#86
def offense?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#110
def other_cop_takes_precedence?(node); end
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#79
def register_offense(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#93
def require_backslash?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#116
def single_line_block_chain_enabled?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#120
def suitable_as_single_line?(node); end
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#146
def to_single_line(source); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#141
def too_long?(node); end
end
# source://rubocop//lib/rubocop/cop/layout/redundant_line_break.rb#49
RuboCop::Cop::Layout::RedundantLineBreak::MSG = T.let(T.unsafe(nil), String)
# Checks whether the rescue and ensure keywords are aligned
# properly.
#
# @example
#
# # bad
# begin
# something
# rescue
# puts 'error'
# end
#
# # good
# begin
# something
# rescue
# puts 'error'
# end
#
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#24
class RuboCop::Cop::Layout::RescueEnsureAlignment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::EndKeywordAlignment
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#40
def on_ensure(node); end
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#44
def on_new_investigation; end
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#36
def on_resbody(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#186
def access_modifier?(node); end
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#163
def access_modifier_node(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#149
def aligned_with_leading_dot?(do_keyword_line, send_node_loc, rescue_keyword_column); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#136
def aligned_with_line_break_method?(ancestor_node, node); end
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#195
def alignment_location(alignment_node); end
# We will use ancestor or wrapper with access modifier.
#
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#116
def alignment_node(node); end
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#95
def alignment_source(node, starting_loc); end
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#132
def ancestor_node(node); end
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#155
def assignment_node(node); end
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#73
def autocorrect(corrector, node, alignment_location); end
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#203
def begin_end_alignment_style; end
# Check alignment of node with rescue or ensure modifiers.
#
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#57
def check(node); end
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#83
def format_message(alignment_node, alignment_loc, kw_loc); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#173
def modifier?(node); end
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#179
def whitespace_range(node); end
end
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#34
RuboCop::Cop::Layout::RescueEnsureAlignment::ALTERNATIVE_ACCESS_MODIFIERS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#32
RuboCop::Cop::Layout::RescueEnsureAlignment::ANCESTOR_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#33
RuboCop::Cop::Layout::RescueEnsureAlignment::ANCESTOR_TYPES_WITH_ACCESS_MODIFIERS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/layout/rescue_ensure_alignment.rb#29
RuboCop::Cop::Layout::RescueEnsureAlignment::MSG = T.let(T.unsafe(nil), String)
# Checks if method calls are chained onto single line blocks. It considers that a
# line break before the dot improves the readability of the code.
#
# @example
# # bad
# example.select { |item| item.cond? }.join('-')
#
# # good
# example.select { |item| item.cond? }
# .join('-')
#
# # good (not a concern for this cop)
# example.select do |item|
# item.cond?
# end.join('-')
#
# source://rubocop//lib/rubocop/cop/layout/single_line_block_chain.rb#22
class RuboCop::Cop::Layout::SingleLineBlockChain < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/single_line_block_chain.rb#32
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/layout/single_line_block_chain.rb#32
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/single_line_block_chain.rb#56
def call_method_after_block?(node, dot_range, closing_block_delimiter_line_num); end
# source://rubocop//lib/rubocop/cop/layout/single_line_block_chain.rb#40
def offending_range(node); end
# source://rubocop//lib/rubocop/cop/layout/single_line_block_chain.rb#62
def selector_range(node); end
class << self
# source://rubocop//lib/rubocop/cop/layout/single_line_block_chain.rb#28
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/layout/single_line_block_chain.rb#26
RuboCop::Cop::Layout::SingleLineBlockChain::MSG = T.let(T.unsafe(nil), String)
# Checks for colon (:) not followed by some kind of space.
# N.B. this cop does not handle spaces after a ternary operator, which are
# instead handled by Layout/SpaceAroundOperators.
#
# @example
# # bad
# def f(a:, b:2); {a:3}; end
#
# # good
# def f(a:, b: 2); {a: 3}; end
#
# source://rubocop//lib/rubocop/cop/layout/space_after_colon.rb#16
class RuboCop::Cop::Layout::SpaceAfterColon < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_after_colon.rb#29
def on_kwoptarg(node); end
# source://rubocop//lib/rubocop/cop/layout/space_after_colon.rb#21
def on_pair(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_after_colon.rb#43
def followed_by_space?(colon); end
# source://rubocop//lib/rubocop/cop/layout/space_after_colon.rb#39
def register_offense(colon); end
end
# source://rubocop//lib/rubocop/cop/layout/space_after_colon.rb#19
RuboCop::Cop::Layout::SpaceAfterColon::MSG = T.let(T.unsafe(nil), String)
# Checks for comma (,) not followed by some kind of space.
#
# @example
#
# # bad
# [1,2]
# { foo:bar,}
#
# # good
# [1, 2]
# { foo:bar, }
#
# source://rubocop//lib/rubocop/cop/layout/space_after_comma.rb#17
class RuboCop::Cop::Layout::SpaceAfterComma < ::RuboCop::Cop::Base
include ::RuboCop::Cop::SpaceAfterPunctuation
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_after_comma.rb#26
def kind(token); end
# source://rubocop//lib/rubocop/cop/layout/space_after_comma.rb#21
def space_style_before_rcurly; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_after_comma.rb#32
def before_semicolon?(token); end
end
# Checks for space between a method name and a left parenthesis in defs.
#
# @example
#
# # bad
# def func (x) end
# def method= (y) end
#
# # good
# def func(x) end
# def method=(y) end
#
# source://rubocop//lib/rubocop/cop/layout/space_after_method_name.rb#17
class RuboCop::Cop::Layout::SpaceAfterMethodName < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_after_method_name.rb#23
def on_def(node); end
# source://rubocop//lib/rubocop/cop/layout/space_after_method_name.rb#23
def on_defs(node); end
end
# source://rubocop//lib/rubocop/cop/layout/space_after_method_name.rb#21
RuboCop::Cop::Layout::SpaceAfterMethodName::MSG = T.let(T.unsafe(nil), String)
# Checks for space after `!`.
#
# @example
# # bad
# ! something
#
# # good
# !something
#
# source://rubocop//lib/rubocop/cop/layout/space_after_not.rb#14
class RuboCop::Cop::Layout::SpaceAfterNot < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_after_not.rb#21
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_after_not.rb#33
def whitespace_after_operator?(node); end
end
# source://rubocop//lib/rubocop/cop/layout/space_after_not.rb#18
RuboCop::Cop::Layout::SpaceAfterNot::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/space_after_not.rb#19
RuboCop::Cop::Layout::SpaceAfterNot::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for semicolon (;) not followed by some kind of space.
#
# @example
# # bad
# x = 1;y = 2
#
# # good
# x = 1; y = 2
#
# source://rubocop//lib/rubocop/cop/layout/space_after_semicolon.rb#14
class RuboCop::Cop::Layout::SpaceAfterSemicolon < ::RuboCop::Cop::Base
include ::RuboCop::Cop::SpaceAfterPunctuation
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_after_semicolon.rb#23
def kind(token); end
# source://rubocop//lib/rubocop/cop/layout/space_after_semicolon.rb#18
def space_style_before_rcurly; end
end
# Checks the spacing inside and after block parameters pipes. Line breaks
# inside parameter pipes are checked by `Layout/MultilineBlockLayout` and
# not by this cop.
#
# @example EnforcedStyleInsidePipes: no_space (default)
# # bad
# {}.each { | x, y |puts x }
# ->( x, y ) { puts x }
#
# # good
# {}.each { |x, y| puts x }
# ->(x, y) { puts x }
# @example EnforcedStyleInsidePipes: space
# # bad
# {}.each { |x, y| puts x }
# ->(x, y) { puts x }
#
# # good
# {}.each { | x, y | puts x }
# ->( x, y ) { puts x }
#
# source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#27
class RuboCop::Cop::Layout::SpaceAroundBlockParameters < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#32
def on_block(node); end
private
# source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#65
def check_after_closing_pipe(arguments); end
# source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#125
def check_arg(arg); end
# source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#103
def check_closing_pipe_space(arguments, closing_pipe); end
# source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#121
def check_each_arg(args); end
# source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#56
def check_inside_pipes(arguments); end
# source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#150
def check_no_space(space_begin_pos, space_end_pos, msg); end
# source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#73
def check_no_space_style_inside_pipes(arguments); end
# source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#92
def check_opening_pipe_space(arguments, opening_pipe); end
# source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#136
def check_space(space_begin_pos, space_end_pos, range, msg, node = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#85
def check_space_style_inside_pipes(arguments); end
# source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#113
def last_end_pos_inside_pipes(arguments, range); end
# source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#44
def pipes(arguments); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#48
def pipes?(arguments); end
# source://rubocop//lib/rubocop/cop/layout/space_around_block_parameters.rb#52
def style_parameter_name; end
end
# Checks that the equals signs in parameter default assignments
# have or don't have surrounding space depending on configuration.
#
# @example EnforcedStyle: space (default)
# # bad
# def some_method(arg1=:default, arg2=nil, arg3=[])
# # do something...
# end
#
# # good
# def some_method(arg1 = :default, arg2 = nil, arg3 = [])
# # do something...
# end
# @example EnforcedStyle: no_space
# # bad
# def some_method(arg1 = :default, arg2 = nil, arg3 = [])
# # do something...
# end
#
# # good
# def some_method(arg1=:default, arg2=nil, arg3=[])
# # do something...
# end
#
# source://rubocop//lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb#30
class RuboCop::Cop::Layout::SpaceAroundEqualsInParameterDefault < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::SurroundingSpace
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb#38
def on_optarg(node); end
private
# source://rubocop//lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb#67
def autocorrect(corrector, range); end
# source://rubocop//lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb#46
def check_optarg(arg, equals, value); end
# source://rubocop//lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb#58
def incorrect_style_detected(arg, value); end
# source://rubocop//lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb#83
def message(_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb#79
def no_surrounding_space?(arg, equals); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb#75
def space_on_both_sides?(arg, equals); end
end
# source://rubocop//lib/rubocop/cop/layout/space_around_equals_in_parameter_default.rb#36
RuboCop::Cop::Layout::SpaceAroundEqualsInParameterDefault::MSG = T.let(T.unsafe(nil), String)
# Checks the spacing around the keywords.
#
# @example
#
# # bad
# something 'test'do|x|
# end
#
# while(something)
# end
#
# something = 123if test
#
# # good
# something 'test' do |x|
# end
#
# while (something)
# end
#
# something = 123 if test
#
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#27
class RuboCop::Cop::Layout::SpaceAroundKeyword < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#40
def on_and(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#44
def on_block(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#48
def on_break(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#52
def on_case(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#56
def on_case_match(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#156
def on_defined?(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#60
def on_ensure(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#64
def on_for(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#68
def on_if(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#72
def on_if_guard(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#76
def on_in_pattern(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#80
def on_kwbegin(node); end
# Handle one-line pattern matching syntax (`in`) with `Parser::Ruby27`.
#
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#85
def on_match_pattern(node); end
# Handle one-line pattern matching syntax (`in`) with `Parser::Ruby30`.
#
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#92
def on_match_pattern_p(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#96
def on_next(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#100
def on_or(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#104
def on_postexe(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#108
def on_preexe(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#112
def on_resbody(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#116
def on_rescue(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#120
def on_return(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#124
def on_send(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#128
def on_super(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#136
def on_unless_guard(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#140
def on_until(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#144
def on_when(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#148
def on_while(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#152
def on_yield(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#132
def on_zsuper(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#235
def accept_left_parenthesis?(range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#239
def accept_left_square_bracket?(range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#243
def accept_namespace_operator?(range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#228
def accepted_opening_delimiter?(range, char); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#162
def check(node, locations, begin_keyword = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#177
def check_begin(node, range, begin_keyword); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#183
def check_end(node, range, begin_keyword); end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#196
def check_keyword(node, range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#192
def do?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#251
def namespace_operator?(range, pos); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#255
def preceded_by_operator?(node, _range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#247
def safe_navigation_call?(range, pos); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#217
def space_after_missing?(range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#210
def space_before_missing?(range); end
end
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#36
RuboCop::Cop::Layout::SpaceAroundKeyword::ACCEPT_LEFT_PAREN = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#37
RuboCop::Cop::Layout::SpaceAroundKeyword::ACCEPT_LEFT_SQUARE_BRACKET = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#38
RuboCop::Cop::Layout::SpaceAroundKeyword::ACCEPT_NAMESPACE_OPERATOR = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#33
RuboCop::Cop::Layout::SpaceAroundKeyword::DO = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#31
RuboCop::Cop::Layout::SpaceAroundKeyword::MSG_AFTER = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#30
RuboCop::Cop::Layout::SpaceAroundKeyword::MSG_BEFORE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#35
RuboCop::Cop::Layout::SpaceAroundKeyword::NAMESPACE_OPERATOR = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/space_around_keyword.rb#34
RuboCop::Cop::Layout::SpaceAroundKeyword::SAFE_NAVIGATION = T.let(T.unsafe(nil), String)
# Checks method call operators to not have spaces around them.
#
# @example
# # bad
# foo. bar
# foo .bar
# foo . bar
# foo. bar .buzz
# foo
# . bar
# . buzz
# foo&. bar
# foo &.bar
# foo &. bar
# foo &. bar&. buzz
# RuboCop:: Cop
# RuboCop:: Cop:: Base
# :: RuboCop::Cop
#
# # good
# foo.bar
# foo.bar.buzz
# foo
# .bar
# .buzz
# foo&.bar
# foo&.bar&.buzz
# RuboCop::Cop
# RuboCop::Cop::Base
# ::RuboCop::Cop
#
# source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#37
class RuboCop::Cop::Layout::SpaceAroundMethodCallOperator < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#53
def on_const(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#45
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#45
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#87
def check_space(begin_pos, end_pos); end
# source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#67
def check_space_after_dot(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#81
def check_space_after_double_colon(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#61
def check_space_before_dot(node); end
end
# source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#43
RuboCop::Cop::Layout::SpaceAroundMethodCallOperator::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/space_around_method_call_operator.rb#41
RuboCop::Cop::Layout::SpaceAroundMethodCallOperator::SPACES_REGEXP = T.let(T.unsafe(nil), Regexp)
# Checks that operators have space around them, except for ** which
# should or shouldn't have surrounding space depending on configuration.
# It allows vertical alignment consisting of one or more whitespace
# around operators.
#
# This cop has `AllowForAlignment` option. When `true`, allows most
# uses of extra spacing if the intent is to align with an operator on
# the previous or next line, not counting empty lines or comment lines.
#
# @example
# # bad
# total = 3*4
# "apple"+"juice"
# my_number = 38/4
#
# # good
# total = 3 * 4
# "apple" + "juice"
# my_number = 38 / 4
# @example AllowForAlignment: true (default)
# # good
# {
# 1 => 2,
# 11 => 3
# }
# @example AllowForAlignment: false
# # bad
# {
# 1 => 2,
# 11 => 3
# }
# @example EnforcedStyleForExponentOperator: no_space (default)
# # bad
# a ** b
#
# # good
# a**b
# @example EnforcedStyleForExponentOperator: space
# # bad
# a**b
#
# # good
# a ** b
# @example EnforcedStyleForRationalLiterals: no_space (default)
# # bad
# 1 / 48r
#
# # good
# 1/48r
# @example EnforcedStyleForRationalLiterals: space
# # bad
# 1/48r
#
# # good
# 1 / 48r
#
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#67
class RuboCop::Cop::Layout::SpaceAroundOperators < ::RuboCop::Cop::Base
include ::RuboCop::Cop::PrecedingFollowingAlignment
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::RationalLiteral
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#133
def on_and(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#117
def on_and_asgn(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#117
def on_assignment(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#133
def on_binary(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#125
def on_casgn(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#133
def on_class(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#117
def on_cvasgn(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#117
def on_gvasgn(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#92
def on_if(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#117
def on_ivasgn(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#117
def on_lvasgn(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#117
def on_masgn(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#149
def on_match_pattern(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#141
def on_op_asgn(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#133
def on_or(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#117
def on_or_asgn(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#84
def on_pair(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#99
def on_resbody(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#80
def on_sclass(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#107
def on_send(node); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#141
def on_special_asgn(node); end
private
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#259
def align_hash_cop_config; end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#198
def autocorrect(corrector, range, right_operand); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#179
def check_operator(type, operator, right_operand); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#212
def enclose_operator_with_space(corrector, range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#239
def excess_leading_space?(type, operator, with_space); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#254
def excess_trailing_space?(right_operand, with_space); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#277
def force_equal_sign_alignment?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#263
def hash_table_style?; end
# @yield [msg]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#193
def offense(type, operator, with_space, right_operand); end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#225
def offense_message(type, operator, with_space, right_operand); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#175
def operator_with_regular_syntax?(send_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#169
def regular_operator?(send_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#281
def should_not_have_surrounding_space?(operator, right_operand); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#267
def space_around_exponent_operator?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#271
def space_around_slash_operator?(right_operand); end
class << self
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#76
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#74
RuboCop::Cop::Layout::SpaceAroundOperators::EXCESSIVE_SPACE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/space_around_operators.rb#73
RuboCop::Cop::Layout::SpaceAroundOperators::IRREGULAR_METHODS = T.let(T.unsafe(nil), Array)
# Checks that block braces have or don't have a space before the opening
# brace depending on configuration.
#
# @example EnforcedStyle: space (default)
# # bad
# foo.map{ |a|
# a.bar.to_s
# }
#
# # good
# foo.map { |a|
# a.bar.to_s
# }
# @example EnforcedStyle: no_space
# # bad
# foo.map { |a|
# a.bar.to_s
# }
#
# # good
# foo.map{ |a|
# a.bar.to_s
# }
# @example EnforcedStyleForEmptyBraces: space (default)
# # bad
# 7.times{}
#
# # good
# 7.times {}
# @example EnforcedStyleForEmptyBraces: no_space
# # bad
# 7.times {}
#
# # good
# 7.times{}
#
# source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#44
class RuboCop::Cop::Layout::SpaceBeforeBlockBraces < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#56
def on_block(node); end
# source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#56
def on_numblock(node); end
private
# source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#133
def autocorrect(corrector, range); end
# source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#153
def block_delimiters_style; end
# source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#83
def check_empty(left_brace, space_plus_brace, used_style); end
# source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#109
def check_non_empty(left_brace, space_plus_brace, used_style); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#149
def conflict_with_block_delimiters?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#157
def empty_braces?(loc); end
# source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#101
def handle_different_styles_for_empty_braces(used_style); end
# source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#124
def space_detected(left_brace, space_plus_brace); end
# source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#117
def space_missing(left_brace); end
# source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#140
def style_for_empty_braces; end
class << self
# source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#52
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#50
RuboCop::Cop::Layout::SpaceBeforeBlockBraces::DETECTED_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/space_before_block_braces.rb#49
RuboCop::Cop::Layout::SpaceBeforeBlockBraces::MISSING_MSG = T.let(T.unsafe(nil), String)
# Checks for space between the name of a receiver and a left
# brackets.
#
# @example
#
# # bad
# collection [index_or_key]
#
# # good
# collection[index_or_key]
#
# source://rubocop//lib/rubocop/cop/layout/space_before_brackets.rb#17
class RuboCop::Cop::Layout::SpaceBeforeBrackets < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_before_brackets.rb#24
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_before_brackets.rb#48
def dot_before_brackets?(node, receiver_end_pos, selector_begin_pos); end
# source://rubocop//lib/rubocop/cop/layout/space_before_brackets.rb#35
def offense_range(node, begin_pos); end
# source://rubocop//lib/rubocop/cop/layout/space_before_brackets.rb#54
def offense_range_for_assignment(node, begin_pos); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_before_brackets.rb#67
def reference_variable_with_brackets?(node); end
# source://rubocop//lib/rubocop/cop/layout/space_before_brackets.rb#63
def register_offense(range); end
end
# source://rubocop//lib/rubocop/cop/layout/space_before_brackets.rb#21
RuboCop::Cop::Layout::SpaceBeforeBrackets::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/space_before_brackets.rb#22
RuboCop::Cop::Layout::SpaceBeforeBrackets::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for comma (,) preceded by space.
#
# @example
# # bad
# [1 , 2 , 3]
# a(1 , 2)
# each { |a , b| }
#
# # good
# [1, 2, 3]
# a(1, 2)
# each { |a, b| }
#
# source://rubocop//lib/rubocop/cop/layout/space_before_comma.rb#19
class RuboCop::Cop::Layout::SpaceBeforeComma < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::SpaceBeforePunctuation
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_before_comma.rb#23
def kind(token); end
end
# Checks for missing space between a token and a comment on the
# same line.
#
# @example
# # bad
# 1 + 1# this operation does ...
#
# # good
# 1 + 1 # this operation does ...
#
# source://rubocop//lib/rubocop/cop/layout/space_before_comment.rb#15
class RuboCop::Cop::Layout::SpaceBeforeComment < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_before_comment.rb#20
def on_new_investigation; end
end
# source://rubocop//lib/rubocop/cop/layout/space_before_comment.rb#18
RuboCop::Cop::Layout::SpaceBeforeComment::MSG = T.let(T.unsafe(nil), String)
# Checks that exactly one space is used between a method name and the
# first argument for method calls without parentheses.
#
# Alternatively, extra spaces can be added to align the argument with
# something on a preceding or following line, if the AllowForAlignment
# config parameter is true.
#
# @example
# # bad
# something x
# something y, z
# something'hello'
#
# # good
# something x
# something y, z
# something 'hello'
#
# source://rubocop//lib/rubocop/cop/layout/space_before_first_arg.rb#24
class RuboCop::Cop::Layout::SpaceBeforeFirstArg < ::RuboCop::Cop::Base
include ::RuboCop::Cop::PrecedingFollowingAlignment
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_before_first_arg.rb#35
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/layout/space_before_first_arg.rb#35
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_before_first_arg.rb#55
def expect_params_after_method_name?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_before_first_arg.rb#64
def no_space_between_method_name_and_first_argument?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_before_first_arg.rb#51
def regular_method_call_with_arguments?(node); end
class << self
# source://rubocop//lib/rubocop/cop/layout/space_before_first_arg.rb#31
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/layout/space_before_first_arg.rb#29
RuboCop::Cop::Layout::SpaceBeforeFirstArg::MSG = T.let(T.unsafe(nil), String)
# Checks for semicolon (;) preceded by space.
#
# @example
# # bad
# x = 1 ; y = 2
#
# # good
# x = 1; y = 2
#
# source://rubocop//lib/rubocop/cop/layout/space_before_semicolon.rb#14
class RuboCop::Cop::Layout::SpaceBeforeSemicolon < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::SpaceBeforePunctuation
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_before_semicolon.rb#18
def kind(token); end
end
# Checks for spaces between `->` and opening parameter
# parenthesis (`(`) in lambda literals.
#
# @example EnforcedStyle: require_no_space (default)
# # bad
# a = -> (x, y) { x + y }
#
# # good
# a = ->(x, y) { x + y }
# @example EnforcedStyle: require_space
# # bad
# a = ->(x, y) { x + y }
#
# # good
# a = -> (x, y) { x + y }
#
# source://rubocop//lib/rubocop/cop/layout/space_in_lambda_literal.rb#22
class RuboCop::Cop::Layout::SpaceInLambdaLiteral < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_in_lambda_literal.rb#30
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_in_lambda_literal.rb#50
def arrow_lambda_with_args?(node); end
# source://rubocop//lib/rubocop/cop/layout/space_in_lambda_literal.rb#72
def lambda_arguments(node); end
# source://rubocop//lib/rubocop/cop/layout/space_in_lambda_literal.rb#65
def range_of_offense(node); end
# source://rubocop//lib/rubocop/cop/layout/space_in_lambda_literal.rb#58
def space_after_arrow(lambda_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_in_lambda_literal.rb#54
def space_after_arrow?(lambda_node); end
end
# source://rubocop//lib/rubocop/cop/layout/space_in_lambda_literal.rb#28
RuboCop::Cop::Layout::SpaceInLambdaLiteral::MSG_REQUIRE_NO_SPACE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/space_in_lambda_literal.rb#27
RuboCop::Cop::Layout::SpaceInLambdaLiteral::MSG_REQUIRE_SPACE = T.let(T.unsafe(nil), String)
# Checks that brackets used for array literals have or don't have
# surrounding space depending on configuration.
#
# @example EnforcedStyle: no_space (default)
# # The `no_space` style enforces that array literals have
# # no surrounding space.
#
# # bad
# array = [ a, b, c, d ]
#
# # good
# array = [a, b, c, d]
# @example EnforcedStyle: space
# # The `space` style enforces that array literals have
# # surrounding space.
#
# # bad
# array = [a, b, c, d]
#
# # good
# array = [ a, b, c, d ]
# @example EnforcedStyle: compact
# # The `compact` style normally requires a space inside
# # array brackets, with the exception that successive left
# # or right brackets are collapsed together in nested arrays.
#
# # bad
# array = [ a, [ b, c ] ]
# array = [
# [ a ],
# [ b, c ]
# ]
#
# # good
# array = [ a, [ b, c ]]
# array = [[ a ],
# [ b, c ]]
# @example EnforcedStyleForEmptyBrackets: no_space (default)
# # The `no_space` EnforcedStyleForEmptyBrackets style enforces that
# # empty array brackets do not contain spaces.
#
# # bad
# foo = [ ]
# bar = [ ]
#
# # good
# foo = []
# bar = []
# @example EnforcedStyleForEmptyBrackets: space
# # The `space` EnforcedStyleForEmptyBrackets style enforces that
# # empty array brackets contain exactly one space.
#
# # bad
# foo = []
# bar = [ ]
#
# # good
# foo = [ ]
# bar = [ ]
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#70
class RuboCop::Cop::Layout::SpaceInsideArrayLiteralBrackets < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::SurroundingSpace
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#78
def on_array(node); end
private
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#109
def array_brackets(node); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#95
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#217
def compact(corrector, bracket, side); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#203
def compact_corrections(corrector, node, left, right); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#195
def compact_offense(node, token, side: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#157
def compact_offenses(node, left, right, start_ok, end_ok); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#118
def empty_config; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#126
def end_has_own_line?(token); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#133
def index_for(node, token); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#141
def issue_offenses(node, left, right, start_ok, end_ok); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#137
def line_and_column_for(token); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#178
def multi_dimensional_array?(node, token, side: T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#189
def next_to_bracket?(token, side: T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#153
def next_to_comment?(node, token); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#122
def next_to_newline?(node, token); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#170
def qualifies_for_compact?(node, token, side: T.unsafe(nil)); end
end
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#76
RuboCop::Cop::Layout::SpaceInsideArrayLiteralBrackets::EMPTY_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_literal_brackets.rb#75
RuboCop::Cop::Layout::SpaceInsideArrayLiteralBrackets::MSG = T.let(T.unsafe(nil), String)
# Checks for unnecessary additional spaces inside array percent literals
# (i.e. %i/%w).
#
# Note that blank percent literals (e.g. `%i( )`) are checked by
# `Layout/SpaceInsidePercentLiteralDelimiters`.
#
# @example
#
# # bad
# %w(foo bar baz)
# # good
# %i(foo bar baz)
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_percent_literal.rb#18
class RuboCop::Cop::Layout::SpaceInsideArrayPercentLiteral < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::MatchRange
include ::RuboCop::Cop::PercentLiteral
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_percent_literal.rb#26
def on_array(node); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_percent_literal.rb#30
def on_percent_literal(node); end
private
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_percent_literal.rb#40
def each_unnecessary_space_match(node, &blk); end
end
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_percent_literal.rb#23
RuboCop::Cop::Layout::SpaceInsideArrayPercentLiteral::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/space_inside_array_percent_literal.rb#24
RuboCop::Cop::Layout::SpaceInsideArrayPercentLiteral::MULTIPLE_SPACES_BETWEEN_ITEMS_REGEX = T.let(T.unsafe(nil), Regexp)
# Checks that block braces have or don't have surrounding space inside
# them on configuration. For blocks taking parameters, it checks that the
# left brace has or doesn't have trailing space depending on
# configuration.
#
# @example EnforcedStyle: space (default)
# # The `space` style enforces that block braces have
# # surrounding space.
#
# # bad
# some_array.each {puts e}
#
# # good
# some_array.each { puts e }
# @example EnforcedStyle: no_space
# # The `no_space` style enforces that block braces don't
# # have surrounding space.
#
# # bad
# some_array.each { puts e }
#
# # good
# some_array.each {puts e}
# @example EnforcedStyleForEmptyBraces: no_space (default)
# # The `no_space` EnforcedStyleForEmptyBraces style enforces that
# # block braces don't have a space in between when empty.
#
# # bad
# some_array.each { }
# some_array.each { }
# some_array.each { }
#
# # good
# some_array.each {}
# @example EnforcedStyleForEmptyBraces: space
# # The `space` EnforcedStyleForEmptyBraces style enforces that
# # block braces have at least a space in between when empty.
#
# # bad
# some_array.each {}
#
# # good
# some_array.each { }
# some_array.each { }
# some_array.each { }
# @example SpaceBeforeBlockParameters: true (default)
# # The SpaceBeforeBlockParameters style set to `true` enforces that
# # there is a space between `{` and `|`. Overrides `EnforcedStyle`
# # if there is a conflict.
#
# # bad
# [1, 2, 3].each {|n| n * 2 }
#
# # good
# [1, 2, 3].each { |n| n * 2 }
# @example SpaceBeforeBlockParameters: false
# # The SpaceBeforeBlockParameters style set to `false` enforces that
# # there is no space between `{` and `|`. Overrides `EnforcedStyle`
# # if there is a conflict.
#
# # bad
# [1, 2, 3].each { |n| n * 2 }
#
# # good
# [1, 2, 3].each {|n| n * 2 }
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#79
class RuboCop::Cop::Layout::SpaceInsideBlockBraces < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::SurroundingSpace
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#89
def on_block(node); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#89
def on_numblock(node); end
private
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#126
def adjacent_braces(left_brace, right_brace); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#165
def aligned_braces?(inner, right_brace, column); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#134
def braces_with_contents_inside(node, inner); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#109
def check_inside(node, left_brace, right_brace); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#141
def check_left_brace(inner, left_brace, args_delimiter); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#149
def check_right_brace(node, inner, left_brace, right_brace, single_line); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#169
def inner_last_space_count(inner); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#161
def multiline_block?(left_brace, right_brace); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#226
def no_space(begin_pos, end_pos, msg); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#173
def no_space_inside_left_brace(left_brace, args_delimiter); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#242
def offense(begin_pos, end_pos, msg, style_param = T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#205
def pipe?(args_delimiter); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#234
def space(begin_pos, end_pos, msg); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#190
def space_inside_left_brace(left_brace, args_delimiter); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#209
def space_inside_right_brace(inner, right_brace, column); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#257
def style_for_empty_braces; end
class << self
# source://rubocop//lib/rubocop/cop/layout/space_inside_block_braces.rb#85
def autocorrect_incompatible_with; end
end
end
# Checks that braces used for hash literals have or don't have
# surrounding space depending on configuration.
#
# @example EnforcedStyle: space (default)
# # The `space` style enforces that hash literals have
# # surrounding space.
#
# # bad
# h = {a: 1, b: 2}
#
# # good
# h = { a: 1, b: 2 }
# @example EnforcedStyle: no_space
# # The `no_space` style enforces that hash literals have
# # no surrounding space.
#
# # bad
# h = { a: 1, b: 2 }
#
# # good
# h = {a: 1, b: 2}
# @example EnforcedStyle: compact
# # The `compact` style normally requires a space inside
# # hash braces, with the exception that successive left
# # braces or right braces are collapsed together in nested hashes.
#
# # bad
# h = { a: { b: 2 } }
# foo = { { a: 1 } => { b: { c: 2 } } }
#
# # good
# h = { a: { b: 2 }}
# foo = {{ a: 1 } => { b: { c: 2 }}}
# @example EnforcedStyleForEmptyBraces: no_space (default)
# # The `no_space` EnforcedStyleForEmptyBraces style enforces that
# # empty hash braces do not contain spaces.
#
# # bad
# foo = { }
# bar = { }
# baz = {
# }
#
# # good
# foo = {}
# bar = {}
# baz = {}
# @example EnforcedStyleForEmptyBraces: space
# # The `space` EnforcedStyleForEmptyBraces style enforces that
# # empty hash braces contain space.
#
# # bad
# foo = {}
#
# # good
# foo = { }
# foo = { }
# foo = {
# }
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#70
class RuboCop::Cop::Layout::SpaceInsideHashLiteralBraces < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::SurroundingSpace
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#78
def on_hash(node); end
private
# source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#137
def ambiguous_or_unexpected_style_detected(style, is_match); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#129
def autocorrect(corrector, range); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#89
def check(token1, token2); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#184
def check_whitespace_only_hash(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#202
def enforce_no_space_style_for_empty_braces?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#104
def expect_space?(token1, token2); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#117
def incorrect_style_detected(token1, token2, expect_space, is_empty_braces); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#150
def message(brace, is_empty_braces, expect_space); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#145
def offense?(token1, expect_space); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#196
def range_inside_hash(node); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#176
def range_of_space_to_the_left(range); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#168
def range_of_space_to_the_right(range); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#160
def space_range(token_range); end
end
# source://rubocop//lib/rubocop/cop/layout/space_inside_hash_literal_braces.rb#76
RuboCop::Cop::Layout::SpaceInsideHashLiteralBraces::MSG = T.let(T.unsafe(nil), String)
# Checks for spaces inside ordinary round parentheses.
#
# @example EnforcedStyle: no_space (default)
# # The `no_space` style enforces that parentheses do not have spaces.
#
# # bad
# f( 3)
# g = (a + 3 )
# f( )
#
# # good
# f(3)
# g = (a + 3)
# f()
# @example EnforcedStyle: space
# # The `space` style enforces that parentheses have a space at the
# # beginning and end.
# # Note: Empty parentheses should not have spaces.
#
# # bad
# f(3)
# g = (a + 3)
# y( )
#
# # good
# f( 3 )
# g = ( a + 3 )
# y()
# @example EnforcedStyle: compact
# # The `compact` style enforces that parentheses have a space at the
# # beginning with the exception that successive parentheses are allowed.
# # Note: Empty parentheses should not have spaces.
#
# # bad
# f(3)
# g = (a + 3)
# y( )
# g( f( x ) )
# g( f( x( 3 ) ), 5 )
# g( ( ( 3 + 5 ) * f) ** x, 5 )
#
# # good
# f( 3 )
# g = ( a + 3 )
# y()
# g( f( x ))
# g( f( x( 3 )), 5 )
# g((( 3 + 5 ) * f ) ** x, 5 )
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#57
class RuboCop::Cop::Layout::SpaceInsideParens < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::SurroundingSpace
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#66
def on_new_investigation; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#161
def can_be_ignored?(token1, token2); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#99
def correct_extraneous_space(tokens); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#115
def correct_extraneous_space_between_consecutive_parens(token1, token2); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#124
def correct_extraneous_space_in_empty_parens(token1, token2); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#135
def correct_missing_space(token1, token2); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#153
def left_parens?(token1, token2); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#149
def parens?(token1, token2); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#88
def process_with_compact_style(tokens); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#81
def process_with_space_style(tokens); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#157
def right_parens?(token1, token2); end
end
# source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#63
RuboCop::Cop::Layout::SpaceInsideParens::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/space_inside_parens.rb#64
RuboCop::Cop::Layout::SpaceInsideParens::MSG_SPACE = T.let(T.unsafe(nil), String)
# Checks for unnecessary additional spaces inside the delimiters of
# %i/%w/%x literals.
#
# @example
#
# # bad
# %i( foo bar baz )
#
# # good
# %i(foo bar baz)
#
# # bad
# %w( foo bar baz )
#
# # good
# %w(foo bar baz)
#
# # bad
# %x( ls -l )
#
# # good
# %x(ls -l)
#
# # bad
# %w( )
# %w(
# )
#
# # good
# %w()
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#36
class RuboCop::Cop::Layout::SpaceInsidePercentLiteralDelimiters < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::MatchRange
include ::RuboCop::Cop::PercentLiteral
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#45
def on_array(node); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#53
def on_percent_literal(node); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#49
def on_xstr(node); end
private
# source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#60
def add_offenses_for_blank_spaces(node); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#69
def add_offenses_for_unnecessary_spaces(node); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#85
def body_range(node); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#79
def regex_matches(node, &blk); end
end
# source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#42
RuboCop::Cop::Layout::SpaceInsidePercentLiteralDelimiters::BEGIN_REGEX = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#43
RuboCop::Cop::Layout::SpaceInsidePercentLiteralDelimiters::END_REGEX = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/layout/space_inside_percent_literal_delimiters.rb#41
RuboCop::Cop::Layout::SpaceInsidePercentLiteralDelimiters::MSG = T.let(T.unsafe(nil), String)
# Checks for spaces inside range literals.
#
# @example
# # bad
# 1 .. 3
#
# # good
# 1..3
#
# # bad
# 'a' .. 'z'
#
# # good
# 'a'..'z'
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_range_literal.rb#20
class RuboCop::Cop::Layout::SpaceInsideRangeLiteral < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_inside_range_literal.rb#29
def on_erange(node); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_range_literal.rb#25
def on_irange(node); end
private
# source://rubocop//lib/rubocop/cop/layout/space_inside_range_literal.rb#35
def check(node); end
end
# source://rubocop//lib/rubocop/cop/layout/space_inside_range_literal.rb#23
RuboCop::Cop::Layout::SpaceInsideRangeLiteral::MSG = T.let(T.unsafe(nil), String)
# Checks that reference brackets have or don't have
# surrounding space depending on configuration.
#
# @example EnforcedStyle: no_space (default)
# # The `no_space` style enforces that reference brackets have
# # no surrounding space.
#
# # bad
# hash[ :key ]
# array[ index ]
#
# # good
# hash[:key]
# array[index]
# @example EnforcedStyle: space
# # The `space` style enforces that reference brackets have
# # surrounding space.
#
# # bad
# hash[:key]
# array[index]
#
# # good
# hash[ :key ]
# array[ index ]
# @example EnforcedStyleForEmptyBrackets: no_space (default)
# # The `no_space` EnforcedStyleForEmptyBrackets style enforces that
# # empty reference brackets do not contain spaces.
#
# # bad
# foo[ ]
# foo[ ]
# foo[
# ]
#
# # good
# foo[]
# @example EnforcedStyleForEmptyBrackets: space
# # The `space` EnforcedStyleForEmptyBrackets style enforces that
# # empty reference brackets contain exactly one space.
#
# # bad
# foo[]
# foo[ ]
# foo[
# ]
#
# # good
# foo[ ]
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#60
class RuboCop::Cop::Layout::SpaceInsideReferenceBrackets < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::SurroundingSpace
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#70
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#92
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#121
def closing_bracket(tokens, opening_bracket); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#137
def empty_config; end
# source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#110
def left_ref_bracket(node, tokens); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#132
def previous_token(current_token); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#104
def reference_brackets(node); end
end
# source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#66
RuboCop::Cop::Layout::SpaceInsideReferenceBrackets::EMPTY_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#65
RuboCop::Cop::Layout::SpaceInsideReferenceBrackets::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/layout/space_inside_reference_brackets.rb#68
RuboCop::Cop::Layout::SpaceInsideReferenceBrackets::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for whitespace within string interpolations.
#
# @example EnforcedStyle: no_space (default)
# # bad
# var = "This is the #{ space } example"
#
# # good
# var = "This is the #{no_space} example"
# @example EnforcedStyle: space
# # bad
# var = "This is the #{no_space} example"
#
# # good
# var = "This is the #{ space } example"
#
# source://rubocop//lib/rubocop/cop/layout/space_inside_string_interpolation.rb#21
class RuboCop::Cop::Layout::SpaceInsideStringInterpolation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Interpolation
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::SurroundingSpace
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/space_inside_string_interpolation.rb#30
def on_interpolation(begin_node); end
private
# source://rubocop//lib/rubocop/cop/layout/space_inside_string_interpolation.rb#46
def autocorrect(corrector, begin_node); end
# source://rubocop//lib/rubocop/cop/layout/space_inside_string_interpolation.rb#56
def delimiters(begin_node); end
end
# source://rubocop//lib/rubocop/cop/layout/space_inside_string_interpolation.rb#28
RuboCop::Cop::Layout::SpaceInsideStringInterpolation::MSG = T.let(T.unsafe(nil), String)
# Looks for trailing blank lines and a final newline in the
# source code.
#
# @example EnforcedStyle: final_newline (default)
# # `final_newline` looks for one newline at the end of files.
#
# # bad
# class Foo; end
#
# # EOF
#
# # bad
# class Foo; end # EOF
#
# # good
# class Foo; end
# # EOF
# @example EnforcedStyle: final_blank_line
# # `final_blank_line` looks for one blank line followed by a new line
# # at the end of files.
#
# # bad
# class Foo; end
# # EOF
#
# # bad
# class Foo; end # EOF
#
# # good
# class Foo; end
#
# # EOF
#
# source://rubocop//lib/rubocop/cop/layout/trailing_empty_lines.rb#40
class RuboCop::Cop::Layout::TrailingEmptyLines < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/trailing_empty_lines.rb#45
def on_new_investigation; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/trailing_empty_lines.rb#90
def end_with_percent_blank_string?(processed_source); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/trailing_empty_lines.rb#80
def ends_in_end?(processed_source); end
# source://rubocop//lib/rubocop/cop/layout/trailing_empty_lines.rb#94
def message(wanted_blank_lines, blank_lines); end
# source://rubocop//lib/rubocop/cop/layout/trailing_empty_lines.rb#67
def offense_detected(buffer, wanted_blank_lines, blank_lines, whitespace_at_end); end
end
# Looks for trailing whitespace in the source code.
#
# @example
# # The line in this example contains spaces after the 0.
# # bad
# x = 0
#
# # The line in this example ends directly after the 0.
# # good
# x = 0
# @example AllowInHeredoc: false (default)
# # The line in this example contains spaces after the 0.
# # bad
# code = <<~RUBY
# x = 0
# RUBY
#
# # ok
# code = <<~RUBY
# x = 0 #{}
# RUBY
#
# # good
# trailing_whitespace = ' '
# code = <<~RUBY
# x = 0#{trailing_whitespace}
# RUBY
# @example AllowInHeredoc: true
# # The line in this example contains spaces after the 0.
# # good
# code = <<~RUBY
# x = 0
# RUBY
#
# source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#42
class RuboCop::Cop::Layout::TrailingWhitespace < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::Heredoc
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#57
def on_heredoc(_node); end
# source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#49
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#112
def extract_heredocs(ast); end
# source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#103
def find_heredoc(line_number); end
# source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#108
def heredocs; end
# source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#125
def offense_range(lineno, line); end
# source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#61
def process_line(line, lineno); end
# source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#75
def process_line_in_heredoc(corrector, range, heredoc); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#99
def skip_heredoc?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#95
def static?(heredoc); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#86
def whitespace_is_indentation?(range, level); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#90
def whitespace_only?(range); end
end
# source://rubocop//lib/rubocop/cop/layout/trailing_whitespace.rb#47
RuboCop::Cop::Layout::TrailingWhitespace::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/legacy/corrections_proxy.rb#5
module RuboCop::Cop::Legacy; end
# Legacy support for Corrector#corrections
# See https://docs.rubocop.org/rubocop/v1_upgrade_notes.html
#
# source://rubocop//lib/rubocop/cop/legacy/corrections_proxy.rb#8
class RuboCop::Cop::Legacy::CorrectionsProxy
# @return [CorrectionsProxy] a new instance of CorrectionsProxy
#
# source://rubocop//lib/rubocop/cop/legacy/corrections_proxy.rb#9
def initialize(corrector); end
# source://rubocop//lib/rubocop/cop/legacy/corrections_proxy.rb#13
def <<(callable); end
# source://rubocop//lib/rubocop/cop/legacy/corrections_proxy.rb#21
def concat(corrections); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/legacy/corrections_proxy.rb#17
def empty?; end
protected
# Returns the value of attribute corrector.
#
# source://rubocop//lib/rubocop/cop/legacy/corrections_proxy.rb#31
def corrector; end
private
# source://rubocop//lib/rubocop/cop/legacy/corrections_proxy.rb#35
def suppress_clobbering; end
end
# This class handles autocorrection for code that needs to be moved
# to new lines.
#
# source://rubocop//lib/rubocop/cop/correctors/line_break_corrector.rb#7
class RuboCop::Cop::LineBreakCorrector
extend ::RuboCop::Cop::Alignment
extend ::RuboCop::Cop::TrailingBody
extend ::RuboCop::PathUtil
extend ::RuboCop::Cop::Util
class << self
# source://rubocop//lib/rubocop/cop/correctors/line_break_corrector.rb#27
def break_line_before(range:, node:, corrector:, configured_width:, indent_steps: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/correctors/line_break_corrector.rb#15
def correct_trailing_body(configured_width:, corrector:, node:, processed_source:); end
# source://rubocop//lib/rubocop/cop/correctors/line_break_corrector.rb#35
def move_comment(eol_comment:, node:, corrector:); end
# Returns the value of attribute processed_source.
#
# source://rubocop//lib/rubocop/cop/correctors/line_break_corrector.rb#13
def processed_source; end
private
# source://rubocop//lib/rubocop/cop/correctors/line_break_corrector.rb#45
def remove_semicolon(node, corrector); end
# source://rubocop//lib/rubocop/cop/correctors/line_break_corrector.rb#51
def semicolon(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/correctors/line_break_corrector.rb#60
def trailing_class_definition?(token, body); end
end
end
# Help methods for determining if a line is too long.
#
# source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#6
module RuboCop::Cop::LineLengthHelp
include ::RuboCop::Cop::Alignment
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#24
def allow_uri?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#28
def allowed_uri_position?(line, uri_range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#15
def directive_on_source_line?(line_index); end
# source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#72
def extend_uri_end_position(line, end_position); end
# source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#36
def find_excessive_uri_range(line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#11
def ignore_cop_directives?; end
# source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#59
def indentation_difference(line); end
# source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#32
def line_length(line); end
# source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#110
def line_length_without_directive(line); end
# source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#51
def match_uris(string); end
# source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#88
def tab_indentation_width; end
# source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#93
def uri_regexp; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/line_length_help.rb#103
def valid_uri?(uri_ish_string); end
end
# source://rubocop//lib/rubocop/cop/mixin/unused_argument.rb#5
module RuboCop::Cop::Lint; end
# Checks for mistyped shorthand assignments.
#
# @example
# # bad
# x =- y
# x =+ y
# x =* y
# x =! y
#
# # good
# x -= y # or x = -y
# x += y # or x = +y
# x *= y # or x = *y
# x != y # or x = !y
#
# source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#21
class RuboCop::Cop::Lint::AmbiguousAssignment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
# source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#30
def on_asgn(node); end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#30
def on_casgn(node); end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#30
def on_cvasgn(node); end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#30
def on_gvasgn(node); end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#30
def on_ivasgn(node); end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#30
def on_lvasgn(node); end
private
# source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#44
def rhs(node); end
end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#28
RuboCop::Cop::Lint::AmbiguousAssignment::MISTAKES = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#24
RuboCop::Cop::Lint::AmbiguousAssignment::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/ambiguous_assignment.rb#26
RuboCop::Cop::Lint::AmbiguousAssignment::SIMPLE_ASSIGNMENT_TYPES = T.let(T.unsafe(nil), Array)
# Checks for ambiguous block association with method
# when param passed without parentheses.
#
# This cop can customize allowed methods with `AllowedMethods`.
# By default, there are no methods to allowed.
#
# @example
#
# # bad
# some_method a { |val| puts val }
#
# # good
# # With parentheses, there's no ambiguity.
# some_method(a { |val| puts val })
# # or (different meaning)
# some_method(a) { |val| puts val }
#
# # good
# # Operator methods require no disambiguation
# foo == bar { |b| b.baz }
#
# # good
# # Lambda arguments require no disambiguation
# foo = ->(bar) { bar.baz }
# @example AllowedMethods: [] (default)
#
# # bad
# expect { do_something }.to change { object.attribute }
# @example AllowedMethods: [change]
#
# # good
# expect { do_something }.to change { object.attribute }
# @example AllowedPatterns: [] (default)
#
# # bad
# expect { do_something }.to change { object.attribute }
# @example AllowedPatterns: ['change']
#
# # good
# expect { do_something }.to change { object.attribute }
# expect { do_something }.to not_change { object.attribute }
#
# source://rubocop//lib/rubocop/cop/lint/ambiguous_block_association.rb#52
class RuboCop::Cop::Lint::AmbiguousBlockAssociation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedMethods
include ::RuboCop::Cop::AllowedPattern
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/ambiguous_block_association.rb#62
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_block_association.rb#62
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/ambiguous_block_association.rb#83
def allowed_method_pattern?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/ambiguous_block_association.rb#79
def ambiguous_block_association?(send_node); end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_block_association.rb#89
def message(send_node); end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_block_association.rb#95
def wrap_in_parentheses(corrector, node); end
end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_block_association.rb#58
RuboCop::Cop::Lint::AmbiguousBlockAssociation::MSG = T.let(T.unsafe(nil), String)
# Checks for ambiguous operators in the first argument of a
# method invocation without parentheses.
#
# @example
#
# # bad
#
# # The `*` is interpreted as a splat operator but it could possibly be
# # a `*` method invocation (i.e. `do_something.*(some_array)`).
# do_something *some_array
#
# # good
#
# # With parentheses, there's no ambiguity.
# do_something(*some_array)
#
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#21
class RuboCop::Cop::Lint::AmbiguousOperator < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#43
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#62
def find_offense_node_by(diagnostic); end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#80
def message(diagnostic); end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#90
def offense_node(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#86
def offense_position?(node, diagnostic); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#99
def unary_operator?(node, diagnostic); end
class << self
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#39
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#24
RuboCop::Cop::Lint::AmbiguousOperator::AMBIGUITIES = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator.rb#34
RuboCop::Cop::Lint::AmbiguousOperator::MSG_FORMAT = T.let(T.unsafe(nil), String)
# Looks for expressions containing multiple binary operators
# where precedence is ambiguous due to lack of parentheses. For example,
# in `1 + 2 * 3`, the multiplication will happen before the addition, but
# lexically it appears that the addition will happen first.
#
# The cop does not consider unary operators (ie. `!a` or `-b`) or comparison
# operators (ie. `a =~ b`) because those are not ambiguous.
#
# NOTE: Ranges are handled by `Lint/AmbiguousRange`.
#
# @example
# # bad
# a + b * c
# a || b && c
# a ** b + c
#
# # good (different precedence)
# a + (b * c)
# a || (b && c)
# (a ** b) + c
#
# # good (same precedence)
# a + b + c
# a * b / c % d
#
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#30
class RuboCop::Cop::Lint::AmbiguousOperatorPrecedence < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#54
def on_and(node); end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#47
def on_new_investigation; end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#65
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#105
def autocorrect(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#89
def greater_precedence?(node1, node2); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#85
def operator?(node); end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#97
def operator_name(node); end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#79
def precedence(node); end
end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#45
RuboCop::Cop::Lint::AmbiguousOperatorPrecedence::MSG = T.let(T.unsafe(nil), String)
# See https://ruby-doc.org/core-3.0.2/doc/syntax/precedence_rdoc.html
#
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#34
RuboCop::Cop::Lint::AmbiguousOperatorPrecedence::PRECEDENCE = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/ambiguous_operator_precedence.rb#44
RuboCop::Cop::Lint::AmbiguousOperatorPrecedence::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for ambiguous ranges.
#
# Ranges have quite low precedence, which leads to unexpected behavior when
# using a range with other operators. This cop avoids that by making ranges
# explicit by requiring parenthesis around complex range boundaries (anything
# that is not a literal: numerics, strings, symbols, etc.).
#
# This cop can be configured with `RequireParenthesesForMethodChains` in order to
# specify whether method chains (including `self.foo`) should be wrapped in parens
# by this cop.
#
# NOTE: Regardless of this configuration, if a method receiver is a basic literal
# value, it will be wrapped in order to prevent the ambiguity of `1..2.to_a`.
#
# @example
# # bad
# x || 1..2
# (x || 1..2)
# 1..2.to_a
#
# # good, unambiguous
# 1..2
# 'a'..'z'
# :bar..:baz
# MyClass::MIN..MyClass::MAX
# @min..@max
# a..b
# -a..b
#
# # good, ambiguity removed
# x || (1..2)
# (x || 1)..2
# (x || 1)..(y || 2)
# (1..2).to_a
# @example RequireParenthesesForMethodChains: false (default)
# # good
# a.foo..b.bar
# (a.foo)..(b.bar)
# @example RequireParenthesesForMethodChains: true
# # bad
# a.foo..b.bar
#
# # good
# (a.foo)..(b.bar)
#
# source://rubocop//lib/rubocop/cop/lint/ambiguous_range.rb#59
class RuboCop::Cop::Lint::AmbiguousRange < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RationalLiteral
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/ambiguous_range.rb#65
def on_erange(node); end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_range.rb#65
def on_irange(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/ambiguous_range.rb#84
def acceptable?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/ambiguous_range.rb#92
def acceptable_call?(node); end
# @yield [range.begin]
#
# source://rubocop//lib/rubocop/cop/lint/ambiguous_range.rb#78
def each_boundary(range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/ambiguous_range.rb#102
def require_parentheses_for_method_chain?; end
end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_range.rb#63
RuboCop::Cop::Lint::AmbiguousRange::MSG = T.let(T.unsafe(nil), String)
# Checks for ambiguous regexp literals in the first argument of
# a method invocation without parentheses.
#
# @example
#
# # bad
#
# # This is interpreted as a method invocation with a regexp literal,
# # but it could possibly be `/` method invocations.
# # (i.e. `do_something./(pattern)./(i)`)
# do_something /pattern/i
#
# # good
#
# # With parentheses, there's no ambiguity.
# do_something(/pattern/i)
#
# source://rubocop//lib/rubocop/cop/lint/ambiguous_regexp_literal.rb#22
class RuboCop::Cop::Lint::AmbiguousRegexpLiteral < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/ambiguous_regexp_literal.rb#29
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/lint/ambiguous_regexp_literal.rb#54
def find_offense_node(node, regexp_receiver); end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_regexp_literal.rb#47
def find_offense_node_by(diagnostic); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/ambiguous_regexp_literal.rb#65
def first_argument_is_regexp?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/ambiguous_regexp_literal.rb#69
def method_chain_to_regexp_receiver?(node, regexp_receiver); end
end
# source://rubocop//lib/rubocop/cop/lint/ambiguous_regexp_literal.rb#25
RuboCop::Cop::Lint::AmbiguousRegexpLiteral::MSG = T.let(T.unsafe(nil), String)
# Checks for assignments in the conditions of
# if/while/until.
#
# `AllowSafeAssignment` option for safe assignment.
# By safe assignment we mean putting parentheses around
# an assignment to indicate "I know I'm using an assignment
# as a condition. It's not a mistake."
#
# @example
# # bad
# if some_var = value
# do_something
# end
#
# # good
# if some_var == value
# do_something
# end
# @example AllowSafeAssignment: true (default)
# # good
# if (some_var = value)
# do_something
# end
# @example AllowSafeAssignment: false
# # bad
# if (some_var = value)
# do_something
# end
#
# source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#41
class RuboCop::Cop::Lint::AssignmentInCondition < ::RuboCop::Cop::Base
include ::RuboCop::Cop::SafeAssignment
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#55
def on_if(node); end
# source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#55
def on_until(node); end
# source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#55
def on_while(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#82
def allowed_construct?(asgn_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#86
def conditional_assignment?(asgn_node); end
# source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#74
def message(_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#90
def skip_children?(asgn_node); end
# source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#96
def traverse_node(node, &block); end
end
# source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#53
RuboCop::Cop::Lint::AssignmentInCondition::ASGN_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#50
RuboCop::Cop::Lint::AssignmentInCondition::MSG_WITHOUT_SAFE_ASSIGNMENT_ALLOWED = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/assignment_in_condition.rb#46
RuboCop::Cop::Lint::AssignmentInCondition::MSG_WITH_SAFE_ASSIGNMENT_ALLOWED = T.let(T.unsafe(nil), String)
# `BigDecimal.new()` is deprecated since BigDecimal 1.3.3.
# This cop identifies places where `BigDecimal.new()`
# can be replaced by `BigDecimal()`.
#
# @example
# # bad
# BigDecimal.new(123.456, 3)
#
# # good
# BigDecimal(123.456, 3)
#
# source://rubocop//lib/rubocop/cop/lint/big_decimal_new.rb#17
class RuboCop::Cop::Lint::BigDecimalNew < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/big_decimal_new.rb#24
def big_decimal_new(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/big_decimal_new.rb#29
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/lint/big_decimal_new.rb#20
RuboCop::Cop::Lint::BigDecimalNew::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/big_decimal_new.rb#21
RuboCop::Cop::Lint::BigDecimalNew::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for places where binary operator has identical operands.
#
# It covers arithmetic operators: `-`, `/`, `%`;
# comparison operators: `==`, `===`, `=~`, `>`, `>=`, `<`, ``<=``;
# bitwise operators: `|`, `^`, `&`;
# boolean operators: `&&`, `||`
# and "spaceship" operator - ``<=>``.
#
# Simple arithmetic operations are allowed by this cop: `+`, `*`, `**`, `<<` and `>>`.
# Although these can be rewritten in a different way, it should not be necessary to
# do so. This does not include operations such as `-` or `/` where the result will
# always be the same (`x - x` will always be 0; `x / x` will always be 1), and
# thus are legitimate offenses.
#
# @example
# # bad
# x / x
# x.top >= x.top
#
# if a.x != 0 && a.x != 0
# do_something
# end
#
# def child?
# left_child || left_child
# end
#
# # good
# x + x
# 1 << 1
#
# source://rubocop//lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb#48
class RuboCop::Cop::Lint::BinaryOperatorWithIdenticalOperands < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb#61
def on_and(node); end
# source://rubocop//lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb#61
def on_or(node); end
# source://rubocop//lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb#52
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb#50
RuboCop::Cop::Lint::BinaryOperatorWithIdenticalOperands::ALLOWED_MATH_OPERATORS = T.let(T.unsafe(nil), Set)
# source://rubocop//lib/rubocop/cop/lint/binary_operator_with_identical_operands.rb#49
RuboCop::Cop::Lint::BinaryOperatorWithIdenticalOperands::MSG = T.let(T.unsafe(nil), String)
# Checks for `:true` and `:false` symbols.
# In most cases it would be a typo.
#
# @example
#
# # bad
# :true
#
# # good
# true
#
# # bad
# :false
#
# # good
# false
#
# source://rubocop//lib/rubocop/cop/lint/boolean_symbol.rb#27
class RuboCop::Cop::Lint::BooleanSymbol < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/boolean_symbol.rb#33
def boolean_symbol?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/boolean_symbol.rb#35
def on_sym(node); end
private
# source://rubocop//lib/rubocop/cop/lint/boolean_symbol.rb#48
def autocorrect(corrector, node); end
end
# source://rubocop//lib/rubocop/cop/lint/boolean_symbol.rb#30
RuboCop::Cop::Lint::BooleanSymbol::MSG = T.let(T.unsafe(nil), String)
# Checks for circular argument references in optional keyword
# arguments and optional ordinal arguments.
#
# This cop mirrors a warning produced by MRI since 2.2.
#
# @example
#
# # bad
# def bake(pie: pie)
# pie.heat_up
# end
#
# # good
# def bake(pie:)
# pie.refrigerate
# end
#
# # good
# def bake(pie: self.pie)
# pie.feed_to(user)
# end
#
# # bad
# def cook(dry_ingredients = dry_ingredients)
# dry_ingredients.reduce(&:+)
# end
#
# # good
# def cook(dry_ingredients = self.dry_ingredients)
# dry_ingredients.combine
# end
#
# source://rubocop//lib/rubocop/cop/lint/circular_argument_reference.rb#37
class RuboCop::Cop::Lint::CircularArgumentReference < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/circular_argument_reference.rb#40
def on_kwoptarg(node); end
# source://rubocop//lib/rubocop/cop/lint/circular_argument_reference.rb#44
def on_optarg(node); end
private
# source://rubocop//lib/rubocop/cop/lint/circular_argument_reference.rb#50
def check_for_circular_argument_references(arg_name, arg_value); end
end
# source://rubocop//lib/rubocop/cop/lint/circular_argument_reference.rb#38
RuboCop::Cop::Lint::CircularArgumentReference::MSG = T.let(T.unsafe(nil), String)
# Do not define constants within a block, since the block's scope does not
# isolate or namespace the constant in any way.
#
# If you are trying to define that constant once, define it outside of
# the block instead, or use a variable or method if defining the constant
# in the outer scope would be problematic.
#
# For meta-programming, use `const_set`.
#
# @example
# # bad
# task :lint do
# FILES_TO_LINT = Dir['lib/*.rb']
# end
#
# # bad
# describe 'making a request' do
# class TestRequest; end
# end
#
# # bad
# module M
# extend ActiveSupport::Concern
# included do
# LIST = []
# end
# end
#
# # good
# task :lint do
# files_to_lint = Dir['lib/*.rb']
# end
#
# # good
# describe 'making a request' do
# let(:test_request) { Class.new }
# # see also `stub_const` for RSpec
# end
#
# # good
# module M
# extend ActiveSupport::Concern
# included do
# const_set(:LIST, [])
# end
# end
# @example AllowedMethods: ['enums'] (default)
# # good
#
# # `enums` for Typed Enums via `T::Enum` in Sorbet.
# # https://sorbet.org/docs/tenum
# class TestEnum < T::Enum
# enums do
# Foo = new("foo")
# end
# end
#
# source://rubocop//lib/rubocop/cop/lint/constant_definition_in_block.rb#64
class RuboCop::Cop::Lint::ConstantDefinitionInBlock < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedMethods
# source://rubocop//lib/rubocop/cop/lint/constant_definition_in_block.rb#70
def constant_assigned_in_block?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/constant_definition_in_block.rb#75
def module_defined_in_block?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/constant_definition_in_block.rb#79
def on_casgn(node); end
# source://rubocop//lib/rubocop/cop/lint/constant_definition_in_block.rb#85
def on_class(node); end
# source://rubocop//lib/rubocop/cop/lint/constant_definition_in_block.rb#85
def on_module(node); end
private
# source://rubocop//lib/rubocop/cop/lint/constant_definition_in_block.rb#94
def method_name(node); end
end
# source://rubocop//lib/rubocop/cop/lint/constant_definition_in_block.rb#67
RuboCop::Cop::Lint::ConstantDefinitionInBlock::MSG = T.let(T.unsafe(nil), String)
# Checks for overwriting an exception with an exception result by use ``rescue =>``.
#
# You intended to write as `rescue StandardError`.
# However, you have written `rescue => StandardError`.
# In that case, the result of `rescue` will overwrite `StandardError`.
#
# @example
#
# # bad
# begin
# something
# rescue => StandardError
# end
#
# # good
# begin
# something
# rescue StandardError
# end
#
# source://rubocop//lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb#26
class RuboCop::Cop::Lint::ConstantOverwrittenInRescue < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb#41
def on_resbody(node); end
# source://rubocop//lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb#33
def overwritten_constant(param0 = T.unsafe(nil)); end
class << self
# source://rubocop//lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb#37
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/lint/constant_overwritten_in_rescue.rb#30
RuboCop::Cop::Lint::ConstantOverwrittenInRescue::MSG = T.let(T.unsafe(nil), String)
# Check that certain constants are fully qualified.
#
# This is not enabled by default because it would mark a lot of offenses
# unnecessarily.
#
# Generally, gems should fully qualify all constants to avoid conflicts with
# the code that uses the gem. Enable this cop without using `Only`/`Ignore`
#
# Large projects will over time end up with one or two constant names that
# are problematic because of a conflict with a library or just internally
# using the same name a namespace and a class. To avoid too many unnecessary
# offenses, Enable this cop with `Only: [The, Constant, Names, Causing, Issues]`
#
# NOTE: `Style/RedundantConstantBase` cop is disabled if this cop is enabled to prevent
# conflicting rules. Because it respects user configurations that want to enable
# this cop which is disabled by default.
#
# @example
# # By default checks every constant
#
# # bad
# User
#
# # bad
# User::Login
#
# # good
# ::User
#
# # good
# ::User::Login
# @example Only: ['Login']
# # Restrict this cop to only being concerned about certain constants
#
# # bad
# Login
#
# # good
# ::Login
#
# # good
# User::Login
# @example Ignore: ['Login']
# # Restrict this cop not being concerned about certain constants
#
# # bad
# User
#
# # good
# ::User::Login
#
# # good
# Login
#
# source://rubocop//lib/rubocop/cop/lint/constant_resolution.rb#62
class RuboCop::Cop::Lint::ConstantResolution < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/constant_resolution.rb#70
def on_const(node); end
# source://rubocop//lib/rubocop/cop/lint/constant_resolution.rb#66
def unqualified_const?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/lint/constant_resolution.rb#83
def allowed_names; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/constant_resolution.rb#78
def const_name?(name); end
# source://rubocop//lib/rubocop/cop/lint/constant_resolution.rb#87
def ignored_names; end
end
# source://rubocop//lib/rubocop/cop/lint/constant_resolution.rb#63
RuboCop::Cop::Lint::ConstantResolution::MSG = T.let(T.unsafe(nil), String)
# Checks for debug calls (such as `debugger` or `binding.pry`) that should
# not be kept for production code.
#
# The cop can be configured using `DebuggerMethods`. By default, a number of gems
# debug entrypoints are configured (`Kernel`, `Byebug`, `Capybara`, `debug.rb`,
# `Pry`, `Rails`, `RubyJard`, and `WebConsole`). Additional methods can be added.
#
# Specific default groups can be disabled if necessary:
#
# [source,yaml]
# ----
# Lint/Debugger:
# DebuggerMethods:
# WebConsole: ~
# ----
#
# You can also add your own methods by adding a new category:
#
# [source,yaml]
# ----
# Lint/Debugger:
# DebuggerMethods:
# MyDebugger:
# MyDebugger.debug_this
# ----
#
# Some gems also ship files that will start a debugging session when required,
# for example `require 'debug/start'` from `ruby/debug`. These requires can
# be configured through `DebuggerRequires`. It has the same structure as
# `DebuggerMethods`, which you can read about above.
#
# @example
#
# # bad (ok during development)
#
# # using pry
# def some_method
# binding.pry
# do_something
# end
#
# # bad (ok during development)
#
# # using byebug
# def some_method
# byebug
# do_something
# end
#
# # good
#
# def some_method
# do_something
# end
# @example DebuggerMethods: [my_debugger]
#
# # bad (ok during development)
#
# def some_method
# my_debugger
# end
# @example DebuggerRequires: [my_debugger/start]
#
# # bad (ok during development)
#
# require 'my_debugger/start'
#
# source://rubocop//lib/rubocop/cop/lint/debugger.rb#74
class RuboCop::Cop::Lint::Debugger < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/debugger.rb#78
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/debugger.rb#138
def assumed_argument?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/debugger.rb#117
def assumed_usage_context?(node); end
# source://rubocop//lib/rubocop/cop/lint/debugger.rb#127
def chained_method_name(send_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/debugger.rb#104
def debugger_method?(send_node); end
# source://rubocop//lib/rubocop/cop/lint/debugger.rb#90
def debugger_methods; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/debugger.rb#110
def debugger_require?(send_node); end
# source://rubocop//lib/rubocop/cop/lint/debugger.rb#97
def debugger_requires; end
# source://rubocop//lib/rubocop/cop/lint/debugger.rb#86
def message(node); end
end
# source://rubocop//lib/rubocop/cop/lint/debugger.rb#76
RuboCop::Cop::Lint::Debugger::BLOCK_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/debugger.rb#75
RuboCop::Cop::Lint::Debugger::MSG = T.let(T.unsafe(nil), String)
# Checks for uses of the deprecated class method usages.
#
# @example
#
# # bad
# File.exists?(some_path)
# Dir.exists?(some_path)
# iterator?
# attr :name, true
# attr :name, false
# ENV.freeze # Calling `Env.freeze` raises `TypeError` since Ruby 2.7.
# ENV.clone
# ENV.dup # Calling `Env.dup` raises `TypeError` since Ruby 3.1.
# Socket.gethostbyname(host)
# Socket.gethostbyaddr(host)
#
# # good
# File.exist?(some_path)
# Dir.exist?(some_path)
# block_given?
# attr_accessor :name
# attr_reader :name
# ENV # `ENV.freeze` cannot prohibit changes to environment variables.
# ENV.to_h
# ENV.to_h # `ENV.dup` cannot dup `ENV`, use `ENV.to_h` to get a copy of `ENV` as a hash.
# Addrinfo.getaddrinfo(nodename, service)
# Addrinfo.tcp(host, port).getnameinfo
#
# source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#33
class RuboCop::Cop::Lint::DeprecatedClassMethods < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#53
def deprecated_class_method?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#63
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#112
def dir_env_file_const?(node); end
# source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#83
def offense_range(node); end
# source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#93
def preferred_method(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#108
def socket_const?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#50
RuboCop::Cop::Lint::DeprecatedClassMethods::DIR_ENV_FILE_CONSTANTS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#36
RuboCop::Cop::Lint::DeprecatedClassMethods::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#41
RuboCop::Cop::Lint::DeprecatedClassMethods::PREFERRED_METHODS = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/lint/deprecated_class_methods.rb#37
RuboCop::Cop::Lint::DeprecatedClassMethods::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for deprecated constants.
#
# It has `DeprecatedConstants` config. If there is an alternative method, you can set
# alternative value as `Alternative`. And you can set the deprecated version as
# `DeprecatedVersion`. These options can be omitted if they are not needed.
#
# DeprecatedConstants:
# 'DEPRECATED_CONSTANT':
# Alternative: 'alternative_value'
# DeprecatedVersion: 'deprecated_version'
#
# By default, `NIL`, `TRUE`, `FALSE`, `Net::HTTPServerException, `Random::DEFAULT`,
# `Struct::Group`, and `Struct::Passwd` are configured.
#
# @example
#
# # bad
# NIL
# TRUE
# FALSE
# Net::HTTPServerException
# Random::DEFAULT # Return value of Ruby 2 is `Random` instance, Ruby 3.0 is `Random` class.
# Struct::Group
# Struct::Passwd
#
# # good
# nil
# true
# false
# Net::HTTPClientException
# Random.new # `::DEFAULT` has been deprecated in Ruby 3, `.new` is compatible with Ruby 2.
# Etc::Group
# Etc::Passwd
#
# source://rubocop//lib/rubocop/cop/lint/deprecated_constants.rb#40
class RuboCop::Cop::Lint::DeprecatedConstants < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/deprecated_constants.rb#46
def on_const(node); end
private
# source://rubocop//lib/rubocop/cop/lint/deprecated_constants.rb#66
def constant_name(node, nested_constant_name); end
# source://rubocop//lib/rubocop/cop/lint/deprecated_constants.rb#82
def deprecated_constants; end
# source://rubocop//lib/rubocop/cop/lint/deprecated_constants.rb#72
def message(good, bad, deprecated_version); end
end
# source://rubocop//lib/rubocop/cop/lint/deprecated_constants.rb#44
RuboCop::Cop::Lint::DeprecatedConstants::DO_NOT_USE_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/deprecated_constants.rb#43
RuboCop::Cop::Lint::DeprecatedConstants::SUGGEST_GOOD_MSG = T.let(T.unsafe(nil), String)
# Algorithmic constants for `OpenSSL::Cipher` and `OpenSSL::Digest`
# deprecated since OpenSSL version 2.2.0. Prefer passing a string
# instead.
#
# @example
#
# # bad
# OpenSSL::Cipher::AES.new(128, :GCM)
#
# # good
# OpenSSL::Cipher.new('aes-128-gcm')
#
# # bad
# OpenSSL::Digest::SHA256.new
#
# # good
# OpenSSL::Digest.new('SHA256')
#
# # bad
# OpenSSL::Digest::SHA256.digest('foo')
#
# # good
# OpenSSL::Digest.digest('SHA256', 'foo')
#
# source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#30
class RuboCop::Cop::Lint::DeprecatedOpenSSLConstant < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#39
def algorithm_const(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#49
def digest_const?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#53
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#100
def algorithm_name(node); end
# source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#65
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#129
def build_cipher_arguments(node, algorithm_name, no_arguments); end
# source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#92
def correction_range(node); end
# source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#77
def message(node); end
# source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#96
def openssl_class(node); end
# source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#118
def replacement_args(node); end
# source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#110
def sanitize_arguments(arguments); end
end
# source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#34
RuboCop::Cop::Lint::DeprecatedOpenSSLConstant::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/deprecated_open_ssl_constant.rb#36
RuboCop::Cop::Lint::DeprecatedOpenSSLConstant::NO_ARG_ALGORITHM = T.let(T.unsafe(nil), Array)
# Checks constructors for disjunctive assignments (`||=`) that should
# be plain assignments.
#
# So far, this cop is only concerned with disjunctive assignment of
# instance variables.
#
# In ruby, an instance variable is nil until a value is assigned, so the
# disjunction is unnecessary. A plain assignment has the same effect.
#
# @example
# # bad
# def initialize
# @x ||= 1
# end
#
# # good
# def initialize
# @x = 1
# end
#
# source://rubocop//lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb#48
class RuboCop::Cop::Lint::DisjunctiveAssignmentInConstructor < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb#53
def on_def(node); end
private
# @param node [DefNode] a constructor definition
#
# source://rubocop//lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb#60
def check(node); end
# source://rubocop//lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb#66
def check_body(body); end
# @param lines [Array] the logical lines of the constructor
#
# source://rubocop//lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb#78
def check_body_lines(lines); end
# Add an offense if the LHS of the given disjunctive assignment is
# an instance variable.
#
# For now, we only care about assignments to instance variables.
#
# @param node [Node] a disjunctive assignment
#
# source://rubocop//lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb#99
def check_disjunctive_assignment(node); end
end
# source://rubocop//lib/rubocop/cop/lint/disjunctive_assignment_in_constructor.rb#51
RuboCop::Cop::Lint::DisjunctiveAssignmentInConstructor::MSG = T.let(T.unsafe(nil), String)
# Checks that there are no repeated bodies
# within `if/unless`, `case-when`, `case-in` and `rescue` constructs.
#
# With `IgnoreLiteralBranches: true`, branches are not registered
# as offenses if they return a basic literal value (string, symbol,
# integer, float, rational, complex, `true`, `false`, or `nil`), or
# return an array, hash, regexp or range that only contains one of
# the above basic literal values.
#
# With `IgnoreConstantBranches: true`, branches are not registered
# as offenses if they return a constant value.
#
# With `IgnoreDuplicateElseBranch: true`, in conditionals with multiple branches,
# duplicate 'else' branches are not registered as offenses.
#
# @example
# # bad
# if foo
# do_foo
# do_something_else
# elsif bar
# do_foo
# do_something_else
# end
#
# # good
# if foo || bar
# do_foo
# do_something_else
# end
#
# # bad
# case x
# when foo
# do_foo
# when bar
# do_foo
# else
# do_something_else
# end
#
# # good
# case x
# when foo, bar
# do_foo
# else
# do_something_else
# end
#
# # bad
# begin
# do_something
# rescue FooError
# handle_error
# rescue BarError
# handle_error
# end
#
# # good
# begin
# do_something
# rescue FooError, BarError
# handle_error
# end
# @example IgnoreLiteralBranches: true
# # good
# case size
# when "small" then 100
# when "medium" then 250
# when "large" then 1000
# else 250
# end
# @example IgnoreConstantBranches: true
# # good
# case size
# when "small" then SMALL_SIZE
# when "medium" then MEDIUM_SIZE
# when "large" then LARGE_SIZE
# else MEDIUM_SIZE
# end
# @example IgnoreDuplicateElseBranch: true
# # good
# if foo
# do_foo
# elsif bar
# do_bar
# else
# do_foo
# end
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#99
class RuboCop::Cop::Lint::DuplicateBranch < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#102
def on_branching_statement(node); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#102
def on_case(node); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#102
def on_case_match(node); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#114
def on_if(node); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#102
def on_rescue(node); end
private
# source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#136
def branches(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#140
def consider_branch?(branches, branch); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#174
def const_branch?(branch); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#178
def duplicate_else_branch?(branches, branch); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#155
def ignore_constant_branches?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#159
def ignore_duplicate_else_branches?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#151
def ignore_literal_branches?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#163
def literal_branch?(branch); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#122
def offense_range(duplicate_branch); end
end
# source://rubocop//lib/rubocop/cop/lint/duplicate_branch.rb#100
RuboCop::Cop::Lint::DuplicateBranch::MSG = T.let(T.unsafe(nil), String)
# Checks that there are no repeated conditions
# used in case 'when' expressions.
#
# @example
#
# # bad
# case x
# when 'first'
# do_something
# when 'first'
# do_something_else
# end
#
# # good
# case x
# when 'first'
# do_something
# when 'second'
# do_something_else
# end
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_case_condition.rb#26
class RuboCop::Cop::Lint::DuplicateCaseCondition < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/duplicate_case_condition.rb#29
def on_case(case_node); end
end
# source://rubocop//lib/rubocop/cop/lint/duplicate_case_condition.rb#27
RuboCop::Cop::Lint::DuplicateCaseCondition::MSG = T.let(T.unsafe(nil), String)
# Checks that there are no repeated conditions used in if 'elsif'.
#
# @example
# # bad
# if x == 1
# do_something
# elsif x == 1
# do_something_else
# end
#
# # good
# if x == 1
# do_something
# elsif x == 2
# do_something_else
# end
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_elsif_condition.rb#23
class RuboCop::Cop::Lint::DuplicateElsifCondition < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/duplicate_elsif_condition.rb#26
def on_if(node); end
end
# source://rubocop//lib/rubocop/cop/lint/duplicate_elsif_condition.rb#24
RuboCop::Cop::Lint::DuplicateElsifCondition::MSG = T.let(T.unsafe(nil), String)
# Checks for duplicated keys in hash literals.
# This cop considers both primitive types and constants for the hash keys.
#
# This cop mirrors a warning in Ruby 2.2.
#
# @example
#
# # bad
# hash = { food: 'apple', food: 'orange' }
#
# # good
# hash = { food: 'apple', other_food: 'orange' }
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_hash_key.rb#18
class RuboCop::Cop::Lint::DuplicateHashKey < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Duplication
# source://rubocop//lib/rubocop/cop/lint/duplicate_hash_key.rb#23
def on_hash(node); end
end
# source://rubocop//lib/rubocop/cop/lint/duplicate_hash_key.rb#21
RuboCop::Cop::Lint::DuplicateHashKey::MSG = T.let(T.unsafe(nil), String)
# Checks for duplicated magic comments.
#
# @example
#
# # bad
#
# # encoding: ascii
# # encoding: ascii
#
# # good
#
# # encoding: ascii
#
# # bad
#
# # frozen_string_literal: true
# # frozen_string_literal: true
#
# # good
#
# # frozen_string_literal: true
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_magic_comment.rb#28
class RuboCop::Cop::Lint::DuplicateMagicComment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::FrozenStringLiteral
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/duplicate_magic_comment.rb#35
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/lint/duplicate_magic_comment.rb#51
def magic_comment_lines; end
# source://rubocop//lib/rubocop/cop/lint/duplicate_magic_comment.rb#65
def register_offense(range); end
end
# source://rubocop//lib/rubocop/cop/lint/duplicate_magic_comment.rb#33
RuboCop::Cop::Lint::DuplicateMagicComment::MSG = T.let(T.unsafe(nil), String)
# Checks that there are no repeated patterns used in `in` keywords.
#
# @example
#
# # bad
# case x
# in 'first'
# do_something
# in 'first'
# do_something_else
# end
#
# # good
# case x
# in 'first'
# do_something
# in 'second'
# do_something_else
# end
#
# # bad - repeated alternate patterns with the same conditions don't depend on the order
# case x
# in foo | bar
# first_method
# in bar | foo
# second_method
# end
#
# # good
# case x
# in foo | bar
# first_method
# in bar | baz
# second_method
# end
#
# # bad - repeated hash patterns with the same conditions don't depend on the order
# case x
# in foo: a, bar: b
# first_method
# in bar: b, foo: a
# second_method
# end
#
# # good
# case x
# in foo: a, bar: b
# first_method
# in bar: b, baz: c
# second_method
# end
#
# # bad - repeated array patterns with elements in the same order
# case x
# in [foo, bar]
# first_method
# in [foo, bar]
# second_method
# end
#
# # good
# case x
# in [foo, bar]
# first_method
# in [bar, foo]
# second_method
# end
#
# # bad - repeated the same patterns and guard conditions
# case x
# in foo if bar
# first_method
# in foo if bar
# second_method
# end
#
# # good
# case x
# in foo if bar
# first_method
# in foo if baz
# second_method
# end
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_match_pattern.rb#90
class RuboCop::Cop::Lint::DuplicateMatchPattern < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/lint/duplicate_match_pattern.rb#97
def on_case_match(case_node); end
private
# source://rubocop//lib/rubocop/cop/lint/duplicate_match_pattern.rb#108
def pattern_identity(pattern); end
end
# source://rubocop//lib/rubocop/cop/lint/duplicate_match_pattern.rb#93
RuboCop::Cop::Lint::DuplicateMatchPattern::MSG = T.let(T.unsafe(nil), String)
# Checks for duplicated instance (or singleton) method
# definitions.
#
# @example
#
# # bad
# def foo
# 1
# end
#
# def foo
# 2
# end
#
# # bad
# def foo
# 1
# end
#
# alias foo bar
#
# # good
# def foo
# 1
# end
#
# def bar
# 2
# end
#
# # good
# def foo
# 1
# end
#
# alias bar foo
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#42
class RuboCop::Cop::Lint::DuplicateMethods < ::RuboCop::Cop::Base
# @return [DuplicateMethods] a new instance of DuplicateMethods
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#47
def initialize(config = T.unsafe(nil), options = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#88
def alias_method?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#75
def method_alias?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#79
def on_alias(node); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#53
def on_def(node); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#62
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#94
def on_send(node); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#93
def sym_name(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#107
def check_const_receiver(node, name, const_name); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#114
def check_self_receiver(node, name); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#198
def found_attr(node, args, readable: T.unsafe(nil), writable: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#126
def found_instance_method(node, name); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#149
def found_method(node, method_name); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#139
def found_sclass_method(node, name); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#176
def location(node); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#208
def lookup_constant(node, const_name); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#121
def message_for_dup(node, method_name, key); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#168
def method_key(node, method_name); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#184
def on_attr(node, attr_name, args); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#240
def possible_dsl?(node); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#226
def qualified_name(enclosing, namespace, mod_name); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#250
def source_location(node); end
end
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#45
RuboCop::Cop::Lint::DuplicateMethods::DEF_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#43
RuboCop::Cop::Lint::DuplicateMethods::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/duplicate_methods.rb#44
RuboCop::Cop::Lint::DuplicateMethods::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for duplicate elements in Regexp character classes.
#
# @example
#
# # bad
# r = /[xyx]/
#
# # bad
# r = /[0-9x0-9]/
#
# # good
# r = /[xy]/
#
# # good
# r = /[0-9x]/
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#21
class RuboCop::Cop::Lint::DuplicateRegexpCharacterClassElement < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#37
def each_repeated_character_class_element_loc(node); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#29
def on_regexp(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#102
def escaped_octal?(string); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#54
def group_expressions(node, expressions); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#110
def interpolation_locs(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#106
def octal?(char); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#71
def pop_octal_digits(current_child, expressions); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#89
def skip_expression?(expr); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#80
def source_range(children); end
# Since we blank interpolations with a space for every char of the interpolation, we would
# mark every space (except the first) as duplicate if we do not skip regexp_parser nodes
# that are within an interpolation.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#96
def within_interpolation?(node, child); end
end
# source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#25
RuboCop::Cop::Lint::DuplicateRegexpCharacterClassElement::MSG_REPEATED_ELEMENT = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/duplicate_regexp_character_class_element.rb#27
RuboCop::Cop::Lint::DuplicateRegexpCharacterClassElement::OCTAL_DIGITS_AFTER_ESCAPE = T.let(T.unsafe(nil), Integer)
# Checks for duplicate ``require``s and ``require_relative``s.
#
# @example
# # bad
# require 'foo'
# require 'bar'
# require 'foo'
#
# # good
# require 'foo'
# require 'bar'
#
# # good
# require 'foo'
# require_relative 'foo'
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_require.rb#26
class RuboCop::Cop::Lint::DuplicateRequire < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/duplicate_require.rb#39
def on_new_investigation; end
# source://rubocop//lib/rubocop/cop/lint/duplicate_require.rb#45
def on_send(node); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_require.rb#35
def require_call?(param0 = T.unsafe(nil)); end
end
# source://rubocop//lib/rubocop/cop/lint/duplicate_require.rb#30
RuboCop::Cop::Lint::DuplicateRequire::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/duplicate_require.rb#31
RuboCop::Cop::Lint::DuplicateRequire::REQUIRE_METHODS = T.let(T.unsafe(nil), Set)
# source://rubocop//lib/rubocop/cop/lint/duplicate_require.rb#32
RuboCop::Cop::Lint::DuplicateRequire::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Set)
# Checks that there are no repeated exceptions
# used in 'rescue' expressions.
#
# @example
# # bad
# begin
# something
# rescue FirstException
# handle_exception
# rescue FirstException
# handle_other_exception
# end
#
# # good
# begin
# something
# rescue FirstException
# handle_exception
# rescue SecondException
# handle_other_exception
# end
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_rescue_exception.rb#28
class RuboCop::Cop::Lint::DuplicateRescueException < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RescueNode
# source://rubocop//lib/rubocop/cop/lint/duplicate_rescue_exception.rb#33
def on_rescue(node); end
end
# source://rubocop//lib/rubocop/cop/lint/duplicate_rescue_exception.rb#31
RuboCop::Cop::Lint::DuplicateRescueException::MSG = T.let(T.unsafe(nil), String)
# Checks for duplicate literal, constant, or variable elements in Set.
#
# @example
#
# # bad
# Set[:foo, :bar, :foo]
#
# # good
# Set[:foo, :bar]
#
# # bad
# Set.new([:foo, :bar, :foo])
#
# # good
# Set.new([:foo, :bar])
#
# # bad
# [:foo, :bar, :foo].to_set
#
# # good
# [:foo, :bar].to_set
#
# source://rubocop//lib/rubocop/cop/lint/duplicate_set_element.rb#28
class RuboCop::Cop::Lint::DuplicateSetElement < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/duplicate_set_element.rb#43
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_set_element.rb#43
def on_send(node); end
# source://rubocop//lib/rubocop/cop/lint/duplicate_set_element.rb#35
def set_init_elements(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/lint/duplicate_set_element.rb#64
def register_offense(current_element, prev_element); end
end
# source://rubocop//lib/rubocop/cop/lint/duplicate_set_element.rb#31
RuboCop::Cop::Lint::DuplicateSetElement::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/duplicate_set_element.rb#32
RuboCop::Cop::Lint::DuplicateSetElement::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks if each_with_object is called with an immutable
# argument. Since the argument is the object that the given block shall
# make calls on to build something based on the enumerable that
# each_with_object iterates over, an immutable argument makes no sense.
# It's definitely a bug.
#
# @example
#
# # bad
# sum = numbers.each_with_object(0) { |e, a| a += e }
#
# # good
# num = 0
# sum = numbers.each_with_object(num) { |e, a| a += e }
#
# source://rubocop//lib/rubocop/cop/lint/each_with_object_argument.rb#20
class RuboCop::Cop::Lint::EachWithObjectArgument < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/each_with_object_argument.rb#25
def each_with_object?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/each_with_object_argument.rb#29
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/lint/each_with_object_argument.rb#29
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/lint/each_with_object_argument.rb#21
RuboCop::Cop::Lint::EachWithObjectArgument::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/each_with_object_argument.rb#22
RuboCop::Cop::Lint::EachWithObjectArgument::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for odd `else` block layout - like
# having an expression on the same line as the `else` keyword,
# which is usually a mistake.
#
# Its autocorrection tweaks layout to keep the syntax. So, this autocorrection
# is compatible correction for bad case syntax, but if your code makes a mistake
# with `elsif` and `else`, you will have to correct it manually.
#
# @example
#
# # bad
#
# if something
# # ...
# else do_this
# do_that
# end
#
# # good
#
# # This code is compatible with the bad case. It will be autocorrected like this.
# if something
# # ...
# else
# do_this
# do_that
# end
#
# # This code is incompatible with the bad case.
# # If `do_this` is a condition, `elsif` should be used instead of `else`.
# if something
# # ...
# elsif do_this
# do_that
# end
#
# source://rubocop//lib/rubocop/cop/lint/else_layout.rb#41
class RuboCop::Cop::Lint::ElseLayout < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/else_layout.rb#48
def on_if(node); end
private
# source://rubocop//lib/rubocop/cop/lint/else_layout.rb#79
def autocorrect(corrector, node, first_else); end
# source://rubocop//lib/rubocop/cop/lint/else_layout.rb#59
def check(node); end
# source://rubocop//lib/rubocop/cop/lint/else_layout.rb#69
def check_else(node); end
end
# source://rubocop//lib/rubocop/cop/lint/else_layout.rb#46
RuboCop::Cop::Lint::ElseLayout::MSG = T.let(T.unsafe(nil), String)
# Checks for blocks without a body.
# Such empty blocks are typically an oversight or we should provide a comment
# to clarify what we're aiming for.
#
# Empty lambdas and procs are ignored by default.
#
# NOTE: For backwards compatibility, the configuration that allows/disallows
# empty lambdas and procs is called `AllowEmptyLambdas`, even though it also
# applies to procs.
#
# @example
# # bad
# items.each { |item| }
#
# # good
# items.each { |item| puts item }
# @example AllowComments: true (default)
# # good
# items.each do |item|
# # TODO: implement later (inner comment)
# end
#
# items.each { |item| } # TODO: implement later (inline comment)
# @example AllowComments: false
# # bad
# items.each do |item|
# # TODO: implement later (inner comment)
# end
#
# items.each { |item| } # TODO: implement later (inline comment)
# @example AllowEmptyLambdas: true (default)
# # good
# allow(subject).to receive(:callable).and_return(-> {})
#
# placeholder = lambda do
# end
# (callable || placeholder).call
#
# proc { }
#
# Proc.new { }
# @example AllowEmptyLambdas: false
# # bad
# allow(subject).to receive(:callable).and_return(-> {})
#
# placeholder = lambda do
# end
# (callable || placeholder).call
#
# proc { }
#
# Proc.new { }
#
# source://rubocop//lib/rubocop/cop/lint/empty_block.rb#63
class RuboCop::Cop::Lint::EmptyBlock < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/empty_block.rb#66
def on_block(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/empty_block.rb#76
def allow_comment?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/empty_block.rb#83
def allow_empty_lambdas?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/empty_block.rb#87
def comment_disables_cop?(comment); end
end
# source://rubocop//lib/rubocop/cop/lint/empty_block.rb#64
RuboCop::Cop::Lint::EmptyBlock::MSG = T.let(T.unsafe(nil), String)
# Checks for classes and metaclasses without a body.
# Such empty classes and metaclasses are typically an oversight or we should provide a comment
# to be clearer what we're aiming for.
#
# @example
# # bad
# class Foo
# end
#
# class Bar
# class << self
# end
# end
#
# class << obj
# end
#
# # good
# class Foo
# def do_something
# # ... code
# end
# end
#
# class Bar
# class << self
# attr_reader :bar
# end
# end
#
# class << obj
# attr_reader :bar
# end
# @example AllowComments: false (default)
# # bad
# class Foo
# # TODO: implement later
# end
#
# class Bar
# class << self
# # TODO: implement later
# end
# end
#
# class << obj
# # TODO: implement later
# end
# @example AllowComments: true
# # good
# class Foo
# # TODO: implement later
# end
#
# class Bar
# class << self
# # TODO: implement later
# end
# end
#
# class << obj
# # TODO: implement later
# end
#
# source://rubocop//lib/rubocop/cop/lint/empty_class.rb#72
class RuboCop::Cop::Lint::EmptyClass < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/empty_class.rb#76
def on_class(node); end
# source://rubocop//lib/rubocop/cop/lint/empty_class.rb#81
def on_sclass(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/empty_class.rb#87
def body_or_allowed_comment_lines?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/empty_class.rb#73
RuboCop::Cop::Lint::EmptyClass::CLASS_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/empty_class.rb#74
RuboCop::Cop::Lint::EmptyClass::METACLASS_MSG = T.let(T.unsafe(nil), String)
# Checks for the presence of `if`, `elsif` and `unless` branches without a body.
#
# NOTE: empty `else` branches are handled by `Style/EmptyElse`.
#
# @example
# # bad
# if condition
# end
#
# # bad
# unless condition
# end
#
# # bad
# if condition
# do_something
# elsif other_condition
# end
#
# # good
# if condition
# do_something
# end
#
# # good
# unless condition
# do_something
# end
#
# # good
# if condition
# do_something
# elsif other_condition
# do_something_else
# end
# @example AllowComments: true (default)
# # good
# if condition
# do_something
# elsif other_condition
# # noop
# end
# @example AllowComments: false
# # bad
# if condition
# do_something
# elsif other_condition
# # noop
# end
#
# source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#63
class RuboCop::Cop::Lint::EmptyConditionalBody < ::RuboCop::Cop::Base
include ::RuboCop::Cop::CommentsHelp
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#71
def on_if(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#177
def all_branches_body_missing?(node); end
# source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#95
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#163
def branch_range(node); end
# source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#125
def correct_other_branches(corrector, node); end
# source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#183
def deletion_range(range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#158
def else_branch?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#152
def empty_elsif_branch?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#144
def empty_if_branch?(node); end
# source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#87
def offense_range(node); end
# source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#101
def remove_comments(corrector, node); end
# source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#109
def remove_empty_branch(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#137
def require_other_branches_correction?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/empty_conditional_body.rb#68
RuboCop::Cop::Lint::EmptyConditionalBody::MSG = T.let(T.unsafe(nil), String)
# Checks for empty `ensure` blocks.
#
# @example
#
# # bad
# def some_method
# do_something
# ensure
# end
#
# # bad
# begin
# do_something
# ensure
# end
#
# # good
# def some_method
# do_something
# ensure
# do_something_else
# end
#
# # good
# begin
# do_something
# ensure
# do_something_else
# end
#
# source://rubocop//lib/rubocop/cop/lint/empty_ensure.rb#35
class RuboCop::Cop::Lint::EmptyEnsure < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/empty_ensure.rb#40
def on_ensure(node); end
end
# source://rubocop//lib/rubocop/cop/lint/empty_ensure.rb#38
RuboCop::Cop::Lint::EmptyEnsure::MSG = T.let(T.unsafe(nil), String)
# Checks for the presence of empty expressions.
#
# @example
#
# # bad
#
# foo = ()
# if ()
# bar
# end
# @example
#
# # good
#
# foo = (some_expression)
# if (some_expression)
# bar
# end
#
# source://rubocop//lib/rubocop/cop/lint/empty_expression.rb#25
class RuboCop::Cop::Lint::EmptyExpression < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/empty_expression.rb#28
def on_begin(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/empty_expression.rb#36
def empty_expression?(begin_node); end
end
# source://rubocop//lib/rubocop/cop/lint/empty_expression.rb#26
RuboCop::Cop::Lint::EmptyExpression::MSG = T.let(T.unsafe(nil), String)
# Enforces that Ruby source files are not empty.
#
# @example
# # bad
# # Empty file
#
# # good
# # File containing non commented source lines
# @example AllowComments: true (default)
# # good
# # File consisting only of comments
# @example AllowComments: false
# # bad
# # File consisting only of comments
#
# source://rubocop//lib/rubocop/cop/lint/empty_file.rb#23
class RuboCop::Cop::Lint::EmptyFile < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
# source://rubocop//lib/rubocop/cop/lint/empty_file.rb#28
def on_new_investigation; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/empty_file.rb#42
def contains_only_comments?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/empty_file.rb#38
def empty_file?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/empty_file.rb#34
def offending?; end
end
# source://rubocop//lib/rubocop/cop/lint/empty_file.rb#26
RuboCop::Cop::Lint::EmptyFile::MSG = T.let(T.unsafe(nil), String)
# Checks for the presence of `in` pattern branches without a body.
#
# @example
#
# # bad
# case condition
# in [a]
# do_something
# in [a, b]
# end
#
# # good
# case condition
# in [a]
# do_something
# in [a, b]
# nil
# end
# @example AllowComments: true (default)
#
# # good
# case condition
# in [a]
# do_something
# in [a, b]
# # noop
# end
# @example AllowComments: false
#
# # bad
# case condition
# in [a]
# do_something
# in [a, b]
# # noop
# end
#
# source://rubocop//lib/rubocop/cop/lint/empty_in_pattern.rb#45
class RuboCop::Cop::Lint::EmptyInPattern < ::RuboCop::Cop::Base
include ::RuboCop::Cop::CommentsHelp
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/lint/empty_in_pattern.rb#53
def on_case_match(node); end
end
# source://rubocop//lib/rubocop/cop/lint/empty_in_pattern.rb#49
RuboCop::Cop::Lint::EmptyInPattern::MSG = T.let(T.unsafe(nil), String)
# Checks for empty interpolation.
#
# @example
#
# # bad
# "result is #{}"
#
# # good
# "result is #{some_result}"
#
# source://rubocop//lib/rubocop/cop/lint/empty_interpolation.rb#15
class RuboCop::Cop::Lint::EmptyInterpolation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Interpolation
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/empty_interpolation.rb#21
def on_interpolation(begin_node); end
end
# source://rubocop//lib/rubocop/cop/lint/empty_interpolation.rb#19
RuboCop::Cop::Lint::EmptyInterpolation::MSG = T.let(T.unsafe(nil), String)
# Checks for the presence of `when` branches without a body.
#
# @example
#
# # bad
# case foo
# when bar
# do_something
# when baz
# end
#
# # good
# case condition
# when foo
# do_something
# when bar
# nil
# end
# @example AllowComments: true (default)
#
# # good
# case condition
# when foo
# do_something
# when bar
# # noop
# end
# @example AllowComments: false
#
# # bad
# case condition
# when foo
# do_something
# when bar
# # do nothing
# end
#
# source://rubocop//lib/rubocop/cop/lint/empty_when.rb#45
class RuboCop::Cop::Lint::EmptyWhen < ::RuboCop::Cop::Base
include ::RuboCop::Cop::CommentsHelp
# source://rubocop//lib/rubocop/cop/lint/empty_when.rb#50
def on_case(node); end
end
# source://rubocop//lib/rubocop/cop/lint/empty_when.rb#48
RuboCop::Cop::Lint::EmptyWhen::MSG = T.let(T.unsafe(nil), String)
# Checks for `return` from an `ensure` block.
# `return` from an ensure block is a dangerous code smell as it
# will take precedence over any exception being raised,
# and the exception will be silently thrown away as if it were rescued.
#
# If you want to rescue some (or all) exceptions, best to do it explicitly
#
# @example
#
# # bad
# def foo
# do_something
# ensure
# cleanup
# return self
# end
#
# # good
# def foo
# do_something
# self
# ensure
# cleanup
# end
#
# # good
# def foo
# begin
# do_something
# rescue SomeException
# # Let's ignore this exception
# end
# self
# ensure
# cleanup
# end
#
# source://rubocop//lib/rubocop/cop/lint/ensure_return.rb#42
class RuboCop::Cop::Lint::EnsureReturn < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/ensure_return.rb#45
def on_ensure(node); end
end
# source://rubocop//lib/rubocop/cop/lint/ensure_return.rb#43
RuboCop::Cop::Lint::EnsureReturn::MSG = T.let(T.unsafe(nil), String)
# Emulates the following Ruby warnings in Ruby 2.6.
#
# [source,console]
# ----
# $ cat example.rb
# ERB.new('hi', nil, '-', '@output_buffer')
# $ ruby -rerb example.rb
# example.rb:1: warning: Passing safe_level with the 2nd argument of ERB.new is
# deprecated. Do not use it, and specify other arguments as keyword arguments.
# example.rb:1: warning: Passing trim_mode with the 3rd argument of ERB.new is
# deprecated. Use keyword argument like ERB.new(str, trim_mode:...) instead.
# example.rb:1: warning: Passing eoutvar with the 4th argument of ERB.new is
# deprecated. Use keyword argument like ERB.new(str, eoutvar: ...) instead.
# ----
#
# Now non-keyword arguments other than first one are softly deprecated
# and will be removed when Ruby 2.5 becomes EOL.
# `ERB.new` with non-keyword arguments is deprecated since ERB 2.2.0.
# Use `:trim_mode` and `:eoutvar` keyword arguments to `ERB.new`.
# This cop identifies places where `ERB.new(str, trim_mode, eoutvar)` can
# be replaced by `ERB.new(str, :trim_mode: trim_mode, eoutvar: eoutvar)`.
#
# @example
# # Target codes supports Ruby 2.6 and higher only
# # bad
# ERB.new(str, nil, '-', '@output_buffer')
#
# # good
# ERB.new(str, trim_mode: '-', eoutvar: '@output_buffer')
#
# # Target codes supports Ruby 2.5 and lower only
# # good
# ERB.new(str, nil, '-', '@output_buffer')
#
# # Target codes supports Ruby 2.6, 2.5 and lower
# # bad
# ERB.new(str, nil, '-', '@output_buffer')
#
# # good
# # Ruby standard library style
# # https://github.com/ruby/ruby/commit/3406c5d
# if ERB.instance_method(:initialize).parameters.assoc(:key) # Ruby 2.6+
# ERB.new(str, trim_mode: '-', eoutvar: '@output_buffer')
# else
# ERB.new(str, nil, '-', '@output_buffer')
# end
#
# # good
# # Use `RUBY_VERSION` style
# if RUBY_VERSION >= '2.6'
# ERB.new(str, trim_mode: '-', eoutvar: '@output_buffer')
# else
# ERB.new(str, nil, '-', '@output_buffer')
# end
#
# source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#61
class RuboCop::Cop::Lint::ErbNewArguments < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#81
def erb_new_with_non_keyword_arguments(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#86
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#160
def arguments_range(node); end
# source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#115
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#130
def build_kwargs(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#126
def correct_arguments?(arguments); end
# source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#104
def message(positional_argument_index, arg_value); end
# source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#147
def override_by_legacy_args(kwargs, node); end
end
# source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#74
RuboCop::Cop::Lint::ErbNewArguments::MESSAGE_EOUTVAR = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#68
RuboCop::Cop::Lint::ErbNewArguments::MESSAGE_SAFE_LEVEL = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#71
RuboCop::Cop::Lint::ErbNewArguments::MESSAGE_TRIM_MODE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/erb_new_arguments.rb#78
RuboCop::Cop::Lint::ErbNewArguments::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Looks for uses of flip-flop operator
# based on the Ruby Style Guide.
#
# Here is the history of flip-flops in Ruby.
# flip-flop operator is deprecated in Ruby 2.6.0 and
# the deprecation has been reverted by Ruby 2.7.0 and
# backported to Ruby 2.6.
# See: https://bugs.ruby-lang.org/issues/5400
#
# @example
# # bad
# (1..20).each do |x|
# puts x if (x == 5) .. (x == 10)
# end
#
# # good
# (1..20).each do |x|
# puts x if (x >= 5) && (x <= 10)
# end
#
# source://rubocop//lib/rubocop/cop/lint/flip_flop.rb#25
class RuboCop::Cop::Lint::FlipFlop < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/flip_flop.rb#32
def on_eflipflop(node); end
# source://rubocop//lib/rubocop/cop/lint/flip_flop.rb#28
def on_iflipflop(node); end
end
# source://rubocop//lib/rubocop/cop/lint/flip_flop.rb#26
RuboCop::Cop::Lint::FlipFlop::MSG = T.let(T.unsafe(nil), String)
# Checks for the presence of precise comparison of floating point numbers.
#
# Floating point values are inherently inaccurate, and comparing them for exact equality
# is almost never the desired semantics. Comparison via the `==/!=` operators checks
# floating-point value representation to be exactly the same, which is very unlikely
# if you perform any arithmetic operations involving precision loss.
#
# @example
# # bad
# x == 0.1
# x != 0.1
#
# # good - using BigDecimal
# x.to_d == 0.1.to_d
#
# # good - comparing against zero
# x == 0.0
# x != 0.0
#
# # good
# (x - 0.1).abs < Float::EPSILON
#
# # good
# tolerance = 0.0001
# (x - 0.1).abs < tolerance
#
# # Or some other epsilon based type of comparison:
# # https://www.embeddeduse.com/2019/08/26/qt-compare-two-floats/
#
# source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#35
class RuboCop::Cop::Lint::FloatComparison < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#44
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#89
def check_numeric_returning_method(node); end
# source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#73
def check_send(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#53
def float?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#68
def literal_zero?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#38
RuboCop::Cop::Lint::FloatComparison::EQUALITY_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#40
RuboCop::Cop::Lint::FloatComparison::FLOAT_INSTANCE_METHODS = T.let(T.unsafe(nil), Set)
# source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#39
RuboCop::Cop::Lint::FloatComparison::FLOAT_RETURNING_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#36
RuboCop::Cop::Lint::FloatComparison::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/float_comparison.rb#42
RuboCop::Cop::Lint::FloatComparison::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Identifies Float literals which are, like, really really really
# really really really really really big. Too big. No-one needs Floats
# that big. If you need a float that big, something is wrong with you.
#
# @example
#
# # bad
# float = 3.0e400
#
# # good
# float = 42.9
#
# source://rubocop//lib/rubocop/cop/lint/float_out_of_range.rb#17
class RuboCop::Cop::Lint::FloatOutOfRange < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/float_out_of_range.rb#20
def on_float(node); end
end
# source://rubocop//lib/rubocop/cop/lint/float_out_of_range.rb#18
RuboCop::Cop::Lint::FloatOutOfRange::MSG = T.let(T.unsafe(nil), String)
# This lint sees if there is a mismatch between the number of
# expected fields for format/sprintf/#% and what is actually
# passed as arguments.
#
# In addition it checks whether different formats are used in the same
# format string. Do not mix numbered, unnumbered, and named formats in
# the same format string.
#
# @example
#
# # bad
# format('A value: %s and another: %i', a_value)
#
# # good
# format('A value: %s and another: %i', a_value, another)
#
# # bad
# format('Unnumbered format: %s and numbered: %2$s', a_value, another)
#
# # good
# format('Numbered format: %1$s and numbered %2$s', a_value, another)
#
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#27
class RuboCop::Cop::Lint::FormatParameterMismatch < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#90
def called_on_string?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#39
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#127
def count_format_matches(node); end
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#109
def count_matches(node); end
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#131
def count_percent_matches(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#119
def countable_format?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#123
def countable_percent?(node); end
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#143
def expected_fields_count(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#158
def format?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#136
def format_method?(name, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#54
def format_string?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#105
def heredoc?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#58
def invalid_format_string?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#81
def matched_arguments_count?(expected, passed); end
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#176
def message(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#95
def method_with_format_args?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#67
def offending_node?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#166
def percent?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#99
def splat_args?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#162
def sprintf?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#185
def string_type?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#34
RuboCop::Cop::Lint::FormatParameterMismatch::KERNEL = T.let(T.unsafe(nil), String)
# http://rubular.com/r/CvpbxkcTzy
#
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#29
RuboCop::Cop::Lint::FormatParameterMismatch::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#31
RuboCop::Cop::Lint::FormatParameterMismatch::MSG_INVALID = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#37
RuboCop::Cop::Lint::FormatParameterMismatch::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#35
RuboCop::Cop::Lint::FormatParameterMismatch::SHOVEL = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/format_parameter_mismatch.rb#36
RuboCop::Cop::Lint::FormatParameterMismatch::STRING_TYPES = T.let(T.unsafe(nil), Array)
# Prefer using `Hash#compare_by_identity` rather than using `object_id`
# for hash keys.
#
# This cop looks for hashes being keyed by objects' `object_id`, using
# one of these methods: `key?`, `has_key?`, `fetch`, `[]` and `[]=`.
#
# @example
# # bad
# hash = {}
# hash[foo.object_id] = :bar
# hash.key?(baz.object_id)
#
# # good
# hash = {}.compare_by_identity
# hash[foo] = :bar
# hash.key?(baz)
#
# source://rubocop//lib/rubocop/cop/lint/hash_compare_by_identity.rb#31
class RuboCop::Cop::Lint::HashCompareByIdentity < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/hash_compare_by_identity.rb#37
def id_as_hash_key?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/hash_compare_by_identity.rb#41
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/lint/hash_compare_by_identity.rb#41
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/lint/hash_compare_by_identity.rb#34
RuboCop::Cop::Lint::HashCompareByIdentity::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/hash_compare_by_identity.rb#32
RuboCop::Cop::Lint::HashCompareByIdentity::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for the ordering of a method call where
# the receiver of the call is a HEREDOC.
#
# @example
# # bad
# <<-SQL
# bar
# SQL
# .strip_indent
#
# <<-SQL
# bar
# SQL
# .strip_indent
# .trim
#
# # good
# <<~SQL
# bar
# SQL
#
# <<~SQL.trim
# bar
# SQL
#
# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#31
class RuboCop::Cop::Lint::HeredocMethodCallPosition < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#37
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#37
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#97
def all_on_same_line?(nodes); end
# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#50
def autocorrect(corrector, node, heredoc); end
# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#77
def call_after_heredoc_range(heredoc); end
# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#107
def call_end_pos(node); end
# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#116
def call_line_range(node); end
# Returns nil if no range can be safely repositioned.
#
# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#122
def call_range_to_safely_reposition(node, heredoc); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#86
def calls_on_multiple_lines?(node, _heredoc); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#82
def correctly_positioned?(node, heredoc); end
# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#111
def heredoc_begin_line_range(heredoc); end
# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#103
def heredoc_end_pos(heredoc); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#73
def heredoc_node?(node); end
# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#59
def heredoc_node_descendent_receiver(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#67
def send_node?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#146
def trailing_comma?(call_source, call_line_source); end
end
# source://rubocop//lib/rubocop/cop/lint/heredoc_method_call_position.rb#35
RuboCop::Cop::Lint::HeredocMethodCallPosition::MSG = T.let(T.unsafe(nil), String)
# Prefer `equal?` over `==` when comparing `object_id`.
#
# `Object#equal?` is provided to compare objects for identity, and in contrast
# `Object#==` is provided for the purpose of doing value comparison.
#
# @example
# # bad
# foo.object_id == bar.object_id
#
# # good
# foo.equal?(bar)
#
# source://rubocop//lib/rubocop/cop/lint/identity_comparison.rb#18
class RuboCop::Cop::Lint::IdentityComparison < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/identity_comparison.rb#24
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/identity_comparison.rb#40
def compare_between_object_id_by_double_equal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/identity_comparison.rb#44
def object_id_method?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/identity_comparison.rb#21
RuboCop::Cop::Lint::IdentityComparison::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/identity_comparison.rb#22
RuboCop::Cop::Lint::IdentityComparison::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for implicit string concatenation of string literals
# which are on the same line.
#
# @example
#
# # bad
# array = ['Item 1' 'Item 2']
#
# # good
# array = ['Item 1Item 2']
# array = ['Item 1' + 'Item 2']
# array = [
# 'Item 1' \
# 'Item 2'
# ]
#
# source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#21
class RuboCop::Cop::Lint::ImplicitStringConcatenation < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#32
def on_dstr(node); end
private
# source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#92
def display_str(node); end
# source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#59
def each_bad_cons(node); end
# source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#74
def ending_delimiter(str); end
# source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#100
def str_content(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#84
def string_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#88
def string_literals?(node1, node2); end
end
# source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#26
RuboCop::Cop::Lint::ImplicitStringConcatenation::FOR_ARRAY = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#28
RuboCop::Cop::Lint::ImplicitStringConcatenation::FOR_METHOD = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/implicit_string_concatenation.rb#24
RuboCop::Cop::Lint::ImplicitStringConcatenation::MSG = T.let(T.unsafe(nil), String)
# Checks for `IO.select` that is incompatible with Fiber Scheduler since Ruby 3.0.
#
# When an array of IO objects waiting for an exception (the third argument of `IO.select`)
# is used as an argument, there is no alternative API, so offenses are not registered.
#
# NOTE: When the method is successful the return value of `IO.select` is `[[IO]]`,
# and the return value of `io.wait_readable` and `io.wait_writable` are `self`.
# They are not autocorrected when assigning a return value because these types are different.
# It's up to user how to handle the return value.
#
# @example
#
# # bad
# IO.select([io], [], [], timeout)
#
# # good
# io.wait_readable(timeout)
#
# # bad
# IO.select([], [io], [], timeout)
#
# # good
# io.wait_writable(timeout)
#
# source://rubocop//lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb#34
class RuboCop::Cop::Lint::IncompatibleIoSelectWithFiberScheduler < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb#41
def io_select(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb#46
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb#69
def preferred_method(read, write, timeout); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb#63
def scheduler_compatible?(io1, io2); end
end
# source://rubocop//lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb#37
RuboCop::Cop::Lint::IncompatibleIoSelectWithFiberScheduler::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/incompatible_io_select_with_fiber_scheduler.rb#38
RuboCop::Cop::Lint::IncompatibleIoSelectWithFiberScheduler::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for `private` or `protected` access modifiers which are
# applied to a singleton method. These access modifiers do not make
# singleton methods private/protected. `private_class_method` can be
# used for that.
#
# @example
#
# # bad
# class C
# private
#
# def self.method
# puts 'hi'
# end
# end
#
# # good
# class C
# def self.method
# puts 'hi'
# end
#
# private_class_method :method
# end
#
# # good
# class C
# class << self
# private
#
# def method
# puts 'hi'
# end
# end
# end
#
# source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#41
class RuboCop::Cop::Lint::IneffectiveAccessModifier < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#52
def on_class(node); end
# source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#52
def on_module(node); end
# source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#48
def private_class_methods(param0); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#102
def access_modifier?(node); end
# source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#59
def check_node(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#106
def correct_visibility?(node, modifier, ignored_methods); end
# source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#71
def format_message(modifier); end
# source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#84
def ineffective_modifier(node, ignored_methods = T.unsafe(nil), modifier = T.unsafe(nil), &block); end
# source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#67
def private_class_method_names(node); end
end
# source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#44
RuboCop::Cop::Lint::IneffectiveAccessModifier::ALTERNATIVE_PRIVATE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#45
RuboCop::Cop::Lint::IneffectiveAccessModifier::ALTERNATIVE_PROTECTED = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/ineffective_access_modifier.rb#42
RuboCop::Cop::Lint::IneffectiveAccessModifier::MSG = T.let(T.unsafe(nil), String)
# Looks for error classes inheriting from `Exception`.
# It is configurable to suggest using either `StandardError` (default) or
# `RuntimeError` instead.
#
# @example EnforcedStyle: standard_error (default)
# # bad
#
# class C < Exception; end
#
# C = Class.new(Exception)
#
# # good
#
# class C < StandardError; end
#
# C = Class.new(StandardError)
# @example EnforcedStyle: runtime_error
# # bad
#
# class C < Exception; end
#
# C = Class.new(Exception)
#
# # good
#
# class C < RuntimeError; end
#
# C = Class.new(RuntimeError)
#
# source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#40
class RuboCop::Cop::Lint::InheritException < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#53
def class_new_call?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#59
def on_class(node); end
# source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#70
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#87
def exception_class?(class_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#91
def inherit_exception_class_with_omitted_namespace?(class_node); end
# source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#83
def message(node); end
# source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#99
def preferred_base_class; end
end
# source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#44
RuboCop::Cop::Lint::InheritException::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#45
RuboCop::Cop::Lint::InheritException::PREFERRED_BASE_CLASS = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/lint/inherit_exception.rb#50
RuboCop::Cop::Lint::InheritException::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for interpolation in a single quoted string.
#
# @example
#
# # bad
# foo = 'something with #{interpolation} inside'
#
# # good
# foo = "something with #{interpolation} inside"
#
# source://rubocop//lib/rubocop/cop/lint/interpolation_check.rb#21
class RuboCop::Cop::Lint::InterpolationCheck < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/interpolation_check.rb#27
def on_str(node); end
private
# source://rubocop//lib/rubocop/cop/lint/interpolation_check.rb#38
def autocorrect(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/interpolation_check.rb#49
def heredoc?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/interpolation_check.rb#24
RuboCop::Cop::Lint::InterpolationCheck::MSG = T.let(T.unsafe(nil), String)
# Emulates the following Ruby warning in Ruby 3.3.
#
# [source,ruby]
# ----
# $ ruby -e '0.times { it }'
# -e:1: warning: `it` calls without arguments will refer to the first block param in Ruby 3.4;
# use it() or self.it
# ----
#
# `it` calls without arguments will refer to the first block param in Ruby 3.4.
# So use `it()` or `self.it` to ensure compatibility.
#
# @example
#
# # bad
# do_something { it }
#
# # good
# do_something { it() }
# do_something { self.it }
#
# source://rubocop//lib/rubocop/cop/lint/it_without_arguments_in_block.rb#27
class RuboCop::Cop::Lint::ItWithoutArgumentsInBlock < ::RuboCop::Cop::Base
include ::RuboCop::AST::NodePattern::Macros
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/it_without_arguments_in_block.rb#41
def deprecated_it_method?(node); end
# source://rubocop//lib/rubocop/cop/lint/it_without_arguments_in_block.rb#34
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/lint/it_without_arguments_in_block.rb#30
RuboCop::Cop::Lint::ItWithoutArgumentsInBlock::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/it_without_arguments_in_block.rb#32
RuboCop::Cop::Lint::ItWithoutArgumentsInBlock::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks uses of lambda without a literal block.
# It emulates the following warning in Ruby 3.0:
#
# $ ruby -vwe 'lambda(&proc {})'
# ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-darwin19]
# -e:1: warning: lambda without a literal block is deprecated; use the proc without
# lambda instead
#
# This way, proc object is never converted to lambda.
# Autocorrection replaces with compatible proc argument.
#
# @example
#
# # bad
# lambda(&proc { do_something })
# lambda(&Proc.new { do_something })
#
# # good
# proc { do_something }
# Proc.new { do_something }
# lambda { do_something } # If you use lambda.
#
# source://rubocop//lib/rubocop/cop/lint/lambda_without_literal_block.rb#28
class RuboCop::Cop::Lint::LambdaWithoutLiteralBlock < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/lambda_without_literal_block.rb#35
def lambda_with_symbol_proc?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/lambda_without_literal_block.rb#39
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/lint/lambda_without_literal_block.rb#31
RuboCop::Cop::Lint::LambdaWithoutLiteralBlock::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/lambda_without_literal_block.rb#32
RuboCop::Cop::Lint::LambdaWithoutLiteralBlock::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for literals used as the conditions or as
# operands in and/or expressions serving as the conditions of
# if/while/until/case-when/case-in.
#
# NOTE: Literals in `case-in` condition where the match variable is used in
# `in` are accepted as a pattern matching.
#
# @example
#
# # bad
# if 20
# do_something
# end
#
# # bad
# if some_var && true
# do_something
# end
#
# # good
# if some_var && some_condition
# do_something
# end
#
# # good
# # When using a boolean value for an infinite loop.
# while true
# break if condition
# end
#
# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#35
class RuboCop::Cop::Lint::LiteralAsCondition < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#93
def message(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#58
def on_case(case_node); end
# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#73
def on_case_match(case_match_node); end
# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#40
def on_if(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#87
def on_send(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#51
def on_until(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#51
def on_until_post(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#44
def on_while(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#44
def on_while_post(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#108
def basic_literal?(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#138
def check_case(case_node); end
# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#99
def check_for_literal(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#120
def check_node(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#147
def condition(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#130
def handle_node(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#116
def primitive_array?(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#155
def when_conditions_range(when_node); end
end
# source://rubocop//lib/rubocop/cop/lint/literal_as_condition.rb#38
RuboCop::Cop::Lint::LiteralAsCondition::MSG = T.let(T.unsafe(nil), String)
# Checks for literal assignments in the conditions of `if`, `while`, and `until`.
# It emulates the following Ruby warning:
#
# [source,console]
# ----
# $ ruby -we 'if x = true; end'
# -e:1: warning: found `= literal' in conditional, should be ==
# ----
#
# As a lint cop, it cannot be determined if `==` is appropriate as intended,
# therefore this cop does not provide autocorrection.
#
# @example
#
# # bad
# if x = 42
# do_something
# end
#
# # good
# if x == 42
# do_something
# end
#
# # good
# if x = y
# do_something
# end
#
# source://rubocop//lib/rubocop/cop/lint/literal_assignment_in_condition.rb#35
class RuboCop::Cop::Lint::LiteralAssignmentInCondition < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/literal_assignment_in_condition.rb#39
def on_if(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_assignment_in_condition.rb#39
def on_until(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_assignment_in_condition.rb#39
def on_while(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/literal_assignment_in_condition.rb#62
def all_literals?(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_assignment_in_condition.rb#79
def offense_range(asgn_node, rhs); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/literal_assignment_in_condition.rb#75
def parallel_assignment_with_splat_operator?(node); end
# @yield [node]
#
# source://rubocop//lib/rubocop/cop/lint/literal_assignment_in_condition.rb#56
def traverse_node(node, &block); end
end
# source://rubocop//lib/rubocop/cop/lint/literal_assignment_in_condition.rb#36
RuboCop::Cop::Lint::LiteralAssignmentInCondition::MSG = T.let(T.unsafe(nil), String)
# Checks for interpolated literals.
#
# @example
#
# # bad
# "result is #{10}"
#
# # good
# "result is 10"
#
# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#15
class RuboCop::Cop::Lint::LiteralInInterpolation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Interpolation
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::PercentLiteral
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#24
def on_interpolation(begin_node); end
private
# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#60
def autocorrected_value(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#127
def autocorrected_value_for_array(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#133
def autocorrected_value_for_hash(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#103
def autocorrected_value_for_string(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#111
def autocorrected_value_for_symbol(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#144
def autocorrected_value_in_hash(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#118
def autocorrected_value_in_hash_for_symbol(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#174
def ends_heredoc_line?(node); end
# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#82
def handle_special_regexp_chars(begin_node, value); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#182
def in_array_percent_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#46
def offending?(node); end
# Does node print its own source when converted to a string?
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#165
def prints_as_self?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#170
def space_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#54
def special_keyword?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#22
RuboCop::Cop::Lint::LiteralInInterpolation::COMPOSITE = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/literal_in_interpolation.rb#21
RuboCop::Cop::Lint::LiteralInInterpolation::MSG = T.let(T.unsafe(nil), String)
# Checks for uses of `begin...end while/until something`.
#
# @example
#
# # bad
#
# # using while
# begin
# do_something
# end while some_condition
#
# # good
#
# # while replacement
# loop do
# do_something
# break unless some_condition
# end
#
# # bad
#
# # using until
# begin
# do_something
# end until some_condition
#
# # good
#
# # until replacement
# loop do
# do_something
# break if some_condition
# end
#
# source://rubocop//lib/rubocop/cop/lint/loop.rb#44
class RuboCop::Cop::Lint::Loop < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/loop.rb#53
def on_until_post(node); end
# source://rubocop//lib/rubocop/cop/lint/loop.rb#49
def on_while_post(node); end
private
# source://rubocop//lib/rubocop/cop/lint/loop.rb#73
def build_break_line(node); end
# source://rubocop//lib/rubocop/cop/lint/loop.rb#69
def keyword_and_condition_range(node); end
# source://rubocop//lib/rubocop/cop/lint/loop.rb#59
def register_offense(node); end
end
# source://rubocop//lib/rubocop/cop/lint/loop.rb#47
RuboCop::Cop::Lint::Loop::MSG = T.let(T.unsafe(nil), String)
# cop disables on wide ranges of code, that latter contributors to
# a file wouldn't be aware of.
#
# @example
# # Lint/MissingCopEnableDirective:
# # MaximumRangeSize: .inf
#
# # good
# # rubocop:disable Layout/SpaceAroundOperators
# x= 0
# # rubocop:enable Layout/SpaceAroundOperators
# # y = 1
# # EOF
#
# # bad
# # rubocop:disable Layout/SpaceAroundOperators
# x= 0
# # EOF
# @example
# # Lint/MissingCopEnableDirective:
# # MaximumRangeSize: 2
#
# # good
# # rubocop:disable Layout/SpaceAroundOperators
# x= 0
# # With the previous, there are 2 lines on which cop is disabled.
# # rubocop:enable Layout/SpaceAroundOperators
#
# # bad
# # rubocop:disable Layout/SpaceAroundOperators
# x= 0
# x += 1
# # Including this, that's 3 lines on which the cop is disabled.
# # rubocop:enable Layout/SpaceAroundOperators
#
# source://rubocop//lib/rubocop/cop/lint/missing_cop_enable_directive.rb#45
class RuboCop::Cop::Lint::MissingCopEnableDirective < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
# source://rubocop//lib/rubocop/cop/lint/missing_cop_enable_directive.rb#51
def on_new_investigation; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/missing_cop_enable_directive.rb#70
def acceptable_range?(cop, line_range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/missing_cop_enable_directive.rb#104
def department_enabled?(cop, comment); end
# source://rubocop//lib/rubocop/cop/lint/missing_cop_enable_directive.rb#64
def each_missing_enable; end
# source://rubocop//lib/rubocop/cop/lint/missing_cop_enable_directive.rb#87
def max_range; end
# source://rubocop//lib/rubocop/cop/lint/missing_cop_enable_directive.rb#91
def message(cop, comment, type = T.unsafe(nil)); end
end
# source://rubocop//lib/rubocop/cop/lint/missing_cop_enable_directive.rb#48
RuboCop::Cop::Lint::MissingCopEnableDirective::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/missing_cop_enable_directive.rb#49
RuboCop::Cop::Lint::MissingCopEnableDirective::MSG_BOUND = T.let(T.unsafe(nil), String)
# Checks for the presence of constructors and lifecycle callbacks
# without calls to `super`.
#
# This cop does not consider `method_missing` (and `respond_to_missing?`)
# because in some cases it makes sense to overtake what is considered a
# missing method. In other cases, the theoretical ideal handling could be
# challenging or verbose for no actual gain.
#
# Autocorrection is not supported because the position of `super` cannot be
# determined automatically.
#
# `Object` and `BasicObject` are allowed by this cop because of their
# stateless nature. However, sometimes you might want to allow other parent
# classes from this cop, for example in the case of an abstract class that is
# not meant to be called with `super`. In those cases, you can use the
# `AllowedParentClasses` option to specify which classes should be allowed
# *in addition to* `Object` and `BasicObject`.
#
# @example
# # bad
# class Employee < Person
# def initialize(name, salary)
# @salary = salary
# end
# end
#
# # good
# class Employee < Person
# def initialize(name, salary)
# super(name)
# @salary = salary
# end
# end
#
# # bad
# Employee = Class.new(Person) do
# def initialize(name, salary)
# @salary = salary
# end
# end
#
# # good
# Employee = Class.new(Person) do
# def initialize(name, salary)
# super(name)
# @salary = salary
# end
# end
#
# # bad
# class Parent
# def self.inherited(base)
# do_something
# end
# end
#
# # good
# class Parent
# def self.inherited(base)
# super
# do_something
# end
# end
#
# # good
# class ClassWithNoParent
# def initialize
# do_something
# end
# end
# @example AllowedParentClasses: [MyAbstractClass]
# # good
# class MyConcreteClass < MyAbstractClass
# def initialize
# do_something
# end
# end
#
# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#85
class RuboCop::Cop::Lint::MissingSuper < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#99
def class_new_block(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#105
def on_def(node); end
# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#115
def on_defs(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#149
def allowed_class?(node); end
# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#153
def allowed_classes; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#127
def callback_method_def?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#133
def contains_super?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#137
def inside_class_with_stateful_parent?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#123
def offender?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#96
RuboCop::Cop::Lint::MissingSuper::CALLBACKS = T.let(T.unsafe(nil), Set)
# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#87
RuboCop::Cop::Lint::MissingSuper::CALLBACK_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#91
RuboCop::Cop::Lint::MissingSuper::CLASS_LIFECYCLE_CALLBACKS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#86
RuboCop::Cop::Lint::MissingSuper::CONSTRUCTOR_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#92
RuboCop::Cop::Lint::MissingSuper::METHOD_LIFECYCLE_CALLBACKS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/missing_super.rb#89
RuboCop::Cop::Lint::MissingSuper::STATELESS_CLASSES = T.let(T.unsafe(nil), Array)
# Checks for mixed-case character ranges since they include likely unintended characters.
#
# Offenses are registered for regexp character classes like `/[A-z]/`
# as well as range objects like `('A'..'z')`.
#
# NOTE: Range objects cannot be autocorrected.
#
# @example
#
# # bad
# r = /[A-z]/
#
# # good
# r = /[A-Za-z]/
#
# source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#28
class RuboCop::Cop::Lint::MixedCaseRange < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#58
def each_unsafe_regexp_range(node); end
# source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#37
def on_erange(node); end
# source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#37
def on_irange(node); end
# source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#48
def on_regexp(node); end
private
# source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#74
def build_source_range(range_start, range_end); end
# source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#78
def range_for(char); end
# source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#84
def range_pairs(expr); end
# source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#104
def regexp_range(source); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#94
def skip_expression?(expr); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#98
def skip_range?(range_start, range_end); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#88
def unsafe_range?(range_start, range_end); end
end
# source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#32
RuboCop::Cop::Lint::MixedCaseRange::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/mixed_case_range.rb#35
RuboCop::Cop::Lint::MixedCaseRange::RANGES = T.let(T.unsafe(nil), Array)
# Do not mix named captures and numbered captures in a Regexp literal
# because numbered capture is ignored if they're mixed.
# Replace numbered captures with non-capturing groupings or
# named captures.
#
# @example
# # bad
# /(?<foo>FOO)(BAR)/
#
# # good
# /(?<foo>FOO)(?<bar>BAR)/
#
# # good
# /(?<foo>FOO)(?:BAR)/
#
# # good
# /(FOO)(BAR)/
#
# source://rubocop//lib/rubocop/cop/lint/mixed_regexp_capture_types.rb#24
class RuboCop::Cop::Lint::MixedRegexpCaptureTypes < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/mixed_regexp_capture_types.rb#27
def on_regexp(node); end
end
# source://rubocop//lib/rubocop/cop/lint/mixed_regexp_capture_types.rb#25
RuboCop::Cop::Lint::MixedRegexpCaptureTypes::MSG = T.let(T.unsafe(nil), String)
# In math and Python, we can use `x < y < z` style comparison to compare
# multiple value. However, we can't use the comparison in Ruby. However,
# the comparison is not syntax error. This cop checks the bad usage of
# comparison operators.
#
# @example
#
# # bad
# x < y < z
# 10 <= x <= 20
#
# # good
# x < y && y < z
# 10 <= x && x <= 20
#
# source://rubocop//lib/rubocop/cop/lint/multiple_comparison.rb#20
class RuboCop::Cop::Lint::MultipleComparison < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/multiple_comparison.rb#29
def multiple_compare?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/multiple_comparison.rb#33
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/lint/multiple_comparison.rb#24
RuboCop::Cop::Lint::MultipleComparison::COMPARISON_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/multiple_comparison.rb#23
RuboCop::Cop::Lint::MultipleComparison::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/multiple_comparison.rb#26
RuboCop::Cop::Lint::MultipleComparison::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/multiple_comparison.rb#25
RuboCop::Cop::Lint::MultipleComparison::SET_OPERATION_OPERATORS = T.let(T.unsafe(nil), Array)
# Checks for nested method definitions.
#
# @example
#
# # bad
#
# # `bar` definition actually produces methods in the same scope
# # as the outer `foo` method. Furthermore, the `bar` method
# # will be redefined every time `foo` is invoked.
# def foo
# def bar
# end
# end
#
# # good
#
# def foo
# bar = -> { puts 'hello' }
# bar.call
# end
#
# # good
#
# # `class_eval`, `instance_eval`, `module_eval`, `class_exec`, `instance_exec`, and
# # `module_exec` blocks are allowed by default.
#
# def foo
# self.class.class_eval do
# def bar
# end
# end
# end
#
# def foo
# self.class.module_exec do
# def bar
# end
# end
# end
#
# # good
#
# def foo
# class << self
# def bar
# end
# end
# end
# @example AllowedMethods: [] (default)
# # bad
# def do_something
# has_many :articles do
# def find_or_create_by_name(name)
# end
# end
# end
# @example AllowedMethods: ['has_many']
# # bad
# def do_something
# has_many :articles do
# def find_or_create_by_name(name)
# end
# end
# end
# @example AllowedPatterns: [] (default)
# # bad
# def foo(obj)
# obj.do_baz do
# def bar
# end
# end
# end
# @example AllowedPatterns: ['baz']
# # good
# def foo(obj)
# obj.do_baz do
# def bar
# end
# end
# end
#
# source://rubocop//lib/rubocop/cop/lint/nested_method_definition.rb#91
class RuboCop::Cop::Lint::NestedMethodDefinition < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedMethods
include ::RuboCop::Cop::AllowedPattern
# source://rubocop//lib/rubocop/cop/lint/nested_method_definition.rb#127
def eval_call?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/nested_method_definition.rb#132
def exec_call?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/nested_method_definition.rb#97
def on_def(node); end
# source://rubocop//lib/rubocop/cop/lint/nested_method_definition.rb#97
def on_defs(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/nested_method_definition.rb#120
def allowed_method_name?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/nested_method_definition.rb#115
def scoping_method_call?(child); end
end
# source://rubocop//lib/rubocop/cop/lint/nested_method_definition.rb#95
RuboCop::Cop::Lint::NestedMethodDefinition::MSG = T.let(T.unsafe(nil), String)
# Checks for nested percent literals.
#
# @example
#
# # bad
#
# # The percent literal for nested_attributes is parsed as four tokens,
# # yielding the array [:name, :content, :"%i[incorrectly", :"nested]"].
# attributes = {
# valid_attributes: %i[name content],
# nested_attributes: %i[name content %i[incorrectly nested]]
# }
#
# # good
#
# # Neither is incompatible with the bad case, but probably the intended code.
# attributes = {
# valid_attributes: %i[name content],
# nested_attributes: [:name, :content, %i[incorrectly nested]]
# }
#
# attributes = {
# valid_attributes: %i[name content],
# nested_attributes: [:name, :content, [:incorrectly, :nested]]
# }
#
# source://rubocop//lib/rubocop/cop/lint/nested_percent_literal.rb#32
class RuboCop::Cop::Lint::NestedPercentLiteral < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::PercentLiteral
# source://rubocop//lib/rubocop/cop/lint/nested_percent_literal.rb#44
def on_array(node); end
# source://rubocop//lib/rubocop/cop/lint/nested_percent_literal.rb#48
def on_percent_literal(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/nested_percent_literal.rb#54
def contains_percent_literals?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/nested_percent_literal.rb#35
RuboCop::Cop::Lint::NestedPercentLiteral::MSG = T.let(T.unsafe(nil), String)
# The array of regular expressions representing percent literals that,
# if found within a percent literal expression, will cause a
# NestedPercentLiteral violation to be emitted.
#
# source://rubocop//lib/rubocop/cop/lint/nested_percent_literal.rb#41
RuboCop::Cop::Lint::NestedPercentLiteral::PERCENT_LITERAL_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/nested_percent_literal.rb#42
RuboCop::Cop::Lint::NestedPercentLiteral::REGEXES = T.let(T.unsafe(nil), Array)
# Don't omit the accumulator when calling `next` in a `reduce` block.
#
# @example
#
# # bad
# result = (1..4).reduce(0) do |acc, i|
# next if i.odd?
# acc + i
# end
#
# # good
# result = (1..4).reduce(0) do |acc, i|
# next acc if i.odd?
# acc + i
# end
#
# source://rubocop//lib/rubocop/cop/lint/next_without_accumulator.rb#21
class RuboCop::Cop::Lint::NextWithoutAccumulator < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/next_without_accumulator.rb#24
def on_block(node); end
# source://rubocop//lib/rubocop/cop/lint/next_without_accumulator.rb#38
def on_block_body_of_reduce(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/next_without_accumulator.rb#24
def on_numblock(node); end
private
# source://rubocop//lib/rubocop/cop/lint/next_without_accumulator.rb#45
def parent_block_node(node); end
end
# source://rubocop//lib/rubocop/cop/lint/next_without_accumulator.rb#22
RuboCop::Cop::Lint::NextWithoutAccumulator::MSG = T.let(T.unsafe(nil), String)
# Checks for the presence of a `return` inside a `begin..end` block
# in assignment contexts.
# In this situation, the `return` will result in an exit from the current
# method, possibly leading to unexpected behavior.
#
# @example
#
# # bad
# @some_variable ||= begin
# return some_value if some_condition_is_met
#
# do_something
# end
#
# # good
# @some_variable ||= begin
# if some_condition_is_met
# some_value
# else
# do_something
# end
# end
#
# # good
# some_variable = if some_condition_is_met
# return if another_condition_is_met
#
# some_value
# else
# do_something
# end
#
# source://rubocop//lib/rubocop/cop/lint/no_return_in_begin_end_blocks.rb#38
class RuboCop::Cop::Lint::NoReturnInBeginEndBlocks < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/no_return_in_begin_end_blocks.rb#41
def on_lvasgn(node); end
# source://rubocop//lib/rubocop/cop/lint/no_return_in_begin_end_blocks.rb#41
def on_op_asgn(node); end
# source://rubocop//lib/rubocop/cop/lint/no_return_in_begin_end_blocks.rb#41
def on_or_asgn(node); end
end
# source://rubocop//lib/rubocop/cop/lint/no_return_in_begin_end_blocks.rb#39
RuboCop::Cop::Lint::NoReturnInBeginEndBlocks::MSG = T.let(T.unsafe(nil), String)
# Checks for non-atomic file operation.
# And then replace it with a nearly equivalent and atomic method.
#
# These can cause problems that are difficult to reproduce,
# especially in cases of frequent file operations in parallel,
# such as test runs with parallel_rspec.
#
# For examples: creating a directory if there is none, has the following problems
#
# An exception occurs when the directory didn't exist at the time of `exist?`,
# but someone else created it before `mkdir` was executed.
#
# Subsequent processes are executed without the directory that should be there
# when the directory existed at the time of `exist?`,
# but someone else deleted it shortly afterwards.
#
# @example
# # bad - race condition with another process may result in an error in `mkdir`
# unless Dir.exist?(path)
# FileUtils.mkdir(path)
# end
#
# # good - atomic and idempotent creation
# FileUtils.mkdir_p(path)
#
# # bad - race condition with another process may result in an error in `remove`
# if File.exist?(path)
# FileUtils.remove(path)
# end
#
# # good - atomic and idempotent removal
# FileUtils.rm_f(path)
#
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#44
class RuboCop::Cop::Lint::NonAtomicFileOperation < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#76
def explicit_not_force?(param0); end
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#71
def force?(param0); end
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#80
def on_send(node); end
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#66
def receiver_and_method_name(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#61
def send_exist_node(param0); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#97
def allowable_use_with_if?(if_node); end
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#121
def autocorrect(corrector, node, range); end
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#132
def autocorrect_replace_method(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#152
def force_method?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#166
def force_method_name?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#162
def force_option?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#91
def if_node_child?(node); end
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#112
def message_change_force_method(node); end
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#116
def message_remove_file_exist_check(node); end
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#101
def register_offense(node, exist_node); end
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#140
def replacement_method(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#156
def require_mode_keyword?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#50
RuboCop::Cop::Lint::NonAtomicFileOperation::MAKE_FORCE_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#51
RuboCop::Cop::Lint::NonAtomicFileOperation::MAKE_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#49
RuboCop::Cop::Lint::NonAtomicFileOperation::MSG_CHANGE_FORCE_METHOD = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#47
RuboCop::Cop::Lint::NonAtomicFileOperation::MSG_REMOVE_FILE_EXIST_CHECK = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#54
RuboCop::Cop::Lint::NonAtomicFileOperation::RECURSIVE_REMOVE_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#52
RuboCop::Cop::Lint::NonAtomicFileOperation::REMOVE_FORCE_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#53
RuboCop::Cop::Lint::NonAtomicFileOperation::REMOVE_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/non_atomic_file_operation.rb#55
RuboCop::Cop::Lint::NonAtomicFileOperation::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# `Dir[...]` and `Dir.glob(...)` do not make any guarantees about
# the order in which files are returned. The final order is
# determined by the operating system and file system.
# This means that using them in cases where the order matters,
# such as requiring files, can lead to intermittent failures
# that are hard to debug. To ensure this doesn't happen,
# always sort the list.
#
# `Dir.glob` and `Dir[]` sort globbed results by default in Ruby 3.0.
# So all bad cases are acceptable when Ruby 3.0 or higher are used.
#
# NOTE: This cop will be deprecated and removed when supporting only Ruby 3.0 and higher.
#
# @example
#
# # bad
# Dir["./lib/**/*.rb"].each do |file|
# require file
# end
#
# # good
# Dir["./lib/**/*.rb"].sort.each do |file|
# require file
# end
#
# # bad
# Dir.glob(Rails.root.join(__dir__, 'test', '*.rb')) do |file|
# require file
# end
#
# # good
# Dir.glob(Rails.root.join(__dir__, 'test', '*.rb')).sort.each do |file|
# require file
# end
#
# # bad
# Dir['./lib/**/*.rb'].each(&method(:require))
#
# # good
# Dir['./lib/**/*.rb'].sort.each(&method(:require))
#
# # bad
# Dir.glob(Rails.root.join('test', '*.rb'), &method(:require))
#
# # good
# Dir.glob(Rails.root.join('test', '*.rb')).sort.each(&method(:require))
#
# # good - Respect intent if `sort` keyword option is specified in Ruby 3.0 or higher.
# Dir.glob(Rails.root.join(__dir__, 'test', '*.rb'), sort: false).each(&method(:require))
#
# source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#60
class RuboCop::Cop::Lint::NonDeterministicRequireOrder < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#172
def loop_variable(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#155
def method_require?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#65
def on_block(node); end
# source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#89
def on_block_pass(node); end
# source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#77
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#145
def unsorted_dir_block?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#150
def unsorted_dir_each?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#166
def unsorted_dir_each_pass?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#160
def unsorted_dir_glob_pass?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#177
def var_is_required?(param0, param1); end
private
# source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#107
def correct_block(corrector, node); end
# source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#117
def correct_block_pass(corrector, node); end
# Returns range of last argument including comma and whitespace.
#
# @return [Parser::Source::Range]
#
# source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#132
def last_arg_range(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#136
def unsorted_dir_loop?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#140
def unsorted_dir_pass?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/non_deterministic_require_order.rb#63
RuboCop::Cop::Lint::NonDeterministicRequireOrder::MSG = T.let(T.unsafe(nil), String)
# Checks for non-local exits from iterators without a return
# value. It registers an offense under these conditions:
#
# * No value is returned,
# * the block is preceded by a method chain,
# * the block has arguments,
# * the method which receives the block is not `define_method`
# or `define_singleton_method`,
# * the return is not contained in an inner scope, e.g. a lambda or a
# method definition.
#
# @example
#
# class ItemApi
# rescue_from ValidationError do |e| # non-iteration block with arg
# return { message: 'validation error' } unless e.errors # allowed
# error_array = e.errors.map do |error| # block with method chain
# return if error.suppress? # warned
# return "#{error.param}: invalid" unless error.message # allowed
# "#{error.param}: #{error.message}"
# end
# { message: 'validation error', errors: error_array }
# end
#
# def update_items
# transaction do # block without arguments
# return unless update_necessary? # allowed
# find_each do |item| # block without method chain
# return if item.stock == 0 # false-negative...
# item.update!(foobar: true)
# end
# end
# end
# end
#
# source://rubocop//lib/rubocop/cop/lint/non_local_exit_from_iterator.rb#41
class RuboCop::Cop::Lint::NonLocalExitFromIterator < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/non_local_exit_from_iterator.rb#77
def chained_send?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/non_local_exit_from_iterator.rb#80
def define_method?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/non_local_exit_from_iterator.rb#46
def on_return(return_node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/non_local_exit_from_iterator.rb#72
def return_value?(return_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/non_local_exit_from_iterator.rb#68
def scoped_node?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/non_local_exit_from_iterator.rb#42
RuboCop::Cop::Lint::NonLocalExitFromIterator::MSG = T.let(T.unsafe(nil), String)
# Warns the usage of unsafe number conversions. Unsafe
# number conversion can cause unexpected error if auto type conversion
# fails. Cop prefer parsing with number class instead.
#
# Conversion with `Integer`, `Float`, etc. will raise an `ArgumentError`
# if given input that is not numeric (eg. an empty string), whereas
# `to_i`, etc. will try to convert regardless of input (``''.to_i => 0``).
# As such, this cop is disabled by default because it's not necessarily
# always correct to raise if a value is not numeric.
#
# NOTE: Some values cannot be converted properly using one of the `Kernel`
# method (for instance, `Time` and `DateTime` values are allowed by this
# cop by default). Similarly, Rails' duration methods do not work well
# with `Integer()` and can be allowed with `AllowedMethods`. By default,
# there are no methods to allowed.
#
# @example
#
# # bad
#
# '10'.to_i
# '10.2'.to_f
# '10'.to_c
# '1/3'.to_r
# ['1', '2', '3'].map(&:to_i)
# foo.try(:to_f)
# bar.send(:to_c)
#
# # good
#
# Integer('10', 10)
# Float('10.2')
# Complex('10')
# Rational('1/3')
# ['1', '2', '3'].map { |i| Integer(i, 10) }
# foo.try { |i| Float(i) }
# bar.send { |i| Complex(i) }
# @example AllowedMethods: [] (default)
#
# # bad
# 10.minutes.to_i
# @example AllowedMethods: [minutes]
#
# # good
# 10.minutes.to_i
# @example AllowedPatterns: [] (default)
#
# # bad
# 10.minutes.to_i
# @example AllowedPatterns: ['min*']
#
# # good
# 10.minutes.to_i
# @example IgnoredClasses: [Time, DateTime] (default)
#
# # good
# Time.now.to_datetime.to_i
#
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#73
class RuboCop::Cop::Lint::NumberConversion < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedMethods
include ::RuboCop::Cop::AllowedPattern
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#107
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#107
def on_send(node); end
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#93
def to_method(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#98
def to_method_symbol(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#165
def allow_receiver?(receiver); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#177
def allowed_method_name?(name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#187
def conversion_method?(method_name); end
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#151
def correct_method(node, receiver); end
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#155
def correct_sym_method(to_method); end
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#134
def handle_as_symbol(node); end
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#115
def handle_conversion_method(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#195
def ignored_class?(name); end
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#191
def ignored_classes; end
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#160
def remove_parentheses(corrector, node); end
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#181
def top_receiver(node); end
end
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#89
RuboCop::Cop::Lint::NumberConversion::CONVERSION_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#79
RuboCop::Cop::Lint::NumberConversion::CONVERSION_METHOD_CLASS_MAPPING = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#90
RuboCop::Cop::Lint::NumberConversion::METHODS = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/number_conversion.rb#85
RuboCop::Cop::Lint::NumberConversion::MSG = T.let(T.unsafe(nil), String)
# Checks for uses of numbered parameter assignment.
# It emulates the following warning in Ruby 2.7:
#
# $ ruby -ve '_1 = :value'
# ruby 2.7.2p137 (2020-10-01 revision 5445e04352) [x86_64-darwin19]
# -e:1: warning: `_1' is reserved for numbered parameter; consider another name
#
# Assigning to a numbered parameter (from `_1` to `_9`) causes an error in Ruby 3.0.
#
# $ ruby -ve '_1 = :value'
# ruby 3.0.0p0 (2020-12-25 revision 95aff21468) [x86_64-darwin19]
# -e:1: _1 is reserved for numbered parameter
#
# NOTE: The parametered parameters are from `_1` to `_9`. This cop checks `_0`, and over `_10`
# as well to prevent confusion.
#
# @example
#
# # bad
# _1 = :value
#
# # good
# non_numbered_parameter_name = :value
#
# source://rubocop//lib/rubocop/cop/lint/numbered_parameter_assignment.rb#30
class RuboCop::Cop::Lint::NumberedParameterAssignment < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/numbered_parameter_assignment.rb#35
def on_lvasgn(node); end
end
# source://rubocop//lib/rubocop/cop/lint/numbered_parameter_assignment.rb#32
RuboCop::Cop::Lint::NumberedParameterAssignment::LVAR_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/numbered_parameter_assignment.rb#33
RuboCop::Cop::Lint::NumberedParameterAssignment::NUMBERED_PARAMETER_RANGE = T.let(T.unsafe(nil), Range)
# source://rubocop//lib/rubocop/cop/lint/numbered_parameter_assignment.rb#31
RuboCop::Cop::Lint::NumberedParameterAssignment::NUM_PARAM_MSG = T.let(T.unsafe(nil), String)
# Checks for unintended or-assignment to a constant.
#
# Constants should always be assigned in the same location. And its value
# should always be the same. If constants are assigned in multiple
# locations, the result may vary depending on the order of `require`.
#
# @example
#
# # bad
# CONST ||= 1
#
# # good
# CONST = 1
#
# source://rubocop//lib/rubocop/cop/lint/or_assignment_to_constant.rb#24
class RuboCop::Cop::Lint::OrAssignmentToConstant < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/or_assignment_to_constant.rb#29
def on_or_asgn(node); end
end
# source://rubocop//lib/rubocop/cop/lint/or_assignment_to_constant.rb#27
RuboCop::Cop::Lint::OrAssignmentToConstant::MSG = T.let(T.unsafe(nil), String)
# Checks the proper ordering of magic comments and whether
# a magic comment is not placed before a shebang.
#
# @example
# # bad
#
# # frozen_string_literal: true
# # encoding: ascii
# p [''.frozen?, ''.encoding] #=> [true, #<Encoding:UTF-8>]
#
# # good
#
# # encoding: ascii
# # frozen_string_literal: true
# p [''.frozen?, ''.encoding] #=> [true, #<Encoding:US-ASCII>]
#
# # good
#
# #!/usr/bin/env ruby
# # encoding: ascii
# # frozen_string_literal: true
# p [''.frozen?, ''.encoding] #=> [true, #<Encoding:US-ASCII>]
#
# source://rubocop//lib/rubocop/cop/lint/ordered_magic_comments.rb#32
class RuboCop::Cop::Lint::OrderedMagicComments < ::RuboCop::Cop::Base
include ::RuboCop::Cop::FrozenStringLiteral
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/ordered_magic_comments.rb#38
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/lint/ordered_magic_comments.rb#55
def autocorrect(corrector, encoding_line, frozen_string_literal_line); end
# source://rubocop//lib/rubocop/cop/lint/ordered_magic_comments.rb#63
def magic_comment_lines; end
end
# source://rubocop//lib/rubocop/cop/lint/ordered_magic_comments.rb#36
RuboCop::Cop::Lint::OrderedMagicComments::MSG = T.let(T.unsafe(nil), String)
# Looks for references of Regexp captures that are out of range
# and thus always returns nil.
#
# @example
#
# /(foo)bar/ =~ 'foobar'
#
# # bad - always returns nil
#
# puts $2 # => nil
#
# # good
#
# puts $1 # => foo
#
# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#38
class RuboCop::Cop::Lint::OutOfRangeRegexpRef < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#55
def after_send(node); end
# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#71
def on_in_pattern(node); end
# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#51
def on_match_with_lvasgn(node); end
# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#47
def on_new_investigation; end
# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#77
def on_nth_ref(node); end
# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#65
def on_when(node); end
private
# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#102
def check_regexp(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#122
def nth_ref_receiver?(send_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#113
def regexp_first_argument?(send_node); end
# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#93
def regexp_patterns(in_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#118
def regexp_receiver?(send_node); end
end
# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#39
RuboCop::Cop::Lint::OutOfRangeRegexpRef::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#42
RuboCop::Cop::Lint::OutOfRangeRegexpRef::REGEXP_ARGUMENT_METHODS = T.let(T.unsafe(nil), Set)
# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#44
RuboCop::Cop::Lint::OutOfRangeRegexpRef::REGEXP_CAPTURE_METHODS = T.let(T.unsafe(nil), Set)
# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#41
RuboCop::Cop::Lint::OutOfRangeRegexpRef::REGEXP_RECEIVER_METHODS = T.let(T.unsafe(nil), Set)
# source://rubocop//lib/rubocop/cop/lint/out_of_range_regexp_ref.rb#45
RuboCop::Cop::Lint::OutOfRangeRegexpRef::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Set)
# Checks for space between the name of a called method and a left
# parenthesis.
#
# @example
#
# # bad
# do_something (foo)
#
# # good
# do_something(foo)
# do_something (2 + 3) * 4
# do_something (foo * bar).baz
#
# source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#18
class RuboCop::Cop::Lint::ParenthesesAsGroupedExpression < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#24
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#24
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#60
def chained_calls?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#56
def compound_range?(first_arg); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#47
def first_argument_block_type?(first_arg); end
# source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#85
def space_range(expr, space_length); end
# source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#69
def spaces_before_left_parenthesis(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#65
def ternary_expression?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#39
def valid_context?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#51
def valid_first_argument?(first_arg); end
end
# source://rubocop//lib/rubocop/cop/lint/parentheses_as_grouped_expression.rb#22
RuboCop::Cop::Lint::ParenthesesAsGroupedExpression::MSG = T.let(T.unsafe(nil), String)
# Checks for quotes and commas in %w, e.g. `%w('foo', "bar")`
#
# It is more likely that the additional characters are unintended (for
# example, mistranslating an array of literals to percent string notation)
# rather than meant to be part of the resulting strings.
#
# @example
#
# # bad
# %w('foo', "bar")
#
# # good
# %w(foo bar)
#
# source://rubocop//lib/rubocop/cop/lint/percent_string_array.rb#29
class RuboCop::Cop::Lint::PercentStringArray < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::PercentLiteral
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/percent_string_array.rb#40
def on_array(node); end
# source://rubocop//lib/rubocop/cop/lint/percent_string_array.rb#44
def on_percent_literal(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/percent_string_array.rb#61
def contains_quotes_or_commas?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/percent_string_array.rb#34
RuboCop::Cop::Lint::PercentStringArray::LEADING_QUOTE = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/lint/percent_string_array.rb#37
RuboCop::Cop::Lint::PercentStringArray::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/percent_string_array.rb#33
RuboCop::Cop::Lint::PercentStringArray::QUOTES_AND_COMMAS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/percent_string_array.rb#35
RuboCop::Cop::Lint::PercentStringArray::TRAILING_QUOTE = T.let(T.unsafe(nil), Regexp)
# Checks for colons and commas in %i, e.g. `%i(:foo, :bar)`
#
# It is more likely that the additional characters are unintended (for
# example, mistranslating an array of literals to percent string notation)
# rather than meant to be part of the resulting symbols.
#
# @example
#
# # bad
# %i(:foo, :bar)
#
# # good
# %i(foo bar)
#
# source://rubocop//lib/rubocop/cop/lint/percent_symbol_array.rb#19
class RuboCop::Cop::Lint::PercentSymbolArray < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::PercentLiteral
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/percent_symbol_array.rb#26
def on_array(node); end
# source://rubocop//lib/rubocop/cop/lint/percent_symbol_array.rb#30
def on_percent_literal(node); end
private
# source://rubocop//lib/rubocop/cop/lint/percent_symbol_array.rb#38
def autocorrect(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/percent_symbol_array.rb#48
def contains_colons_or_commas?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/percent_symbol_array.rb#58
def non_alphanumeric_literal?(literal); end
end
# source://rubocop//lib/rubocop/cop/lint/percent_symbol_array.rb#23
RuboCop::Cop::Lint::PercentSymbolArray::MSG = T.let(T.unsafe(nil), String)
# Checks for `raise` or `fail` statements which are
# raising `Exception` class.
#
# You can specify a module name that will be an implicit namespace
# using `AllowedImplicitNamespaces` option. The cop cause a false positive
# for namespaced `Exception` when a namespace is omitted. This option can
# prevent the false positive by specifying a namespace to be omitted for
# `Exception`. Alternatively, make `Exception` a fully qualified class
# name with an explicit namespace.
#
# @example
# # bad
# raise Exception, 'Error message here'
#
# # good
# raise StandardError, 'Error message here'
# @example AllowedImplicitNamespaces: ['Gem']
# # good
# module Gem
# def self.foo
# raise Exception # This exception means `Gem::Exception`.
# end
# end
#
# source://rubocop//lib/rubocop/cop/lint/raise_exception.rb#34
class RuboCop::Cop::Lint::RaiseException < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/raise_exception.rb#41
def exception?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/raise_exception.rb#46
def exception_new_with_message?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/raise_exception.rb#51
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/lint/raise_exception.rb#85
def allow_implicit_namespaces; end
# source://rubocop//lib/rubocop/cop/lint/raise_exception.rb#57
def check(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/raise_exception.rb#73
def implicit_namespace?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/raise_exception.rb#37
RuboCop::Cop::Lint::RaiseException::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/raise_exception.rb#38
RuboCop::Cop::Lint::RaiseException::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for `rand(1)` calls.
# Such calls always return `0`.
#
# @example
#
# # bad
# rand 1
# Kernel.rand(-1)
# rand 1.0
# rand(-1.0)
#
# # good
# 0 # just use 0 instead
#
# source://rubocop//lib/rubocop/cop/lint/rand_one.rb#19
class RuboCop::Cop::Lint::RandOne < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/rand_one.rb#28
def on_send(node); end
# source://rubocop//lib/rubocop/cop/lint/rand_one.rb#24
def rand_one?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/lint/rand_one.rb#36
def message(node); end
end
# source://rubocop//lib/rubocop/cop/lint/rand_one.rb#20
RuboCop::Cop::Lint::RandOne::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/rand_one.rb#21
RuboCop::Cop::Lint::RandOne::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# removed without causing any offenses to be reported. It's implemented
# as a cop in that it inherits from the Cop base class and calls
# add_offense. The unusual part of its implementation is that it doesn't
# have any on_* methods or an investigate method. This means that it
# doesn't take part in the investigation phase when the other cops do
# their work. Instead, it waits until it's called in a later stage of the
# execution. The reason it can't be implemented as a normal cop is that
# it depends on the results of all other cops to do its work.
#
# @example
# # bad
# # rubocop:disable Layout/LineLength
# x += 1
# # rubocop:enable Layout/LineLength
#
# # good
# x += 1
#
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#28
class RuboCop::Cop::Lint::RedundantCopDisableDirective < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# @return [RedundantCopDisableDirective] a new instance of RedundantCopDisableDirective
#
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#37
def initialize(config = T.unsafe(nil), options = T.unsafe(nil), offenses = T.unsafe(nil)); end
# Returns the value of attribute offenses_to_check.
#
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#35
def offenses_to_check; end
# Sets the attribute offenses_to_check
#
# @param value the value to set the attribute offenses_to_check to.
#
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#35
def offenses_to_check=(_arg0); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#42
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#323
def add_department_marker(department); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#229
def add_offense_for_entire_comment(comment, cops); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#244
def add_offense_for_some_cops(comment, cops); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#219
def add_offenses(redundant_cops); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#306
def all_cop_names; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#190
def all_disabled?(comment); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#69
def comment_range_with_surrounding_space(directive_comment_range, line_comment_range); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#57
def cop_disabled_line_ranges; end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#264
def cop_range(comment, cop); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#210
def department_disabled?(cop, comment); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#315
def department_marker?(department); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#293
def describe(cop); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#215
def directive_count(comment); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#92
def directive_range_in_list(range, ranges); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#61
def disabled_ranges; end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#132
def each_already_disabled(cop, line_ranges); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#113
def each_line_range(cop, line_ranges); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#106
def each_redundant_disable(&block); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#310
def ends_its_line?(range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#202
def expected_final_disable?(cop, line_range); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#166
def find_redundant_all(range, next_range); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#161
def find_redundant_cop(cop, range); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#176
def find_redundant_department(cop, range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#182
def followed_ranges?(range, next_range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#194
def ignore_offense?(line_range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#258
def leave_free_comment?(comment, range); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#271
def matching_range(haystack, needle); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#302
def message(cop_names); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#65
def previous_line_blank?(range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#186
def range_with_offense?(range, offenses = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#319
def remove_department_marker(department); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#279
def trailing_range?(ranges, range); end
end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#32
RuboCop::Cop::Lint::RedundantCopDisableDirective::COP_NAME = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#33
RuboCop::Cop::Lint::RedundantCopDisableDirective::DEPARTMENT_MARKER = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_disable_directive.rb#287
RuboCop::Cop::Lint::RedundantCopDisableDirective::SIMILAR_COP_NAMES_CACHE = T.let(T.unsafe(nil), Hash)
# removed.
#
# that cop checks whether any cop was actually enabled.
#
# @example
#
# # bad
# foo = 1
# # rubocop:enable Layout/LineLength
#
# # good
# foo = 1
#
# # bad
# # rubocop:disable Style/StringLiterals
# foo = "1"
# # rubocop:enable Style/StringLiterals
# baz
# # rubocop:enable all
#
# # good
# # rubocop:disable Style/StringLiterals
# foo = "1"
# # rubocop:enable all
# baz
#
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#39
class RuboCop::Cop::Lint::RedundantCopEnableDirective < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::SurroundingSpace
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#46
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#122
def all_or_name(name); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#78
def comment_start(comment); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#82
def cop_name_indention(comment, name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#126
def department?(directive, name); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#73
def range_of_offense(comment, name); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#97
def range_to_remove(begin_pos, end_pos, comment); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#86
def range_with_comma(comment, name); end
# If the list of cops is comma-separated, but without a empty space after the comma,
# we should **not** remove the prepending empty space, thus begin_pos += 1
#
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#116
def range_with_comma_after(comment, start, begin_pos, end_pos); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#110
def range_with_comma_before(start, begin_pos, end_pos); end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#55
def register_offense(comment, cop_names); end
end
# source://rubocop//lib/rubocop/cop/lint/redundant_cop_enable_directive.rb#44
RuboCop::Cop::Lint::RedundantCopEnableDirective::MSG = T.let(T.unsafe(nil), String)
# Sort globbed results by default in Ruby 3.0.
# This cop checks for redundant `sort` method to `Dir.glob` and `Dir[]`.
#
# @example
#
# # bad
# Dir.glob('./lib/**/*.rb').sort.each do |file|
# end
#
# Dir['./lib/**/*.rb'].sort.each do |file|
# end
#
# # good
# Dir.glob('./lib/**/*.rb').each do |file|
# end
#
# Dir['./lib/**/*.rb'].each do |file|
# end
#
# source://rubocop//lib/rubocop/cop/lint/redundant_dir_glob_sort.rb#30
class RuboCop::Cop::Lint::RedundantDirGlobSort < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/lint/redundant_dir_glob_sort.rb#40
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_dir_glob_sort.rb#56
def multiple_argument?(glob_method); end
end
# source://rubocop//lib/rubocop/cop/lint/redundant_dir_glob_sort.rb#38
RuboCop::Cop::Lint::RedundantDirGlobSort::GLOB_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/redundant_dir_glob_sort.rb#36
RuboCop::Cop::Lint::RedundantDirGlobSort::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/redundant_dir_glob_sort.rb#37
RuboCop::Cop::Lint::RedundantDirGlobSort::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for redundant quantifiers inside Regexp literals.
#
# It is always allowed when interpolation is used in a regexp literal,
# because it's unknown what kind of string will be expanded as a result:
#
# [source,ruby]
# ----
# /(?:a*#{interpolation})?/x
# ----
#
# @example
# # bad
# /(?:x+)+/
#
# # good
# /(?:x)+/
#
# # good
# /(?:x+)/
#
# # bad
# /(?:x+)?/
#
# # good
# /(?:x)*/
#
# # good
# /(?:x*)/
#
# source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#34
class RuboCop::Cop::Lint::RedundantRegexpQuantifiers < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#42
def on_regexp(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#83
def character_set?(expr); end
# source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#61
def each_redundantly_quantified_pair(node); end
# source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#87
def mergeable_quantifier(expr); end
# source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#103
def merged_quantifier(exp1, exp2); end
# source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#119
def message(group, child, replacement); end
# source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#115
def quantifier_range(group, child); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#75
def redundant_group?(expr); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#79
def redundantly_quantifiable?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/redundant_regexp_quantifiers.rb#38
RuboCop::Cop::Lint::RedundantRegexpQuantifiers::MSG_REDUNDANT_QUANTIFIER = T.let(T.unsafe(nil), String)
# Checks for unnecessary `require` statement.
#
# The following features are unnecessary `require` statement because
# they are already loaded. e.g. Ruby 2.2:
#
# ruby -ve 'p $LOADED_FEATURES.reject { |feature| %r|/| =~ feature }'
# ruby 2.2.8p477 (2017-09-14 revision 59906) [x86_64-darwin13]
# ["enumerator.so", "rational.so", "complex.so", "thread.rb"]
#
# Below are the features that each `TargetRubyVersion` targets.
#
# * 2.0+ ... `enumerator`
# * 2.1+ ... `thread`
# * 2.2+ ... Add `rational` and `complex` above
# * 2.5+ ... Add `pp` above
# * 2.7+ ... Add `ruby2_keywords` above
# * 3.1+ ... Add `fiber` above
# * 3.2+ ... `set`
#
# This cop target those features.
#
# @example
# # bad
# require 'unloaded_feature'
# require 'thread'
#
# # good
# require 'unloaded_feature'
#
# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#38
class RuboCop::Cop::Lint::RedundantRequireStatement < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#61
def on_send(node); end
# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#57
def pp_const?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#51
def redundant_require_statement?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#91
def need_to_require_pp?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#80
def redundant_feature?(feature_name); end
end
# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#42
RuboCop::Cop::Lint::RedundantRequireStatement::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#45
RuboCop::Cop::Lint::RedundantRequireStatement::PRETTY_PRINT_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#43
RuboCop::Cop::Lint::RedundantRequireStatement::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/redundant_require_statement.rb#44
RuboCop::Cop::Lint::RedundantRequireStatement::RUBY_22_LOADED_FEATURES = T.let(T.unsafe(nil), Array)
# Checks for redundant safe navigation calls.
# Use cases where a constant, named in camel case for classes and modules is `nil` are rare,
# and an offense is not detected when the receiver is a constant. The detection also applies
# to literal receivers, except for `nil`.
#
# For all receivers, the `instance_of?`, `kind_of?`, `is_a?`, `eql?`, `respond_to?`,
# and `equal?` methods are checked by default.
# These are customizable with `AllowedMethods` option.
#
# The `AllowedMethods` option specifies nil-safe methods,
# in other words, it is a method that is allowed to skip safe navigation.
# Note that the `AllowedMethod` option is not an option that specifies methods
# for which to suppress (allow) this cop's check.
#
# In the example below, the safe navigation operator (`&.`) is unnecessary
# because `NilClass` has methods like `respond_to?` and `is_a?`.
#
# @example
# # bad
# CamelCaseConst&.do_something
#
# # bad
# do_something if attrs&.respond_to?(:[])
#
# # good
# do_something if attrs.respond_to?(:[])
#
# # bad
# while node&.is_a?(BeginNode)
# node = node.parent
# end
#
# # good
# CamelCaseConst.do_something
#
# # good
# while node.is_a?(BeginNode)
# node = node.parent
# end
#
# # good - without `&.` this will always return `true`
# foo&.respond_to?(:to_a)
#
# # bad - for `nil`s conversion methods return default values for the type
# foo&.to_h || {}
# foo&.to_h { |k, v| [k, v] } || {}
# foo&.to_a || []
# foo&.to_i || 0
# foo&.to_f || 0.0
# foo&.to_s || ''
#
# # good
# foo.to_h
# foo.to_h { |k, v| [k, v] }
# foo.to_a
# foo.to_i
# foo.to_f
# foo.to_s
# @example AllowedMethods: [nil_safe_method]
# # bad
# do_something if attrs&.nil_safe_method(:[])
#
# # good
# do_something if attrs.nil_safe_method(:[])
# do_something if attrs&.not_nil_safe_method(:[])
#
# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#78
class RuboCop::Cop::Lint::RedundantSafeNavigation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedMethods
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#95
def conversion_with_default?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#107
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#117
def on_or(node); end
# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#90
def respond_to_nil_specific_method?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#133
def assume_receiver_instance_exists?(receiver); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#139
def check?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#149
def condition?(parent, node); end
end
# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#82
RuboCop::Cop::Lint::RedundantSafeNavigation::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#83
RuboCop::Cop::Lint::RedundantSafeNavigation::MSG_LITERAL = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#85
RuboCop::Cop::Lint::RedundantSafeNavigation::NIL_SPECIFIC_METHODS = T.let(T.unsafe(nil), Set)
# source://rubocop//lib/rubocop/cop/lint/redundant_safe_navigation.rb#87
RuboCop::Cop::Lint::RedundantSafeNavigation::SNAKE_CASE = T.let(T.unsafe(nil), Regexp)
# Checks for unneeded usages of splat expansion.
#
# @example
#
# # bad
# a = *[1, 2, 3]
# a = *'a'
# a = *1
# ['a', 'b', *%w(c d e), 'f', 'g']
#
# # good
# c = [1, 2, 3]
# a = *c
# a, b = *c
# a, *b = *c
# a = *1..10
# a = ['a']
# ['a', 'b', 'c', 'd', 'e', 'f', 'g']
#
# # bad
# do_something(*['foo', 'bar', 'baz'])
#
# # good
# do_something('foo', 'bar', 'baz')
#
# # bad
# begin
# foo
# rescue *[StandardError, ApplicationError]
# bar
# end
#
# # good
# begin
# foo
# rescue StandardError, ApplicationError
# bar
# end
#
# # bad
# case foo
# when *[1, 2, 3]
# bar
# else
# baz
# end
#
# # good
# case foo
# when 1, 2, 3
# bar
# else
# baz
# end
# @example AllowPercentLiteralArrayArgument: true (default)
#
# # good
# do_something(*%w[foo bar baz])
# @example AllowPercentLiteralArrayArgument: false
#
# # bad
# do_something(*%w[foo bar baz])
#
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#71
class RuboCop::Cop::Lint::RedundantSplatExpansion < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#83
def array_new?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#91
def literal_expansion(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#95
def on_splat(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#203
def allow_percent_literal_array_argument?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#131
def array_new_inside_array_literal?(array_new_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#155
def array_splat?(node); end
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#112
def autocorrect(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#159
def method_argument?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#163
def part_of_an_array?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#170
def redundant_brackets?(node); end
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#118
def redundant_splat_expansion(node); end
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#178
def remove_brackets(array); end
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#138
def replacement_range_and_content(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#196
def use_percent_literal_array_argument?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#75
RuboCop::Cop::Lint::RedundantSplatExpansion::ARRAY_PARAM_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#80
RuboCop::Cop::Lint::RedundantSplatExpansion::ASSIGNMENT_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#74
RuboCop::Cop::Lint::RedundantSplatExpansion::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#79
RuboCop::Cop::Lint::RedundantSplatExpansion::PERCENT_CAPITAL_I = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#77
RuboCop::Cop::Lint::RedundantSplatExpansion::PERCENT_CAPITAL_W = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#78
RuboCop::Cop::Lint::RedundantSplatExpansion::PERCENT_I = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/redundant_splat_expansion.rb#76
RuboCop::Cop::Lint::RedundantSplatExpansion::PERCENT_W = T.let(T.unsafe(nil), String)
# Checks for string conversion in string interpolation, `print`, `puts`, and `warn` arguments,
# which is redundant.
#
# @example
#
# # bad
# "result is #{something.to_s}"
# print something.to_s
# puts something.to_s
# warn something.to_s
#
# # good
# "result is #{something}"
# print something
# puts something
# warn something
#
# source://rubocop//lib/rubocop/cop/lint/redundant_string_coercion.rb#23
class RuboCop::Cop::Lint::RedundantStringCoercion < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Interpolation
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/redundant_string_coercion.rb#34
def on_interpolation(begin_node); end
# source://rubocop//lib/rubocop/cop/lint/redundant_string_coercion.rb#42
def on_send(node); end
# source://rubocop//lib/rubocop/cop/lint/redundant_string_coercion.rb#32
def to_s_without_args?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/lint/redundant_string_coercion.rb#54
def register_offense(node, context); end
end
# source://rubocop//lib/rubocop/cop/lint/redundant_string_coercion.rb#27
RuboCop::Cop::Lint::RedundantStringCoercion::MSG_DEFAULT = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/redundant_string_coercion.rb#28
RuboCop::Cop::Lint::RedundantStringCoercion::MSG_SELF = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/redundant_string_coercion.rb#29
RuboCop::Cop::Lint::RedundantStringCoercion::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for redundant `with_index`.
#
# @example
# # bad
# ary.each_with_index do |v|
# v
# end
#
# # good
# ary.each do |v|
# v
# end
#
# # bad
# ary.each.with_index do |v|
# v
# end
#
# # good
# ary.each do |v|
# v
# end
#
# source://rubocop//lib/rubocop/cop/lint/redundant_with_index.rb#29
class RuboCop::Cop::Lint::RedundantWithIndex < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/redundant_with_index.rb#37
def on_block(node); end
# source://rubocop//lib/rubocop/cop/lint/redundant_with_index.rb#37
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/lint/redundant_with_index.rb#60
def redundant_with_index?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/lint/redundant_with_index.rb#70
def message(node); end
# source://rubocop//lib/rubocop/cop/lint/redundant_with_index.rb#78
def with_index_range(send); end
end
# source://rubocop//lib/rubocop/cop/lint/redundant_with_index.rb#33
RuboCop::Cop::Lint::RedundantWithIndex::MSG_EACH_WITH_INDEX = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/redundant_with_index.rb#34
RuboCop::Cop::Lint::RedundantWithIndex::MSG_WITH_INDEX = T.let(T.unsafe(nil), String)
# Checks for redundant `with_object`.
#
# @example
# # bad
# ary.each_with_object([]) do |v|
# v
# end
#
# # good
# ary.each do |v|
# v
# end
#
# # bad
# ary.each.with_object([]) do |v|
# v
# end
#
# # good
# ary.each do |v|
# v
# end
#
# source://rubocop//lib/rubocop/cop/lint/redundant_with_object.rb#29
class RuboCop::Cop::Lint::RedundantWithObject < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/redundant_with_object.rb#36
def on_block(node); end
# source://rubocop//lib/rubocop/cop/lint/redundant_with_object.rb#36
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/lint/redundant_with_object.rb#56
def redundant_with_object?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/lint/redundant_with_object.rb#65
def message(node); end
# source://rubocop//lib/rubocop/cop/lint/redundant_with_object.rb#73
def with_object_range(send); end
end
# source://rubocop//lib/rubocop/cop/lint/redundant_with_object.rb#33
RuboCop::Cop::Lint::RedundantWithObject::MSG_EACH_WITH_OBJECT = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/redundant_with_object.rb#34
RuboCop::Cop::Lint::RedundantWithObject::MSG_WITH_OBJECT = T.let(T.unsafe(nil), String)
# Checks if `include` or `prepend` is called in `refine` block.
# These methods are deprecated and should be replaced with `Refinement#import_methods`.
#
# It emulates deprecation warnings in Ruby 3.1.
#
# @example
#
# # bad
# refine Foo do
# include Bar
# end
#
# # bad
# refine Foo do
# prepend Bar
# end
#
# # good
# refine Foo do
# import_methods Bar
# end
#
# source://rubocop//lib/rubocop/cop/lint/refinement_import_methods.rb#34
class RuboCop::Cop::Lint::RefinementImportMethods < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/lint/refinement_import_methods.rb#42
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/lint/refinement_import_methods.rb#37
RuboCop::Cop::Lint::RefinementImportMethods::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/refinement_import_methods.rb#38
RuboCop::Cop::Lint::RefinementImportMethods::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for regexp literals used as `match-current-line`.
# If a regexp literal is in condition, the regexp matches `$_` implicitly.
#
# @example
# # bad
# if /foo/
# do_something
# end
#
# # good
# if /foo/ =~ $_
# do_something
# end
#
# source://rubocop//lib/rubocop/cop/lint/regexp_as_condition.rb#19
class RuboCop::Cop::Lint::RegexpAsCondition < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/regexp_as_condition.rb#26
def on_match_current_line(node); end
end
# source://rubocop//lib/rubocop/cop/lint/regexp_as_condition.rb#23
RuboCop::Cop::Lint::RegexpAsCondition::MSG = T.let(T.unsafe(nil), String)
# Checks for expressions where there is a call to a predicate
# method with at least one argument, where no parentheses are used around
# the parameter list, and a boolean operator, && or ||, is used in the
# last argument.
#
# The idea behind warning for these constructs is that the user might
# be under the impression that the return value from the method call is
# an operand of &&/||.
#
# @example
#
# # bad
# if day.is? :tuesday && month == :jan
# # ...
# end
#
# # good
# if day.is?(:tuesday) && month == :jan
# # ...
# end
#
# source://rubocop//lib/rubocop/cop/lint/require_parentheses.rb#26
class RuboCop::Cop::Lint::RequireParentheses < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
# source://rubocop//lib/rubocop/cop/lint/require_parentheses.rb#31
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/lint/require_parentheses.rb#31
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/lint/require_parentheses.rb#54
def check_predicate(predicate, node); end
# source://rubocop//lib/rubocop/cop/lint/require_parentheses.rb#44
def check_ternary(ternary, node); end
end
# source://rubocop//lib/rubocop/cop/lint/require_parentheses.rb#29
RuboCop::Cop::Lint::RequireParentheses::MSG = T.let(T.unsafe(nil), String)
# Checks that a range literal is enclosed in parentheses when the end of the range is
# at a line break.
#
# NOTE: The following is maybe intended for `(42..)`. But, compatible is `42..do_something`.
# So, this cop does not provide autocorrection because it is left to user.
#
# [source,ruby]
# ----
# case condition
# when 42..
# do_something
# end
# ----
#
# @example
#
# # bad - Represents `(1..42)`, not endless range.
# 1..
# 42
#
# # good - It's incompatible, but your intentions when using endless range may be:
# (1..)
# 42
#
# # good
# 1..42
#
# # good
# (1..42)
#
# # good
# (1..
# 42)
#
# source://rubocop//lib/rubocop/cop/lint/require_range_parentheses.rb#40
class RuboCop::Cop::Lint::RequireRangeParentheses < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/require_range_parentheses.rb#43
def on_erange(node); end
# source://rubocop//lib/rubocop/cop/lint/require_range_parentheses.rb#43
def on_irange(node); end
end
# source://rubocop//lib/rubocop/cop/lint/require_range_parentheses.rb#41
RuboCop::Cop::Lint::RequireRangeParentheses::MSG = T.let(T.unsafe(nil), String)
# Checks for uses a file requiring itself with `require_relative`.
#
# @example
#
# # bad
#
# # foo.rb
# require_relative 'foo'
# require_relative 'bar'
#
# # good
#
# # foo.rb
# require_relative 'bar'
#
# source://rubocop//lib/rubocop/cop/lint/require_relative_self_path.rb#21
class RuboCop::Cop::Lint::RequireRelativeSelfPath < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/require_relative_self_path.rb#28
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/lint/require_relative_self_path.rb#44
def remove_ext(file_path); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/require_relative_self_path.rb#40
def same_file?(file_path, required_feature); end
end
# source://rubocop//lib/rubocop/cop/lint/require_relative_self_path.rb#25
RuboCop::Cop::Lint::RequireRelativeSelfPath::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/require_relative_self_path.rb#26
RuboCop::Cop::Lint::RequireRelativeSelfPath::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for `rescue` blocks targeting the Exception class.
#
# @example
#
# # bad
# begin
# do_something
# rescue Exception
# handle_exception
# end
#
# # good
# begin
# do_something
# rescue ArgumentError
# handle_exception
# end
#
# source://rubocop//lib/rubocop/cop/lint/rescue_exception.rb#23
class RuboCop::Cop::Lint::RescueException < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/rescue_exception.rb#26
def on_resbody(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/rescue_exception.rb#35
def targets_exception?(rescue_arg_node); end
end
# source://rubocop//lib/rubocop/cop/lint/rescue_exception.rb#24
RuboCop::Cop::Lint::RescueException::MSG = T.let(T.unsafe(nil), String)
# Check for arguments to `rescue` that will result in a `TypeError`
# if an exception is raised.
#
# @example
# # bad
# begin
# bar
# rescue nil
# baz
# end
#
# # bad
# def foo
# bar
# rescue 1, 'a', "#{b}", 0.0, [], {}
# baz
# end
#
# # good
# begin
# bar
# rescue
# baz
# end
#
# # good
# def foo
# bar
# rescue NameError
# baz
# end
#
# source://rubocop//lib/rubocop/cop/lint/rescue_type.rb#37
class RuboCop::Cop::Lint::RescueType < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/rescue_type.rb#60
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/lint/rescue_type.rb#44
def on_resbody(node); end
private
# source://rubocop//lib/rubocop/cop/lint/rescue_type.rb#69
def correction(*exceptions); end
# source://rubocop//lib/rubocop/cop/lint/rescue_type.rb#80
def invalid_exceptions(exceptions); end
# source://rubocop//lib/rubocop/cop/lint/rescue_type.rb#76
def valid_exceptions(exceptions); end
end
# source://rubocop//lib/rubocop/cop/lint/rescue_type.rb#42
RuboCop::Cop::Lint::RescueType::INVALID_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/rescue_type.rb#40
RuboCop::Cop::Lint::RescueType::MSG = T.let(T.unsafe(nil), String)
# Checks for the use of a return with a value in a context
# where the value will be ignored. (initialize and setter methods)
#
# @example
#
# # bad
# def initialize
# foo
# return :qux if bar?
# baz
# end
#
# def foo=(bar)
# return 42
# end
#
# # good
# def initialize
# foo
# return if bar?
# baz
# end
#
# def foo=(bar)
# return
# end
#
# source://rubocop//lib/rubocop/cop/lint/return_in_void_context.rb#32
class RuboCop::Cop::Lint::ReturnInVoidContext < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/return_in_void_context.rb#35
def on_return(return_node); end
private
# source://rubocop//lib/rubocop/cop/lint/return_in_void_context.rb#51
def non_void_context(return_node); end
end
# source://rubocop//lib/rubocop/cop/lint/return_in_void_context.rb#33
RuboCop::Cop::Lint::ReturnInVoidContext::MSG = T.let(T.unsafe(nil), String)
# The safe navigation operator returns nil if the receiver is
# nil. If you chain an ordinary method call after a safe
# navigation operator, it raises NoMethodError. We should use a
# safe navigation operator after a safe navigation operator.
# This cop checks for the problem outlined above.
#
# @example
#
# # bad
# x&.foo.bar
# x&.foo + bar
# x&.foo[bar]
#
# # good
# x&.foo&.bar
# x&.foo || bar
#
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#22
class RuboCop::Cop::Lint::SafeNavigationChain < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedMethods
include ::RuboCop::Cop::NilMethods
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#33
def bad_method?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#40
def on_send(node); end
private
# @param offense_range [Parser::Source::Range]
# @param send_node [RuboCop::AST::SendNode]
# @return [String]
#
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#67
def add_safe_navigation_operator(offense_range:, send_node:); end
# @param corrector [RuboCop::Cop::Corrector]
# @param offense_range [Parser::Source::Range]
# @param send_node [RuboCop::AST::SendNode]
#
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#86
def autocorrect(corrector, offense_range:, send_node:); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#95
def brackets?(send_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#99
def require_parentheses?(send_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#57
def require_safe_navigation?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#29
RuboCop::Cop::Lint::SafeNavigationChain::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_chain.rb#30
RuboCop::Cop::Lint::SafeNavigationChain::PLUS_MINUS_METHODS = T.let(T.unsafe(nil), Array)
# Check to make sure that if safe navigation is used in an `&&` or `||` condition,
# consistent and appropriate safe navigation, without excess or deficiency,
# is used for all method calls on the same object.
#
# @example
# # bad
# foo&.bar && foo&.baz
#
# # good
# foo&.bar && foo.baz
#
# # bad
# foo.bar && foo&.baz
#
# # good
# foo.bar && foo.baz
#
# # bad
# foo&.bar || foo.baz
#
# # good
# foo&.bar || foo&.baz
#
# # bad
# foo.bar || foo&.baz
#
# # good
# foo.bar || foo.baz
#
# # bad
# foo&.bar && (foobar.baz || foo&.baz)
#
# # good
# foo&.bar && (foobar.baz || foo.baz)
#
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#41
class RuboCop::Cop::Lint::SafeNavigationConsistency < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedMethods
include ::RuboCop::Cop::NilMethods
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#48
def on_and(node); end
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#48
def on_or(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#96
def already_appropriate_call?(operand, dot_op); end
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#67
def collect_operands(node, operand_nodes); end
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#83
def find_consistent_parts(grouped_operands); end
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#122
def most_left_indices(grouped_operands); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#152
def nilable?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#136
def operand_in_and?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#144
def operand_in_or?(node); end
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#113
def operand_nodes(operand, operand_nodes); end
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#74
def receiver_name_as_key(method, fully_receivers); end
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#102
def register_offense(operand, dot_operator); end
end
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#45
RuboCop::Cop::Lint::SafeNavigationConsistency::USE_DOT_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_consistency.rb#46
RuboCop::Cop::Lint::SafeNavigationConsistency::USE_SAFE_NAVIGATION_MSG = T.let(T.unsafe(nil), String)
# Checks to make sure safe navigation isn't used with `empty?` in
# a conditional.
#
# While the safe navigation operator is generally a good idea, when
# checking `foo&.empty?` in a conditional, `foo` being `nil` will actually
# do the opposite of what the author intends.
#
# @example
# # bad
# return if foo&.empty?
# return unless foo&.empty?
#
# # good
# return if foo && foo.empty?
# return unless foo && foo.empty?
#
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_with_empty.rb#22
class RuboCop::Cop::Lint::SafeNavigationWithEmpty < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_with_empty.rb#32
def on_if(node); end
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_with_empty.rb#28
def safe_navigation_empty_in_conditional?(param0 = T.unsafe(nil)); end
end
# source://rubocop//lib/rubocop/cop/lint/safe_navigation_with_empty.rb#25
RuboCop::Cop::Lint::SafeNavigationWithEmpty::MSG = T.let(T.unsafe(nil), String)
# Checks if a file which has a shebang line as
# its first line is granted execute permission.
#
# @example
# # bad
#
# # A file which has a shebang line as its first line is not
# # granted execute permission.
#
# #!/usr/bin/env ruby
# puts 'hello, world'
#
# # good
#
# # A file which has a shebang line as its first line is
# # granted execute permission.
#
# #!/usr/bin/env ruby
# puts 'hello, world'
#
# # good
#
# # A file which has not a shebang line as its first line is not
# # granted execute permission.
#
# puts 'hello, world'
#
# source://rubocop//lib/rubocop/cop/lint/script_permission.rb#33
class RuboCop::Cop::Lint::ScriptPermission < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/script_permission.rb#39
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/lint/script_permission.rb#55
def autocorrect; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/script_permission.rb#59
def executable?(processed_source); end
# source://rubocop//lib/rubocop/cop/lint/script_permission.rb#66
def format_message_from(processed_source); end
end
# source://rubocop//lib/rubocop/cop/lint/script_permission.rb#36
RuboCop::Cop::Lint::ScriptPermission::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/script_permission.rb#37
RuboCop::Cop::Lint::ScriptPermission::SHEBANG = T.let(T.unsafe(nil), String)
# Checks for self-assignments.
#
# @example
# # bad
# foo = foo
# foo, bar = foo, bar
# Foo = Foo
# hash['foo'] = hash['foo']
# obj.attr = obj.attr
#
# # good
# foo = bar
# foo, bar = bar, foo
# Foo = Bar
# hash['foo'] = hash['bar']
# obj.attr = obj.attr2
#
# # good (method calls possibly can return different results)
# hash[foo] = hash[foo]
#
# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#26
class RuboCop::Cop::Lint::SelfAssignment < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#69
def on_and_asgn(node); end
# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#57
def on_casgn(node); end
# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#36
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#45
def on_cvasgn(node); end
# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#45
def on_gvasgn(node); end
# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#45
def on_ivasgn(node); end
# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#45
def on_lvasgn(node); end
# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#65
def on_masgn(node); end
# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#69
def on_or_asgn(node); end
# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#36
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#103
def handle_attribute_assignment(node); end
# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#92
def handle_key_assignment(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#77
def multiple_self_assignment?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#87
def rhs_matches_lhs?(rhs, lhs); end
end
# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#29
RuboCop::Cop::Lint::SelfAssignment::ASSIGNMENT_TYPE_TO_RHS_TYPE = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/lint/self_assignment.rb#27
RuboCop::Cop::Lint::SelfAssignment::MSG = T.let(T.unsafe(nil), String)
# Checks for `send`, `public_send`, and `__send__` methods
# when using mix-in.
#
# `include` and `prepend` methods were private methods until Ruby 2.0,
# they were mixed-in via `send` method. This cop uses Ruby 2.1 or
# higher style that can be called by public methods.
# And `extend` method that was originally a public method is also targeted
# for style unification.
#
# @example
# # bad
# Foo.send(:include, Bar)
# Foo.send(:prepend, Bar)
# Foo.send(:extend, Bar)
#
# # bad
# Foo.public_send(:include, Bar)
# Foo.public_send(:prepend, Bar)
# Foo.public_send(:extend, Bar)
#
# # bad
# Foo.__send__(:include, Bar)
# Foo.__send__(:prepend, Bar)
# Foo.__send__(:extend, Bar)
#
# # good
# Foo.include Bar
# Foo.prepend Bar
# Foo.extend Bar
#
# source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#36
class RuboCop::Cop::Lint::SendWithMixinArgument < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#53
def on_send(node); end
# source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#46
def send_with_mixin_argument?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#67
def bad_location(node); end
# source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#73
def message(method, module_name, bad_method); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#77
def mixin_method?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#41
RuboCop::Cop::Lint::SendWithMixinArgument::MIXIN_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#40
RuboCop::Cop::Lint::SendWithMixinArgument::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#43
RuboCop::Cop::Lint::SendWithMixinArgument::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/send_with_mixin_argument.rb#42
RuboCop::Cop::Lint::SendWithMixinArgument::SEND_METHODS = T.let(T.unsafe(nil), Array)
# Checks for shadowed arguments.
#
# This cop has `IgnoreImplicitReferences` configuration option.
# It means argument shadowing is used in order to pass parameters
# to zero arity `super` when `IgnoreImplicitReferences` is `true`.
#
# @example
#
# # bad
# do_something do |foo|
# foo = 42
# puts foo
# end
#
# def do_something(foo)
# foo = 42
# puts foo
# end
#
# # good
# do_something do |foo|
# foo = foo + 42
# puts foo
# end
#
# def do_something(foo)
# foo = foo + 42
# puts foo
# end
#
# def do_something(foo)
# puts foo
# end
# @example IgnoreImplicitReferences: false (default)
#
# # bad
# def do_something(foo)
# foo = 42
# super
# end
#
# def do_something(foo)
# foo = super
# bar
# end
# @example IgnoreImplicitReferences: true
#
# # good
# def do_something(foo)
# foo = 42
# super
# end
#
# def do_something(foo)
# foo = super
# bar
# end
#
# source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#66
class RuboCop::Cop::Lint::ShadowedArgument < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#76
def after_leaving_scope(scope, _variable_table); end
# source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#70
def uses_var?(param0, param1); end
private
# Get argument references without assignments' references
#
# source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#161
def argument_references(argument); end
# Find the first argument assignment, which doesn't reference the
# argument at the rhs. If the assignment occurs inside a branch or
# block, it is impossible to tell whether it's executed, so precise
# shadowing location is not known.
#
# source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#120
def assignment_without_argument_usage(argument); end
# source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#82
def check_argument(argument); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#171
def ignore_implicit_references?; end
# Check whether the given node is nested into block or conditional.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#152
def node_within_block_or_conditional?(node, stop_search_node); end
# source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#144
def reference_pos(node); end
# source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#95
def shadowing_assignment(argument); end
class << self
# source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#72
def joining_forces; end
end
end
# source://rubocop//lib/rubocop/cop/lint/shadowed_argument.rb#67
RuboCop::Cop::Lint::ShadowedArgument::MSG = T.let(T.unsafe(nil), String)
# Checks for a rescued exception that get shadowed by a
# less specific exception being rescued before a more specific
# exception is rescued.
#
# An exception is considered shadowed if it is rescued after its
# ancestor is, or if it and its ancestor are both rescued in the
# same `rescue` statement. In both cases, the more specific rescue is
# unnecessary because it is covered by rescuing the less specific
# exception. (ie. `rescue Exception, StandardError` has the same behavior
# whether `StandardError` is included or not, because all ``StandardError``s
# are rescued by `rescue Exception`).
#
# @example
#
# # bad
#
# begin
# something
# rescue Exception
# handle_exception
# rescue StandardError
# handle_standard_error
# end
#
# # bad
# begin
# something
# rescue Exception, StandardError
# handle_error
# end
#
# # good
#
# begin
# something
# rescue StandardError
# handle_standard_error
# rescue Exception
# handle_exception
# end
#
# # good, however depending on runtime environment.
# #
# # This is a special case for system call errors.
# # System dependent error code depends on runtime environment.
# # For example, whether `Errno::EAGAIN` and `Errno::EWOULDBLOCK` are
# # the same error code or different error code depends on environment.
# # This good case is for `Errno::EAGAIN` and `Errno::EWOULDBLOCK` with
# # the same error code.
# begin
# something
# rescue Errno::EAGAIN, Errno::EWOULDBLOCK
# handle_standard_error
# end
#
# source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#61
class RuboCop::Cop::Lint::ShadowedException < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RescueNode
include ::RuboCop::Cop::RangeHelp
# source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#67
def on_rescue(node); end
private
# source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#101
def compare_exceptions(exception, other_exception); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#94
def contains_multiple_levels_of_exceptions?(group); end
# source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#119
def evaluate_exceptions(group); end
# source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#152
def find_shadowing_rescue(rescues); end
# source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#84
def offense_range(rescues); end
# source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#90
def rescued_groups_for(rescues); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#137
def sorted?(rescued_groups); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#115
def system_call_err?(error); end
end
# source://rubocop//lib/rubocop/cop/lint/shadowed_exception.rb#65
RuboCop::Cop::Lint::ShadowedException::MSG = T.let(T.unsafe(nil), String)
# Checks for the use of local variable names from an outer scope
# in block arguments or block-local variables. This mirrors the warning
# given by `ruby -cw` prior to Ruby 2.6:
# "shadowing outer local variable - foo".
#
# NOTE: Shadowing of variables in block passed to `Ractor.new` is allowed
# because `Ractor` should not access outer variables.
# eg. following style is encouraged:
#
# [source,ruby]
# ----
# worker_id, pipe = env
# Ractor.new(worker_id, pipe) do |worker_id, pipe|
# end
# ----
#
# @example
#
# # bad
# def some_method
# foo = 1
#
# 2.times do |foo| # shadowing outer `foo`
# do_something(foo)
# end
# end
#
# # good
# def some_method
# foo = 1
#
# 2.times do |bar|
# do_something(bar)
# end
# end
#
# source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#41
class RuboCop::Cop::Lint::ShadowingOuterLocalVariable < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#53
def before_declaring_variable(variable, variable_table); end
# source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#89
def find_conditional_node_from_ascendant(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#96
def node_or_its_ascendant_conditional?(node); end
# source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#45
def ractor_block?(param0 = T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#65
def same_conditions_node_different_branch?(variable, outer_local_variable); end
# source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#79
def variable_node(variable); end
class << self
# source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#49
def joining_forces; end
end
end
# source://rubocop//lib/rubocop/cop/lint/shadowing_outer_local_variable.rb#42
RuboCop::Cop::Lint::ShadowingOuterLocalVariable::MSG = T.let(T.unsafe(nil), String)
# Checks unexpected overrides of the `Struct` built-in methods
# via `Struct.new`.
#
# @example
# # bad
# Bad = Struct.new(:members, :clone, :count)
# b = Bad.new([], true, 1)
# b.members #=> [] (overriding `Struct#members`)
# b.clone #=> true (overriding `Object#clone`)
# b.count #=> 1 (overriding `Enumerable#count`)
#
# # good
# Good = Struct.new(:id, :name)
# g = Good.new(1, "foo")
# g.members #=> [:id, :name]
# g.clone #=> #<struct Good id=1, name="foo">
# g.count #=> 2
#
# source://rubocop//lib/rubocop/cop/lint/struct_new_override.rb#24
class RuboCop::Cop::Lint::StructNewOverride < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/struct_new_override.rb#38
def on_send(node); end
# source://rubocop//lib/rubocop/cop/lint/struct_new_override.rb#33
def struct_new(param0 = T.unsafe(nil)); end
end
# source://rubocop//lib/rubocop/cop/lint/struct_new_override.rb#25
RuboCop::Cop::Lint::StructNewOverride::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/struct_new_override.rb#27
RuboCop::Cop::Lint::StructNewOverride::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/struct_new_override.rb#30
RuboCop::Cop::Lint::StructNewOverride::STRUCT_MEMBER_NAME_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/struct_new_override.rb#29
RuboCop::Cop::Lint::StructNewOverride::STRUCT_METHOD_NAMES = T.let(T.unsafe(nil), Array)
# Checks for `rescue` blocks with no body.
#
# @example
#
# # bad
# def some_method
# do_something
# rescue
# end
#
# # bad
# begin
# do_something
# rescue
# end
#
# # good
# def some_method
# do_something
# rescue
# handle_exception
# end
#
# # good
# begin
# do_something
# rescue
# handle_exception
# end
# @example AllowComments: true (default)
#
# # good
# def some_method
# do_something
# rescue
# # do nothing
# end
#
# # good
# begin
# do_something
# rescue
# # do nothing
# end
# @example AllowComments: false
#
# # bad
# def some_method
# do_something
# rescue
# # do nothing
# end
#
# # bad
# begin
# do_something
# rescue
# # do nothing
# end
# @example AllowNil: true (default)
#
# # good
# def some_method
# do_something
# rescue
# nil
# end
#
# # good
# begin
# do_something
# rescue
# # do nothing
# end
#
# # good
# do_something rescue nil
# @example AllowNil: false
#
# # bad
# def some_method
# do_something
# rescue
# nil
# end
#
# # bad
# begin
# do_something
# rescue
# nil
# end
#
# # bad
# do_something rescue nil
#
# source://rubocop//lib/rubocop/cop/lint/suppressed_exception.rb#105
class RuboCop::Cop::Lint::SuppressedException < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/suppressed_exception.rb#108
def on_resbody(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/suppressed_exception.rb#118
def comment_between_rescue_and_end?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/suppressed_exception.rb#126
def nil_body?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/suppressed_exception.rb#106
RuboCop::Cop::Lint::SuppressedException::MSG = T.let(T.unsafe(nil), String)
# Checks for uses of literal strings converted to
# a symbol where a literal symbol could be used instead.
#
# There are two possible styles for this cop.
# `strict` (default) will register an offense for any incorrect usage.
# `consistent` additionally requires hashes to use the same style for
# every symbol key (ie. if any symbol key needs to be quoted it requires
# all keys to be quoted).
#
# @example
# # bad
# 'string'.to_sym
# :symbol.to_sym
# 'underscored_string'.to_sym
# :'underscored_symbol'
# 'hyphenated-string'.to_sym
# "string_#{interpolation}".to_sym
#
# # good
# :string
# :symbol
# :underscored_string
# :underscored_symbol
# :'hyphenated-string'
# :"string_#{interpolation}"
# @example EnforcedStyle: strict (default)
#
# # bad
# {
# 'a': 1,
# "b": 2,
# 'c-d': 3
# }
#
# # good (don't quote keys that don't require quoting)
# {
# a: 1,
# b: 2,
# 'c-d': 3
# }
# @example EnforcedStyle: consistent
#
# # bad
# {
# a: 1,
# 'b-c': 2
# }
#
# # good (quote all keys if any need quoting)
# {
# 'a': 1,
# 'b-c': 2
# }
#
# # good (no quoting required)
# {
# a: 1,
# b: 2
# }
#
# source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#68
class RuboCop::Cop::Lint::SymbolConversion < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::SymbolHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#105
def on_hash(node); end
# source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#78
def on_send(node); end
# source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#88
def on_sym(node); end
private
# source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#147
def correct_hash_key(node); end
# source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#166
def correct_inconsistent_hash_keys(keys); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#139
def in_alias?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#143
def in_percent_literal_array?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#126
def properly_quoted?(source, value); end
# source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#122
def register_offense(node, correction:, message: T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#135
def requires_quotes?(sym_node); end
end
# source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#73
RuboCop::Cop::Lint::SymbolConversion::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#74
RuboCop::Cop::Lint::SymbolConversion::MSG_CONSISTENCY = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/symbol_conversion.rb#76
RuboCop::Cop::Lint::SymbolConversion::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Repacks Parser's diagnostics/errors
# into RuboCop's offenses.
#
# source://rubocop//lib/rubocop/cop/lint/syntax.rb#8
class RuboCop::Cop::Lint::Syntax < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/syntax.rb#9
def on_other_file; end
private
# source://rubocop//lib/rubocop/cop/lint/syntax.rb#19
def add_offense_from_diagnostic(diagnostic, ruby_version); end
# source://rubocop//lib/rubocop/cop/lint/syntax.rb#29
def add_offense_from_error(error); end
# source://rubocop//lib/rubocop/cop/lint/syntax.rb#34
def beautify_message(message); end
# source://rubocop//lib/rubocop/cop/lint/syntax.rb#40
def find_severity(_range, _severity); end
end
# Ensures that `to_enum`/`enum_for`, called for the current method,
# has correct arguments.
#
# @example
# # bad
# def foo(x, y = 1)
# return to_enum(__callee__, x) # `y` is missing
# end
#
# # good
# def foo(x, y = 1)
# # Alternatives to `__callee__` are `__method__` and `:foo`.
# return to_enum(__callee__, x, y)
# end
#
# # good
# def foo(x, y = 1)
# # It is also allowed if it is wrapped in some method like Sorbet.
# return to_enum(T.must(__callee__), x, y)
# end
#
# source://rubocop//lib/rubocop/cop/lint/to_enum_arguments.rb#27
class RuboCop::Cop::Lint::ToEnumArguments < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/to_enum_arguments.rb#33
def enum_conversion_call?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/to_enum_arguments.rb#38
def method_name?(param0 = T.unsafe(nil), param1); end
# source://rubocop//lib/rubocop/cop/lint/to_enum_arguments.rb#47
def on_send(node); end
# source://rubocop//lib/rubocop/cop/lint/to_enum_arguments.rb#43
def passing_keyword_arg?(param0 = T.unsafe(nil), param1); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/to_enum_arguments.rb#76
def argument_match?(send_arg, def_arg); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/to_enum_arguments.rb#61
def arguments_match?(arguments, def_node); end
end
# source://rubocop//lib/rubocop/cop/lint/to_enum_arguments.rb#28
RuboCop::Cop::Lint::ToEnumArguments::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/to_enum_arguments.rb#30
RuboCop::Cop::Lint::ToEnumArguments::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks to make sure `#to_json` includes an optional argument.
# When overriding `#to_json`, callers may invoke JSON
# generation via `JSON.generate(your_obj)`. Since `JSON#generate` allows
# for an optional argument, your method should too.
#
# @example
# class Point
# attr_reader :x, :y
#
# # bad, incorrect arity
# def to_json
# JSON.generate([x, y])
# end
#
# # good, preserving args
# def to_json(*args)
# JSON.generate([x, y], *args)
# end
#
# # good, discarding args
# def to_json(*_args)
# JSON.generate([x, y])
# end
# end
#
# source://rubocop//lib/rubocop/cop/lint/to_json.rb#31
class RuboCop::Cop::Lint::ToJSON < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/to_json.rb#36
def on_def(node); end
end
# source://rubocop//lib/rubocop/cop/lint/to_json.rb#34
RuboCop::Cop::Lint::ToJSON::MSG = T.let(T.unsafe(nil), String)
# Checks for top level return with arguments. If there is a
# top-level return statement with an argument, then the argument is
# always ignored. This is detected automatically since Ruby 2.7.
#
# @example
# # bad
# return 1
#
# # good
# return
#
# source://rubocop//lib/rubocop/cop/lint/top_level_return_with_argument.rb#16
class RuboCop::Cop::Lint::TopLevelReturnWithArgument < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/top_level_return_with_argument.rb#21
def on_return(return_node); end
private
# source://rubocop//lib/rubocop/cop/lint/top_level_return_with_argument.rb#35
def remove_arguments(corrector, return_node); end
# This cop works by validating the ancestors of the return node. A
# top-level return node's ancestors should not be of block, def, or
# defs type.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/top_level_return_with_argument.rb#42
def top_level_return?(return_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/top_level_return_with_argument.rb#31
def top_level_return_with_any_argument?(return_node); end
end
# source://rubocop//lib/rubocop/cop/lint/top_level_return_with_argument.rb#19
RuboCop::Cop::Lint::TopLevelReturnWithArgument::MSG = T.let(T.unsafe(nil), String)
# Checks for trailing commas in attribute declarations, such as
# `#attr_reader`. Leaving a trailing comma will nullify the next method
# definition by overriding it with a getter method.
#
# @example
#
# # bad
# class Foo
# attr_reader :foo,
#
# def bar
# puts "Unreachable."
# end
# end
#
# # good
# class Foo
# attr_reader :foo
#
# def bar
# puts "No problem!"
# end
# end
#
# source://rubocop//lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb#30
class RuboCop::Cop::Lint::TrailingCommaInAttributeDeclaration < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb#36
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb#46
def trailing_comma_range(node); end
end
# source://rubocop//lib/rubocop/cop/lint/trailing_comma_in_attribute_declaration.rb#34
RuboCop::Cop::Lint::TrailingCommaInAttributeDeclaration::MSG = T.let(T.unsafe(nil), String)
# Checks for "triple quotes" (strings delimited by any odd number
# of quotes greater than 1).
#
# Ruby allows multiple strings to be implicitly concatenated by just
# being adjacent in a statement (ie. `"foo""bar" == "foobar"`). This sometimes
# gives the impression that there is something special about triple quotes, but
# in fact it is just extra unnecessary quotes and produces the same string. Each
# pair of quotes produces an additional concatenated empty string, so the result
# is still only the "actual" string within the delimiters.
#
# NOTE: Although this cop is called triple quotes, the same behavior is present
# for strings delimited by 5, 7, etc. quotation marks.
#
# @example
# # bad
# """
# A string
# """
#
# # bad
# '''
# A string
# '''
#
# # good
# "
# A string
# "
#
# # good
# <<STRING
# A string
# STRING
#
# # good (but not the same spacing as the bad case)
# 'A string'
#
# source://rubocop//lib/rubocop/cop/lint/triple_quotes.rb#42
class RuboCop::Cop::Lint::TripleQuotes < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/triple_quotes.rb#47
def on_dstr(node); end
private
# source://rubocop//lib/rubocop/cop/lint/triple_quotes.rb#65
def empty_str_nodes(node); end
end
# source://rubocop//lib/rubocop/cop/lint/triple_quotes.rb#45
RuboCop::Cop::Lint::TripleQuotes::MSG = T.let(T.unsafe(nil), String)
# Checks for underscore-prefixed variables that are actually
# used.
#
# Since block keyword arguments cannot be arbitrarily named at call
# sites, the `AllowKeywordBlockArguments` will allow use of underscore-
# prefixed block keyword arguments.
#
# @example AllowKeywordBlockArguments: false (default)
#
# # bad
#
# [1, 2, 3].each do |_num|
# do_something(_num)
# end
#
# query(:sales) do |_id:, revenue:, cost:|
# {_id: _id, profit: revenue - cost}
# end
#
# # good
#
# [1, 2, 3].each do |num|
# do_something(num)
# end
#
# [1, 2, 3].each do |_num|
# do_something # not using `_num`
# end
# @example AllowKeywordBlockArguments: true
#
# # good
#
# query(:sales) do |_id:, revenue:, cost:|
# {_id: _id, profit: revenue - cost}
# end
#
# source://rubocop//lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb#43
class RuboCop::Cop::Lint::UnderscorePrefixedVariableName < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb#50
def after_leaving_scope(scope, _variable_table); end
# source://rubocop//lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb#54
def check_variable(variable); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb#72
def allowed_keyword_block_argument?(variable); end
class << self
# source://rubocop//lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb#46
def joining_forces; end
end
end
# source://rubocop//lib/rubocop/cop/lint/underscore_prefixed_variable_name.rb#44
RuboCop::Cop::Lint::UnderscorePrefixedVariableName::MSG = T.let(T.unsafe(nil), String)
# Checks for Regexpes (both literals and via `Regexp.new` / `Regexp.compile`)
# that contain unescaped `]` characters.
#
# It emulates the following Ruby warning:
#
# [source,ruby]
# ----
# $ ruby -e '/abc]123/'
# -e:1: warning: regular expression has ']' without escape: /abc]123/
# ----
#
# @example
# # bad
# /abc]123/
# %r{abc]123}
# Regexp.new('abc]123')
# Regexp.compile('abc]123')
#
# # good
# /abc\]123/
# %r{abc\]123}
# Regexp.new('abc\]123')
# Regexp.compile('abc\]123')
#
# source://rubocop//lib/rubocop/cop/lint/unescaped_bracket_in_regexp.rb#30
class RuboCop::Cop::Lint::UnescapedBracketInRegexp < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/unescaped_bracket_in_regexp.rb#45
def on_regexp(node); end
# source://rubocop//lib/rubocop/cop/lint/unescaped_bracket_in_regexp.rb#53
def on_send(node); end
# source://rubocop//lib/rubocop/cop/lint/unescaped_bracket_in_regexp.rb#37
def regexp_constructor(param0); end
private
# source://rubocop//lib/rubocop/cop/lint/unescaped_bracket_in_regexp.rb#66
def detect_offenses(node, expr); end
# source://rubocop//lib/rubocop/cop/lint/unescaped_bracket_in_regexp.rb#81
def range_at_index(node, index, offset); end
end
# source://rubocop//lib/rubocop/cop/lint/unescaped_bracket_in_regexp.rb#33
RuboCop::Cop::Lint::UnescapedBracketInRegexp::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/unescaped_bracket_in_regexp.rb#34
RuboCop::Cop::Lint::UnescapedBracketInRegexp::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for a block that is known to need more positional
# block arguments than are given (by default this is configured for
# `Enumerable` methods needing 2 arguments). Optional arguments are allowed,
# although they don't generally make sense as the default value will
# be used. Blocks that have no receiver, or take splatted arguments
# (ie. `*args`) are always accepted.
#
# Keyword arguments (including `**kwargs`) do not get counted towards
# this, as they are not used by the methods in question.
#
# Method names and their expected arity can be configured like this:
#
# [source,yaml]
# ----
# Methods:
# inject: 2
# reduce: 2
# ----
#
# @example
# # bad
# values.reduce {}
# values.min { |a| a }
# values.sort { |a; b| a + b }
#
# # good
# values.reduce { |memo, obj| memo << obj }
# values.min { |a, b| a <=> b }
# values.sort { |*x| x[0] <=> x[1] }
#
# source://rubocop//lib/rubocop/cop/lint/unexpected_block_arity.rb#41
class RuboCop::Cop::Lint::UnexpectedBlockArity < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/unexpected_block_arity.rb#44
def on_block(node); end
# source://rubocop//lib/rubocop/cop/lint/unexpected_block_arity.rb#44
def on_numblock(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/unexpected_block_arity.rb#63
def acceptable?(node); end
# source://rubocop//lib/rubocop/cop/lint/unexpected_block_arity.rb#75
def arg_count(node); end
# source://rubocop//lib/rubocop/cop/lint/unexpected_block_arity.rb#71
def expected_arity(method); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/unexpected_block_arity.rb#67
def included_method?(name); end
# source://rubocop//lib/rubocop/cop/lint/unexpected_block_arity.rb#59
def methods; end
end
# source://rubocop//lib/rubocop/cop/lint/unexpected_block_arity.rb#42
RuboCop::Cop::Lint::UnexpectedBlockArity::MSG = T.let(T.unsafe(nil), String)
# Checks for using Fixnum or Bignum constant.
#
# @example
#
# # bad
# 1.is_a?(Fixnum)
# 1.is_a?(Bignum)
#
# # good
# 1.is_a?(Integer)
#
# source://rubocop//lib/rubocop/cop/lint/unified_integer.rb#16
class RuboCop::Cop::Lint::UnifiedInteger < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/unified_integer.rb#22
def fixnum_or_bignum_const(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/unified_integer.rb#26
def on_const(node); end
end
# source://rubocop//lib/rubocop/cop/lint/unified_integer.rb#19
RuboCop::Cop::Lint::UnifiedInteger::MSG = T.let(T.unsafe(nil), String)
# Looks for `reduce` or `inject` blocks where the value returned (implicitly or
# explicitly) does not include the accumulator. A block is considered valid as
# long as at least one return value includes the accumulator.
#
# If the accumulator is not included in the return value, then the entire
# block will just return a transformation of the last element value, and
# could be rewritten as such without a loop.
#
# Also catches instances where an index of the accumulator is returned, as
# this may change the type of object being retained.
#
# NOTE: For the purpose of reducing false positives, this cop only flags
# returns in `reduce` blocks where the element is the only variable in
# the expression (since we will not be able to tell what other variables
# relate to via static analysis).
#
# @example
#
# # bad
# (1..4).reduce(0) do |acc, el|
# el * 2
# end
#
# # bad, may raise a NoMethodError after the first iteration
# %w(a b c).reduce({}) do |acc, letter|
# acc[letter] = true
# end
#
# # good
# (1..4).reduce(0) do |acc, el|
# acc + el * 2
# end
#
# # good, element is returned but modified using the accumulator
# values.reduce do |acc, el|
# el << acc
# el
# end
#
# # good, returns the accumulator instead of the index
# %w(a b c).reduce({}) do |acc, letter|
# acc[letter] = true
# acc
# end
#
# # good, at least one branch returns the accumulator
# values.reduce(nil) do |result, value|
# break result if something?
# value
# end
#
# # good, recursive
# keys.reduce(self) { |result, key| result[key] }
#
# # ignored as the return value cannot be determined
# enum.reduce do |acc, el|
# x = foo(acc, el)
# bar(x)
# end
#
# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#65
class RuboCop::Cop::Lint::UnmodifiedReduceAccumulator < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#78
def accumulator_index?(param0 = T.unsafe(nil), param1); end
# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#83
def element_modified?(param0, param1); end
# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#104
def expression_values(param0); end
# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#93
def lvar_used?(param0 = T.unsafe(nil), param1); end
# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#115
def on_block(node); end
# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#115
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#70
def reduce_with_block?(param0 = T.unsafe(nil)); end
private
# Determine if a return value is acceptable for the purposes of this cop
# If it is an expression containing the accumulator, it is acceptable
# Otherwise, it is only unacceptable if it contains the iterated element, since we
# otherwise do not have enough information to prevent false positives.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#191
def acceptable_return?(return_val, element_name); end
# Exclude `begin` nodes inside a `dstr` from being collected by `return_values`
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#199
def allowed_type?(parent_node); end
# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#159
def block_arg_name(node, index); end
# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#142
def check_return_values(block_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#176
def potential_offense?(return_values, block_body, element_name, accumulator_name); end
# Return values in a block are either the value given to next,
# the last line of a multiline block, or the only line of the block
#
# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#128
def return_values(block_body_node); end
# Look for an index of the accumulator being returned, except where the index
# is the element.
# This is always an offense, in order to try to catch potential exceptions
# due to type mismatches
#
# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#167
def returned_accumulator_index(return_values, accumulator_name, element_name); end
# If the accumulator is used in any return value, the node is acceptable since
# the accumulator has a chance to change each iteration
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#183
def returns_accumulator_anywhere?(return_values, accumulator_name); end
end
# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#66
RuboCop::Cop::Lint::UnmodifiedReduceAccumulator::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/unmodified_reduce_accumulator.rb#67
RuboCop::Cop::Lint::UnmodifiedReduceAccumulator::MSG_INDEX = T.let(T.unsafe(nil), String)
# Checks for unreachable code.
# The check are based on the presence of flow of control
# statement in non-final position in `begin` (implicit) blocks.
#
# @example
#
# # bad
# def some_method
# return
# do_something
# end
#
# # bad
# def some_method
# if cond
# return
# else
# return
# end
# do_something
# end
#
# # good
# def some_method
# do_something
# end
#
# source://rubocop//lib/rubocop/cop/lint/unreachable_code.rb#32
class RuboCop::Cop::Lint::UnreachableCode < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/unreachable_code.rb#50
def flow_command?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/unreachable_code.rb#35
def on_begin(node); end
# source://rubocop//lib/rubocop/cop/lint/unreachable_code.rb#35
def on_kwbegin(node); end
private
# source://rubocop//lib/rubocop/cop/lint/unreachable_code.rb#82
def check_case(node); end
# source://rubocop//lib/rubocop/cop/lint/unreachable_code.rb#76
def check_if(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/unreachable_code.rb#60
def flow_expression?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/unreachable_code.rb#33
RuboCop::Cop::Lint::UnreachableCode::MSG = T.let(T.unsafe(nil), String)
# Checks for loops that will have at most one iteration.
#
# A loop that can never reach the second iteration is a possible error in the code.
# In rare cases where only one iteration (or at most one iteration) is intended behavior,
# the code should be refactored to use `if` conditionals.
#
# NOTE: Block methods that are used with ``Enumerable``s are considered to be loops.
#
# `AllowedPatterns` can be used to match against the block receiver in order to allow
# code that would otherwise be registered as an offense (eg. `times` used not in an
# `Enumerable` context).
#
# @example
# # bad
# while node
# do_something(node)
# node = node.parent
# break
# end
#
# # good
# while node
# do_something(node)
# node = node.parent
# end
#
# # bad
# def verify_list(head)
# item = head
# begin
# if verify(item)
# return true
# else
# return false
# end
# end while(item)
# end
#
# # good
# def verify_list(head)
# item = head
# begin
# if verify(item)
# item = item.next
# else
# return false
# end
# end while(item)
#
# true
# end
#
# # bad
# def find_something(items)
# items.each do |item|
# if something?(item)
# return item
# else
# raise NotFoundError
# end
# end
# end
#
# # good
# def find_something(items)
# items.each do |item|
# if something?(item)
# return item
# end
# end
# raise NotFoundError
# end
#
# # bad
# 2.times { raise ArgumentError }
# @example AllowedPatterns: ['(exactly|at_least|at_most)\(\d+\)\.times'] (default)
#
# # good
# exactly(2).times { raise StandardError }
#
# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#86
class RuboCop::Cop::Lint::UnreachableLoop < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedPattern
# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#143
def break_command?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#100
def on_block(node); end
# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#92
def on_for(node); end
# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#104
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#92
def on_until(node); end
# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#92
def on_until_post(node); end
# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#92
def on_while(node); end
# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#92
def on_while_post(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#153
def break_statement?(node); end
# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#119
def check(node); end
# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#176
def check_case(node); end
# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#170
def check_if(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#200
def conditional_continue_keyword?(break_statement); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#110
def loop_method?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#190
def preceded_by_continue_statement?(break_statement); end
# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#130
def statements(node); end
end
# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#90
RuboCop::Cop::Lint::UnreachableLoop::CONTINUE_KEYWORDS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/unreachable_loop.rb#89
RuboCop::Cop::Lint::UnreachableLoop::MSG = T.let(T.unsafe(nil), String)
# Common functionality for cops handling unused arguments.
#
# source://rubocop//lib/rubocop/cop/mixin/unused_argument.rb#7
module RuboCop::Cop::Lint::UnusedArgument
extend ::RuboCop::AST::NodePattern::Macros
# source://rubocop//lib/rubocop/cop/mixin/unused_argument.rb#10
def after_leaving_scope(scope, _variable_table); end
private
# source://rubocop//lib/rubocop/cop/mixin/unused_argument.rb#16
def check_argument(variable); end
end
# Checks for unused block arguments.
#
# @example
# # bad
# do_something do |used, unused|
# puts used
# end
#
# do_something do |bar|
# puts :foo
# end
#
# define_method(:foo) do |bar|
# puts :baz
# end
#
# # good
# do_something do |used, _unused|
# puts used
# end
#
# do_something do
# puts :foo
# end
#
# define_method(:foo) do |_bar|
# puts :baz
# end
# @example IgnoreEmptyBlocks: true (default)
# # good
# do_something { |unused| }
# @example IgnoreEmptyBlocks: false
# # bad
# do_something { |unused| }
# @example AllowUnusedKeywordArguments: false (default)
# # bad
# do_something do |unused: 42|
# foo
# end
# @example AllowUnusedKeywordArguments: true
# # good
# do_something do |unused: 42|
# foo
# end
#
# source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#55
class RuboCop::Cop::Lint::UnusedBlockArgument < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Lint::UnusedArgument
extend ::RuboCop::Cop::AutoCorrector
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#162
def allow_unused_keyword_arguments?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#81
def allowed_block?(variable); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#85
def allowed_keyword_argument?(variable); end
# source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#99
def augment_message(message, variable); end
# source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#65
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#69
def check_argument(variable); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#149
def define_method_call?(variable); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#156
def empty_block?(variable); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#166
def ignore_empty_blocks?; end
# source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#89
def message(variable); end
# source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#132
def message_for_lambda(variable, all_arguments); end
# source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#120
def message_for_normal_block(variable, all_arguments); end
# source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#144
def message_for_underscore_prefix(variable); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#77
def used_block_local?(variable); end
# source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#112
def variable_type(variable); end
class << self
# source://rubocop//lib/rubocop/cop/lint/unused_block_argument.rb#59
def joining_forces; end
end
end
# Checks for unused method arguments.
#
# @example
# # bad
# def some_method(used, unused, _unused_but_allowed)
# puts used
# end
#
# # good
# def some_method(used, _unused, _unused_but_allowed)
# puts used
# end
# @example AllowUnusedKeywordArguments: false (default)
# # bad
# def do_something(used, unused: 42)
# used
# end
# @example AllowUnusedKeywordArguments: true
# # good
# def do_something(used, unused: 42)
# used
# end
# @example IgnoreEmptyMethods: true (default)
# # good
# def do_something(unused)
# end
# @example IgnoreEmptyMethods: false
# # bad
# def do_something(unused)
# end
# @example IgnoreNotImplementedMethods: true (default)
# # good
# def do_something(unused)
# raise NotImplementedError
# end
#
# def do_something_else(unused)
# fail "TODO"
# end
# @example IgnoreNotImplementedMethods: false
# # bad
# def do_something(unused)
# raise NotImplementedError
# end
#
# def do_something_else(unused)
# fail "TODO"
# end
#
# source://rubocop//lib/rubocop/cop/lint/unused_method_argument.rb#61
class RuboCop::Cop::Lint::UnusedMethodArgument < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Lint::UnusedArgument
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/unused_method_argument.rb#66
def not_implemented?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/lint/unused_method_argument.rb#81
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/lint/unused_method_argument.rb#85
def check_argument(variable); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/unused_method_argument.rb#93
def ignored_method?(body); end
# source://rubocop//lib/rubocop/cop/lint/unused_method_argument.rb#98
def message(variable); end
class << self
# source://rubocop//lib/rubocop/cop/lint/unused_method_argument.rb#71
def autocorrect_incompatible_with; end
# source://rubocop//lib/rubocop/cop/lint/unused_method_argument.rb#75
def joining_forces; end
end
end
# Identifies places where `URI.escape` can be replaced by
# `CGI.escape`, `URI.encode_www_form`, or `URI.encode_www_form_component`
# depending on your specific use case.
# Also this cop identifies places where `URI.unescape` can be replaced by
# `CGI.unescape`, `URI.decode_www_form`,
# or `URI.decode_www_form_component` depending on your specific use case.
#
# @example
# # bad
# URI.escape('http://example.com')
# URI.encode('http://example.com')
#
# # good
# CGI.escape('http://example.com')
# URI.encode_www_form([['example', 'param'], ['lang', 'en']])
# URI.encode_www_form(page: 10, locale: 'en')
# URI.encode_www_form_component('http://example.com')
#
# # bad
# URI.unescape(enc_uri)
# URI.decode(enc_uri)
#
# # good
# CGI.unescape(enc_uri)
# URI.decode_www_form(enc_uri)
# URI.decode_www_form_component(enc_uri)
#
# source://rubocop//lib/rubocop/cop/lint/uri_escape_unescape.rb#32
class RuboCop::Cop::Lint::UriEscapeUnescape < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/uri_escape_unescape.rb#57
def on_send(node); end
# source://rubocop//lib/rubocop/cop/lint/uri_escape_unescape.rb#51
def uri_escape_unescape?(param0 = T.unsafe(nil)); end
end
# source://rubocop//lib/rubocop/cop/lint/uri_escape_unescape.rb#33
RuboCop::Cop::Lint::UriEscapeUnescape::ALTERNATE_METHODS_OF_URI_ESCAPE = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/uri_escape_unescape.rb#38
RuboCop::Cop::Lint::UriEscapeUnescape::ALTERNATE_METHODS_OF_URI_UNESCAPE = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/uri_escape_unescape.rb#47
RuboCop::Cop::Lint::UriEscapeUnescape::METHOD_NAMES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/uri_escape_unescape.rb#44
RuboCop::Cop::Lint::UriEscapeUnescape::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/uri_escape_unescape.rb#48
RuboCop::Cop::Lint::UriEscapeUnescape::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Identifies places where `URI.regexp` is obsolete and should not be used.
#
# For Ruby 3.3 or lower, use `URI::DEFAULT_PARSER.make_regexp`.
# For Ruby 3.4 or higher, use `URI::RFC2396_PARSER.make_regexp`.
#
# NOTE: If you need to support both Ruby 3.3 and lower as well as Ruby 3.4 and higher,
# consider manually changing the code as follows:
#
# [source,ruby]
# ----
# defined?(URI::RFC2396_PARSER) ? URI::RFC2396_PARSER : URI::DEFAULT_PARSER
# ----
#
# @example
# # bad
# URI.regexp('http://example.com')
#
# # good - Ruby 3.3 or lower
# URI::DEFAULT_PARSER.make_regexp('http://example.com')
#
# # good - Ruby 3.4 or higher
# URI::RFC2396_PARSER.make_regexp('http://example.com')
#
# source://rubocop//lib/rubocop/cop/lint/uri_regexp.rb#29
class RuboCop::Cop::Lint::UriRegexp < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/uri_regexp.rb#40
def on_send(node); end
# source://rubocop//lib/rubocop/cop/lint/uri_regexp.rb#36
def uri_constant?(param0 = T.unsafe(nil)); end
end
# source://rubocop//lib/rubocop/cop/lint/uri_regexp.rb#32
RuboCop::Cop::Lint::UriRegexp::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/uri_regexp.rb#33
RuboCop::Cop::Lint::UriRegexp::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for redundant access modifiers, including those with no
# code, those which are repeated, and leading `public` modifiers in a
# class or module body. Conditionally-defined methods are considered as
# always being defined, and thus access modifiers guarding such methods
# are not redundant.
#
# This cop has `ContextCreatingMethods` option. The default setting value
# is an empty array that means no method is specified.
# This setting is an array of methods which, when called, are known to
# create its own context in the module's current access context.
#
# It also has `MethodCreatingMethods` option. The default setting value
# is an empty array that means no method is specified.
# This setting is an array of methods which, when called, are known to
# create other methods in the module's current access context.
#
# @example
# # bad
# class Foo
# public # this is redundant (default access is public)
#
# def method
# end
# end
#
# # bad
# class Foo
# # The following is redundant (methods defined on the class'
# # singleton class are not affected by the private modifier)
# private
#
# def self.method3
# end
# end
#
# # bad
# class Foo
# protected
#
# define_method(:method2) do
# end
#
# protected # this is redundant (repeated from previous modifier)
#
# [1,2,3].each do |i|
# define_method("foo#{i}") do
# end
# end
# end
#
# # bad
# class Foo
# private # this is redundant (no following methods are defined)
# end
#
# # good
# class Foo
# private # this is not redundant (a method is defined)
#
# def method2
# end
# end
#
# # good
# class Foo
# # The following is not redundant (conditionally defined methods are
# # considered as always defining a method)
# private
#
# if condition?
# def method
# end
# end
# end
#
# # good
# class Foo
# protected # this is not redundant (a method is defined)
#
# define_method(:method2) do
# end
# end
# @example ContextCreatingMethods: concerning
# # Lint/UselessAccessModifier:
# # ContextCreatingMethods:
# # - concerning
#
# # good
# require 'active_support/concern'
# class Foo
# concerning :Bar do
# def some_public_method
# end
#
# private
#
# def some_private_method
# end
# end
#
# # this is not redundant because `concerning` created its own context
# private
#
# def some_other_private_method
# end
# end
# @example MethodCreatingMethods: delegate
# # Lint/UselessAccessModifier:
# # MethodCreatingMethods:
# # - delegate
#
# # good
# require 'active_support/core_ext/module/delegation'
# class Foo
# # this is not redundant because `delegate` creates methods
# private
#
# delegate :method_a, to: :method_b
# end
#
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#127
class RuboCop::Cop::Lint::UselessAccessModifier < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#166
def class_or_instance_eval?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#161
def dynamic_method_definition?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#139
def on_block(node); end
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#133
def on_class(node); end
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#133
def on_module(node); end
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#139
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#133
def on_sclass(node); end
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#156
def static_method_definition?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#182
def access_modifier?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#280
def any_context_creating_methods?(child); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#257
def any_method_definition?(child); end
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#149
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#196
def check_child_nodes(node, unused, cur_vis); end
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#226
def check_new_visibility(node, unused, new_vis, cur_vis); end
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#170
def check_node(node); end
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#186
def check_scope(node); end
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#215
def check_send_node(node, cur_vis, unused); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#274
def eval_call?(child); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#247
def included_block?(block_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#251
def method_definition?(child); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#270
def start_of_new_scope?(child); end
end
# source://rubocop//lib/rubocop/cop/lint/useless_access_modifier.rb#131
RuboCop::Cop::Lint::UselessAccessModifier::MSG = T.let(T.unsafe(nil), String)
# Checks for every useless assignment to local variable in every
# scope.
# The basic idea for this cop was from the warning of `ruby -cw`:
#
# [source,console]
# ----
# assigned but unused variable - foo
# ----
#
# Currently this cop has advanced logic that detects unreferenced
# reassignments and properly handles varied cases such as branch, loop,
# rescue, ensure, etc.
#
# This cop's autocorrection avoids cases like `a ||= 1` because removing assignment from
# operator assignment can cause NameError if this assignment has been used to declare
# a local variable. For example, replacing `a ||= 1` with `a || 1` may cause
# "undefined local variable or method `a' for main:Object (NameError)".
#
# NOTE: Given the assignment `foo = 1, bar = 2`, removing unused variables
# can lead to a syntax error, so this case is not autocorrected.
#
# @example
#
# # bad
# def some_method
# some_var = 1
# do_something
# end
#
# # good
# def some_method
# some_var = 1
# do_something(some_var)
# end
#
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#40
class RuboCop::Cop::Lint::UselessAssignment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#51
def after_leaving_scope(scope, _variable_table); end
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#165
def autocorrect(corrector, assignment); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#106
def chained_assignment?(node); end
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#56
def check_for_unused_assignments(variable); end
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#149
def collect_variable_like_names(scope); end
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#82
def message_for_useless_assignment(assignment); end
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#110
def message_specification(assignment, variable); end
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#120
def multiple_assignment_message(variable_name); end
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#88
def offense_range(assignment); end
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#125
def operator_assignment_message(scope, assignment); end
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#182
def remove_exception_assignment_part(corrector, node); end
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#206
def remove_local_variable_assignment_part(corrector, node); end
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#195
def remove_trailing_character_from_operator(corrector, node); end
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#191
def rename_variable_with_underscore(corrector, node); end
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#199
def replace_named_capture_group_with_non_capturing_group(corrector, node, variable_name); end
# TODO: More precise handling (rescue, ensure, nested begin, etc.)
#
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#139
def return_value_node_of_scope(scope); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#96
def sequential_assignment?(node); end
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#132
def similar_name_message(variable); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#158
def variable_like_method_invocation?(node); end
class << self
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#47
def joining_forces; end
end
end
# source://rubocop//lib/rubocop/cop/lint/useless_assignment.rb#45
RuboCop::Cop::Lint::UselessAssignment::MSG = T.let(T.unsafe(nil), String)
# Checks for useless `else` in `begin..end` without `rescue`.
#
# NOTE: This syntax is no longer valid on Ruby 2.6 or higher.
#
# @example
#
# # bad
# begin
# do_something
# else
# do_something_else # This will never be run.
# end
#
# # good
# begin
# do_something
# rescue
# handle_errors
# else
# do_something_else
# end
#
# source://rubocop//lib/rubocop/cop/lint/useless_else_without_rescue.rb#27
class RuboCop::Cop::Lint::UselessElseWithoutRescue < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/useless_else_without_rescue.rb#30
def on_new_investigation; end
end
# source://rubocop//lib/rubocop/cop/lint/useless_else_without_rescue.rb#28
RuboCop::Cop::Lint::UselessElseWithoutRescue::MSG = T.let(T.unsafe(nil), String)
# Checks for useless method definitions, specifically: empty constructors
# and methods just delegating to `super`.
#
# @example
# # bad
# def initialize
# super
# end
#
# def method
# super
# end
#
# # good - with default arguments
# def initialize(x = Object.new)
# super
# end
#
# # good
# def initialize
# super
# initialize_internals
# end
#
# def method(*args)
# super(:extra_arg, *args)
# end
#
# source://rubocop//lib/rubocop/cop/lint/useless_method_definition.rb#38
class RuboCop::Cop::Lint::UselessMethodDefinition < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/useless_method_definition.rb#43
def on_def(node); end
# source://rubocop//lib/rubocop/cop/lint/useless_method_definition.rb#43
def on_defs(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_method_definition.rb#65
def delegating?(node, def_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_method_definition.rb#57
def method_definition_with_modifier?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_method_definition.rb#61
def use_rest_or_optional_args?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/useless_method_definition.rb#41
RuboCop::Cop::Lint::UselessMethodDefinition::MSG = T.let(T.unsafe(nil), String)
# Certain numeric operations have no impact, being:
# Adding or subtracting 0, multiplying or dividing by 1 or raising to the power of 1.
# These are probably leftover from debugging, or are mistakes.
#
# @example
#
# # bad
# x + 0
# x - 0
# x * 1
# x / 1
# x ** 1
#
# # good
# x
#
# # bad
# x += 0
# x -= 0
# x *= 1
# x /= 1
# x **= 1
#
# # good
# x = x
#
# source://rubocop//lib/rubocop/cop/lint/useless_numeric_operation.rb#32
class RuboCop::Cop::Lint::UselessNumericOperation < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/useless_numeric_operation.rb#54
def on_op_asgn(node); end
# source://rubocop//lib/rubocop/cop/lint/useless_numeric_operation.rb#43
def on_send(node); end
# source://rubocop//lib/rubocop/cop/lint/useless_numeric_operation.rb#41
def useless_abbreviated_assignment?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/useless_numeric_operation.rb#38
def useless_operation?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_numeric_operation.rb#67
def useless?(operation, number); end
end
# source://rubocop//lib/rubocop/cop/lint/useless_numeric_operation.rb#34
RuboCop::Cop::Lint::UselessNumericOperation::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/useless_numeric_operation.rb#35
RuboCop::Cop::Lint::UselessNumericOperation::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for useless `rescue`s, which only reraise rescued exceptions.
#
# @example
# # bad
# def foo
# do_something
# rescue
# raise
# end
#
# # bad
# def foo
# do_something
# rescue => e
# raise # or 'raise e', or 'raise $!', or 'raise $ERROR_INFO'
# end
#
# # good
# def foo
# do_something
# rescue
# do_cleanup
# raise
# end
#
# # bad (latest rescue)
# def foo
# do_something
# rescue ArgumentError
# # noop
# rescue
# raise
# end
#
# # good (not the latest rescue)
# def foo
# do_something
# rescue ArgumentError
# raise
# rescue
# # noop
# end
#
# source://rubocop//lib/rubocop/cop/lint/useless_rescue.rb#49
class RuboCop::Cop::Lint::UselessRescue < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/lint/useless_rescue.rb#52
def on_rescue(node); end
private
# source://rubocop//lib/rubocop/cop/lint/useless_rescue.rb#83
def exception_objects(resbody_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_rescue.rb#60
def only_reraising?(resbody_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_rescue.rb#75
def use_exception_variable_in_ensure?(resbody_node); end
end
# source://rubocop//lib/rubocop/cop/lint/useless_rescue.rb#50
RuboCop::Cop::Lint::UselessRescue::MSG = T.let(T.unsafe(nil), String)
# Looks for `ruby2_keywords` calls for methods that do not need it.
#
# `ruby2_keywords` should only be called on methods that accept an argument splat
# (`\*args`) but do not explicit keyword arguments (`k:` or `k: true`) or
# a keyword splat (`**kwargs`).
#
# @example
# # good (splat argument without keyword arguments)
# ruby2_keywords def foo(*args); end
#
# # bad (no arguments)
# ruby2_keywords def foo; end
#
# # good
# def foo; end
#
# # bad (positional argument)
# ruby2_keywords def foo(arg); end
#
# # good
# def foo(arg); end
#
# # bad (double splatted argument)
# ruby2_keywords def foo(**args); end
#
# # good
# def foo(**args); end
#
# # bad (keyword arguments)
# ruby2_keywords def foo(i:, j:); end
#
# # good
# def foo(i:, j:); end
#
# # bad (splat argument with keyword arguments)
# ruby2_keywords def foo(*args, i:, j:); end
#
# # good
# def foo(*args, i:, j:); end
#
# # bad (splat argument with double splat)
# ruby2_keywords def foo(*args, **kwargs); end
#
# # good
# def foo(*args, **kwargs); end
#
# # bad (ruby2_keywords given a symbol)
# def foo; end
# ruby2_keywords :foo
#
# # good
# def foo; end
#
# # bad (ruby2_keywords with dynamic method)
# define_method(:foo) { |arg| }
# ruby2_keywords :foo
#
# # good
# define_method(:foo) { |arg| }
#
# source://rubocop//lib/rubocop/cop/lint/useless_ruby2_keywords.rb#66
class RuboCop::Cop::Lint::UselessRuby2Keywords < ::RuboCop::Cop::Base
# Looks for statically or dynamically defined methods with a given name
#
# source://rubocop//lib/rubocop/cop/lint/useless_ruby2_keywords.rb#72
def method_definition(param0 = T.unsafe(nil), param1); end
# source://rubocop//lib/rubocop/cop/lint/useless_ruby2_keywords.rb#79
def on_send(node); end
private
# `ruby2_keywords` is only allowed if there's a `restarg` and no keyword arguments
#
# source://rubocop//lib/rubocop/cop/lint/useless_ruby2_keywords.rb#118
def allowed_arguments(arguments); end
# source://rubocop//lib/rubocop/cop/lint/useless_ruby2_keywords.rb#109
def find_method_definition(node, method_name); end
# source://rubocop//lib/rubocop/cop/lint/useless_ruby2_keywords.rb#91
def inspect_def(node, def_node); end
# source://rubocop//lib/rubocop/cop/lint/useless_ruby2_keywords.rb#97
def inspect_sym(node, sym_node); end
end
# source://rubocop//lib/rubocop/cop/lint/useless_ruby2_keywords.rb#67
RuboCop::Cop::Lint::UselessRuby2Keywords::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/useless_ruby2_keywords.rb#68
RuboCop::Cop::Lint::UselessRuby2Keywords::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for setter call to local variable as the final
# expression of a function definition.
#
# @example
#
# # bad
# def something
# x = Something.new
# x.attr = 5
# end
#
# # good
# def something
# x = Something.new
# x.attr = 5
# x
# end
#
# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#31
class RuboCop::Cop::Lint::UselessSetterCall < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#37
def on_def(node); end
# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#37
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#59
def setter_call_to_local_variable?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#63
def last_expression(body); end
end
# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#35
RuboCop::Cop::Lint::UselessSetterCall::ASSIGNMENT_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#34
RuboCop::Cop::Lint::UselessSetterCall::MSG = T.let(T.unsafe(nil), String)
# This class tracks variable assignments in a method body
# and if a variable contains object passed as argument at the end of
# the method.
#
# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#72
class RuboCop::Cop::Lint::UselessSetterCall::MethodVariableTracker
# @return [MethodVariableTracker] a new instance of MethodVariableTracker
#
# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#73
def initialize(body_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#159
def constructor?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#78
def contain_local_object?(variable_name); end
# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#148
def process_assignment(asgn_node, rhs_node); end
# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#96
def process_assignment_node(node); end
# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#138
def process_binary_operator_assignment(op_asgn_node); end
# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#129
def process_logical_operator_assignment(asgn_node); end
# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#110
def process_multiple_assignment(masgn_node); end
# source://rubocop//lib/rubocop/cop/lint/useless_setter_call.rb#88
def scan(node, &block); end
end
# Checks for uses of `Integer#times` that will never yield
# (when the integer ``<= 0``) or that will only ever yield once
# (`1.times`).
#
# @example
# # bad
# -5.times { do_something }
# 0.times { do_something }
# 1.times { do_something }
# 1.times { |i| do_something(i) }
#
# # good
# do_something
# do_something(1)
#
# source://rubocop//lib/rubocop/cop/lint/useless_times.rb#24
class RuboCop::Cop::Lint::UselessTimes < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/useless_times.rb#37
def block_arg(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/lint/useless_times.rb#42
def block_reassigns_arg?(param0, param1); end
# source://rubocop//lib/rubocop/cop/lint/useless_times.rb#46
def on_send(node); end
# source://rubocop//lib/rubocop/cop/lint/useless_times.rb#32
def times_call?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/lint/useless_times.rb#62
def autocorrect(corrector, count, node, proc_name); end
# source://rubocop//lib/rubocop/cop/lint/useless_times.rb#84
def autocorrect_block(corrector, node); end
# source://rubocop//lib/rubocop/cop/lint/useless_times.rb#80
def autocorrect_block_pass(corrector, node, proc_name); end
# source://rubocop//lib/rubocop/cop/lint/useless_times.rb#94
def fix_indentation(source, range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_times.rb#72
def never_process?(count, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/useless_times.rb#106
def own_line?(node); end
# source://rubocop//lib/rubocop/cop/lint/useless_times.rb#76
def remove_node(corrector, node); end
end
# source://rubocop//lib/rubocop/cop/lint/useless_times.rb#28
RuboCop::Cop::Lint::UselessTimes::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/useless_times.rb#29
RuboCop::Cop::Lint::UselessTimes::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for operators, variables, literals, lambda, proc and nonmutating
# methods used in void context.
#
# `each` blocks are allowed to prevent false positives.
# For example, the expression inside the `each` block below.
# It's not void, especially when the receiver is an `Enumerator`:
#
# [source,ruby]
# ----
# enumerator = [1, 2, 3].filter
# enumerator.each { |item| item >= 2 } #=> [2, 3]
# ----
#
# @example CheckForMethodsWithNoSideEffects: false (default)
# # bad
# def some_method
# some_num * 10
# do_something
# end
#
# def some_method(some_var)
# some_var
# do_something
# end
# @example CheckForMethodsWithNoSideEffects: true
# # bad
# def some_method(some_array)
# some_array.sort
# do_something(some_array)
# end
#
# # good
# def some_method
# do_something
# some_num * 10
# end
#
# def some_method(some_var)
# do_something
# some_var
# end
#
# def some_method(some_array)
# some_array.sort!
# do_something(some_array)
# end
#
# source://rubocop//lib/rubocop/cop/lint/void.rb#53
class RuboCop::Cop::Lint::Void < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/lint/void.rb#90
def on_begin(node); end
# source://rubocop//lib/rubocop/cop/lint/void.rb#81
def on_block(node); end
# source://rubocop//lib/rubocop/cop/lint/void.rb#95
def on_ensure(node); end
# source://rubocop//lib/rubocop/cop/lint/void.rb#90
def on_kwbegin(node); end
# source://rubocop//lib/rubocop/cop/lint/void.rb#81
def on_numblock(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/void.rb#258
def all_keys_entirely_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/void.rb#262
def all_values_entirely_literal?(node); end
# source://rubocop//lib/rubocop/cop/lint/void.rb#236
def autocorrect_nonmutating_send(corrector, node, suggestion); end
# source://rubocop//lib/rubocop/cop/lint/void.rb#230
def autocorrect_void_expression(corrector, node); end
# source://rubocop//lib/rubocop/cop/lint/void.rb#218
def autocorrect_void_op(corrector, node); end
# source://rubocop//lib/rubocop/cop/lint/void.rb#101
def check_begin(node); end
# source://rubocop//lib/rubocop/cop/lint/void.rb#198
def check_ensure(node); end
# source://rubocop//lib/rubocop/cop/lint/void.rb#115
def check_expression(expr); end
# source://rubocop//lib/rubocop/cop/lint/void.rb#156
def check_literal(node); end
# source://rubocop//lib/rubocop/cop/lint/void.rb#180
def check_nonmutating(node); end
# source://rubocop//lib/rubocop/cop/lint/void.rb#164
def check_self(node); end
# source://rubocop//lib/rubocop/cop/lint/void.rb#138
def check_var(node); end
# source://rubocop//lib/rubocop/cop/lint/void.rb#172
def check_void_expression(node); end
# source://rubocop//lib/rubocop/cop/lint/void.rb#127
def check_void_op(node, &block); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/void.rb#245
def entirely_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/lint/void.rb#211
def in_void_context?(node); end
end
# source://rubocop//lib/rubocop/cop/lint/void.rb#66
RuboCop::Cop::Lint::Void::BINARY_OPERATORS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/void.rb#60
RuboCop::Cop::Lint::Void::CONST_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/void.rb#63
RuboCop::Cop::Lint::Void::EXPRESSION_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/void.rb#61
RuboCop::Cop::Lint::Void::LIT_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/void.rb#76
RuboCop::Cop::Lint::Void::METHODS_REPLACEABLE_BY_EACH = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/void.rb#78
RuboCop::Cop::Lint::Void::NONMUTATING_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/void.rb#69
RuboCop::Cop::Lint::Void::NONMUTATING_METHODS_WITH_BANG_VERSION = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/void.rb#64
RuboCop::Cop::Lint::Void::NONMUTATING_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/void.rb#68
RuboCop::Cop::Lint::Void::OPERATORS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/void.rb#58
RuboCop::Cop::Lint::Void::OP_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/void.rb#62
RuboCop::Cop::Lint::Void::SELF_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/lint/void.rb#67
RuboCop::Cop::Lint::Void::UNARY_OPERATORS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/lint/void.rb#59
RuboCop::Cop::Lint::Void::VAR_MSG = T.let(T.unsafe(nil), String)
# Common functionality for obtaining source ranges from regexp matches
#
# source://rubocop//lib/rubocop/cop/mixin/match_range.rb#6
module RuboCop::Cop::MatchRange
include ::RuboCop::Cop::RangeHelp
private
# Return a new `Range` covering the first matching group number for each
# match of `regex` inside `range`
#
# source://rubocop//lib/rubocop/cop/mixin/match_range.rb#13
def each_match_range(range, regex); end
# For a `match` inside `range`, return a new `Range` covering the match
#
# source://rubocop//lib/rubocop/cop/mixin/match_range.rb#18
def match_range(range, match); end
end
# Message Annotator class annotates a basic offense message
# based on params passed into initializer.
#
# #=> 'Cop/CopName: message (http://example.org/styleguide)'
#
# @example
# RuboCop::Cop::MessageAnnotator.new(
# config, cop_name, cop_config, @options
# ).annotate('message')
# @see #initialize
#
# source://rubocop//lib/rubocop/cop/message_annotator.rb#15
class RuboCop::Cop::MessageAnnotator
# @option cop_config
# @option cop_config
# @option cop_config
# @option options
# @option options
# @option options
# @option options
# @param config [RuboCop::Config] Check configs for all cops
# @note Message Annotator specifically checks the
# following config options for_all_cops
# :StyleGuideBaseURL [String] URL for styleguide
# :DisplayStyleGuide [Boolean] Include styleguide and reference URLs
# :ExtraDetails [Boolean] Include cop details
# :DisplayCopNames [Boolean] Include cop name
# @param cop_name [String] for specific cop name
# @param cop_config [Hash] configs for specific cop, from config#for_cop
# @param options [Hash, nil] optional
# @return [MessageAnnotator] a new instance of MessageAnnotator
#
# source://rubocop//lib/rubocop/cop/message_annotator.rb#47
def initialize(config, cop_name, cop_config, options); end
# Returns the annotated message,
# based on params passed into initializer
#
# @return [String] annotated message
#
# source://rubocop//lib/rubocop/cop/message_annotator.rb#58
def annotate(message); end
# Returns the value of attribute config.
#
# source://rubocop//lib/rubocop/cop/message_annotator.rb#16
def config; end
# Returns the value of attribute cop_config.
#
# source://rubocop//lib/rubocop/cop/message_annotator.rb#16
def cop_config; end
# Returns the value of attribute cop_name.
#
# source://rubocop//lib/rubocop/cop/message_annotator.rb#16
def cop_name; end
# Returns the value of attribute options.
#
# source://rubocop//lib/rubocop/cop/message_annotator.rb#16
def options; end
# source://rubocop//lib/rubocop/cop/message_annotator.rb#68
def urls; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/message_annotator.rb#111
def debug?; end
# source://rubocop//lib/rubocop/cop/message_annotator.rb#124
def details; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/message_annotator.rb#115
def display_cop_names?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/message_annotator.rb#98
def display_style_guide?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/message_annotator.rb#107
def extra_details?; end
# source://rubocop//lib/rubocop/cop/message_annotator.rb#102
def reference_urls; end
# Returns the base style guide URL from AllCops or the specific department
#
# @return [String] style guide URL
#
# source://rubocop//lib/rubocop/cop/message_annotator.rb#91
def style_guide_base_url; end
# source://rubocop//lib/rubocop/cop/message_annotator.rb#74
def style_guide_url; end
class << self
# Returns the value of attribute style_guide_urls.
#
# source://rubocop//lib/rubocop/cop/message_annotator.rb#21
def style_guide_urls; end
end
end
# This module handles measurement and reporting of complexity in methods.
#
# @api private
#
# source://rubocop//lib/rubocop/cop/mixin/method_complexity.rb#8
module RuboCop::Cop::MethodComplexity
include ::RuboCop::Cop::AllowedMethods
include ::RuboCop::Cop::AllowedPattern
include ::RuboCop::Cop::Metrics::Utils::RepeatedCsendDiscount
extend ::RuboCop::AST::NodePattern::Macros
extend ::RuboCop::ExcludeLimit
# source://rubocop//lib/rubocop/cop/mixin/method_complexity.rb#37
def define_method?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/exclude_limit.rb#11
def max=(value); end
# @api private
#
# source://rubocop//lib/rubocop/cop/mixin/method_complexity.rb#24
def on_block(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/mixin/method_complexity.rb#17
def on_def(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/mixin/method_complexity.rb#17
def on_defs(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/mixin/method_complexity.rb#24
def on_numblock(node); end
private
# @api private
#
# source://rubocop//lib/rubocop/cop/mixin/method_complexity.rb#42
def check_complexity(node, method_name); end
# @api private
#
# source://rubocop//lib/rubocop/cop/mixin/method_complexity.rb#61
def complexity(body); end
# @api private
#
# source://rubocop//lib/rubocop/cop/mixin/method_complexity.rb#73
def location(node); end
end
# Common code for cops that deal with preferred methods.
#
# source://rubocop//lib/rubocop/cop/mixin/method_preference.rb#6
module RuboCop::Cop::MethodPreference
private
# source://rubocop//lib/rubocop/cop/mixin/method_preference.rb#25
def default_cop_config; end
# source://rubocop//lib/rubocop/cop/mixin/method_preference.rb#9
def preferred_method(method); end
# source://rubocop//lib/rubocop/cop/mixin/method_preference.rb#13
def preferred_methods; end
end
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb#5
module RuboCop::Cop::Metrics; end
# Checks that the ABC size of methods is not higher than the
# configured maximum. The ABC size is based on assignments, branches
# (method calls), and conditions. See http://c2.com/cgi/wiki?AbcMetric
# and https://en.wikipedia.org/wiki/ABC_Software_Metric.
#
# Interpreting ABC size:
#
# * ``<= 17`` satisfactory
# * `18..30` unsatisfactory
# * `>` 30 dangerous
#
# You can have repeated "attributes" calls count as a single "branch".
# For this purpose, attributes are any method with no argument; no attempt
# is meant to distinguish actual `attr_reader` from other methods.
#
# This cop also takes into account `AllowedMethods` (defaults to `[]`)
# And `AllowedPatterns` (defaults to `[]`)
#
# @example CountRepeatedAttributes: false (default is true)
#
# # `model` and `current_user`, referenced 3 times each,
# # are each counted as only 1 branch each if
# # `CountRepeatedAttributes` is set to 'false'
#
# def search
# @posts = model.active.visible_by(current_user)
# .search(params[:q])
# @posts = model.some_process(@posts, current_user)
# @posts = model.another_process(@posts, current_user)
#
# render 'pages/search/page'
# end
#
# source://rubocop//lib/rubocop/cop/metrics/abc_size.rb#39
class RuboCop::Cop::Metrics::AbcSize < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedMethods
include ::RuboCop::Cop::AllowedPattern
include ::RuboCop::Cop::Metrics::Utils::RepeatedCsendDiscount
include ::RuboCop::Cop::MethodComplexity
private
# source://rubocop//lib/rubocop/cop/metrics/abc_size.rb#47
def complexity(node); end
end
# source://rubocop//lib/rubocop/cop/metrics/abc_size.rb#42
RuboCop::Cop::Metrics::AbcSize::MSG = T.let(T.unsafe(nil), String)
# Checks if the length of a block exceeds some maximum value.
# Comment lines can optionally be ignored.
# The maximum allowed length is configurable.
# The cop can be configured to ignore blocks passed to certain methods.
#
# You can set constructs you want to fold with `CountAsOne`.
#
# Available are: 'array', 'hash', 'heredoc', and 'method_call'.
# Each construct will be counted as one line regardless of its actual size.
#
# NOTE: This cop does not apply for `Struct` definitions.
#
# NOTE: The `ExcludedMethods` configuration is deprecated and only kept
# for backwards compatibility. Please use `AllowedMethods` and `AllowedPatterns`
# instead. By default, there are no methods to allowed.
#
# @example CountAsOne: ['array', 'hash', 'heredoc', 'method_call']
#
# something do
# array = [ # +1
# 1,
# 2
# ]
#
# hash = { # +1
# key: 'value'
# }
#
# msg = <<~HEREDOC # +1
# Heredoc
# content.
# HEREDOC
#
# foo( # +1
# 1,
# 2
# )
# end # 4 points
#
# source://rubocop//lib/rubocop/cop/metrics/block_length.rb#45
class RuboCop::Cop::Metrics::BlockLength < ::RuboCop::Cop::Base
include ::RuboCop::Cop::CodeLength
include ::RuboCop::Cop::AllowedMethods
include ::RuboCop::Cop::AllowedPattern
# source://rubocop//lib/rubocop/cop/metrics/block_length.rb#52
def on_block(node); end
# source://rubocop//lib/rubocop/cop/metrics/block_length.rb#52
def on_numblock(node); end
private
# source://rubocop//lib/rubocop/cop/metrics/block_length.rb#81
def cop_label; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/block_length.rb#63
def method_receiver_excluded?(node); end
end
# source://rubocop//lib/rubocop/cop/metrics/block_length.rb#50
RuboCop::Cop::Metrics::BlockLength::LABEL = T.let(T.unsafe(nil), String)
# Checks for excessive nesting of conditional and looping constructs.
#
# You can configure if blocks are considered using the `CountBlocks` and `CountModifierForms`
# options. When both are set to `false` (the default) blocks and modifier forms are not
# counted towards the nesting level. Set them to `true` to include these in the nesting level
# calculation as well.
#
# The maximum level of nesting allowed is configurable.
#
# source://rubocop//lib/rubocop/cop/metrics/block_nesting.rb#14
class RuboCop::Cop::Metrics::BlockNesting < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/exclude_limit.rb#11
def max=(value); end
# source://rubocop//lib/rubocop/cop/metrics/block_nesting.rb#19
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/metrics/block_nesting.rb#28
def check_nesting_level(node, max, current_level); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/block_nesting.rb#52
def consider_node?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/block_nesting.rb#62
def count_blocks?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/block_nesting.rb#44
def count_if_block?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/block_nesting.rb#66
def count_modifier_forms?; end
# source://rubocop//lib/rubocop/cop/metrics/block_nesting.rb#58
def message(max); end
end
# source://rubocop//lib/rubocop/cop/metrics/block_nesting.rb#15
RuboCop::Cop::Metrics::BlockNesting::NESTING_BLOCKS = T.let(T.unsafe(nil), Array)
# Checks if the length of a class exceeds some maximum value.
# Comment lines can optionally be ignored.
# The maximum allowed length is configurable.
#
# You can set constructs you want to fold with `CountAsOne`.
#
# Available are: 'array', 'hash', 'heredoc', and 'method_call'.
# Each construct will be counted as one line regardless of its actual size.
#
# NOTE: This cop also applies for `Struct` definitions.
#
# @example CountAsOne: ['array', 'hash', 'heredoc', 'method_call']
#
# class Foo
# ARRAY = [ # +1
# 1,
# 2
# ]
#
# HASH = { # +1
# key: 'value'
# }
#
# MSG = <<~HEREDOC # +1
# Heredoc
# content.
# HEREDOC
#
# foo( # +1
# 1,
# 2
# )
# end # 4 points
#
# source://rubocop//lib/rubocop/cop/metrics/class_length.rb#40
class RuboCop::Cop::Metrics::ClassLength < ::RuboCop::Cop::Base
include ::RuboCop::Cop::CodeLength
# source://rubocop//lib/rubocop/cop/metrics/class_length.rb#53
def on_casgn(node); end
# source://rubocop//lib/rubocop/cop/metrics/class_length.rb#43
def on_class(node); end
# source://rubocop//lib/rubocop/cop/metrics/class_length.rb#47
def on_sclass(node); end
private
# source://rubocop//lib/rubocop/cop/metrics/class_length.rb#71
def message(length, max_length); end
end
# Checks for literals with extremely many entries. This is indicative of
# configuration or data that may be better extracted somewhere else, like
# a database, fetched from an API, or read from a non-code file (CSV,
# JSON, YAML, etc.).
#
# @example
# # bad
# # Huge Array literal
# [1, 2, '...', 999_999_999]
#
# # bad
# # Huge Hash literal
# { 1 => 1, 2 => 2, '...' => '...', 999_999_999 => 999_999_999}
#
# # bad
# # Huge Set "literal"
# Set[1, 2, '...', 999_999_999]
#
# # good
# # Reasonably sized Array literal
# [1, 2, '...', 10]
#
# # good
# # Reading huge Array from external data source
# # File.readlines('numbers.txt', chomp: true).map!(&:to_i)
#
# # good
# # Reasonably sized Hash literal
# { 1 => 1, 2 => 2, '...' => '...', 10 => 10}
#
# # good
# # Reading huge Hash from external data source
# CSV.foreach('numbers.csv', headers: true).each_with_object({}) do |row, hash|
# hash[row["key"].to_i] = row["value"].to_i
# end
#
# # good
# # Reasonably sized Set "literal"
# Set[1, 2, '...', 10]
#
# # good
# # Reading huge Set from external data source
# SomeFramework.config_for(:something)[:numbers].to_set
#
# source://rubocop//lib/rubocop/cop/metrics/collection_literal_length.rb#50
class RuboCop::Cop::Metrics::CollectionLiteralLength < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/metrics/collection_literal_length.rb#55
def on_array(node); end
# source://rubocop//lib/rubocop/cop/metrics/collection_literal_length.rb#55
def on_hash(node); end
# source://rubocop//lib/rubocop/cop/metrics/collection_literal_length.rb#60
def on_index(node); end
# source://rubocop//lib/rubocop/cop/metrics/collection_literal_length.rb#64
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/metrics/collection_literal_length.rb#70
def collection_threshold; end
end
# source://rubocop//lib/rubocop/cop/metrics/collection_literal_length.rb#51
RuboCop::Cop::Metrics::CollectionLiteralLength::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/metrics/collection_literal_length.rb#53
RuboCop::Cop::Metrics::CollectionLiteralLength::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks that the cyclomatic complexity of methods is not higher
# than the configured maximum. The cyclomatic complexity is the number of
# linearly independent paths through a method. The algorithm counts
# decision points and adds one.
#
# An if statement (or unless or ?:) increases the complexity by one. An
# else branch does not, since it doesn't add a decision point. The &&
# operator (or keyword and) can be converted to a nested if statement,
# and ||/or is shorthand for a sequence of ifs, so they also add one.
# Loops can be said to have an exit condition, so they add one.
# Blocks that are calls to builtin iteration methods
# (e.g. `ary.map{...}`) also add one, others are ignored.
#
# @example
#
# def each_child_node(*types) # count begins: 1
# unless block_given? # unless: +1
# return to_enum(__method__, *types)
# end
#
# children.each do |child| # each{}: +1
# next unless child.is_a?(Node) # unless: +1
#
# yield child if types.empty? || # if: +1, ||: +1
# types.include?(child.type)
# end
#
# self
# end # total: 6
#
# source://rubocop//lib/rubocop/cop/metrics/cyclomatic_complexity.rb#35
class RuboCop::Cop::Metrics::CyclomaticComplexity < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedMethods
include ::RuboCop::Cop::AllowedPattern
include ::RuboCop::Cop::Metrics::Utils::RepeatedCsendDiscount
include ::RuboCop::Cop::MethodComplexity
include ::RuboCop::Cop::Metrics::Utils::IteratingBlock
private
# source://rubocop//lib/rubocop/cop/metrics/cyclomatic_complexity.rb#45
def complexity_score_for(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/cyclomatic_complexity.rb#52
def count_block?(block); end
end
# source://rubocop//lib/rubocop/cop/metrics/cyclomatic_complexity.rb#40
RuboCop::Cop::Metrics::CyclomaticComplexity::COUNTED_NODES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/metrics/cyclomatic_complexity.rb#39
RuboCop::Cop::Metrics::CyclomaticComplexity::MSG = T.let(T.unsafe(nil), String)
# Checks if the length of a method exceeds some maximum value.
# Comment lines can optionally be allowed.
# The maximum allowed length is configurable.
#
# You can set constructs you want to fold with `CountAsOne`.
#
# Available are: 'array', 'hash', 'heredoc', and 'method_call'.
# Each construct will be counted as one line regardless of its actual size.
#
# NOTE: The `ExcludedMethods` and `IgnoredMethods` configuration is
# deprecated and only kept for backwards compatibility.
# Please use `AllowedMethods` and `AllowedPatterns` instead.
# By default, there are no methods to allowed.
#
# @example CountAsOne: ['array', 'hash', 'heredoc', 'method_call']
#
# def m
# array = [ # +1
# 1,
# 2
# ]
#
# hash = { # +1
# key: 'value'
# }
#
# <<~HEREDOC # +1
# Heredoc
# content.
# HEREDOC
#
# foo( # +1
# 1,
# 2
# )
# end # 4 points
#
# source://rubocop//lib/rubocop/cop/metrics/method_length.rb#43
class RuboCop::Cop::Metrics::MethodLength < ::RuboCop::Cop::Base
include ::RuboCop::Cop::CodeLength
include ::RuboCop::Cop::AllowedMethods
include ::RuboCop::Cop::AllowedPattern
# source://rubocop//lib/rubocop/cop/metrics/method_length.rb#57
def on_block(node); end
# source://rubocop//lib/rubocop/cop/metrics/method_length.rb#50
def on_def(node); end
# source://rubocop//lib/rubocop/cop/metrics/method_length.rb#50
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/metrics/method_length.rb#57
def on_numblock(node); end
private
# source://rubocop//lib/rubocop/cop/metrics/method_length.rb#66
def cop_label; end
end
# source://rubocop//lib/rubocop/cop/metrics/method_length.rb#48
RuboCop::Cop::Metrics::MethodLength::LABEL = T.let(T.unsafe(nil), String)
# Checks if the length of a module exceeds some maximum value.
# Comment lines can optionally be ignored.
# The maximum allowed length is configurable.
#
# You can set constructs you want to fold with `CountAsOne`.
#
# Available are: 'array', 'hash', 'heredoc', and 'method_call'.
# Each construct will be counted as one line regardless of its actual size.
#
# @example CountAsOne: ['array', 'hash', 'heredoc', 'method_call']
#
# module M
# ARRAY = [ # +1
# 1,
# 2
# ]
#
# HASH = { # +1
# key: 'value'
# }
#
# MSG = <<~HEREDOC # +1
# Heredoc
# content.
# HEREDOC
#
# foo( # +1
# 1,
# 2
# )
# end # 4 points
#
# source://rubocop//lib/rubocop/cop/metrics/module_length.rb#38
class RuboCop::Cop::Metrics::ModuleLength < ::RuboCop::Cop::Base
include ::RuboCop::Cop::CodeLength
# source://rubocop//lib/rubocop/cop/metrics/module_length.rb#52
def module_definition?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/metrics/module_length.rb#45
def on_casgn(node); end
# source://rubocop//lib/rubocop/cop/metrics/module_length.rb#41
def on_module(node); end
private
# source://rubocop//lib/rubocop/cop/metrics/module_length.rb#56
def message(length, max_length); end
end
# Checks for methods with too many parameters.
#
# The maximum number of parameters is configurable.
# Keyword arguments can optionally be excluded from the total count,
# as they add less complexity than positional or optional parameters.
#
# Any number of arguments for `initialize` method inside a block of
# `Struct.new` and `Data.define` like this is always allowed:
#
# [source,ruby]
# ----
# Struct.new(:one, :two, :three, :four, :five, keyword_init: true) do
# def initialize(one:, two:, three:, four:, five:)
# end
# end
# ----
#
# This is because checking the number of arguments of the `initialize` method
# does not make sense.
#
# NOTE: Explicit block argument `&block` is not counted to prevent
# erroneous change that is avoided by making block argument implicit.
#
# This cop also checks for the maximum number of optional parameters.
# This can be configured using the `MaxOptionalParameters` config option.
#
# @example Max: 3
# # good
# def foo(a, b, c = 1)
# end
# @example Max: 2
# # bad
# def foo(a, b, c = 1)
# end
# @example CountKeywordArgs: true (default)
# # counts keyword args towards the maximum
#
# # bad (assuming Max is 3)
# def foo(a, b, c, d: 1)
# end
#
# # good (assuming Max is 3)
# def foo(a, b, c: 1)
# end
# @example CountKeywordArgs: false
# # don't count keyword args towards the maximum
#
# # good (assuming Max is 3)
# def foo(a, b, c, d: 1)
# end
# @example MaxOptionalParameters: 3 (default)
# # good
# def foo(a = 1, b = 2, c = 3)
# end
# @example MaxOptionalParameters: 2
# # bad
# def foo(a = 1, b = 2, c = 3)
# end
#
# source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#70
class RuboCop::Cop::Metrics::ParameterLists < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#121
def argument_to_lambda_or_proc?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/exclude_limit.rb#11
def max=(value); end
# source://rubocop//lib/rubocop/cop/exclude_limit.rb#11
def max_optional_parameters=(value); end
# source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#104
def on_args(node); end
# source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#90
def on_def(node); end
# source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#90
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#81
def struct_new_or_data_define_block?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#125
def args_count(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#141
def count_keyword_args?; end
# source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#137
def max_optional_parameters; end
# source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#133
def max_params; end
end
# source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#74
RuboCop::Cop::Metrics::ParameterLists::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#77
RuboCop::Cop::Metrics::ParameterLists::NAMED_KEYWORD_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/metrics/parameter_lists.rb#75
RuboCop::Cop::Metrics::ParameterLists::OPTIONAL_PARAMETERS_MSG = T.let(T.unsafe(nil), String)
# Tries to produce a complexity score that's a measure of the
# complexity the reader experiences when looking at a method. For that
# reason it considers `when` nodes as something that doesn't add as much
# complexity as an `if` or a `&&`. Except if it's one of those special
# `case`/`when` constructs where there's no expression after `case`. Then
# the cop treats it as an `if`/`elsif`/`elsif`... and lets all the `when`
# nodes count. In contrast to the CyclomaticComplexity cop, this cop
# considers `else` nodes as adding complexity.
#
# @example
#
# def my_method # 1
# if cond # 1
# case var # 2 (0.8 + 4 * 0.2, rounded)
# when 1 then func_one
# when 2 then func_two
# when 3 then func_three
# when 4..10 then func_other
# end
# else # 1
# do_something until a && b # 2
# end # ===
# end # 7 complexity points
#
# source://rubocop//lib/rubocop/cop/metrics/perceived_complexity.rb#29
class RuboCop::Cop::Metrics::PerceivedComplexity < ::RuboCop::Cop::Metrics::CyclomaticComplexity
private
# source://rubocop//lib/rubocop/cop/metrics/perceived_complexity.rb#36
def complexity_score_for(node); end
end
# source://rubocop//lib/rubocop/cop/metrics/perceived_complexity.rb#32
RuboCop::Cop::Metrics::PerceivedComplexity::COUNTED_NODES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/metrics/perceived_complexity.rb#30
RuboCop::Cop::Metrics::PerceivedComplexity::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb#6
module RuboCop::Cop::Metrics::Utils; end
# > ABC is .. a software size metric .. computed by counting the number
# > of assignments, branches and conditions for a section of code.
# > http://c2.com/cgi/wiki?AbcMetric
#
# We separate the *calculator* from the *cop* so that the calculation,
# the formula itself, is easier to test.
#
# source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#13
class RuboCop::Cop::Metrics::Utils::AbcSizeCalculator
include ::RuboCop::AST::Sexp
include ::RuboCop::Cop::Metrics::Utils::RepeatedAttributeDiscount
include ::RuboCop::Cop::Metrics::Utils::IteratingBlock
include ::RuboCop::Cop::Metrics::Utils::RepeatedCsendDiscount
# @return [AbcSizeCalculator] a new instance of AbcSizeCalculator
#
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#30
def initialize(node, discount_repeated_attributes: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#42
def calculate; end
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#53
def calculate_node(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#65
def else_branch?(node); end
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#47
def evaluate_branch_nodes(node); end
# source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#60
def evaluate_condition_node(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#127
def argument?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#86
def assignment?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#123
def branch?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#119
def capturing_variable?(name); end
# source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#95
def compound_assignment(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#131
def condition?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#108
def simple_assignment?(node); end
# @yield [node]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#71
def visit_depth_last(node, &block); end
class << self
# source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#30
def calculate(node, discount_repeated_attributes: T.unsafe(nil)); end
end
end
# > Branch -- an explicit forward program branch out of scope -- a
# > function call, class method call ..
# > http://c2.com/cgi/wiki?AbcMetric
#
# source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#21
RuboCop::Cop::Metrics::Utils::AbcSizeCalculator::BRANCH_NODES = T.let(T.unsafe(nil), Array)
# > Condition -- a logical/Boolean test, == != <= >= < > else case
# > default try catch ? and unary conditionals.
# > http://c2.com/cgi/wiki?AbcMetric
#
# source://rubocop//lib/rubocop/cop/metrics/utils/abc_size_calculator.rb#26
RuboCop::Cop::Metrics::Utils::AbcSizeCalculator::CONDITION_NODES = T.let(T.unsafe(nil), Array)
# Helps to calculate code length for the provided node.
#
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#8
class RuboCop::Cop::Metrics::Utils::CodeLengthCalculator
include ::RuboCop::PathUtil
include ::RuboCop::Cop::Util
extend ::RuboCop::AST::NodePattern::Macros
# @return [CodeLengthCalculator] a new instance of CodeLengthCalculator
#
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#16
def initialize(node, processed_source, count_comments: T.unsafe(nil), foldable_types: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#24
def calculate; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#182
def another_args?(node); end
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#42
def build_foldable_checks(types); end
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#90
def classlike_code_length(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#138
def classlike_node?(node); end
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#66
def code_length(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#163
def count_comments?; end
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#126
def each_top_level_descendant(node, types, &block); end
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#146
def extract_body(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#142
def foldable_node?(node); end
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#121
def heredoc_length(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#86
def heredoc_node?(node); end
# Returns true for lines that shall not be included in the count.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#159
def irrelevant_line?(source_line); end
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#110
def line_numbers_of_inner_nodes(node, *types); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#106
def namespace_module?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#186
def node_with_heredoc?(node); end
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#60
def normalize_foldable_types(types); end
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#167
def omit_length(descendant); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#178
def parenthesized?(node); end
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#190
def source_from_node_with_heredoc(node); end
end
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#13
RuboCop::Cop::Metrics::Utils::CodeLengthCalculator::CLASSLIKE_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/metrics/utils/code_length_calculator.rb#12
RuboCop::Cop::Metrics::Utils::CodeLengthCalculator::FOLDABLE_TYPES = T.let(T.unsafe(nil), Array)
# Used to identify iterating blocks like `.map{}` and `.map(&:...)`
#
# source://rubocop//lib/rubocop/cop/metrics/utils/iterating_block.rb#8
module RuboCop::Cop::Metrics::Utils::IteratingBlock
# Returns the name of the method called with a block
# if node is a block node, or a block-pass node.
#
# source://rubocop//lib/rubocop/cop/metrics/utils/iterating_block.rb#37
def block_method_name(node); end
# Returns nil if node is neither a block node or a block-pass node.
# Otherwise returns true/false if method call is a known iterating call
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/iterating_block.rb#53
def iterating_block?(node); end
# Returns true iff name is a known iterating type (e.g. :each, :transform_values)
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/iterating_block.rb#47
def iterating_method?(name); end
end
# source://rubocop//lib/rubocop/cop/metrics/utils/iterating_block.rb#33
RuboCop::Cop::Metrics::Utils::IteratingBlock::KNOWN_ITERATING_METHODS = T.let(T.unsafe(nil), Set)
# Identifies repetitions `{c}send` calls with no arguments:
#
# foo.bar
# foo.bar # => repeated
# foo.bar.baz.qux # => inner send repeated
# foo.bar.baz.other # => both inner send repeated
# foo.bar(2) # => not repeated
#
# It also invalidates sequences if a receiver is reassigned:
#
# xx.foo.bar
# xx.foo.baz # => inner send repeated
# self.xx = any # => invalidates everything so far
# xx.foo.baz # => no repetition
# self.xx.foo.baz # => all repeated
#
# @api private
#
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#25
module RuboCop::Cop::Metrics::Utils::RepeatedAttributeDiscount
include ::RuboCop::AST::Sexp
extend ::RuboCop::AST::NodePattern::Macros
# Plug into the calculator
#
# @api private
#
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#30
def initialize(node, discount_repeated_attributes: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#61
def attribute_call?(param0 = T.unsafe(nil)); end
# @api private
#
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#53
def calculate_node(node); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#43
def discount_repeated_attributes?; end
# @api private
#
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#47
def evaluate_branch_nodes(node); end
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#92
def root_node?(param0 = T.unsafe(nil)); end
private
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#66
def discount_repeated_attribute?(send_node); end
# Returns the "known_attributes" for the `node` by walking the receiver tree
# If at any step the subdirectory does not exist, it is yielded with the
# associated key (method_name)
# If the node is not a series of `(c)send` calls with no arguments,
# then `nil` is yielded
#
# @api private
#
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#103
def find_attributes(node, &block); end
# or `nil` if it is not a setter.
#
# @api private
#
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#126
def setter_to_getter(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#80
def update_repeated_attribute(node); end
end
# @api private
#
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_attribute_discount.rb#117
RuboCop::Cop::Metrics::Utils::RepeatedAttributeDiscount::VAR_SETTER_TO_GETTER = T.let(T.unsafe(nil), Hash)
# Identifies repetitions `&.` on the same variable:
#
# my_var&.foo
# my_var&.bar # => repeated
# my_var = baz # => reset
# my_var&.qux # => not repeated
#
# @api private
#
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb#15
module RuboCop::Cop::Metrics::Utils::RepeatedCsendDiscount
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb#20
def discount_for_repeated_csend?(csend_node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb#34
def reset_on_lvasgn(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/metrics/utils/repeated_csend_discount.rb#16
def reset_repeated_csend; end
end
# source://rubocop//lib/rubocop/cop/migration/department_name.rb#5
module RuboCop::Cop::Migration; end
# department name.
#
# source://rubocop//lib/rubocop/cop/migration/department_name.rb#8
class RuboCop::Cop::Migration::DepartmentName < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/migration/department_name.rb#21
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/migration/department_name.rb#47
def check_cop_name(name, comment, offset); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/migration/department_name.rb#69
def contain_unexpected_character_for_department_name?(name); end
# source://rubocop//lib/rubocop/cop/migration/department_name.rb#43
def disable_comment_offset; end
# source://rubocop//lib/rubocop/cop/migration/department_name.rb#73
def qualified_legacy_cop_name(cop_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/migration/department_name.rb#63
def valid_content_token?(content_token); end
end
# source://rubocop//lib/rubocop/cop/migration/department_name.rb#14
RuboCop::Cop::Migration::DepartmentName::DISABLE_COMMENT_FORMAT = T.let(T.unsafe(nil), Regexp)
# The token that makes up a disable comment.
# `DepartmentName/CopName` or` all`.
#
# source://rubocop//lib/rubocop/cop/migration/department_name.rb#19
RuboCop::Cop::Migration::DepartmentName::DISABLING_COPS_CONTENT_TOKEN = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/migration/department_name.rb#12
RuboCop::Cop::Migration::DepartmentName::MSG = T.let(T.unsafe(nil), String)
# Common functionality for checking minimum body length.
#
# source://rubocop//lib/rubocop/cop/mixin/min_body_length.rb#6
module RuboCop::Cop::MinBodyLength
private
# source://rubocop//lib/rubocop/cop/mixin/min_body_length.rb#13
def min_body_length; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/min_body_length.rb#9
def min_body_length?(node); end
end
# Common functionality for checking minimum branches count.
#
# source://rubocop//lib/rubocop/cop/mixin/min_branches_count.rb#6
module RuboCop::Cop::MinBranchesCount
private
# source://rubocop//lib/rubocop/cop/mixin/min_branches_count.rb#29
def if_conditional_branches(node, branches = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/mixin/min_branches_count.rb#22
def min_branches_count; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/min_branches_count.rb#9
def min_branches_count?(node); end
end
module RuboCop::Cop::Minitest; end
class RuboCop::Cop::Minitest::MultipleAssertions < ::RuboCop::Cop::Base
include ::RuboCop::Cop::VisibilityHelp
include ::RuboCop::Cop::DefNode
# source://rubocop//lib/rubocop/cop/exclude_limit.rb#11
def max=(value); end
# source://rubocop-minitest/0.36.0/lib/rubocop/cop/minitest/multiple_assertions.rb#37
def on_class(class_node); end
private
# source://rubocop-minitest/0.36.0/lib/rubocop/cop/minitest/multiple_assertions.rb#54
def assertions_count(node); end
# source://rubocop-minitest/0.36.0/lib/rubocop/cop/minitest/multiple_assertions.rb#62
def assertions_count_based_on_type(node); end
# source://rubocop-minitest/0.36.0/lib/rubocop/cop/minitest/multiple_assertions.rb#77
def assertions_count_in_assignment(node); end
# source://rubocop-minitest/0.36.0/lib/rubocop/cop/minitest/multiple_assertions.rb#99
def assertions_count_in_branches(branches); end
# source://rubocop-minitest/0.36.0/lib/rubocop/cop/minitest/multiple_assertions.rb#103
def max_assertions; end
end
# Common code for indenting the first elements in multiline
# array literals, hash literals, and method definitions.
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#7
module RuboCop::Cop::MultilineElementIndentation
private
# source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#42
def check_expected_style(styles); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#26
def check_first(first, left_brace, left_parenthesis, offset); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#80
def detected_styles(actual_column, offset, left_parenthesis, left_brace); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#85
def detected_styles_for_column(column, left_parenthesis, left_brace); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#10
def each_argument_node(node, type); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#66
def hash_pair_where_value_beginning_with(left_brace, first); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#98
def incorrect_style_detected(styles, first, base_column_type); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#50
def indent_base(left_brace, first, left_parenthesis); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#72
def key_and_value_begin_on_same_line?(pair); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_element_indentation.rb#76
def right_sibling_begins_on_subsequent_line?(pair); end
end
# Common functionality for checking for a line break before each
# element in a multi-line collection.
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_element_line_breaks.rb#7
module RuboCop::Cop::MultilineElementLineBreaks
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_element_line_breaks.rb#23
def all_on_same_line?(nodes, ignore_last: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_element_line_breaks.rb#10
def check_line_breaks(_node, children, ignore_last: T.unsafe(nil)); end
end
# Common functionality for checking multiline method calls and binary
# operations.
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#7
module RuboCop::Cop::MultilineExpressionIndentation
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#14
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#14
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#132
def argument_in_method_call(node, kind); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#188
def assignment_rhs(node); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#65
def check(range, node, lhs, rhs); end
# The correct indentation of `node` is usually `IndentationWidth`, with
# one exception: prefix keywords.
#
# ```
# while foo && # Here, `while` is called a "prefix keyword"
# bar # This is called "special indentation"
# baz
# end
# ```
#
# Note that *postfix conditionals* do *not* get "special indentation".
#
# ```
# next if foo &&
# bar # normal indentation, not special
# ```
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#55
def correct_indentation(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#160
def disqualified_rhs?(candidate, ancestor); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#204
def grouped_expression?(node); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#73
def incorrect_style_detected(range, node, lhs, rhs); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#85
def indentation(node); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#122
def indented_keyword_expression(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#208
def inside_arg_list_parentheses?(node, ancestor); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#99
def keyword_message_tail(node); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#107
def kw_node_with_special_indentation(node); end
# In a chain of method calls, we regard the top call node as the base
# for indentation of all lines following the first. For example:
# a.
# b c { block }. <-- b is indented relative to a
# d <-- d is indented relative to a
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#32
def left_hand_side(lhs); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#198
def not_for_this_cop?(node); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#89
def operation_description(node, rhs); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#146
def part_of_assignment_rhs(node, candidate); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#184
def part_of_block_body?(candidate, block_node); end
# Returns true if `node` is a conditional whose `body` and `condition`
# begin on the same line.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#217
def postfix_conditional?(node); end
# The []= operator and setters (a.b = c) are parsed as :send nodes.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#176
def valid_method_rhs_candidate?(candidate, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#165
def valid_rhs?(candidate, ancestor); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#180
def valid_rhs_candidate?(candidate, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#221
def within_node?(inner, outer); end
end
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#11
RuboCop::Cop::MultilineExpressionIndentation::ASSIGNMENT_MESSAGE_TAIL = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#10
RuboCop::Cop::MultilineExpressionIndentation::DEFAULT_MESSAGE_TAIL = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#8
RuboCop::Cop::MultilineExpressionIndentation::KEYWORD_ANCESTOR_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#12
RuboCop::Cop::MultilineExpressionIndentation::KEYWORD_MESSAGE_TAIL = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/mixin/multiline_expression_indentation.rb#9
RuboCop::Cop::MultilineExpressionIndentation::UNALIGNED_RHS_TYPES = T.let(T.unsafe(nil), Array)
# Autocorrection logic for the closing brace of a literal either
# on the same line as the last contained elements, or a new line.
#
# source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#7
class RuboCop::Cop::MultilineLiteralBraceCorrector
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::MultilineLiteralBraceLayout
include ::RuboCop::Cop::RangeHelp
# @return [MultilineLiteralBraceCorrector] a new instance of MultilineLiteralBraceCorrector
#
# source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#15
def initialize(corrector, node, processed_source); end
# source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#21
def call; end
private
# source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#61
def content_if_comment_present(corrector, node); end
# source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#51
def correct_heredoc_argument_method_chain(corrector, end_range); end
# source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#46
def correct_next_line_brace(corrector, end_range); end
# source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#42
def correct_same_line_brace(corrector); end
# Returns the value of attribute corrector.
#
# source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#40
def corrector; end
# source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#94
def last_element_range_with_trailing_comma(node); end
# source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#103
def last_element_trailing_comma_range(node); end
# Returns the value of attribute node.
#
# source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#40
def node; end
# Returns the value of attribute processed_source.
#
# source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#40
def processed_source; end
# source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#90
def remove_trailing_content_of_comment(corrector, range); end
# source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#80
def select_content_to_be_inserted_after_last_element(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#73
def use_heredoc_argument_method_chain?(parent); end
class << self
# source://rubocop//lib/rubocop/cop/correctors/multiline_literal_brace_corrector.rb#11
def correct(corrector, node, processed_source); end
end
end
# Common functionality for checking the closing brace of a literal is
# either on the same line as the last contained elements or a new line.
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#7
module RuboCop::Cop::MultilineLiteralBraceLayout
include ::RuboCop::Cop::ConfigurableEnforcedStyle
private
# source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#34
def check(node); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#12
def check_brace_layout(node); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#42
def check_new_line(node); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#50
def check_same_line(node); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#58
def check_symmetrical(node); end
# source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#86
def children(node); end
# This method depends on the fact that we have guarded
# against implicit and empty literals.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#98
def closing_brace_on_same_line?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#74
def empty_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#82
def ignored_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#78
def implicit_literal?(node); end
# Starting with the parent node and recursively for the parent node's
# children, check if the node is a HEREDOC and if the HEREDOC ends below
# or on the last line of the parent node.
#
# Example:
#
# # node is `b: ...` parameter
# # last_line_heredoc?(node) => false
# foo(a,
# b: {
# a: 1,
# c: <<-EOM
# baz
# EOM
# }
# )
#
# # node is `b: ...` parameter
# # last_line_heredoc?(node) => true
# foo(a,
# b: <<-EOM
# baz
# EOM
# )
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#126
def last_line_heredoc?(node, parent = T.unsafe(nil)); end
# Returns true for the case
# [a,
# b # comment
# ].some_method
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#26
def new_line_needed_before_closing_brace?(node); end
# This method depends on the fact that we have guarded
# against implicit and empty literals.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/multiline_literal_brace_layout.rb#92
def opening_brace_on_same_line?(node); end
end
# source://rubocop//lib/rubocop/cop/naming/accessor_method_name.rb#5
module RuboCop::Cop::Naming; end
# Makes sure that accessor methods are named properly. Applies
# to both instance and class methods.
#
# NOTE: Offenses are only registered for methods with the expected
# arity. Getters (`get_attribute`) must have no arguments to be
# registered, and setters (`set_attribute(value)`) must have exactly
# one.
#
# @example
# # bad
# def set_attribute(value)
# end
#
# # good
# def attribute=(value)
# end
#
# # bad
# def get_attribute
# end
#
# # good
# def attribute
# end
#
# # accepted, incorrect arity for getter
# def get_value(attr)
# end
#
# # accepted, incorrect arity for setter
# def set_value
# end
#
# source://rubocop//lib/rubocop/cop/naming/accessor_method_name.rb#38
class RuboCop::Cop::Naming::AccessorMethodName < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/naming/accessor_method_name.rb#42
def on_def(node); end
# source://rubocop//lib/rubocop/cop/naming/accessor_method_name.rb#42
def on_defs(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/accessor_method_name.rb#66
def bad_reader_name?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/accessor_method_name.rb#70
def bad_writer_name?(node); end
# source://rubocop//lib/rubocop/cop/naming/accessor_method_name.rb#54
def message(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/accessor_method_name.rb#62
def proper_attribute_name?(node); end
end
# source://rubocop//lib/rubocop/cop/naming/accessor_method_name.rb#39
RuboCop::Cop::Naming::AccessorMethodName::MSG_READER = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/naming/accessor_method_name.rb#40
RuboCop::Cop::Naming::AccessorMethodName::MSG_WRITER = T.let(T.unsafe(nil), String)
# Checks for non-ascii characters in identifier and constant names.
# Identifiers are always checked and whether constants are checked
# can be controlled using AsciiConstants config.
#
# @example
# # bad
# def καλημερα # Greek alphabet (non-ascii)
# end
#
# # bad
# def こんにちはと言う # Japanese character (non-ascii)
# end
#
# # bad
# def hello_🍣 # Emoji (non-ascii)
# end
#
# # good
# def say_hello
# end
#
# # bad
# 신장 = 10 # Hangul character (non-ascii)
#
# # good
# height = 10
#
# # bad
# params[:عرض_gteq] # Arabic character (non-ascii)
#
# # good
# params[:width_gteq]
# @example AsciiConstants: true (default)
# # bad
# class Foö
# end
#
# FOÖ = "foo"
# @example AsciiConstants: false
# # good
# class Foö
# end
#
# FOÖ = "foo"
#
# source://rubocop//lib/rubocop/cop/naming/ascii_identifiers.rb#53
class RuboCop::Cop::Naming::AsciiIdentifiers < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
# source://rubocop//lib/rubocop/cop/naming/ascii_identifiers.rb#59
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/naming/ascii_identifiers.rb#84
def first_non_ascii_chars(string); end
# source://rubocop//lib/rubocop/cop/naming/ascii_identifiers.rb#74
def first_offense_range(identifier); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/ascii_identifiers.rb#70
def should_check?(token); end
end
# source://rubocop//lib/rubocop/cop/naming/ascii_identifiers.rb#57
RuboCop::Cop::Naming::AsciiIdentifiers::CONSTANT_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/naming/ascii_identifiers.rb#56
RuboCop::Cop::Naming::AsciiIdentifiers::IDENTIFIER_MSG = T.let(T.unsafe(nil), String)
# Makes sure that certain binary operator methods have their
# sole parameter named `other`.
#
# @example
#
# # bad
# def +(amount); end
#
# # good
# def +(other); end
#
# source://rubocop//lib/rubocop/cop/naming/binary_operator_parameter_name.rb#16
class RuboCop::Cop::Naming::BinaryOperatorParameterName < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/naming/binary_operator_parameter_name.rb#29
def on_def(node); end
# source://rubocop//lib/rubocop/cop/naming/binary_operator_parameter_name.rb#25
def op_method_candidate?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/binary_operator_parameter_name.rb#45
def op_method?(name); end
end
# source://rubocop//lib/rubocop/cop/naming/binary_operator_parameter_name.rb#22
RuboCop::Cop::Naming::BinaryOperatorParameterName::EXCLUDED = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/naming/binary_operator_parameter_name.rb#19
RuboCop::Cop::Naming::BinaryOperatorParameterName::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/naming/binary_operator_parameter_name.rb#21
RuboCop::Cop::Naming::BinaryOperatorParameterName::OP_LIKE_METHODS = T.let(T.unsafe(nil), Array)
# In Ruby 3.1, anonymous block forwarding has been added.
#
# This cop identifies places where `do_something(&block)` can be replaced
# by `do_something(&)`.
#
# It also supports the opposite style by alternative `explicit` option.
# You can specify the block variable name for autocorrection with `BlockForwardingName`.
# The default variable name is `block`. If the name is already in use, it will not be
# autocorrected.
#
# @example EnforcedStyle: anonymous (default)
#
# # bad
# def foo(&block)
# bar(&block)
# end
#
# # good
# def foo(&)
# bar(&)
# end
# @example EnforcedStyle: explicit
#
# # bad
# def foo(&)
# bar(&)
# end
#
# # good
# def foo(&block)
# bar(&block)
# end
#
# source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#40
class RuboCop::Cop::Naming::BlockForwarding < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#54
def on_def(node); end
# source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#54
def on_defs(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#114
def anonymous_block_argument?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#87
def block_argument_name_matched?(block_pass_node, last_argument); end
# source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#146
def block_forwarding_name; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#77
def expected_block_forwarding_style?(node, last_argument); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#118
def explicit_block_argument?(node); end
# Prevents the following syntax error:
#
# # foo.rb
# def foo(&)
# block_method do
# bar(&)
# end
# end
#
# $ ruby -vc foo.rb
# ruby 3.3.0 (2023-12-25 revision 5124f9ac75) [x86_64-darwin22]
# foo.rb: foo.rb:4: anonymous block parameter is also used within block (SyntaxError)
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#106
def invalidates_syntax?(block_pass_node); end
# source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#122
def register_offense(block_argument, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#138
def use_block_argument_as_local_variable?(node, last_argument); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#110
def use_kwarg_in_method_definition?(node); end
class << self
# source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#50
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/naming/block_forwarding.rb#48
RuboCop::Cop::Naming::BlockForwarding::MSG = T.let(T.unsafe(nil), String)
# Checks block parameter names for how descriptive they
# are. It is highly configurable.
#
# The `MinNameLength` config option takes an integer. It represents
# the minimum amount of characters the name must be. Its default is 1.
# The `AllowNamesEndingInNumbers` config option takes a boolean. When
# set to false, this cop will register offenses for names ending with
# numbers. Its default is false. The `AllowedNames` config option
# takes an array of permitted names that will never register an
# offense. The `ForbiddenNames` config option takes an array of
# restricted names that will always register an offense.
#
# @example
# # bad
# bar do |varOne, varTwo|
# varOne + varTwo
# end
#
# # With `AllowNamesEndingInNumbers` set to false
# foo { |num1, num2| num1 * num2 }
#
# # With `MinNameLength` set to number greater than 1
# baz { |a, b, c| do_stuff(a, b, c) }
#
# # good
# bar do |thud, fred|
# thud + fred
# end
#
# foo { |speed, distance| speed * distance }
#
# baz { |age, height, gender| do_stuff(age, height, gender) }
#
# source://rubocop//lib/rubocop/cop/naming/block_parameter_name.rb#38
class RuboCop::Cop::Naming::BlockParameterName < ::RuboCop::Cop::Base
include ::RuboCop::Cop::UncommunicativeName
# source://rubocop//lib/rubocop/cop/naming/block_parameter_name.rb#41
def on_block(node); end
end
# Checks for class and module names with
# an underscore in them.
#
# `AllowedNames` config takes an array of permitted names.
# Its default value is `['module_parent']`.
# These names can be full class/module names or part of the name.
# eg. Adding `my_class` to the `AllowedNames` config will allow names like
# `my_class`, `my_class::User`, `App::my_class`, `App::my_class::User`, etc.
#
# @example
# # bad
# class My_Class
# end
# module My_Module
# end
#
# # good
# class MyClass
# end
# module MyModule
# end
# class module_parent::MyModule
# end
#
# source://rubocop//lib/rubocop/cop/naming/class_and_module_camel_case.rb#29
class RuboCop::Cop::Naming::ClassAndModuleCamelCase < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/naming/class_and_module_camel_case.rb#32
def on_class(node); end
# source://rubocop//lib/rubocop/cop/naming/class_and_module_camel_case.rb#32
def on_module(node); end
end
# source://rubocop//lib/rubocop/cop/naming/class_and_module_camel_case.rb#30
RuboCop::Cop::Naming::ClassAndModuleCamelCase::MSG = T.let(T.unsafe(nil), String)
# Checks whether constant names are written using
# SCREAMING_SNAKE_CASE.
#
# To avoid false positives, it ignores cases in which we cannot know
# for certain the type of value that would be assigned to a constant.
#
# @example
# # bad
# InchInCm = 2.54
# INCHinCM = 2.54
# Inch_In_Cm = 2.54
#
# # good
# INCH_IN_CM = 2.54
#
# source://rubocop//lib/rubocop/cop/naming/constant_name.rb#20
class RuboCop::Cop::Naming::ConstantName < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/naming/constant_name.rb#27
def class_or_struct_return_method?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/naming/constant_name.rb#68
def literal_receiver?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/naming/constant_name.rb#33
def on_casgn(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/constant_name.rb#56
def allowed_assignment?(value); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/constant_name.rb#73
def allowed_conditional_expression_on_rhs?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/constant_name.rb#63
def allowed_method_call_on_rhs?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/constant_name.rb#77
def contains_constant?(node); end
end
# source://rubocop//lib/rubocop/cop/naming/constant_name.rb#21
RuboCop::Cop::Naming::ConstantName::MSG = T.let(T.unsafe(nil), String)
# Use POSIX character classes, so we allow accented characters rather
# than just standard ASCII characters
#
# source://rubocop//lib/rubocop/cop/naming/constant_name.rb#24
RuboCop::Cop::Naming::ConstantName::SNAKE_CASE = T.let(T.unsafe(nil), Regexp)
# Makes sure that Ruby source files have snake_case
# names. Ruby scripts (i.e. source files with a shebang in the
# first line) are ignored.
#
# The cop also ignores `.gemspec` files, because Bundler
# recommends using dashes to separate namespaces in nested gems
# (i.e. `bundler-console` becomes `Bundler::Console`). As such, the
# gemspec is supposed to be named `bundler-console.gemspec`.
#
# When `ExpectMatchingDefinition` (default: `false`) is `true`, the cop requires
# each file to have a class, module or `Struct` defined in it that matches
# the filename. This can be further configured using
# `CheckDefinitionPathHierarchy` (default: `true`) to determine whether the
# path should match the namespace of the above definition.
#
# When `IgnoreExecutableScripts` (default: `true`) is `true`, files that start
# with a shebang line are not considered by the cop.
#
# When `Regex` is set, the cop will flag any filename that does not match
# the regular expression.
#
# @example
# # bad
# lib/layoutManager.rb
#
# anything/usingCamelCase
#
# # good
# lib/layout_manager.rb
#
# anything/using_snake_case.rake
#
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#39
class RuboCop::Cop::Naming::FileName < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#56
def on_new_investigation; end
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#49
def struct_definition(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#134
def allowed_acronyms; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#96
def bad_filename_allowed?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#122
def check_definition_path_hierarchy?; end
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#169
def defined_struct(node); end
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#126
def definition_path_hierarchy_roots; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#118
def expect_matching_definition?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#138
def filename_good?(basename); end
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#147
def find_class_or_module(node, namespace); end
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#165
def find_definition(node); end
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#65
def for_bad_filename(file_path); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#114
def ignore_executable_scripts?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#202
def match?(expected); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#206
def match_acronym?(expected, name); end
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#174
def match_namespace(node, namespace, expected); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#92
def matching_class?(file_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#88
def matching_definition?(file_path); end
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#100
def no_definition_message(basename, file_path); end
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#106
def other_message(basename); end
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#188
def partial_matcher!(expected); end
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#77
def perform_class_and_module_naming_checks(file_path, basename); end
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#130
def regex; end
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#240
def to_module_name(basename); end
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#213
def to_namespace(path); end
end
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#43
RuboCop::Cop::Naming::FileName::MSG_NO_DEFINITION = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#44
RuboCop::Cop::Naming::FileName::MSG_REGEX = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#42
RuboCop::Cop::Naming::FileName::MSG_SNAKE_CASE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/naming/file_name.rb#46
RuboCop::Cop::Naming::FileName::SNAKE_CASE = T.let(T.unsafe(nil), Regexp)
# Checks that your heredocs are using the configured case.
# By default it is configured to enforce uppercase heredocs.
#
# @example EnforcedStyle: uppercase (default)
# # bad
# <<-sql
# SELECT * FROM foo
# sql
#
# # good
# <<-SQL
# SELECT * FROM foo
# SQL
# @example EnforcedStyle: lowercase
# # bad
# <<-SQL
# SELECT * FROM foo
# SQL
#
# # good
# <<-sql
# SELECT * FROM foo
# sql
#
# source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_case.rb#30
class RuboCop::Cop::Naming::HeredocDelimiterCase < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Heredoc
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_case.rb#37
def on_heredoc(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_case.rb#54
def correct_case_delimiters?(node); end
# source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_case.rb#58
def correct_delimiters(source); end
# source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_case.rb#50
def message(_node); end
end
# source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_case.rb#35
RuboCop::Cop::Naming::HeredocDelimiterCase::MSG = T.let(T.unsafe(nil), String)
# Checks that your heredocs are using meaningful delimiters.
# By default it disallows `END` and `EO*`, and can be configured through
# forbidden listing additional delimiters.
#
# @example
#
# # good
# <<-SQL
# SELECT * FROM foo
# SQL
#
# # bad
# <<-END
# SELECT * FROM foo
# END
#
# # bad
# <<-EOS
# SELECT * FROM foo
# EOS
#
# source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_naming.rb#26
class RuboCop::Cop::Naming::HeredocDelimiterNaming < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Heredoc
# source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_naming.rb#31
def on_heredoc(node); end
private
# source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_naming.rb#51
def forbidden_delimiters; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_naming.rb#41
def meaningful_delimiters?(node); end
end
# source://rubocop//lib/rubocop/cop/naming/heredoc_delimiter_naming.rb#29
RuboCop::Cop::Naming::HeredocDelimiterNaming::MSG = T.let(T.unsafe(nil), String)
# Recommends the use of inclusive language instead of problematic terms.
# The cop can check the following locations for offenses:
#
# - identifiers
# - constants
# - variables
# - strings
# - symbols
# - comments
# - file paths
#
# Each of these locations can be individually enabled/disabled via configuration,
# for example CheckIdentifiers = true/false.
#
# Flagged terms are configurable for the cop. For each flagged term an optional
# Regex can be specified to identify offenses. Suggestions for replacing a flagged term can
# be configured and will be displayed as part of the offense message.
# An AllowedRegex can be specified for a flagged term to exempt allowed uses of the term.
# `WholeWord: true` can be set on a flagged term to indicate the cop should only match when
# a term matches the whole word (partial matches will not be offenses).
#
# The cop supports autocorrection when there is only one suggestion. When there are multiple
# suggestions, the best suggestion cannot be identified and will not be autocorrected.
#
# @example FlaggedTerms: { whitelist: { Suggestions: ['allowlist'] } }
# # Suggest replacing identifier whitelist with allowlist
#
# # bad
# whitelist_users = %w(user1 user1)
#
# # good
# allowlist_users = %w(user1 user2)
# @example FlaggedTerms: { master: { Suggestions: ['main', 'primary', 'leader'] } }
# # Suggest replacing master in an instance variable name with main, primary, or leader
#
# # bad
# @master_node = 'node1.example.com'
#
# # good
# @primary_node = 'node1.example.com'
# @example FlaggedTerms: { whitelist: { Regex: !ruby/regexp '/white[-_\s]?list' } }
# # Identify problematic terms using a Regexp
#
# # bad
# white_list = %w(user1 user2)
#
# # good
# allow_list = %w(user1 user2)
# @example FlaggedTerms: { master: { AllowedRegex: 'master\'?s degree' } }
# # Specify allowed uses of the flagged term as a string or regexp.
#
# # bad
# # They had a masters
#
# # good
# # They had a master's degree
# @example FlaggedTerms: { slave: { WholeWord: true } }
# # Specify that only terms that are full matches will be flagged.
#
# # bad
# Slave
#
# # good (won't be flagged despite containing `slave`)
# TeslaVehicle
#
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#74
class RuboCop::Cop::Naming::InclusiveLanguage < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# @return [InclusiveLanguage] a new instance of InclusiveLanguage
#
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#84
def initialize(config = T.unsafe(nil), options = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#93
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#111
def add_offenses_for_token(token, word_locations); end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#176
def add_to_flagged_term_hash(regex_string, term, term_definition); end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#202
def array_to_ignorecase_regex(strings); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#126
def check_token?(type); end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#252
def create_message(word, message = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#226
def create_multiple_word_message_for_file(words); end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#222
def create_single_word_message_for_file(word); end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#198
def ensure_regex_string(regex); end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#169
def extract_regexp(term, term_definition); end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#260
def find_flagged_term(word); end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#274
def format_suggestions(suggestions); end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#206
def investigate_filepath; end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#100
def investigate_tokens; end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#240
def mask_input(str); end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#289
def offense_range(token, word); end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#160
def preferred_sole_term(suggestions); end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#130
def preprocess_check_config; end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#144
def preprocess_flagged_terms; end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#267
def preprocess_suggestions(suggestions); end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#188
def process_allowed_regex(allowed); end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#230
def scan_for_words(input); end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#183
def set_regexes(flagged_term_strings, allowed_strings); end
end
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#78
RuboCop::Cop::Naming::InclusiveLanguage::EMPTY_ARRAY = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#79
RuboCop::Cop::Naming::InclusiveLanguage::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#80
RuboCop::Cop::Naming::InclusiveLanguage::MSG_FOR_FILE_PATH = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/naming/inclusive_language.rb#82
class RuboCop::Cop::Naming::InclusiveLanguage::WordLocation < ::Struct
# Returns the value of attribute position
#
# @return [Object] the current value of position
def position; end
# Sets the attribute position
#
# @param value [Object] the value to set the attribute position to.
# @return [Object] the newly set value
def position=(_); end
# Returns the value of attribute word
#
# @return [Object] the current value of word
def word; end
# Sets the attribute word
#
# @param value [Object] the value to set the attribute word to.
# @return [Object] the newly set value
def word=(_); end
class << self
def [](*_arg0); end
def inspect; end
def keyword_init?; end
def members; end
def new(*_arg0); end
end
end
# Checks for memoized methods whose instance variable name
# does not match the method name. Applies to both regular methods
# (defined with `def`) and dynamic methods (defined with
# `define_method` or `define_singleton_method`).
#
# This cop can be configured with the EnforcedStyleForLeadingUnderscores
# directive. It can be configured to allow for memoized instance variables
# prefixed with an underscore. Prefixing ivars with an underscore is a
# convention that is used to implicitly indicate that an ivar should not
# be set or referenced outside of the memoization method.
#
# @example EnforcedStyleForLeadingUnderscores: disallowed (default)
# # bad
# # Method foo is memoized using an instance variable that is
# # not `@foo`. This can cause confusion and bugs.
# def foo
# @something ||= calculate_expensive_thing
# end
#
# def foo
# return @something if defined?(@something)
# @something = calculate_expensive_thing
# end
#
# # good
# def _foo
# @foo ||= calculate_expensive_thing
# end
#
# # good
# def foo
# @foo ||= calculate_expensive_thing
# end
#
# # good
# def foo
# @foo ||= begin
# calculate_expensive_thing
# end
# end
#
# # good
# def foo
# helper_variable = something_we_need_to_calculate_foo
# @foo ||= calculate_expensive_thing(helper_variable)
# end
#
# # good
# define_method(:foo) do
# @foo ||= calculate_expensive_thing
# end
#
# # good
# define_method(:foo) do
# return @foo if defined?(@foo)
# @foo = calculate_expensive_thing
# end
# @example EnforcedStyleForLeadingUnderscores: required
# # bad
# def foo
# @something ||= calculate_expensive_thing
# end
#
# # bad
# def foo
# @foo ||= calculate_expensive_thing
# end
#
# def foo
# return @foo if defined?(@foo)
# @foo = calculate_expensive_thing
# end
#
# # good
# def foo
# @_foo ||= calculate_expensive_thing
# end
#
# # good
# def _foo
# @_foo ||= calculate_expensive_thing
# end
#
# def foo
# return @_foo if defined?(@_foo)
# @_foo = calculate_expensive_thing
# end
#
# # good
# define_method(:foo) do
# @_foo ||= calculate_expensive_thing
# end
#
# # good
# define_method(:foo) do
# return @_foo if defined?(@_foo)
# @_foo = calculate_expensive_thing
# end
# @example EnforcedStyleForLeadingUnderscores :optional
# # bad
# def foo
# @something ||= calculate_expensive_thing
# end
#
# # good
# def foo
# @foo ||= calculate_expensive_thing
# end
#
# # good
# def foo
# @_foo ||= calculate_expensive_thing
# end
#
# # good
# def _foo
# @_foo ||= calculate_expensive_thing
# end
#
# # good
# def foo
# return @_foo if defined?(@_foo)
# @_foo = calculate_expensive_thing
# end
#
# # good
# define_method(:foo) do
# @foo ||= calculate_expensive_thing
# end
#
# # good
# define_method(:foo) do
# @_foo ||= calculate_expensive_thing
# end
#
# source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#148
class RuboCop::Cop::Naming::MemoizedInstanceVariableName < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#197
def defined_memoized?(param0 = T.unsafe(nil), param1); end
# source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#160
def method_definition?(param0 = T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#205
def on_defined?(node); end
# source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#170
def on_or_asgn(node); end
private
# source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#242
def find_definition(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#253
def matches?(method_name, ivar_assign); end
# source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#263
def message(variable); end
# source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#238
def style_parameter_name; end
# source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#271
def suggested_var(method_name); end
# source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#277
def variable_name_candidates(method_name); end
end
# source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#157
RuboCop::Cop::Naming::MemoizedInstanceVariableName::DYNAMIC_DEFINE_METHODS = T.let(T.unsafe(nil), Set)
# source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#153
RuboCop::Cop::Naming::MemoizedInstanceVariableName::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/naming/memoized_instance_variable_name.rb#155
RuboCop::Cop::Naming::MemoizedInstanceVariableName::UNDERSCORE_REQUIRED = T.let(T.unsafe(nil), String)
# Makes sure that all methods use the configured style,
# snake_case or camelCase, for their names.
#
# This cop has `AllowedPatterns` configuration option.
#
# Naming/MethodName:
# AllowedPatterns:
# - '\AonSelectionBulkChange\z'
# - '\AonSelectionCleared\z'
#
# Method names matching patterns are always allowed.
#
# @example EnforcedStyle: snake_case (default)
# # bad
# def fooBar; end
#
# # good
# def foo_bar; end
# @example EnforcedStyle: camelCase
# # bad
# def foo_bar; end
#
# # good
# def fooBar; end
#
# source://rubocop//lib/rubocop/cop/naming/method_name.rb#31
class RuboCop::Cop::Naming::MethodName < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::ConfigurableFormatting
include ::RuboCop::Cop::ConfigurableNaming
include ::RuboCop::Cop::AllowedPattern
include ::RuboCop::Cop::RangeHelp
# source://rubocop//lib/rubocop/cop/naming/method_name.rb#55
def on_def(node); end
# source://rubocop//lib/rubocop/cop/naming/method_name.rb#55
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/naming/method_name.rb#44
def on_send(node); end
# source://rubocop//lib/rubocop/cop/naming/method_name.rb#42
def str_name(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/naming/method_name.rb#39
def sym_name(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/naming/method_name.rb#64
def attr_name(name_item); end
# source://rubocop//lib/rubocop/cop/naming/method_name.rb#75
def message(style); end
# source://rubocop//lib/rubocop/cop/naming/method_name.rb#68
def range_position(node); end
end
# source://rubocop//lib/rubocop/cop/naming/method_name.rb#36
RuboCop::Cop::Naming::MethodName::MSG = T.let(T.unsafe(nil), String)
# Checks method parameter names for how descriptive they
# are. It is highly configurable.
#
# The `MinNameLength` config option takes an integer. It represents
# the minimum amount of characters the name must be. Its default is 3.
# The `AllowNamesEndingInNumbers` config option takes a boolean. When
# set to false, this cop will register offenses for names ending with
# numbers. Its default is false. The `AllowedNames` config option
# takes an array of permitted names that will never register an
# offense. The `ForbiddenNames` config option takes an array of
# restricted names that will always register an offense.
#
# @example
# # bad
# def bar(varOne, varTwo)
# varOne + varTwo
# end
#
# # With `AllowNamesEndingInNumbers` set to false
# def foo(num1, num2)
# num1 * num2
# end
#
# # With `MinNameLength` set to number greater than 1
# def baz(a, b, c)
# do_stuff(a, b, c)
# end
#
# # good
# def bar(thud, fred)
# thud + fred
# end
#
# def foo(speed, distance)
# speed * distance
# end
#
# def baz(age_a, height_b, gender_c)
# do_stuff(age_a, height_b, gender_c)
# end
#
# source://rubocop//lib/rubocop/cop/naming/method_parameter_name.rb#46
class RuboCop::Cop::Naming::MethodParameterName < ::RuboCop::Cop::Base
include ::RuboCop::Cop::UncommunicativeName
# source://rubocop//lib/rubocop/cop/naming/method_parameter_name.rb#49
def on_def(node); end
# source://rubocop//lib/rubocop/cop/naming/method_parameter_name.rb#49
def on_defs(node); end
end
# Checks that predicate method names end with a question mark and
# do not start with a forbidden prefix.
#
# A method is determined to be a predicate method if its name starts with
# one of the prefixes listed in the `NamePrefix` configuration. The list
# defaults to `is_`, `has_`, and `have_` but may be overridden.
#
# Predicate methods must end with a question mark.
#
# When `ForbiddenPrefixes` is also set (as it is by default), predicate
# methods which begin with a forbidden prefix are not allowed, even if
# they end with a `?`. These methods should be changed to remove the
# prefix.
#
# @example NamePrefix: ['is_', 'has_', 'have_'] (default)
# # bad
# def is_even(value)
# end
#
# # When ForbiddenPrefixes: ['is_', 'has_', 'have_'] (default)
# # good
# def even?(value)
# end
#
# # When ForbiddenPrefixes: []
# # good
# def is_even?(value)
# end
# @example NamePrefix: ['seems_to_be_']
# # bad
# def seems_to_be_even(value)
# end
#
# # When ForbiddenPrefixes: ['seems_to_be_']
# # good
# def even?(value)
# end
#
# # When ForbiddenPrefixes: []
# # good
# def seems_to_be_even?(value)
# end
# @example AllowedMethods: ['is_a?'] (default)
# # Despite starting with the `is_` prefix, this method is allowed
# # good
# def is_a?(value)
# end
# @example AllowedMethods: ['is_even?']
# # good
# def is_even?(value)
# end
# @example MethodDefinitionMacros: ['define_method', 'define_singleton_method'] (default)
# # bad
# define_method(:is_even) { |value| }
#
# # good
# define_method(:even?) { |value| }
# @example MethodDefinitionMacros: ['def_node_matcher']
# # bad
# def_node_matcher(:is_even) { |value| }
#
# # good
# def_node_matcher(:even?) { |value| }
#
# source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#75
class RuboCop::Cop::Naming::PredicateName < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedMethods
# source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#79
def dynamic_method_define(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#98
def on_def(node); end
# source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#98
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#85
def on_send(node); end
# source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#112
def validate_config; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#124
def allowed_method_name?(method_name, prefix); end
# source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#132
def expected_name(method_name, prefix); end
# source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#146
def forbidden_prefixes; end
# source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#142
def message(method_name, new_name); end
# source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#154
def method_definition_macros(macro_name); end
# source://rubocop//lib/rubocop/cop/naming/predicate_name.rb#150
def predicate_prefixes; end
end
# Makes sure that rescued exceptions variables are named as
# expected.
#
# The `PreferredName` config option takes a `String`. It represents
# the required name of the variable. Its default is `e`.
#
# NOTE: This cop does not consider nested rescues because it cannot
# guarantee that the variable from the outer rescue is not used within
# the inner rescue (in which case, changing the inner variable would
# shadow the outer variable).
#
# @example PreferredName: e (default)
# # bad
# begin
# # do something
# rescue MyException => exception
# # do something
# end
#
# # good
# begin
# # do something
# rescue MyException => e
# # do something
# end
#
# # good
# begin
# # do something
# rescue MyException => _e
# # do something
# end
# @example PreferredName: exception
# # bad
# begin
# # do something
# rescue MyException => e
# # do something
# end
#
# # good
# begin
# # do something
# rescue MyException => exception
# # do something
# end
#
# # good
# begin
# # do something
# rescue MyException => _exception
# # do something
# end
#
# source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#61
class RuboCop::Cop::Naming::RescuedExceptionsVariableName < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#66
def on_resbody(node); end
private
# source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#96
def autocorrect(corrector, node, range, offending_name, preferred_name); end
# source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#117
def correct_node(corrector, node, offending_name, preferred_name); end
# If the exception variable is reassigned, that assignment needs to be corrected.
# Further `lvar` nodes will not be corrected though since they now refer to a
# different variable.
#
# source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#143
def correct_reassignment(corrector, node, offending_name, preferred_name); end
# source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#168
def message(node); end
# source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#91
def offense_range(resbody); end
# source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#152
def preferred_name(variable_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#174
def shadowed_variable_name?(node); end
# source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#161
def variable_name(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#106
def variable_name_matches?(node, name); end
end
# source://rubocop//lib/rubocop/cop/naming/rescued_exceptions_variable_name.rb#64
RuboCop::Cop::Naming::RescuedExceptionsVariableName::MSG = T.let(T.unsafe(nil), String)
# Makes sure that all variables use the configured style,
# snake_case or camelCase, for their names.
#
# @example EnforcedStyle: snake_case (default)
# # bad
# fooBar = 1
#
# # good
# foo_bar = 1
# @example EnforcedStyle: camelCase
# # bad
# foo_bar = 1
#
# # good
# fooBar = 1
# @example AllowedIdentifiers: ['fooBar']
# # good (with EnforcedStyle: snake_case)
# fooBar = 1
# @example AllowedPatterns: ['_v\d+\z']
# # good (with EnforcedStyle: camelCase)
# :release_v1
#
# source://rubocop//lib/rubocop/cop/naming/variable_name.rb#31
class RuboCop::Cop::Naming::VariableName < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedIdentifiers
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::ConfigurableFormatting
include ::RuboCop::Cop::ConfigurableNaming
include ::RuboCop::Cop::AllowedPattern
# source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
def on_arg(node); end
# source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
def on_blockarg(node); end
# source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
def on_cvasgn(node); end
# source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
def on_ivasgn(node); end
# source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
def on_kwarg(node); end
# source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
def on_kwoptarg(node); end
# source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
def on_kwrestarg(node); end
# source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
def on_lvar(node); end
# source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
def on_lvasgn(node); end
# source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
def on_optarg(node); end
# source://rubocop//lib/rubocop/cop/naming/variable_name.rb#42
def on_restarg(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/variable_name.rb#38
def valid_name?(node, name, given_style = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/naming/variable_name.rb#62
def message(style); end
end
# source://rubocop//lib/rubocop/cop/naming/variable_name.rb#36
RuboCop::Cop::Naming::VariableName::MSG = T.let(T.unsafe(nil), String)
# Makes sure that all numbered variables use the
# configured style, snake_case, normalcase, or non_integer,
# for their numbering.
#
# Additionally, `CheckMethodNames` and `CheckSymbols` configuration options
# can be used to specify whether method names and symbols should be checked.
# Both are enabled by default.
#
# @example EnforcedStyle: normalcase (default)
# # bad
# :some_sym_1
# variable_1 = 1
#
# def some_method_1; end
#
# def some_method1(arg_1); end
#
# # good
# :some_sym1
# variable1 = 1
#
# def some_method1; end
#
# def some_method1(arg1); end
# @example EnforcedStyle: snake_case
# # bad
# :some_sym1
# variable1 = 1
#
# def some_method1; end
#
# def some_method_1(arg1); end
#
# # good
# :some_sym_1
# variable_1 = 1
#
# def some_method_1; end
#
# def some_method_1(arg_1); end
# @example EnforcedStyle: non_integer
# # bad
# :some_sym1
# :some_sym_1
#
# variable1 = 1
# variable_1 = 1
#
# def some_method1; end
#
# def some_method_1; end
#
# def some_methodone(arg1); end
# def some_methodone(arg_1); end
#
# # good
# :some_symone
# :some_sym_one
#
# variableone = 1
# variable_one = 1
#
# def some_methodone; end
#
# def some_method_one; end
#
# def some_methodone(argone); end
# def some_methodone(arg_one); end
#
# # In the following examples, we assume `EnforcedStyle: normalcase` (default).
# @example CheckMethodNames: true (default)
# # bad
# def some_method_1; end
# @example CheckMethodNames: false
# # good
# def some_method_1; end
# @example CheckSymbols: true (default)
# # bad
# :some_sym_1
# @example CheckSymbols: false
# # good
# :some_sym_1
# @example AllowedIdentifiers: [capture3]
# # good
# expect(Open3).to receive(:capture3)
# @example AllowedPatterns: ['_v\d+\z']
# # good
# :some_sym_v1
#
# source://rubocop//lib/rubocop/cop/naming/variable_number.rb#103
class RuboCop::Cop::Naming::VariableNumber < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedIdentifiers
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::ConfigurableFormatting
include ::RuboCop::Cop::ConfigurableNumbering
include ::RuboCop::Cop::AllowedPattern
# source://rubocop//lib/rubocop/cop/naming/variable_number.rb#114
def on_arg(node); end
# source://rubocop//lib/rubocop/cop/naming/variable_number.rb#114
def on_cvasgn(node); end
# source://rubocop//lib/rubocop/cop/naming/variable_number.rb#126
def on_def(node); end
# source://rubocop//lib/rubocop/cop/naming/variable_number.rb#126
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/naming/variable_number.rb#114
def on_gvasgn(node); end
# source://rubocop//lib/rubocop/cop/naming/variable_number.rb#114
def on_ivasgn(node); end
# source://rubocop//lib/rubocop/cop/naming/variable_number.rb#114
def on_lvasgn(node); end
# source://rubocop//lib/rubocop/cop/naming/variable_number.rb#134
def on_sym(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/naming/variable_number.rb#110
def valid_name?(node, name, given_style = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/naming/variable_number.rb#143
def message(style); end
end
# source://rubocop//lib/rubocop/cop/naming/variable_number.rb#108
RuboCop::Cop::Naming::VariableNumber::MSG = T.let(T.unsafe(nil), String)
# Some common code shared between `NegatedIf` and
# `NegatedWhile` cops.
#
# source://rubocop//lib/rubocop/cop/mixin/negative_conditional.rb#7
module RuboCop::Cop::NegativeConditional
extend ::RuboCop::AST::NodePattern::Macros
# source://rubocop//lib/rubocop/cop/mixin/negative_conditional.rb#18
def empty_condition?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/mixin/negative_conditional.rb#15
def single_negative?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/mixin/negative_conditional.rb#20
def check_negative_conditional(node, message:, &block); end
end
# source://rubocop//lib/rubocop/cop/mixin/negative_conditional.rb#10
RuboCop::Cop::NegativeConditional::MSG = T.let(T.unsafe(nil), String)
# This module provides a list of methods that are:
# 1. In the NilClass by default
# 2. Added to NilClass by explicitly requiring any standard libraries
# 3. Cop's configuration parameter AllowedMethods.
#
# source://rubocop//lib/rubocop/cop/mixin/nil_methods.rb#9
module RuboCop::Cop::NilMethods
include ::RuboCop::Cop::AllowedMethods
private
# source://rubocop//lib/rubocop/cop/mixin/nil_methods.rb#14
def nil_methods; end
# source://rubocop//lib/rubocop/cop/mixin/nil_methods.rb#18
def other_stdlib_methods; end
end
# An offense represents a style violation detected by RuboCop.
#
# source://rubocop//lib/rubocop/cop/offense.rb#6
class RuboCop::Cop::Offense
include ::Comparable
# @api private
# @return [Offense] a new instance of Offense
#
# source://rubocop//lib/rubocop/cop/offense.rb#83
def initialize(severity, location, message, cop_name, status = T.unsafe(nil), corrector = T.unsafe(nil)); end
# Returns `-1`, `0`, or `+1`
# if this offense is less than, equal to, or greater than `other`.
#
# @api public
# @return [Integer] comparison result
#
# source://rubocop//lib/rubocop/cop/offense.rb#229
def <=>(other); end
# @api public
# @return [Boolean] returns `true` if two offenses contain same attributes
#
# source://rubocop//lib/rubocop/cop/offense.rb#210
def ==(other); end
# @api private
#
# source://rubocop//lib/rubocop/cop/offense.rb#159
def column; end
# @api private
#
# source://rubocop//lib/rubocop/cop/offense.rb#169
def column_length; end
# @api private
#
# source://rubocop//lib/rubocop/cop/offense.rb#193
def column_range; end
# @api public
# @example
# 'Layout/LineLength'
# @return [String] the cop name as a String for which this offense is for.
#
# source://rubocop//lib/rubocop/cop/offense.rb#50
def cop_name; end
# @api public
# @return [Boolean] whether this offense can be automatically corrected via autocorrect.
# This includes todo comments, for example when requested with `--disable-uncorrectable`.
#
# source://rubocop//lib/rubocop/cop/offense.rb#101
def correctable?; end
# @api public
# @return [Boolean] whether this offense is automatically corrected via
# autocorrect or a todo.
#
# source://rubocop//lib/rubocop/cop/offense.rb#112
def corrected?; end
# @api public
# @return [Boolean] whether this offense is automatically disabled via a todo.
#
# source://rubocop//lib/rubocop/cop/offense.rb#122
def corrected_with_todo?; end
# @api public
# @return [Corrector | nil] the autocorrection for this offense, or `nil` when not available
#
# source://rubocop//lib/rubocop/cop/offense.rb#61
def corrector; end
# @api public
# @return [Boolean] whether this offense was locally disabled with a
# disable or todo where it occurred.
#
# source://rubocop//lib/rubocop/cop/offense.rb#133
def disabled?; end
# @api public
# @return [Boolean] returns `true` if two offenses contain same attributes
#
# source://rubocop//lib/rubocop/cop/offense.rb#210
def eql?(other); end
# @api private
#
# source://rubocop//lib/rubocop/cop/offense.rb#178
def first_line; end
# source://rubocop//lib/rubocop/cop/offense.rb#218
def hash; end
# @api public
# @return [Parser::Source::Range] the range of the code that is highlighted
#
# source://rubocop//lib/rubocop/cop/offense.rb#141
def highlighted_area; end
# @api private
#
# source://rubocop//lib/rubocop/cop/offense.rb#188
def last_column; end
# @api private
#
# source://rubocop//lib/rubocop/cop/offense.rb#183
def last_line; end
# @api private
#
# source://rubocop//lib/rubocop/cop/offense.rb#154
def line; end
# @api public
# @return [Parser::Source::Range] the location where the violation is detected.
# @see https://www.rubydoc.info/gems/parser/Parser/Source/Range Parser::Source::Range
#
# source://rubocop//lib/rubocop/cop/offense.rb#28
def location; end
# @api public
# @example
# 'Line is too long. [90/80]'
# @return [String] human-readable message
#
# source://rubocop//lib/rubocop/cop/offense.rb#39
def message; end
# Internally we use column number that start at 0, but when
# outputting column numbers, we want them to start at 1. One
# reason is that editors, such as Emacs, expect this.
#
# @api private
#
# source://rubocop//lib/rubocop/cop/offense.rb#202
def real_column; end
# @api public
# @return [RuboCop::Cop::Severity]
#
# source://rubocop//lib/rubocop/cop/offense.rb#17
def severity; end
# @api private
#
# source://rubocop//lib/rubocop/cop/offense.rb#164
def source_line; end
# @api private
#
# source://rubocop//lib/rubocop/cop/offense.rb#53
def status; end
# This is just for debugging purpose.
#
# @api private
#
# source://rubocop//lib/rubocop/cop/offense.rb#147
def to_s; end
end
# @api private
#
# source://rubocop//lib/rubocop/cop/offense.rb#10
RuboCop::Cop::Offense::COMPARISON_ATTRIBUTES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/offense.rb#80
RuboCop::Cop::Offense::NO_LOCATION = T.let(T.unsafe(nil), RuboCop::Cop::Offense::PseudoSourceRange)
# source://rubocop//lib/rubocop/cop/offense.rb#63
class RuboCop::Cop::Offense::PseudoSourceRange < ::Struct
# Returns the value of attribute begin_pos
#
# @return [Object] the current value of begin_pos
def begin_pos; end
# Sets the attribute begin_pos
#
# @param value [Object] the value to set the attribute begin_pos to.
# @return [Object] the newly set value
def begin_pos=(_); end
# Returns the value of attribute column
#
# @return [Object] the current value of column
def column; end
# Sets the attribute column
#
# @param value [Object] the value to set the attribute column to.
# @return [Object] the newly set value
def column=(_); end
# source://rubocop//lib/rubocop/cop/offense.rb#69
def column_range; end
# Returns the value of attribute end_pos
#
# @return [Object] the current value of end_pos
def end_pos; end
# Sets the attribute end_pos
#
# @param value [Object] the value to set the attribute end_pos to.
# @return [Object] the newly set value
def end_pos=(_); end
# Returns the value of attribute line
#
# @return [Object] the current value of line
def first_line; end
# Returns the value of attribute column
#
# @return [Object] the current value of column
def last_column; end
# Returns the value of attribute line
#
# @return [Object] the current value of line
def last_line; end
# source://rubocop//lib/rubocop/cop/offense.rb#73
def length; end
# Returns the value of attribute line
#
# @return [Object] the current value of line
def line; end
# Sets the attribute line
#
# @param value [Object] the value to set the attribute line to.
# @return [Object] the newly set value
def line=(_); end
# source://rubocop//lib/rubocop/cop/offense.rb#73
def size; end
# Returns the value of attribute source_line
#
# @return [Object] the current value of source_line
def source_line; end
# Sets the attribute source_line
#
# @param value [Object] the value to set the attribute source_line to.
# @return [Object] the newly set value
def source_line=(_); end
class << self
def [](*_arg0); end
def inspect; end
def keyword_init?; end
def members; end
def new(*_arg0); end
end
end
# Common functionality for cops checking if and unless expressions.
#
# source://rubocop//lib/rubocop/cop/mixin/on_normal_if_unless.rb#6
module RuboCop::Cop::OnNormalIfUnless
# source://rubocop//lib/rubocop/cop/mixin/on_normal_if_unless.rb#7
def on_if(node); end
end
# This autocorrects gem dependency order
#
# source://rubocop//lib/rubocop/cop/correctors/ordered_gem_corrector.rb#6
class RuboCop::Cop::OrderedGemCorrector
extend ::RuboCop::Cop::OrderedGemNode
extend ::RuboCop::Cop::RangeHelp
class << self
# Returns the value of attribute comments_as_separators.
#
# source://rubocop//lib/rubocop/cop/correctors/ordered_gem_corrector.rb#11
def comments_as_separators; end
# source://rubocop//lib/rubocop/cop/correctors/ordered_gem_corrector.rb#13
def correct(processed_source, node, previous_declaration, comments_as_separators); end
# Returns the value of attribute processed_source.
#
# source://rubocop//lib/rubocop/cop/correctors/ordered_gem_corrector.rb#11
def processed_source; end
private
# source://rubocop//lib/rubocop/cop/correctors/ordered_gem_corrector.rb#26
def declaration_with_comment(node); end
end
end
# Common functionality for Bundler/OrderedGems and
# Gemspec/OrderedDependencies.
#
# source://rubocop//lib/rubocop/cop/mixin/ordered_gem_node.rb#7
module RuboCop::Cop::OrderedGemNode
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/ordered_gem_node.rb#23
def case_insensitive_out_of_order?(string_a, string_b); end
# source://rubocop//lib/rubocop/cop/mixin/ordered_gem_node.rb#27
def consecutive_lines(previous, current); end
# source://rubocop//lib/rubocop/cop/mixin/ordered_gem_node.rb#55
def find_gem_name(gem_node); end
# source://rubocop//lib/rubocop/cop/mixin/ordered_gem_node.rb#18
def gem_canonical_name(name); end
# source://rubocop//lib/rubocop/cop/mixin/ordered_gem_node.rb#49
def gem_name(declaration_node); end
# source://rubocop//lib/rubocop/cop/mixin/ordered_gem_node.rb#10
def get_source_range(node, comments_as_separators); end
# source://rubocop//lib/rubocop/cop/mixin/ordered_gem_node.rb#32
def register_offense(previous, current); end
# source://rubocop//lib/rubocop/cop/mixin/ordered_gem_node.rb#61
def treat_comments_as_separators; end
end
# Common functionality for handling parentheses.
#
# source://rubocop//lib/rubocop/cop/mixin/parentheses.rb#6
module RuboCop::Cop::Parentheses
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/parentheses.rb#9
def parens_required?(node); end
end
# This autocorrects parentheses
#
# source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#6
class RuboCop::Cop::ParenthesesCorrector
extend ::RuboCop::Cop::RangeHelp
class << self
# source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#12
def correct(corrector, node); end
private
# Add a comma back after the heredoc identifier
#
# source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#74
def add_heredoc_comma(corrector, node); end
# If the node contains a heredoc, remove the comma too
# It'll be added back in the right place later
#
# source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#64
def extend_range_for_heredoc(node, range); end
# If removing parentheses leaves a comma on its own line, remove all the whitespace
# preceding it to prevent a syntax error.
#
# source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#41
def handle_orphaned_comma(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#80
def heredoc?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#28
def next_char_is_question_mark?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#32
def only_closing_paren_before_comma?(node); end
# Get a range for the closing parenthesis and all whitespace to the left of it
#
# source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#51
def parens_range(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/correctors/parentheses_corrector.rb#24
def ternary_condition?(node); end
end
end
# Common functionality for handling percent arrays.
#
# source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#6
module RuboCop::Cop::PercentArray
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#26
def allowed_bracket_array?(node); end
# @param node [RuboCop::AST::ArrayNode]
# @param elements [Array<String>]
# @return [String]
#
# source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#83
def build_bracketed_array_with_appropriate_whitespace(elements:, node:); end
# @param preferred_array_code [String]
# @return [String]
#
# source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#56
def build_message_for_bracketed_array(preferred_array_code); end
# source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#67
def check_bracketed_array(node, literal_prefix); end
# source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#36
def check_percent_array(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#31
def comments_in_array?(node); end
# Override to determine values that are invalid in a percent array
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#22
def invalid_percent_array_contents?(_node); end
# Ruby does not allow percent arrays in an ambiguous block context.
#
# @example
#
# foo %i[bar baz] { qux }
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#14
def invalid_percent_array_context?(node); end
# Provides whitespace between elements for building a bracketed array.
# %w[ a b c ]
# ^^^
#
# @param node [RuboCop::AST::ArrayNode]
# @return [String]
#
# source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#98
def whitespace_between(node); end
# Provides leading whitespace for building a bracketed array.
# %w[ a b c ]
# ^^
#
# @param node [RuboCop::AST::ArrayNode]
# @return [String]
#
# source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#111
def whitespace_leading(node); end
# Provides trailing whitespace for building a bracketed array.
# %w[ a b c ]
# ^^^^
#
# @param node [RuboCop::AST::ArrayNode]
# @return [String]
#
# source://rubocop//lib/rubocop/cop/mixin/percent_array.rb#120
def whitespace_trailing(node); end
end
# Common functionality for handling percent literals.
#
# source://rubocop//lib/rubocop/cop/mixin/percent_literal.rb#6
module RuboCop::Cop::PercentLiteral
include ::RuboCop::Cop::RangeHelp
private
# source://rubocop//lib/rubocop/cop/mixin/percent_literal.rb#23
def begin_source(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/percent_literal.rb#11
def percent_literal?(node); end
# source://rubocop//lib/rubocop/cop/mixin/percent_literal.rb#17
def process(node, *types); end
# source://rubocop//lib/rubocop/cop/mixin/percent_literal.rb#27
def type(node); end
end
# This autocorrects percent literals
#
# source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#6
class RuboCop::Cop::PercentLiteralCorrector
include ::RuboCop::PathUtil
include ::RuboCop::Cop::Util
# @return [PercentLiteralCorrector] a new instance of PercentLiteralCorrector
#
# source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#11
def initialize(config, preferred_delimiters); end
# Returns the value of attribute config.
#
# source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#9
def config; end
# source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#16
def correct(corrector, node, char); end
# Returns the value of attribute preferred_delimiters.
#
# source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#9
def preferred_delimiters; end
private
# source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#46
def autocorrect_multiline_words(node, escape, delimiters); end
# source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#52
def autocorrect_words(node, escape, delimiters); end
# source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#34
def delimiters_for(type); end
# source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#110
def end_content(source); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#30
def escape_words?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#78
def first_line?(node, previous_line_num); end
# source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#89
def fix_escaped_content(word_node, escape, delimiters); end
# source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#69
def line_breaks(node, source, previous_line_num, base_line_num, node_index); end
# source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#38
def new_contents(node, escape, delimiters); end
# source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#82
def process_lines(node, previous_line_num, base_line_num, source_in_lines); end
# source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#58
def process_multiline_words(node, escape, delimiters); end
# source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#96
def substitute_escaped_delimiters(content, delimiters); end
# source://rubocop//lib/rubocop/cop/correctors/percent_literal_corrector.rb#26
def wrap_contents(corrector, node, contents, char, delimiters); end
end
# Common functionality for checking whether an AST node/token is aligned
# with something on a preceding or following line
#
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#7
module RuboCop::Cop::PrecedingFollowingAlignment
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#93
def aligned_assignment?(range, line); end
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#70
def aligned_comment_lines; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#105
def aligned_identical?(range, line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#81
def aligned_operator?(range, line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#77
def aligned_token?(range, line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#34
def aligned_with_adjacent_line?(range, predicate); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#52
def aligned_with_any_line?(line_ranges, range, indent = T.unsafe(nil), &predicate); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#42
def aligned_with_any_line_range?(line_ranges, range, &predicate); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#98
def aligned_with_append_operator?(range, line); end
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#109
def aligned_with_assignment(token, line_range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#56
def aligned_with_line?(line_nos, range, indent = T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#18
def aligned_with_operator?(range); end
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#22
def aligned_with_preceding_assignment(token); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#14
def aligned_with_something?(range); end
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#28
def aligned_with_subsequent_assignment(token); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#85
def aligned_words?(range, line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#10
def allow_for_alignment?; end
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#127
def assignment_lines; end
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#131
def assignment_tokens; end
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#147
def relevant_assignment_lines(line_range); end
# source://rubocop//lib/rubocop/cop/mixin/preceding_following_alignment.rb#174
def remove_optarg_equals(asgn_tokens, processed_source); end
end
# Common functionality for handling percent literal delimiters.
#
# source://rubocop//lib/rubocop/cop/mixin/preferred_delimiters.rb#6
class RuboCop::Cop::PreferredDelimiters
# @return [PreferredDelimiters] a new instance of PreferredDelimiters
#
# source://rubocop//lib/rubocop/cop/mixin/preferred_delimiters.rb#11
def initialize(type, config, preferred_delimiters); end
# Returns the value of attribute config.
#
# source://rubocop//lib/rubocop/cop/mixin/preferred_delimiters.rb#7
def config; end
# source://rubocop//lib/rubocop/cop/mixin/preferred_delimiters.rb#17
def delimiters; end
# Returns the value of attribute type.
#
# source://rubocop//lib/rubocop/cop/mixin/preferred_delimiters.rb#7
def type; end
private
# @raise [ArgumentError]
#
# source://rubocop//lib/rubocop/cop/mixin/preferred_delimiters.rb#23
def ensure_valid_preferred_delimiters; end
# source://rubocop//lib/rubocop/cop/mixin/preferred_delimiters.rb#30
def preferred_delimiters; end
# source://rubocop//lib/rubocop/cop/mixin/preferred_delimiters.rb#45
def preferred_delimiters_config; end
end
# source://rubocop//lib/rubocop/cop/mixin/preferred_delimiters.rb#9
RuboCop::Cop::PreferredDelimiters::PERCENT_LITERAL_TYPES = T.let(T.unsafe(nil), Array)
# This autocorrects punctuation
#
# source://rubocop//lib/rubocop/cop/correctors/punctuation_corrector.rb#6
class RuboCop::Cop::PunctuationCorrector
class << self
# source://rubocop//lib/rubocop/cop/correctors/punctuation_corrector.rb#12
def add_space(corrector, token); end
# source://rubocop//lib/rubocop/cop/correctors/punctuation_corrector.rb#8
def remove_space(corrector, space_before); end
# source://rubocop//lib/rubocop/cop/correctors/punctuation_corrector.rb#16
def swap_comma(corrector, range); end
end
end
# Methods that calculate and return Parser::Source::Ranges
#
# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#6
module RuboCop::Cop::RangeHelp
private
# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#141
def add_range(range1, range2); end
# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#82
def column_offset_between(base_range, range); end
# A range containing only the contents of a literal with delimiters (e.g. in
# `%i{1 2 3}` this will be the range covering `1 2 3` only).
#
# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#32
def contents_range(node); end
# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#100
def directions(side); end
# Returns the column attribute of the range, except if the range is on
# the first line and there's a byte order mark at the beginning of that
# line, in which case 1 is subtracted from the column value. This gives
# the column as it appears when viewing the file in an editor.
#
# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#92
def effective_column(range); end
# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#109
def final_pos(src, pos, increment, continuations, newlines, whitespace); end
# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#117
def move_pos(src, pos, step, condition, regexp); end
# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#123
def move_pos_str(src, pos, step, condition, needle); end
# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#36
def range_between(start_pos, end_pos); end
# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#73
def range_by_whole_lines(range, include_final_newline: T.unsafe(nil), buffer: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#134
def range_with_comments(node); end
# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#130
def range_with_comments_and_lines(node); end
# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#40
def range_with_surrounding_comma(range, side = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#55
def range_with_surrounding_space(range_positional = T.unsafe(nil), range: T.unsafe(nil), side: T.unsafe(nil), newlines: T.unsafe(nil), whitespace: T.unsafe(nil), continuations: T.unsafe(nil), buffer: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#11
def source_range(source_buffer, line_number, column, length = T.unsafe(nil)); end
end
# The Unicode codepoint
#
# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#9
RuboCop::Cop::RangeHelp::BYTE_ORDER_MARK = T.let(T.unsafe(nil), Integer)
# source://rubocop//lib/rubocop/cop/mixin/range_help.rb#54
module RuboCop::Cop::RangeHelp::NOT_GIVEN; end
# Common functionality for handling Rational literals.
#
# source://rubocop//lib/rubocop/cop/mixin/rational_literal.rb#6
module RuboCop::Cop::RationalLiteral
extend ::RuboCop::AST::NodePattern::Macros
# source://rubocop//lib/rubocop/cop/mixin/rational_literal.rb#12
def rational_literal?(param0 = T.unsafe(nil)); end
end
# Registry that tracks all cops by their badge and department.
#
# source://rubocop//lib/rubocop/cop/registry.rb#19
class RuboCop::Cop::Registry
include ::Enumerable
# @return [Registry] a new instance of Registry
#
# source://rubocop//lib/rubocop/cop/registry.rb#51
def initialize(cops = T.unsafe(nil), options = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/registry.rb#232
def ==(other); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/registry.rb#97
def contains_cop_matching?(names); end
# source://rubocop//lib/rubocop/cop/registry.rb#179
def cops; end
# source://rubocop//lib/rubocop/cop/registry.rb#224
def cops_for_department(department); end
# @return [Boolean] Checks if given name is department
#
# source://rubocop//lib/rubocop/cop/registry.rb#93
def department?(name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/registry.rb#147
def department_missing?(badge, name); end
# @return [Array<Symbol>] list of departments for current cops.
#
# source://rubocop//lib/rubocop/cop/registry.rb#72
def departments; end
# source://rubocop//lib/rubocop/cop/registry.rb#193
def disabled(config); end
# source://rubocop//lib/rubocop/cop/registry.rb#67
def dismiss(cop); end
# source://rubocop//lib/rubocop/cop/registry.rb#247
def each(&block); end
# source://rubocop//lib/rubocop/cop/registry.rb#189
def enabled(config); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/registry.rb#197
def enabled?(cop, config); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/registry.rb#213
def enabled_pending_cop?(cop_cfg, config); end
# source://rubocop//lib/rubocop/cop/registry.rb#63
def enlist(cop); end
# @param cop_name [String]
# @return [Class, nil]
#
# source://rubocop//lib/rubocop/cop/registry.rb#253
def find_by_cop_name(cop_name); end
# When a cop name is given returns a single-element array with the cop class.
# When a department name is given returns an array with all the cop classes
# for that department.
#
# source://rubocop//lib/rubocop/cop/registry.rb#260
def find_cops_by_directive(directive); end
# source://rubocop//lib/rubocop/cop/registry.rb#265
def freeze; end
# source://rubocop//lib/rubocop/cop/registry.rb#184
def length; end
# source://rubocop//lib/rubocop/cop/registry.rb#220
def names; end
# source://rubocop//lib/rubocop/cop/registry.rb#228
def names_for_department(department); end
# Returns the value of attribute options.
#
# source://rubocop//lib/rubocop/cop/registry.rb#49
def options; end
# source://rubocop//lib/rubocop/cop/registry.rb#151
def print_warning(name, path); end
# Convert a user provided cop name into a properly namespaced name
#
# @example gives back a correctly qualified cop name
#
# registry = RuboCop::Cop::Registry
# registry.qualified_cop_name('Layout/EndOfLine', '') # => 'Layout/EndOfLine'
# @example fixes incorrect namespaces
#
# registry = RuboCop::Cop::Registry
# registry.qualified_cop_name('Lint/EndOfLine', '') # => 'Layout/EndOfLine'
# @example namespaces bare cop identifiers
#
# registry = RuboCop::Cop::Registry
# registry.qualified_cop_name('EndOfLine', '') # => 'Layout/EndOfLine'
# @example passes back unrecognized cop names
#
# registry = RuboCop::Cop::Registry
# registry.qualified_cop_name('NotACop', '') # => 'NotACop'
# @note Emits a warning if the provided name has an incorrect namespace
# @param name [String] Cop name extracted from config
# @param path [String, nil] Path of file that `name` was extracted from
# @param warn [Boolean] Print a warning if no department given for `name`
# @raise [AmbiguousCopName] if a bare identifier with two possible namespaces is provided
# @return [String] Qualified cop name
#
# source://rubocop//lib/rubocop/cop/registry.rb#133
def qualified_cop_name(name, path, warn: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/registry.rb#166
def qualify_badge(badge); end
# source://rubocop//lib/rubocop/cop/registry.rb#243
def select(&block); end
# source://rubocop//lib/rubocop/cop/registry.rb#236
def sort!; end
# @return [Hash{String => Array<Class>}]
#
# source://rubocop//lib/rubocop/cop/registry.rb#174
def to_h; end
# source://rubocop//lib/rubocop/cop/registry.rb#159
def unqualified_cop_names; end
# @return [Registry] Cops for that specific department.
#
# source://rubocop//lib/rubocop/cop/registry.rb#78
def with_department(department); end
# @return [Registry] Cops not for a specific department.
#
# source://rubocop//lib/rubocop/cop/registry.rb#84
def without_department(department); end
private
# source://rubocop//lib/rubocop/cop/registry.rb#283
def clear_enrollment_queue; end
# source://rubocop//lib/rubocop/cop/registry.rb#279
def initialize_copy(reg); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/registry.rb#309
def registered?(badge); end
# source://rubocop//lib/rubocop/cop/registry.rb#299
def resolve_badge(given_badge, real_badge, source_path); end
# source://rubocop//lib/rubocop/cop/registry.rb#295
def with(cops); end
class << self
# source://rubocop//lib/rubocop/cop/registry.rb#22
def all; end
# Returns the value of attribute global.
#
# source://rubocop//lib/rubocop/cop/registry.rb#274
def global; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/registry.rb#44
def qualified_cop?(name); end
# source://rubocop//lib/rubocop/cop/registry.rb#26
def qualified_cop_name(name, origin); end
# source://rubocop//lib/rubocop/cop/registry.rb#40
def reset!; end
# Changes momentarily the global registry
# Intended for testing purposes
#
# source://rubocop//lib/rubocop/cop/registry.rb#32
def with_temporary_global(temp_global = T.unsafe(nil)); end
end
end
# Ensure a require statement is present for a standard library determined
# by variable library_name
#
# source://rubocop//lib/rubocop/cop/mixin/require_library.rb#7
module RuboCop::Cop::RequireLibrary
extend ::RuboCop::AST::NodePattern::Macros
# source://rubocop//lib/rubocop/cop/mixin/require_library.rb#12
def ensure_required(corrector, node, library_name); end
# source://rubocop//lib/rubocop/cop/mixin/require_library.rb#33
def on_send(node); end
# source://rubocop//lib/rubocop/cop/mixin/require_library.rb#24
def remove_subsequent_requires(corrector, node, library_name); end
# source://rubocop//lib/rubocop/cop/mixin/require_library.rb#51
def require_any_library?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/mixin/require_library.rb#56
def require_library_name?(param0 = T.unsafe(nil), param1); end
private
# source://rubocop//lib/rubocop/cop/mixin/require_library.rb#44
def on_new_investigation; end
end
# source://rubocop//lib/rubocop/cop/mixin/require_library.rb#10
RuboCop::Cop::RequireLibrary::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# This class ensures a require statement is present for a standard library
# determined by the variable library_name
#
# source://rubocop//lib/rubocop/cop/correctors/require_library_corrector.rb#7
class RuboCop::Cop::RequireLibraryCorrector
extend ::RuboCop::Cop::RangeHelp
class << self
# source://rubocop//lib/rubocop/cop/correctors/require_library_corrector.rb#11
def correct(corrector, node, library_name); end
# source://rubocop//lib/rubocop/cop/correctors/require_library_corrector.rb#17
def require_statement(library_name); end
end
end
# Common functionality for checking `rescue` nodes.
#
# source://rubocop//lib/rubocop/cop/mixin/rescue_node.rb#6
module RuboCop::Cop::RescueNode
# source://rubocop//lib/rubocop/cop/mixin/rescue_node.rb#7
def modifier_locations; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/rescue_node.rb#13
def rescue_modifier?(node); end
# @deprecated Use ResbodyNode#exceptions instead
#
# source://rubocop//lib/rubocop/cop/mixin/rescue_node.rb#20
def rescued_exceptions(resbody); end
end
# Common functionality for safe assignment. By safe assignment we mean
# putting parentheses around an assignment to indicate "I know I'm using an
# assignment as a condition. It's not a mistake."
#
# source://rubocop//lib/rubocop/cop/mixin/safe_assignment.rb#8
module RuboCop::Cop::SafeAssignment
extend ::RuboCop::AST::NodePattern::Macros
# source://rubocop//lib/rubocop/cop/mixin/safe_assignment.rb#14
def empty_condition?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/mixin/safe_assignment.rb#20
def safe_assignment?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/mixin/safe_assignment.rb#17
def setter_method?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/safe_assignment.rb#22
def safe_assignment_allowed?; end
end
# source://rubocop//lib/rubocop/cop/security/compound_hash.rb#5
module RuboCop::Cop::Security; end
# Checks for implementations of the `hash` method which combine
# values using custom logic instead of delegating to `Array#hash`.
#
# Manually combining hashes is error prone and hard to follow, especially
# when there are many values. Poor implementations may also introduce
# performance or security concerns if they are prone to collisions.
# Delegating to `Array#hash` is clearer and safer, although it might be slower
# depending on the use case.
#
# @example
#
# # bad
# def hash
# @foo ^ @bar
# end
#
# # good
# def hash
# [@foo, @bar].hash
# end
#
# source://rubocop//lib/rubocop/cop/security/compound_hash.rb#30
class RuboCop::Cop::Security::CompoundHash < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/security/compound_hash.rb#58
def bad_hash_combinator?(param0 = T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/security/compound_hash.rb#75
def contained_in_hash_method?(node, &block); end
# source://rubocop//lib/rubocop/cop/security/compound_hash.rb#42
def dynamic_hash_method_definition?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/security/compound_hash.rb#37
def hash_method_definition?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/security/compound_hash.rb#63
def monuple_hash?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/security/compound_hash.rb#87
def on_op_asgn(node); end
# source://rubocop//lib/rubocop/cop/security/compound_hash.rb#87
def on_send(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/security/compound_hash.rb#81
def outer_bad_hash_combinator?(node); end
# source://rubocop//lib/rubocop/cop/security/compound_hash.rb#68
def redundant_hash?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/security/compound_hash.rb#51
def static_hash_method_definition?(param0 = T.unsafe(nil)); end
end
# source://rubocop//lib/rubocop/cop/security/compound_hash.rb#31
RuboCop::Cop::Security::CompoundHash::COMBINATOR_IN_HASH_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/security/compound_hash.rb#32
RuboCop::Cop::Security::CompoundHash::MONUPLE_HASH_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/security/compound_hash.rb#34
RuboCop::Cop::Security::CompoundHash::REDUNDANT_HASH_MSG = T.let(T.unsafe(nil), String)
# Checks for the use of `Kernel#eval` and `Binding#eval`.
#
# @example
#
# # bad
#
# eval(something)
# binding.eval(something)
#
# source://rubocop//lib/rubocop/cop/security/eval.rb#14
class RuboCop::Cop::Security::Eval < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/security/eval.rb#19
def eval?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/security/eval.rb#23
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/security/eval.rb#15
RuboCop::Cop::Security::Eval::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/security/eval.rb#16
RuboCop::Cop::Security::Eval::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for the first argument to `IO.read`, `IO.binread`, `IO.write`, `IO.binwrite`,
# `IO.foreach`, and `IO.readlines`.
#
# If argument starts with a pipe character (`'|'`) and the receiver is the `IO` class,
# a subprocess is created in the same way as `Kernel#open`, and its output is returned.
# `Kernel#open` may allow unintentional command injection, which is the reason these
# `IO` methods are a security risk.
# Consider to use `File.read` to disable the behavior of subprocess invocation.
#
# @example
#
# # bad
# IO.read(path)
# IO.read('path')
#
# # good
# File.read(path)
# File.read('path')
# IO.read('| command') # Allow intentional command invocation.
#
# source://rubocop//lib/rubocop/cop/security/io_methods.rb#30
class RuboCop::Cop::Security::IoMethods < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/security/io_methods.rb#36
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/security/io_methods.rb#33
RuboCop::Cop::Security::IoMethods::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/security/io_methods.rb#34
RuboCop::Cop::Security::IoMethods::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for the use of JSON class methods which have potential
# security issues.
#
# @example
# # bad
# JSON.load("{}")
# JSON.restore("{}")
#
# # good
# JSON.parse("{}")
#
# source://rubocop//lib/rubocop/cop/security/json_load.rb#26
class RuboCop::Cop::Security::JSONLoad < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/security/json_load.rb#33
def json_load(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/security/json_load.rb#37
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/security/json_load.rb#29
RuboCop::Cop::Security::JSONLoad::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/security/json_load.rb#30
RuboCop::Cop::Security::JSONLoad::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for the use of Marshal class methods which have
# potential security issues leading to remote code execution when
# loading from an untrusted source.
#
# @example
# # bad
# Marshal.load("{}")
# Marshal.restore("{}")
#
# # good
# Marshal.dump("{}")
#
# # okish - deep copy hack
# Marshal.load(Marshal.dump({}))
#
# source://rubocop//lib/rubocop/cop/security/marshal_load.rb#21
class RuboCop::Cop::Security::MarshalLoad < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/security/marshal_load.rb#26
def marshal_load(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/security/marshal_load.rb#31
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/security/marshal_load.rb#22
RuboCop::Cop::Security::MarshalLoad::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/security/marshal_load.rb#23
RuboCop::Cop::Security::MarshalLoad::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for the use of `Kernel#open` and `URI.open` with dynamic
# data.
#
# `Kernel#open` and `URI.open` enable not only file access but also process
# invocation by prefixing a pipe symbol (e.g., `open("| ls")`).
# So, it may lead to a serious security risk by using variable input to
# the argument of `Kernel#open` and `URI.open`. It would be better to use
# `File.open`, `IO.popen` or `URI.parse#open` explicitly.
#
# NOTE: `open` and `URI.open` with literal strings are not flagged by this
# cop.
#
# @example
# # bad
# open(something)
# open("| #{something}")
# open("| foo")
# URI.open(something)
#
# # good
# File.open(something)
# IO.popen(something)
# URI.parse(something).open
#
# # good (literal strings)
# open("foo.text")
# URI.open("http://example.com")
#
# source://rubocop//lib/rubocop/cop/security/open.rb#37
class RuboCop::Cop::Security::Open < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/security/open.rb#46
def on_send(node); end
# source://rubocop//lib/rubocop/cop/security/open.rb#42
def open?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/security/open.rb#75
def composite_string?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/security/open.rb#83
def concatenated_string?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/security/open.rb#79
def interpolated_string?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/security/open.rb#57
def safe?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/security/open.rb#67
def safe_argument?(argument); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/security/open.rb#71
def simple_string?(node); end
end
# source://rubocop//lib/rubocop/cop/security/open.rb#38
RuboCop::Cop::Security::Open::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/security/open.rb#39
RuboCop::Cop::Security::Open::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for the use of YAML class methods which have
# potential security issues leading to remote code execution when
# loading from an untrusted source.
#
# NOTE: Ruby 3.1+ (Psych 4) uses `Psych.load` as `Psych.safe_load` by default.
#
# @example
# # bad
# YAML.load("--- !ruby/object:Foo {}") # Psych 3 is unsafe by default
#
# # good
# YAML.safe_load("--- !ruby/object:Foo {}", [Foo]) # Ruby 2.5 (Psych 3)
# YAML.safe_load("--- !ruby/object:Foo {}", permitted_classes: [Foo]) # Ruby 3.0- (Psych 3)
# YAML.load("--- !ruby/object:Foo {}", permitted_classes: [Foo]) # Ruby 3.1+ (Psych 4)
# YAML.dump(foo)
#
# source://rubocop//lib/rubocop/cop/security/yaml_load.rb#26
class RuboCop::Cop::Security::YAMLLoad < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/security/yaml_load.rb#37
def on_send(node); end
# source://rubocop//lib/rubocop/cop/security/yaml_load.rb#33
def yaml_load(param0 = T.unsafe(nil)); end
end
# source://rubocop//lib/rubocop/cop/security/yaml_load.rb#29
RuboCop::Cop::Security::YAMLLoad::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/security/yaml_load.rb#30
RuboCop::Cop::Security::YAMLLoad::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Severity class is simple value object about severity
#
# source://rubocop//lib/rubocop/cop/severity.rb#6
class RuboCop::Cop::Severity
include ::Comparable
# @api private
# @raise [ArgumentError]
# @return [Severity] a new instance of Severity
#
# source://rubocop//lib/rubocop/cop/severity.rb#30
def initialize(name_or_code); end
# source://rubocop//lib/rubocop/cop/severity.rb#62
def <=>(other); end
# source://rubocop//lib/rubocop/cop/severity.rb#50
def ==(other); end
# source://rubocop//lib/rubocop/cop/severity.rb#42
def code; end
# source://rubocop//lib/rubocop/cop/severity.rb#58
def hash; end
# source://rubocop//lib/rubocop/cop/severity.rb#46
def level; end
# @api public
# @return [Symbol] severity.
# any of `:info`, `:refactor`, `:convention`, `:warning`, `:error` or `:fatal`.
#
# source://rubocop//lib/rubocop/cop/severity.rb#22
def name; end
# source://rubocop//lib/rubocop/cop/severity.rb#38
def to_s; end
class << self
# source://rubocop//lib/rubocop/cop/severity.rb#24
def name_from_code(code); end
end
end
# @api private
#
# source://rubocop//lib/rubocop/cop/severity.rb#12
RuboCop::Cop::Severity::CODE_TABLE = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/severity.rb#9
RuboCop::Cop::Severity::NAMES = T.let(T.unsafe(nil), Array)
# Common functionality for cops checking for missing space after
# punctuation.
#
# source://rubocop//lib/rubocop/cop/mixin/space_after_punctuation.rb#7
module RuboCop::Cop::SpaceAfterPunctuation
# source://rubocop//lib/rubocop/cop/mixin/space_after_punctuation.rb#10
def on_new_investigation; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/space_after_punctuation.rb#38
def allowed_type?(token); end
# source://rubocop//lib/rubocop/cop/mixin/space_after_punctuation.rb#20
def each_missing_space(tokens); end
# The normal offset, i.e., the distance from the punctuation
# token where a space should be, is 1.
#
# source://rubocop//lib/rubocop/cop/mixin/space_after_punctuation.rb#49
def offset; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/space_after_punctuation.rb#42
def space_forbidden_before_rcurly?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/space_after_punctuation.rb#30
def space_missing?(token1, token2); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/space_after_punctuation.rb#34
def space_required_before?(token); end
end
# source://rubocop//lib/rubocop/cop/mixin/space_after_punctuation.rb#8
RuboCop::Cop::SpaceAfterPunctuation::MSG = T.let(T.unsafe(nil), String)
# Common functionality for cops checking for space before
# punctuation.
#
# source://rubocop//lib/rubocop/cop/mixin/space_before_punctuation.rb#7
module RuboCop::Cop::SpaceBeforePunctuation
include ::RuboCop::Cop::RangeHelp
# source://rubocop//lib/rubocop/cop/mixin/space_before_punctuation.rb#12
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/mixin/space_before_punctuation.rb#22
def each_missing_space(tokens); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/space_before_punctuation.rb#34
def space_missing?(token1, token2); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/space_before_punctuation.rb#38
def space_required_after?(token); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/space_before_punctuation.rb#42
def space_required_after_lcurly?; end
end
# source://rubocop//lib/rubocop/cop/mixin/space_before_punctuation.rb#10
RuboCop::Cop::SpaceBeforePunctuation::MSG = T.let(T.unsafe(nil), String)
# This autocorrects whitespace
#
# source://rubocop//lib/rubocop/cop/correctors/space_corrector.rb#6
class RuboCop::Cop::SpaceCorrector
extend ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::SurroundingSpace
class << self
# source://rubocop//lib/rubocop/cop/correctors/space_corrector.rb#36
def add_space(processed_source, corrector, left_token, right_token); end
# source://rubocop//lib/rubocop/cop/correctors/space_corrector.rb#12
def empty_corrections(processed_source, corrector, empty_config, left_token, right_token); end
# Returns the value of attribute processed_source.
#
# source://rubocop//lib/rubocop/cop/correctors/space_corrector.rb#10
def processed_source; end
# source://rubocop//lib/rubocop/cop/correctors/space_corrector.rb#24
def remove_space(processed_source, corrector, left_token, right_token); end
end
end
# Common functionality for modifier cops.
#
# source://rubocop//lib/rubocop/cop/mixin/statement_modifier.rb#6
module RuboCop::Cop::StatementModifier
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::LineLengthHelp
private
# source://rubocop//lib/rubocop/cop/mixin/statement_modifier.rb#80
def code_after(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/statement_modifier.rb#104
def comment_disables_cop?(comment); end
# source://rubocop//lib/rubocop/cop/mixin/statement_modifier.rb#72
def first_line_comment(node); end
# source://rubocop//lib/rubocop/cop/mixin/statement_modifier.rb#57
def if_body_source(if_body); end
# source://rubocop//lib/rubocop/cop/mixin/statement_modifier.rb#43
def length_in_modifier_form(node); end
# source://rubocop//lib/rubocop/cop/mixin/statement_modifier.rb#98
def max_line_length; end
# source://rubocop//lib/rubocop/cop/mixin/statement_modifier.rb#66
def method_source(if_body); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/statement_modifier.rb#37
def modifier_fits_on_single_line?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/statement_modifier.rb#26
def non_eligible_body?(body); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/statement_modifier.rb#33
def non_eligible_condition?(condition); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/statement_modifier.rb#19
def non_eligible_node?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/statement_modifier.rb#86
def parenthesize?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/statement_modifier.rb#11
def single_line_as_modifier?(node); end
# source://rubocop//lib/rubocop/cop/mixin/statement_modifier.rb#50
def to_modifier_form(node); end
end
# Classes that include this module just implement functions to determine
# what is an offense and how to do autocorrection. They get help with
# adding offenses for the faulty string nodes, and with filtering out
# nodes.
#
# source://rubocop//lib/rubocop/cop/mixin/string_help.rb#9
module RuboCop::Cop::StringHelp
# source://rubocop//lib/rubocop/cop/mixin/string_help.rb#26
def on_regexp(node); end
# source://rubocop//lib/rubocop/cop/mixin/string_help.rb#10
def on_str(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/string_help.rb#32
def inside_interpolation?(node); end
end
# This autocorrects string literals
#
# source://rubocop//lib/rubocop/cop/correctors/string_literal_corrector.rb#6
class RuboCop::Cop::StringLiteralCorrector
extend ::RuboCop::PathUtil
extend ::RuboCop::Cop::Util
class << self
# source://rubocop//lib/rubocop/cop/correctors/string_literal_corrector.rb#10
def correct(corrector, node, style); end
end
end
# Common functionality for cops checking single/double quotes.
#
# source://rubocop//lib/rubocop/cop/mixin/string_literals_help.rb#6
module RuboCop::Cop::StringLiteralsHelp
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/string_literals_help.rb#24
def enforce_double_quotes?; end
# source://rubocop//lib/rubocop/cop/mixin/string_literals_help.rb#20
def preferred_string_literal; end
# source://rubocop//lib/rubocop/cop/mixin/string_literals_help.rb#28
def string_literals_config; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/string_literals_help.rb#9
def wrong_quotes?(src_or_node); end
end
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#5
module RuboCop::Cop::Style; end
# Access modifiers should be declared to apply to a group of methods
# or inline before each method, depending on configuration.
# EnforcedStyle config covers only method definitions.
# Applications of visibility methods to symbols can be controlled
# using AllowModifiersOnSymbols config.
# Also, the visibility of `attr*` methods can be controlled using
# AllowModifiersOnAttrs config.
#
# In Ruby 3.0, `attr*` methods now return an array of defined method names
# as symbols. So we can write the modifier and `attr*` in inline style.
# AllowModifiersOnAttrs config allows `attr*` methods to be written in
# inline style without modifying applications that have been maintained
# for a long time in group style. Furthermore, developers who are not very
# familiar with Ruby may know that the modifier applies to `def`, but they
# may not know that it also applies to `attr*` methods. It would be easier
# to understand if we could write `attr*` methods in inline style.
#
# @example EnforcedStyle: group (default)
# # bad
# class Foo
#
# private def bar; end
# private def baz; end
#
# end
#
# # good
# class Foo
#
# private
#
# def bar; end
# def baz; end
#
# end
# @example EnforcedStyle: inline
# # bad
# class Foo
#
# private
#
# def bar; end
# def baz; end
#
# end
#
# # good
# class Foo
#
# private def bar; end
# private def baz; end
#
# end
# @example AllowModifiersOnSymbols: true (default)
# # good
# class Foo
#
# private :bar, :baz
# private *%i[qux quux]
# private *METHOD_NAMES
#
# end
# @example AllowModifiersOnSymbols: false
# # bad
# class Foo
#
# private :bar, :baz
# private *%i[qux quux]
# private *METHOD_NAMES
#
# end
# @example AllowModifiersOnAttrs: true (default)
# # good
# class Foo
#
# public attr_reader :bar
# protected attr_writer :baz
# private attr_accessor :qux
# private attr :quux
#
# def public_method; end
#
# private
#
# def private_method; end
#
# end
# @example AllowModifiersOnAttrs: false
# # bad
# class Foo
#
# public attr_reader :bar
# protected attr_writer :baz
# private attr_accessor :qux
# private attr :quux
#
# end
#
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#113
class RuboCop::Cop::Style::AccessModifierDeclarations < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#141
def access_modifier_with_attr?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#134
def access_modifier_with_symbol?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#146
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#205
def access_modifier_is_inlined?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#209
def access_modifier_is_not_inlined?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#187
def allow_modifiers_on_attrs?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#183
def allow_modifiers_on_symbols?(node); end
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#164
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#279
def def_source(node, def_node); end
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#240
def find_argument_less_modifier_node(node); end
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#229
def find_corresponding_def_node(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#197
def group_style?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#201
def inline_style?; end
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#271
def insert_inline_modifier(corrector, node, modifier_name); end
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#219
def message(range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#191
def offense?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#179
def percent_symbol_array?(node); end
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#275
def remove_node(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#254
def replace_def(corrector, node, def_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#213
def right_siblings_same_inline_method?(node); end
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#248
def select_grouped_def_nodes(node); end
end
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#131
RuboCop::Cop::Style::AccessModifierDeclarations::ALLOWED_NODE_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#119
RuboCop::Cop::Style::AccessModifierDeclarations::GROUP_STYLE_MESSAGE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#124
RuboCop::Cop::Style::AccessModifierDeclarations::INLINE_STYLE_MESSAGE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/access_modifier_declarations.rb#129
RuboCop::Cop::Style::AccessModifierDeclarations::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for grouping of accessors in `class` and `module` bodies.
# By default it enforces accessors to be placed in grouped declarations,
# but it can be configured to enforce separating them in multiple declarations.
#
# NOTE: If there is a method call before the accessor method it is always allowed
# as it might be intended like Sorbet.
#
# NOTE: If there is a RBS::Inline annotation comment just after the accessor method
# it is always allowed.
#
# @example EnforcedStyle: grouped (default)
# # bad
# class Foo
# attr_reader :bar
# attr_reader :bax
# attr_reader :baz
# end
#
# # good
# class Foo
# attr_reader :bar, :bax, :baz
# end
#
# # good
# class Foo
# # may be intended comment for bar.
# attr_reader :bar
#
# sig { returns(String) }
# attr_reader :bax
#
# may_be_intended_annotation :baz
# attr_reader :baz
# end
# @example EnforcedStyle: separated
# # bad
# class Foo
# attr_reader :bar, :baz
# end
#
# # good
# class Foo
# attr_reader :bar
# attr_reader :baz
# end
#
# source://rubocop//lib/rubocop/cop/style/accessor_grouping.rb#53
class RuboCop::Cop::Style::AccessorGrouping < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::VisibilityHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/accessor_grouping.rb#62
def on_class(node); end
# source://rubocop//lib/rubocop/cop/style/accessor_grouping.rb#62
def on_module(node); end
# source://rubocop//lib/rubocop/cop/style/accessor_grouping.rb#62
def on_sclass(node); end
private
# source://rubocop//lib/rubocop/cop/style/accessor_grouping.rb#85
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/accessor_grouping.rb#74
def check(send_node); end
# source://rubocop//lib/rubocop/cop/style/accessor_grouping.rb#122
def class_send_elements(class_node); end
# source://rubocop//lib/rubocop/cop/style/accessor_grouping.rb#165
def group_accessors(node, accessors); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/accessor_grouping.rb#99
def groupable_accessor?(node); end
# source://rubocop//lib/rubocop/cop/style/accessor_grouping.rb#142
def groupable_sibling_accessors(send_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/accessor_grouping.rb#134
def grouped_style?; end
# source://rubocop//lib/rubocop/cop/style/accessor_grouping.rb#151
def message(send_node); end
# source://rubocop//lib/rubocop/cop/style/accessor_grouping.rb#156
def preferred_accessors(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/accessor_grouping.rb#94
def previous_line_comment?(node); end
# source://rubocop//lib/rubocop/cop/style/accessor_grouping.rb#171
def separate_accessors(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/accessor_grouping.rb#138
def separated_style?; end
end
# source://rubocop//lib/rubocop/cop/style/accessor_grouping.rb#59
RuboCop::Cop::Style::AccessorGrouping::GROUPED_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/accessor_grouping.rb#60
RuboCop::Cop::Style::AccessorGrouping::SEPARATED_MSG = T.let(T.unsafe(nil), String)
# Enforces the use of either `#alias` or `#alias_method`
# depending on configuration.
# It also flags uses of `alias :symbol` rather than `alias bareword`.
#
# However, it will always enforce `method_alias` when used `alias`
# in an instance method definition and in a singleton method definition.
# If used in a block, always enforce `alias_method`
# unless it is an `instance_eval` block.
#
# @example EnforcedStyle: prefer_alias (default)
# # bad
# alias_method :bar, :foo
# alias :bar :foo
#
# # good
# alias bar foo
# @example EnforcedStyle: prefer_alias_method
# # bad
# alias :bar :foo
# alias bar foo
#
# # good
# alias_method :bar, :foo
#
# source://rubocop//lib/rubocop/cop/style/alias.rb#31
class RuboCop::Cop::Style::Alias < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/alias.rb#52
def on_alias(node); end
# source://rubocop//lib/rubocop/cop/style/alias.rb#41
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/alias.rb#86
def add_offense_for_args(node, &block); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/alias.rb#76
def alias_keyword_possible?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/alias.rb#80
def alias_method_possible?(node); end
# source://rubocop//lib/rubocop/cop/style/alias.rb#66
def autocorrect(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/alias.rb#125
def bareword?(sym_node); end
# source://rubocop//lib/rubocop/cop/style/alias.rb#129
def correct_alias_method_to_alias(corrector, send_node); end
# source://rubocop//lib/rubocop/cop/style/alias.rb#136
def correct_alias_to_alias_method(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/alias.rb#143
def correct_alias_with_symbol_args(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/alias.rb#148
def identifier(node); end
# source://rubocop//lib/rubocop/cop/style/alias.rb#114
def lexical_scope_type(node); end
# In this expression, will `self` be the same as the innermost enclosing
# class or module block (:lexical)? Or will it be something else
# (:dynamic)? If we're in an instance_eval block, return that.
#
# source://rubocop//lib/rubocop/cop/style/alias.rb#97
def scope_type(node); end
end
# source://rubocop//lib/rubocop/cop/style/alias.rb#35
RuboCop::Cop::Style::Alias::MSG_ALIAS = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/alias.rb#36
RuboCop::Cop::Style::Alias::MSG_ALIAS_METHOD = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/alias.rb#37
RuboCop::Cop::Style::Alias::MSG_SYMBOL_ARGS = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/alias.rb#39
RuboCop::Cop::Style::Alias::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Looks for endless methods inside operations of lower precedence (`and`, `or`, and
# modifier forms of `if`, `unless`, `while`, `until`) that are ambiguous due to
# lack of parentheses. This may lead to unexpected behavior as the code may appear
# to use these keywords as part of the method but in fact they modify
# the method definition itself.
#
# In these cases, using a normal method definition is more clear.
#
# @example
#
# # bad
# def foo = true if bar
#
# # good - using a non-endless method is more explicit
# def foo
# true
# end if bar
#
# # ok - method body is explicit
# def foo = (true if bar)
#
# # ok - method definition is explicit
# (def foo = true) if bar
#
# source://rubocop//lib/rubocop/cop/style/ambiguous_endless_method_definition.rb#29
class RuboCop::Cop::Style::AmbiguousEndlessMethodDefinition < ::RuboCop::Cop::Base
include ::RuboCop::Cop::EndlessMethodRewriter
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::TargetRubyVersion
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/ambiguous_endless_method_definition.rb#40
def ambiguous_endless_method_body(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/ambiguous_endless_method_definition.rb#48
def on_def(node); end
private
# source://rubocop//lib/rubocop/cop/style/ambiguous_endless_method_definition.rb#69
def keyword(operation); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ambiguous_endless_method_definition.rb#63
def modifier_form?(operation); end
end
# source://rubocop//lib/rubocop/cop/style/ambiguous_endless_method_definition.rb#37
RuboCop::Cop::Style::AmbiguousEndlessMethodDefinition::MSG = T.let(T.unsafe(nil), String)
# Checks for uses of `and` and `or`, and suggests using `&&` and
# `||` instead. It can be configured to check only in conditions or in
# all contexts.
#
# @example EnforcedStyle: conditionals (default)
# # bad
# if foo and bar
# end
#
# # good
# foo.save && return
#
# # good
# foo.save and return
#
# # good
# if foo && bar
# end
# @example EnforcedStyle: always
# # bad
# foo.save and return
#
# # bad
# if foo and bar
# end
#
# # good
# foo.save && return
#
# # good
# if foo && bar
# end
#
# source://rubocop//lib/rubocop/cop/style/and_or.rb#44
class RuboCop::Cop::Style::AndOr < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/and_or.rb#51
def on_and(node); end
# source://rubocop//lib/rubocop/cop/style/and_or.rb#56
def on_if(node); end
# source://rubocop//lib/rubocop/cop/style/and_or.rb#51
def on_or(node); end
# source://rubocop//lib/rubocop/cop/style/and_or.rb#56
def on_until(node); end
# source://rubocop//lib/rubocop/cop/style/and_or.rb#56
def on_until_post(node); end
# source://rubocop//lib/rubocop/cop/style/and_or.rb#56
def on_while(node); end
# source://rubocop//lib/rubocop/cop/style/and_or.rb#56
def on_while_post(node); end
private
# ! is a special case:
# 'x and !obj.method arg' can be autocorrected if we
# recurse down a level and add parens to 'obj.method arg'
# however, 'not x' also parses as (send x :!)
#
# source://rubocop//lib/rubocop/cop/style/and_or.rb#117
def correct_not(node, receiver, corrector); end
# source://rubocop//lib/rubocop/cop/style/and_or.rb#129
def correct_other(node, corrector); end
# source://rubocop//lib/rubocop/cop/style/and_or.rb#95
def correct_send(node, corrector); end
# source://rubocop//lib/rubocop/cop/style/and_or.rb#108
def correct_setter(node, corrector); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/and_or.rb#143
def correctable_send?(node); end
# source://rubocop//lib/rubocop/cop/style/and_or.rb#135
def keep_operator_precedence(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/and_or.rb#91
def message(node); end
# source://rubocop//lib/rubocop/cop/style/and_or.rb#85
def on_conditionals(node); end
# source://rubocop//lib/rubocop/cop/style/and_or.rb#66
def process_logical_operator(node); end
# source://rubocop//lib/rubocop/cop/style/and_or.rb#147
def whitespace_before_arg(node); end
end
# source://rubocop//lib/rubocop/cop/style/and_or.rb#49
RuboCop::Cop::Style::AndOr::MSG = T.let(T.unsafe(nil), String)
# In Ruby 2.7, arguments forwarding has been added.
#
# This cop identifies places where `do_something(*args, &block)`
# can be replaced by `do_something(...)`.
#
# In Ruby 3.1, anonymous block forwarding has been added.
#
# This cop identifies places where `do_something(&block)` can be replaced
# by `do_something(&)`; if desired, this functionality can be disabled
# by setting `UseAnonymousForwarding: false`.
#
# In Ruby 3.2, anonymous args/kwargs forwarding has been added.
#
# This cop also identifies places where `use_args(*args)`/`use_kwargs(**kwargs)` can be
# replaced by `use_args(*)`/`use_kwargs(**)`; if desired, this functionality can be disabled
# by setting `UseAnonymousForwarding: false`.
#
# And this cop has `RedundantRestArgumentNames`, `RedundantKeywordRestArgumentNames`,
# and `RedundantBlockArgumentNames` options. This configuration is a list of redundant names
# that are sufficient for anonymizing meaningless naming.
#
# Meaningless names that are commonly used can be anonymized by default:
# e.g., `*args`, `**options`, `&block`, and so on.
#
# Names not on this list are likely to be meaningful and are allowed by default.
#
# This cop handles not only method forwarding but also forwarding to `super`.
#
# @example
# # bad
# def foo(*args, &block)
# bar(*args, &block)
# end
#
# # bad
# def foo(*args, **kwargs, &block)
# bar(*args, **kwargs, &block)
# end
#
# # good
# def foo(...)
# bar(...)
# end
# @example UseAnonymousForwarding: true (default, only relevant for Ruby >= 3.2)
# # bad
# def foo(*args, **kwargs, &block)
# args_only(*args)
# kwargs_only(**kwargs)
# block_only(&block)
# end
#
# # good
# def foo(*, **, &)
# args_only(*)
# kwargs_only(**)
# block_only(&)
# end
# @example UseAnonymousForwarding: false (only relevant for Ruby >= 3.2)
# # good
# def foo(*args, **kwargs, &block)
# args_only(*args)
# kwargs_only(**kwargs)
# block_only(&block)
# end
# @example AllowOnlyRestArgument: true (default, only relevant for Ruby < 3.2)
# # good
# def foo(*args)
# bar(*args)
# end
#
# def foo(**kwargs)
# bar(**kwargs)
# end
# @example AllowOnlyRestArgument: false (only relevant for Ruby < 3.2)
# # bad
# # The following code can replace the arguments with `...`,
# # but it will change the behavior. Because `...` forwards block also.
# def foo(*args)
# bar(*args)
# end
#
# def foo(**kwargs)
# bar(**kwargs)
# end
# @example RedundantRestArgumentNames: ['args', 'arguments'] (default)
# # bad
# def foo(*args)
# bar(*args)
# end
#
# # good
# def foo(*)
# bar(*)
# end
# @example RedundantKeywordRestArgumentNames: ['kwargs', 'options', 'opts'] (default)
# # bad
# def foo(**kwargs)
# bar(**kwargs)
# end
#
# # good
# def foo(**)
# bar(**)
# end
# @example RedundantBlockArgumentNames: ['blk', 'block', 'proc'] (default)
# # bad - But it is good with `EnforcedStyle: explicit` set for `Naming/BlockForwarding`.
# def foo(&block)
# bar(&block)
# end
#
# # good
# def foo(&)
# bar(&)
# end
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#127
class RuboCop::Cop::Style::ArgumentsForwarding < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#146
def on_def(node); end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#146
def on_defs(node); end
private
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#188
def add_forward_all_offenses(node, send_classifications, forwardable_args); end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#366
def add_parens_if_missing(node, corrector); end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#215
def add_post_ruby_32_offenses(def_node, send_classifications, forwardable_args); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#352
def allow_only_rest_arguments?; end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#340
def arguments_range(node, first_node); end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#267
def classification_and_forwards(def_node, send_node, referenced_lvars, forwardable_args); end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#252
def classify_send_nodes(def_node, send_nodes, referenced_lvars, forwardable_args); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#542
def explicit_block_name?; end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#170
def extract_forwardable_args(args); end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#242
def non_splat_or_block_pass_lvar_references(body); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#182
def only_forwards_all?(send_classifications); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#296
def outside_block?(node); end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#174
def redundant_forwardable_named_args(restarg, kwrestarg, blockarg); end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#286
def redundant_named_arg(arg, config_name, keyword); end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#329
def register_forward_all_offense(def_or_send, send_or_arguments, rest_or_splat); end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#302
def register_forward_args_offense(def_arguments_or_send, rest_arg_or_splat); end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#318
def register_forward_block_arg_offense(add_parens, def_arguments_or_send, block_arg); end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#310
def register_forward_kwargs_offense(add_parens, def_arguments_or_send, kwrest_arg_or_splat); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#360
def send_inside_block?(send_classifications); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#356
def use_anonymous_forwarding?; end
class << self
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#142
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#135
RuboCop::Cop::Style::ArgumentsForwarding::ADDITIONAL_ARG_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#138
RuboCop::Cop::Style::ArgumentsForwarding::ARGS_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#140
RuboCop::Cop::Style::ArgumentsForwarding::BLOCK_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#134
RuboCop::Cop::Style::ArgumentsForwarding::FORWARDING_LVAR_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#137
RuboCop::Cop::Style::ArgumentsForwarding::FORWARDING_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#139
RuboCop::Cop::Style::ArgumentsForwarding::KWARGS_MSG = T.let(T.unsafe(nil), String)
# Classifies send nodes for possible rest/kwrest/all (including block) forwarding.
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#374
class RuboCop::Cop::Style::ArgumentsForwarding::SendNodeClassifier
extend ::RuboCop::AST::NodePattern::Macros
# @return [SendNodeClassifier] a new instance of SendNodeClassifier
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#403
def initialize(def_node, send_node, referenced_lvars, forwardable_args, **config); end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#431
def classification; end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#387
def def_all_anonymous_args?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#381
def extract_forwarded_kwrest_arg(param0 = T.unsafe(nil), param1); end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#425
def forwarded_block_arg; end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#384
def forwarded_block_arg?(param0 = T.unsafe(nil), param1); end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#419
def forwarded_kwrest_arg; end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#413
def forwarded_rest_arg; end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#378
def forwarded_rest_arg?(param0 = T.unsafe(nil), param1); end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#396
def send_all_anonymous_args?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#513
def additional_kwargs?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#509
def additional_kwargs_or_forwarded_kwargs?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#523
def allow_offense_for_no_block?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#494
def any_arg_referenced?; end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#478
def arguments; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#446
def can_forward_all?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#517
def forward_additional_kwargs?; end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#474
def forwarded_rest_and_kwrest_args; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#536
def missing_rest_arg_or_kwrest_arg?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#527
def no_additional_args?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#502
def no_post_splat_args?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#470
def offensive_block_forwarding?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#490
def referenced_block_arg?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#486
def referenced_kwrest_arg?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#482
def referenced_rest_arg?; end
# def foo(a = 41, ...) is a syntax error in 3.0.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#458
def ruby_30_or_lower_optarg?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#462
def ruby_32_only_anonymous_forwarding?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#466
def ruby_32_or_higher_missing_rest_or_kwest?; end
# source://rubocop//lib/rubocop/cop/style/arguments_forwarding.rb#498
def target_ruby_version; end
end
# Enforces the use of `Array()` instead of explicit `Array` check or `[*var]`.
#
# The cop is disabled by default due to safety concerns.
#
# @example
# # bad
# paths = [paths] unless paths.is_a?(Array)
# paths.each { |path| do_something(path) }
#
# # bad (always creates a new Array instance)
# [*paths].each { |path| do_something(path) }
#
# # good (and a bit more readable)
# Array(paths).each { |path| do_something(path) }
#
# source://rubocop//lib/rubocop/cop/style/array_coercion.rb#41
class RuboCop::Cop::Style::ArrayCoercion < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/array_coercion.rb#48
def array_splat?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/array_coercion.rb#63
def on_array(node); end
# source://rubocop//lib/rubocop/cop/style/array_coercion.rb#74
def on_if(node); end
# source://rubocop//lib/rubocop/cop/style/array_coercion.rb#53
def unless_array?(param0 = T.unsafe(nil)); end
end
# source://rubocop//lib/rubocop/cop/style/array_coercion.rb#45
RuboCop::Cop::Style::ArrayCoercion::CHECK_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/array_coercion.rb#44
RuboCop::Cop::Style::ArrayCoercion::SPLAT_MSG = T.let(T.unsafe(nil), String)
# Identifies usages of `arr[0]` and `arr[-1]` and suggests to change
# them to use `arr.first` and `arr.last` instead.
#
# The cop is disabled by default due to safety concerns.
#
# @example
# # bad
# arr[0]
# arr[-1]
#
# # good
# arr.first
# arr.last
# arr[0] = 2
# arr[0][-2]
#
# source://rubocop//lib/rubocop/cop/style/array_first_last.rb#28
class RuboCop::Cop::Style::ArrayFirstLast < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/array_first_last.rb#35
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/array_first_last.rb#58
def brace_method?(node); end
# source://rubocop//lib/rubocop/cop/style/array_first_last.rb#53
def innermost_braces_node(node); end
end
# source://rubocop//lib/rubocop/cop/style/array_first_last.rb#31
RuboCop::Cop::Style::ArrayFirstLast::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/array_first_last.rb#32
RuboCop::Cop::Style::ArrayFirstLast::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# In Ruby 3.1, `Array#intersect?` has been added.
#
# This cop identifies places where `(array1 & array2).any?`
# can be replaced by `array1.intersect?(array2)`.
#
# The `array1.intersect?(array2)` method is faster than
# `(array1 & array2).any?` and is more readable.
#
# In cases like the following, compatibility is not ensured,
# so it will not be detected when using block argument.
#
# [source,ruby]
# ----
# ([1] & [1,2]).any? { |x| false } # => false
# [1].intersect?([1,2]) { |x| false } # => true
# ----
#
# @example
# # bad
# (array1 & array2).any?
# (array1 & array2).empty?
#
# # good
# array1.intersect?(array2)
# !array1.intersect?(array2)
# @example AllCops:ActiveSupportExtensionsEnabled: false (default)
# # good
# (array1 & array2).present?
# (array1 & array2).blank?
# @example AllCops:ActiveSupportExtensionsEnabled: true
# # bad
# (array1 & array2).present?
# (array1 & array2).blank?
#
# # good
# array1.intersect?(array2)
# !array1.intersect?(array2)
#
# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#49
class RuboCop::Cop::Style::ArrayIntersect < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#65
def active_support_bad_intersection_check?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#79
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#56
def regular_bad_intersection_check?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#94
def bad_intersection_check?(node); end
# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#106
def message(receiver, argument, method_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#102
def straight?(method_name); end
end
# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#73
RuboCop::Cop::Style::ArrayIntersect::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#76
RuboCop::Cop::Style::ArrayIntersect::NEGATED_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#77
RuboCop::Cop::Style::ArrayIntersect::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/array_intersect.rb#75
RuboCop::Cop::Style::ArrayIntersect::STRAIGHT_METHODS = T.let(T.unsafe(nil), Array)
# Checks for uses of "*" as a substitute for _join_.
#
# Not all cases can reliably checked, due to Ruby's dynamic
# types, so we consider only cases when the first argument is an
# array literal or the second is a string literal.
#
# @example
#
# # bad
# %w(foo bar baz) * ","
#
# # good
# %w(foo bar baz).join(",")
#
# source://rubocop//lib/rubocop/cop/style/array_join.rb#20
class RuboCop::Cop::Style::ArrayJoin < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/array_join.rb#27
def join_candidate?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/array_join.rb#29
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/style/array_join.rb#23
RuboCop::Cop::Style::ArrayJoin::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/array_join.rb#24
RuboCop::Cop::Style::ArrayJoin::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/ascii_comments.rb#16
class RuboCop::Cop::Style::AsciiComments < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
# source://rubocop//lib/rubocop/cop/style/ascii_comments.rb#21
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/style/ascii_comments.rb#51
def allowed_non_ascii_chars; end
# source://rubocop//lib/rubocop/cop/style/ascii_comments.rb#42
def first_non_ascii_chars(string); end
# source://rubocop//lib/rubocop/cop/style/ascii_comments.rb#32
def first_offense_range(comment); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ascii_comments.rb#46
def only_allowed_non_ascii_chars?(string); end
end
# source://rubocop//lib/rubocop/cop/style/ascii_comments.rb#19
RuboCop::Cop::Style::AsciiComments::MSG = T.let(T.unsafe(nil), String)
# Checks for uses of Module#attr.
#
# @example
# # bad - creates a single attribute accessor (deprecated in Ruby 1.9)
# attr :something, true
# attr :one, :two, :three # behaves as attr_reader
#
# # good
# attr_accessor :something
# attr_reader :one, :two, :three
#
# source://rubocop//lib/rubocop/cop/style/attr.rb#17
class RuboCop::Cop::Style::Attr < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/attr.rb#74
def class_eval?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/attr.rb#24
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/attr.rb#37
def allowed_context?(node); end
# source://rubocop//lib/rubocop/cop/style/attr.rb#47
def autocorrect(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/attr.rb#43
def define_attr_method?(node); end
# source://rubocop//lib/rubocop/cop/style/attr.rb#59
def message(node); end
# source://rubocop//lib/rubocop/cop/style/attr.rb#63
def replacement_method(node); end
end
# source://rubocop//lib/rubocop/cop/style/attr.rb#21
RuboCop::Cop::Style::Attr::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/attr.rb#22
RuboCop::Cop::Style::Attr::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for cases when you could use a block
# accepting version of a method that does automatic
# resource cleanup.
#
# @example
#
# # bad
# f = File.open('file')
#
# # good
# File.open('file') do |f|
# # ...
# end
#
# # bad
# f = Tempfile.open('temp')
#
# # good
# Tempfile.open('temp') do |f|
# # ...
# end
#
# source://rubocop//lib/rubocop/cop/style/auto_resource_cleanup.rb#27
class RuboCop::Cop::Style::AutoResourceCleanup < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/style/auto_resource_cleanup.rb#32
def file_open_method?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/auto_resource_cleanup.rb#36
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/auto_resource_cleanup.rb#46
def cleanup?(node); end
end
# source://rubocop//lib/rubocop/cop/style/auto_resource_cleanup.rb#28
RuboCop::Cop::Style::AutoResourceCleanup::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/auto_resource_cleanup.rb#29
RuboCop::Cop::Style::AutoResourceCleanup::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks if usage of %() or %Q() matches configuration.
#
# @example EnforcedStyle: bare_percent (default)
# # bad
# %Q(He said: "#{greeting}")
# %q{She said: 'Hi'}
#
# # good
# %(He said: "#{greeting}")
# %{She said: 'Hi'}
# @example EnforcedStyle: percent_q
# # bad
# %|He said: "#{greeting}"|
# %/She said: 'Hi'/
#
# # good
# %Q|He said: "#{greeting}"|
# %q/She said: 'Hi'/
#
# source://rubocop//lib/rubocop/cop/style/bare_percent_literals.rb#26
class RuboCop::Cop::Style::BarePercentLiterals < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/bare_percent_literals.rb#32
def on_dstr(node); end
# source://rubocop//lib/rubocop/cop/style/bare_percent_literals.rb#36
def on_str(node); end
private
# source://rubocop//lib/rubocop/cop/style/bare_percent_literals.rb#63
def add_offense_for_wrong_style(node, good, bad); end
# source://rubocop//lib/rubocop/cop/style/bare_percent_literals.rb#42
def check(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/bare_percent_literals.rb#59
def requires_bare_percent?(source); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/bare_percent_literals.rb#55
def requires_percent_q?(source); end
end
# source://rubocop//lib/rubocop/cop/style/bare_percent_literals.rb#30
RuboCop::Cop::Style::BarePercentLiterals::MSG = T.let(T.unsafe(nil), String)
# Checks for BEGIN blocks.
#
# @example
# # bad
# BEGIN { test }
#
# source://rubocop//lib/rubocop/cop/style/begin_block.rb#12
class RuboCop::Cop::Style::BeginBlock < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/style/begin_block.rb#15
def on_preexe(node); end
end
# source://rubocop//lib/rubocop/cop/style/begin_block.rb#13
RuboCop::Cop::Style::BeginBlock::MSG = T.let(T.unsafe(nil), String)
# Checks for places where `attr_reader` and `attr_writer`
# for the same method can be combined into single `attr_accessor`.
#
# @example
# # bad
# class Foo
# attr_reader :bar
# attr_writer :bar
# end
#
# # good
# class Foo
# attr_accessor :bar
# end
#
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor.rb#21
class RuboCop::Cop::Style::BisectedAttrAccessor < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# Each offending macro is captured and registered in `on_class` but correction
# happens in `after_class` because a macro might have multiple attributes
# rewritten from it
#
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor.rb#55
def after_class(class_node); end
# Each offending macro is captured and registered in `on_class` but correction
# happens in `after_class` because a macro might have multiple attributes
# rewritten from it
#
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor.rb#55
def after_module(class_node); end
# Each offending macro is captured and registered in `on_class` but correction
# happens in `after_class` because a macro might have multiple attributes
# rewritten from it
#
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor.rb#55
def after_sclass(class_node); end
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor.rb#33
def on_class(class_node); end
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor.rb#33
def on_module(class_node); end
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor.rb#29
def on_new_investigation; end
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor.rb#33
def on_sclass(class_node); end
private
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor.rb#102
def correct_reader(corrector, macro, node, range); end
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor.rb#114
def correct_writer(corrector, macro, node, range); end
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor.rb#91
def find_bisection(macros); end
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor.rb#74
def find_macros(class_def); end
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor.rb#98
def register_offense(attr); end
end
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor.rb#27
RuboCop::Cop::Style::BisectedAttrAccessor::MSG = T.let(T.unsafe(nil), String)
# Representation of an `attr_reader`, `attr_writer` or `attr` macro
# for use by `Style/BisectedAttrAccessor`.
#
# @api private
#
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor/macro.rb#10
class RuboCop::Cop::Style::BisectedAttrAccessor::Macro
include ::RuboCop::Cop::VisibilityHelp
# @api private
# @return [Macro] a new instance of Macro
#
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor/macro.rb#19
def initialize(node); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor/macro.rb#49
def all_bisected?; end
# @api private
#
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor/macro.rb#29
def attr_names; end
# @api private
#
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor/macro.rb#13
def attrs; end
# @api private
#
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor/macro.rb#25
def bisect(*names); end
# @api private
#
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor/macro.rb#33
def bisected_names; end
# @api private
#
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor/macro.rb#13
def bisection; end
# @api private
#
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor/macro.rb#13
def node; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor/macro.rb#41
def reader?; end
# @api private
#
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor/macro.rb#53
def rest; end
# @api private
#
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor/macro.rb#37
def visibility; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor/macro.rb#45
def writer?; end
class << self
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/bisected_attr_accessor/macro.rb#15
def macro?(node); end
end
end
# Prefer bitwise predicate methods over direct comparison operations.
#
# @example
#
# # bad - checks any set bits
# (variable & flags).positive?
#
# # good
# variable.anybits?(flags)
#
# # bad - checks all set bits
# (variable & flags) == flags
#
# # good
# variable.allbits?(flags)
#
# # bad - checks no set bits
# (variable & flags).zero?
#
# # good
# variable.nobits?(flags)
#
# source://rubocop//lib/rubocop/cop/style/bitwise_predicate.rb#32
class RuboCop::Cop::Style::BitwisePredicate < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/bitwise_predicate.rb#52
def allbits?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/bitwise_predicate.rb#42
def anybits?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/bitwise_predicate.rb#68
def bit_operation?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/bitwise_predicate.rb#60
def nobits?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/bitwise_predicate.rb#73
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/bitwise_predicate.rb#88
def preferred_method(node); end
end
# source://rubocop//lib/rubocop/cop/style/bitwise_predicate.rb#36
RuboCop::Cop::Style::BitwisePredicate::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/bitwise_predicate.rb#37
RuboCop::Cop::Style::BitwisePredicate::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Looks for uses of block comments (=begin...=end).
#
# @example
# # bad
# =begin
# Multiple lines
# of comments...
# =end
#
# # good
# # Multiple lines
# # of comments...
#
# source://rubocop//lib/rubocop/cop/style/block_comments.rb#19
class RuboCop::Cop::Style::BlockComments < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/block_comments.rb#27
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/style/block_comments.rb#56
def eq_end_part(comment, expr); end
# source://rubocop//lib/rubocop/cop/style/block_comments.rb#48
def parts(comment); end
end
# source://rubocop//lib/rubocop/cop/style/block_comments.rb#24
RuboCop::Cop::Style::BlockComments::BEGIN_LENGTH = T.let(T.unsafe(nil), Integer)
# source://rubocop//lib/rubocop/cop/style/block_comments.rb#25
RuboCop::Cop::Style::BlockComments::END_LENGTH = T.let(T.unsafe(nil), Integer)
# source://rubocop//lib/rubocop/cop/style/block_comments.rb#23
RuboCop::Cop::Style::BlockComments::MSG = T.let(T.unsafe(nil), String)
# Check for uses of braces or do/end around single line or
# multi-line blocks.
#
# Methods that can be either procedural or functional and cannot be
# categorised from their usage alone is ignored.
# `lambda`, `proc`, and `it` are their defaults.
# Additional methods can be added to the `AllowedMethods`.
#
# @example EnforcedStyle: line_count_based (default)
# # bad - single line block
# items.each do |item| item / 5 end
#
# # good - single line block
# items.each { |item| item / 5 }
#
# # bad - multi-line block
# things.map { |thing|
# something = thing.some_method
# process(something)
# }
#
# # good - multi-line block
# things.map do |thing|
# something = thing.some_method
# process(something)
# end
# @example EnforcedStyle: semantic
# # Prefer `do...end` over `{...}` for procedural blocks.
#
# # return value is used/assigned
# # bad
# foo = map do |x|
# x
# end
# puts (map do |x|
# x
# end)
#
# # return value is not used out of scope
# # good
# map do |x|
# x
# end
#
# # Prefer `{...}` over `do...end` for functional blocks.
#
# # return value is not used out of scope
# # bad
# each { |x|
# x
# }
#
# # return value is used/assigned
# # good
# foo = map { |x|
# x
# }
# map { |x|
# x
# }.inspect
#
# # The AllowBracesOnProceduralOneLiners option is allowed unless the
# # EnforcedStyle is set to `semantic`. If so:
#
# # If the AllowBracesOnProceduralOneLiners option is unspecified, or
# # set to `false` or any other falsey value, then semantic purity is
# # maintained, so one-line procedural blocks must use do-end, not
# # braces.
#
# # bad
# collection.each { |element| puts element }
#
# # good
# collection.each do |element| puts element end
#
# # If the AllowBracesOnProceduralOneLiners option is set to `true`, or
# # any other truthy value, then one-line procedural blocks may use
# # either style. (There is no setting for requiring braces on them.)
#
# # good
# collection.each { |element| puts element }
#
# # also good
# collection.each do |element| puts element end
# @example EnforcedStyle: braces_for_chaining
# # bad
# words.each do |word|
# word.flip.flop
# end.join("-")
#
# # good
# words.each { |word|
# word.flip.flop
# }.join("-")
# @example EnforcedStyle: always_braces
# # bad
# words.each do |word|
# word.flip.flop
# end
#
# # good
# words.each { |word|
# word.flip.flop
# }
# @example BracesRequiredMethods: ['sig']
#
# # Methods listed in the BracesRequiredMethods list, such as 'sig'
# # in this example, will require `{...}` braces. This option takes
# # precedence over all other configurations except AllowedMethods.
#
# # bad
# sig do
# params(
# foo: string,
# ).void
# end
# def bar(foo)
# puts foo
# end
#
# # good
# sig {
# params(
# foo: string,
# ).void
# }
# def bar(foo)
# puts foo
# end
# @example AllowedMethods: ['lambda', 'proc', 'it' ] (default)
#
# # good
# foo = lambda do |x|
# puts "Hello, #{x}"
# end
#
# foo = lambda do |x|
# x * 100
# end
# @example AllowedPatterns: [] (default)
#
# # bad
# things.map { |thing|
# something = thing.some_method
# process(something)
# }
# @example AllowedPatterns: ['map']
#
# # good
# things.map { |thing|
# something = thing.some_method
# process(something)
# }
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#168
class RuboCop::Cop::Style::BlockDelimiters < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::AllowedMethods
include ::RuboCop::Cop::AllowedPattern
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#198
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#198
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#183
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#487
def array_or_range?(node); end
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#212
def autocorrect(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#491
def begin_required?(block_node); end
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#240
def braces_for_chaining_message(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#428
def braces_for_chaining_style?(node); end
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#252
def braces_required_message(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#405
def braces_required_method?(method_name); end
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#409
def braces_required_methods; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#438
def braces_style?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#483
def conditional?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#442
def correction_would_break_code?(node); end
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#328
def end_of_chain(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#452
def functional_block?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#448
def functional_method?(method_name); end
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#345
def get_blocks(node, &block); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#413
def line_count_based_block_style?(node); end
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#222
def line_count_based_message(node); end
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#256
def message(node); end
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#304
def move_comment_before_block(corrector, comment, block_node, closing_brace); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#460
def procedural_method?(method_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#456
def procedural_oneliners_may_have_braces?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#364
def proper_block_style?(node); end
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#335
def remove_trailing_whitespace(corrector, range, comment); end
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#267
def replace_braces_with_do_end(corrector, loc); end
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#283
def replace_do_end_with_braces(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#377
def require_braces?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#385
def require_do_end?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#476
def return_value_of_scope?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#464
def return_value_used?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#417
def semantic_block_style?(node); end
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#230
def semantic_message(node); end
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#318
def source_range_before_comment(range, comment); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#392
def special_method?(method_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#398
def special_method_proper_block_style?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#300
def whitespace_after?(range, length = T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#296
def whitespace_before?(range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#341
def with_block?(node); end
class << self
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#179
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#175
RuboCop::Cop::Style::BlockDelimiters::ALWAYS_BRACES_MESSAGE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/block_delimiters.rb#177
RuboCop::Cop::Style::BlockDelimiters::BRACES_REQUIRED_MESSAGE = T.let(T.unsafe(nil), String)
# Corrector to correct conditional assignment in `case` statements.
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#604
class RuboCop::Cop::Style::CaseCorrector
extend ::RuboCop::Cop::Style::ConditionalAssignmentHelper
extend ::RuboCop::Cop::Style::ConditionalCorrectorHelper
class << self
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#609
def correct(corrector, cop, node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#619
def move_assignment_inside_condition(corrector, node); end
private
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#639
def extract_branches(case_node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#633
def extract_tail_branches(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#649
def move_branch_inside_condition(corrector, branch, condition, assignment, column); end
end
end
# If `AllowOnSelfClass` option is enabled, the cop will ignore violations when the receiver of
# the case equality operator is `self.class`. Note intermediate variables are not accepted.
#
# @example
# # bad
# (1..100) === 7
# /something/ === some_string
#
# # good
# something.is_a?(Array)
# (1..100).include?(7)
# /something/.match?(some_string)
# @example AllowOnConstant: false (default)
# # bad
# Array === something
# @example AllowOnConstant: true
# # good
# Array === something
# @example AllowOnSelfClass: false (default)
# # bad
# self.class === something
# @example AllowOnSelfClass: true
# # good
# self.class === something
#
# source://rubocop//lib/rubocop/cop/style/case_equality.rb#40
class RuboCop::Cop::Style::CaseEquality < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/case_equality.rb#47
def case_equality?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/case_equality.rb#52
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/case_equality.rb#50
def self_class?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/case_equality.rb#90
def begin_replacement(lhs, rhs); end
# source://rubocop//lib/rubocop/cop/style/case_equality.rb#96
def const_replacement(lhs, rhs); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/case_equality.rb#65
def offending_receiver?(node); end
# source://rubocop//lib/rubocop/cop/style/case_equality.rb#72
def replacement(lhs, rhs); end
# source://rubocop//lib/rubocop/cop/style/case_equality.rb#100
def send_replacement(lhs, rhs); end
end
# source://rubocop//lib/rubocop/cop/style/case_equality.rb#43
RuboCop::Cop::Style::CaseEquality::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/case_equality.rb#44
RuboCop::Cop::Style::CaseEquality::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Identifies places where `if-elsif` constructions
# can be replaced with `case-when`.
#
# @example MinBranchesCount: 3 (default)
# # bad
# if status == :active
# perform_action
# elsif status == :inactive || status == :hibernating
# check_timeout
# elsif status == :invalid
# report_invalid
# else
# final_action
# end
#
# # good
# case status
# when :active
# perform_action
# when :inactive, :hibernating
# check_timeout
# when :invalid
# report_invalid
# else
# final_action
# end
# @example MinBranchesCount: 4
# # good
# if status == :active
# perform_action
# elsif status == :inactive || status == :hibernating
# check_timeout
# elsif status == :invalid
# report_invalid
# else
# final_action
# end
#
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#50
class RuboCop::Cop::Style::CaseLikeIf < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::MinBranchesCount
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#57
def on_if(node); end
private
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#81
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#231
def branch_conditions(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#249
def class_reference?(node); end
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#166
def collect_conditions(node, target, conditions); end
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#220
def condition_from_binary_op(lhs, rhs, target); end
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#202
def condition_from_equality_node(node, target); end
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#213
def condition_from_include_or_cover_node(node, target); end
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#208
def condition_from_match_node(node, target); end
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#185
def condition_from_send_node(node, target); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#240
def const_reference?(node); end
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#258
def correction_range(node); end
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#253
def deparenthesize(node); end
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#102
def find_target(node); end
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#136
def find_target_in_equality_node(node); end
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#148
def find_target_in_include_or_cover_node(node); end
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#154
def find_target_in_match_node(node); end
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#121
def find_target_in_send_node(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#274
def regexp_with_named_captures?(node); end
# Named captures work with `=~` (if regexp is on lhs) and with `match` (both sides)
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#263
def regexp_with_working_captures?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#96
def should_check?(node); end
end
# source://rubocop//lib/rubocop/cop/style/case_like_if.rb#55
RuboCop::Cop::Style::CaseLikeIf::MSG = T.let(T.unsafe(nil), String)
# Checks for uses of the character literal ?x.
# Starting with Ruby 1.9 character literals are
# essentially one-character strings, so this syntax
# is mostly redundant at this point.
#
# ? character literal can be used to express meta and control character.
# That's a good use case of ? literal so it doesn't count it as an offense.
#
# @example
# # bad
# ?x
#
# # good
# 'x'
#
# # good - control & meta escapes
# ?\C-\M-d
# "\C-\M-d" # same as above
#
# source://rubocop//lib/rubocop/cop/style/character_literal.rb#24
class RuboCop::Cop::Style::CharacterLiteral < ::RuboCop::Cop::Base
include ::RuboCop::Cop::StringHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/character_literal.rb#35
def autocorrect(corrector, node); end
# Dummy implementation of method in ConfigurableEnforcedStyle that is
# called from StringHelp.
#
# source://rubocop//lib/rubocop/cop/style/character_literal.rb#53
def correct_style_detected; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/character_literal.rb#30
def offense?(node); end
# Dummy implementation of method in ConfigurableEnforcedStyle that is
# called from StringHelp.
#
# source://rubocop//lib/rubocop/cop/style/character_literal.rb#49
def opposite_style_detected; end
end
# source://rubocop//lib/rubocop/cop/style/character_literal.rb#28
RuboCop::Cop::Style::CharacterLiteral::MSG = T.let(T.unsafe(nil), String)
# Checks the style of children definitions at classes and
# modules. Basically there are two different styles:
#
# The compact style is only forced for classes/modules with one child.
#
# @example EnforcedStyle: nested (default)
# # good
# # have each child on its own line
# class Foo
# class Bar
# end
# end
# @example EnforcedStyle: compact
# # good
# # combine definitions as much as possible
# class Foo::Bar
# end
#
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#33
class RuboCop::Cop::Style::ClassAndModuleChildren < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#42
def on_class(node); end
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#48
def on_module(node); end
private
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#89
def add_trailing_end(corrector, node, padding); end
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#170
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#159
def check_compact_style(node, body); end
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#151
def check_nested_style(node); end
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#141
def check_style(node, body); end
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#94
def compact_definition(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#115
def compact_identifier_name(node); end
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#100
def compact_node(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#180
def compact_node_name?(node); end
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#105
def compact_replacement(node); end
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#137
def leading_spaces(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#176
def needs_compacting?(body); end
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#62
def nest_definition(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#54
def nest_or_compact(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#120
def remove_end(corrector, body); end
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#71
def replace_namespace_keyword(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#80
def split_on_double_colon(corrector, node, padding); end
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#128
def unindent(corrector, node); end
end
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#40
RuboCop::Cop::Style::ClassAndModuleChildren::COMPACT_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/class_and_module_children.rb#39
RuboCop::Cop::Style::ClassAndModuleChildren::NESTED_MSG = T.let(T.unsafe(nil), String)
# Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.
#
# @example EnforcedStyle: is_a? (default)
# # bad
# var.kind_of?(Date)
# var.kind_of?(Integer)
#
# # good
# var.is_a?(Date)
# var.is_a?(Integer)
# @example EnforcedStyle: kind_of?
# # bad
# var.is_a?(Time)
# var.is_a?(String)
#
# # good
# var.kind_of?(Time)
# var.kind_of?(String)
#
# source://rubocop//lib/rubocop/cop/style/class_check.rb#26
class RuboCop::Cop::Style::ClassCheck < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/class_check.rb#45
def message(node); end
# source://rubocop//lib/rubocop/cop/style/class_check.rb#33
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/class_check.rb#33
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/style/class_check.rb#30
RuboCop::Cop::Style::ClassCheck::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/class_check.rb#31
RuboCop::Cop::Style::ClassCheck::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Enforces the use of `Object#instance_of?` instead of class comparison
# for equality.
# `==`, `equal?`, and `eql?` custom method definitions are allowed by default.
# These are customizable with `AllowedMethods` option.
#
# @example
# # bad
# var.class == Date
# var.class.equal?(Date)
# var.class.eql?(Date)
# var.class.name == 'Date'
#
# # good
# var.instance_of?(Date)
# @example AllowedMethods: ['==', 'equal?', 'eql?'] (default)
# # good
# def ==(other)
# self.class == other.class && name == other.name
# end
#
# def equal?(other)
# self.class.equal?(other.class) && name.equal?(other.name)
# end
#
# def eql?(other)
# self.class.eql?(other.class) && name.eql?(other.name)
# end
# @example AllowedPatterns: [] (default)
# # bad
# def eq(other)
# self.class.eq(other.class) && name.eq(other.name)
# end
# @example AllowedPatterns: ['eq']
# # good
# def eq(other)
# self.class.eq(other.class) && name.eq(other.name)
# end
#
# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#52
class RuboCop::Cop::Style::ClassEqualityComparison < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::AllowedMethods
include ::RuboCop::Cop::AllowedPattern
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#64
def class_comparison_candidate?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#70
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#92
def class_name(class_node, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#112
def class_name_method?(method_name); end
# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#128
def offense_range(receiver_node, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#116
def require_cbase?(class_node); end
# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#124
def trim_string_quotes(class_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#120
def unable_to_determine_type?(class_node); end
end
# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#61
RuboCop::Cop::Style::ClassEqualityComparison::CLASS_NAME_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#58
RuboCop::Cop::Style::ClassEqualityComparison::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/class_equality_comparison.rb#60
RuboCop::Cop::Style::ClassEqualityComparison::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for uses of the class/module name instead of
# self, when defining class/module methods.
#
# @example
# # bad
# class SomeClass
# def SomeClass.class_method
# # ...
# end
# end
#
# # good
# class SomeClass
# def self.class_method
# # ...
# end
# end
#
# source://rubocop//lib/rubocop/cop/style/class_methods.rb#23
class RuboCop::Cop::Style::ClassMethods < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/class_methods.rb#28
def on_class(node); end
# source://rubocop//lib/rubocop/cop/style/class_methods.rb#28
def on_module(node); end
private
# source://rubocop//lib/rubocop/cop/style/class_methods.rb#41
def check_defs(name, node); end
end
# source://rubocop//lib/rubocop/cop/style/class_methods.rb#26
RuboCop::Cop::Style::ClassMethods::MSG = T.let(T.unsafe(nil), String)
# Enforces using `def self.method_name` or `class << self` to define class methods.
#
# @example EnforcedStyle: def_self (default)
# # bad
# class SomeClass
# class << self
# attr_accessor :class_accessor
#
# def class_method
# # ...
# end
# end
# end
#
# # good
# class SomeClass
# def self.class_method
# # ...
# end
#
# class << self
# attr_accessor :class_accessor
# end
# end
#
# # good - contains private method
# class SomeClass
# class << self
# attr_accessor :class_accessor
#
# private
#
# def private_class_method
# # ...
# end
# end
# end
# @example EnforcedStyle: self_class
# # bad
# class SomeClass
# def self.class_method
# # ...
# end
# end
#
# # good
# class SomeClass
# class << self
# def class_method
# # ...
# end
# end
# end
#
# source://rubocop//lib/rubocop/cop/style/class_methods_definitions.rb#61
class RuboCop::Cop::Style::ClassMethodsDefinitions < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::CommentsHelp
include ::RuboCop::Cop::VisibilityHelp
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/class_methods_definitions.rb#81
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/style/class_methods_definitions.rb#71
def on_sclass(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/class_methods_definitions.rb#95
def all_methods_public?(sclass_node); end
# source://rubocop//lib/rubocop/cop/style/class_methods_definitions.rb#115
def autocorrect_sclass(node, corrector); end
# source://rubocop//lib/rubocop/cop/style/class_methods_definitions.rb#102
def def_nodes(sclass_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/class_methods_definitions.rb#91
def def_self_style?; end
# source://rubocop//lib/rubocop/cop/style/class_methods_definitions.rb#141
def extract_def_from_sclass(def_node, sclass_node); end
# source://rubocop//lib/rubocop/cop/style/class_methods_definitions.rb#152
def indentation_diff(node1, node2); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/class_methods_definitions.rb#137
def sclass_only_has_methods?(node); end
end
# source://rubocop//lib/rubocop/cop/style/class_methods_definitions.rb#68
RuboCop::Cop::Style::ClassMethodsDefinitions::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/class_methods_definitions.rb#69
RuboCop::Cop::Style::ClassMethodsDefinitions::MSG_SCLASS = T.let(T.unsafe(nil), String)
# Checks for uses of class variables. Offenses
# are signaled only on assignment to class variables to
# reduce the number of offenses that would be reported.
#
# You have to be careful when setting a value for a class
# variable; if a class has been inherited, changing the
# value of a class variable also affects the inheriting
# classes. This means that it's almost always better to
# use a class instance variable instead.
#
# @example
# # bad
# class A
# @@test = 10
# end
#
# class A
# def self.test(name, value)
# class_variable_set("@@#{name}", value)
# end
# end
#
# class A; end
# A.class_variable_set(:@@test, 10)
#
# # good
# class A
# @test = 10
# end
#
# class A
# def test
# @@test # you can access class variable without offense
# end
# end
#
# class A
# def self.test(name)
# class_variable_get("@@#{name}") # you can access without offense
# end
# end
#
# source://rubocop//lib/rubocop/cop/style/class_vars.rb#48
class RuboCop::Cop::Style::ClassVars < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/style/class_vars.rb#52
def on_cvasgn(node); end
# source://rubocop//lib/rubocop/cop/style/class_vars.rb#56
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/style/class_vars.rb#49
RuboCop::Cop::Style::ClassVars::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/class_vars.rb#50
RuboCop::Cop::Style::ClassVars::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for places where custom logic on rejection nils from arrays
# and hashes can be replaced with `{Array,Hash}#{compact,compact!}`.
#
# @example
# # bad
# array.reject(&:nil?)
# array.reject { |e| e.nil? }
# array.select { |e| !e.nil? }
# array.filter { |e| !e.nil? }
# array.grep_v(nil)
# array.grep_v(NilClass)
#
# # good
# array.compact
#
# # bad
# hash.reject!(&:nil?)
# hash.reject! { |k, v| v.nil? }
# hash.select! { |k, v| !v.nil? }
# hash.filter! { |k, v| !v.nil? }
#
# # good
# hash.compact!
# @example AllowedReceivers: ['params']
# # good
# params.reject(&:nil?)
#
# source://rubocop//lib/rubocop/cop/style/collection_compact.rb#44
class RuboCop::Cop::Style::CollectionCompact < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedReceivers
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/collection_compact.rb#86
def grep_v_with_nil?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/collection_compact.rb#90
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/collection_compact.rb#90
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/collection_compact.rb#65
def reject_method?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/collection_compact.rb#58
def reject_method_with_block_pass?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/collection_compact.rb#75
def select_method?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/collection_compact.rb#129
def good_method_name(node); end
# source://rubocop//lib/rubocop/cop/style/collection_compact.rb#106
def offense_range(node); end
# source://rubocop//lib/rubocop/cop/style/collection_compact.rb#137
def range(begin_pos_node, end_pos_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/collection_compact.rb#123
def to_enum_method?(node); end
end
# source://rubocop//lib/rubocop/cop/style/collection_compact.rb#53
RuboCop::Cop::Style::CollectionCompact::FILTER_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/collection_compact.rb#50
RuboCop::Cop::Style::CollectionCompact::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/collection_compact.rb#51
RuboCop::Cop::Style::CollectionCompact::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/collection_compact.rb#52
RuboCop::Cop::Style::CollectionCompact::TO_ENUM_METHODS = T.let(T.unsafe(nil), Array)
# Enforces the use of consistent method names
# from the Enumerable module.
#
# You can customize the mapping from undesired method to desired method.
#
# e.g. to use `detect` over `find`:
#
# Style/CollectionMethods:
# PreferredMethods:
# find: detect
#
# @example
# # These examples are based on the default mapping for `PreferredMethods`.
#
# # bad
# items.collect
# items.collect!
# items.collect_concat
# items.inject
# items.detect
# items.find_all
# items.member?
#
# # good
# items.map
# items.map!
# items.flat_map
# items.reduce
# items.find
# items.select
# items.include?
#
# source://rubocop//lib/rubocop/cop/style/collection_methods.rb#43
class RuboCop::Cop::Style::CollectionMethods < ::RuboCop::Cop::Base
include ::RuboCop::Cop::MethodPreference
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/collection_methods.rb#49
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/collection_methods.rb#49
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/style/collection_methods.rb#55
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/collection_methods.rb#63
def check_method_node(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/collection_methods.rb#72
def implicit_block?(node); end
# source://rubocop//lib/rubocop/cop/style/collection_methods.rb#80
def message(node); end
# Some enumerable methods accept a bare symbol (ie. _not_ Symbol#to_proc) instead
# of a block.
#
# source://rubocop//lib/rubocop/cop/style/collection_methods.rb#86
def methods_accepting_symbol; end
end
# source://rubocop//lib/rubocop/cop/style/collection_methods.rb#47
RuboCop::Cop::Style::CollectionMethods::MSG = T.let(T.unsafe(nil), String)
# Checks for methods invoked via the `::` operator instead
# of the `.` operator (like `FileUtils::rmdir` instead of `FileUtils.rmdir`).
#
# @example
# # bad
# Timeout::timeout(500) { do_something }
# FileUtils::rmdir(dir)
# Marshal::dump(obj)
#
# # good
# Timeout.timeout(500) { do_something }
# FileUtils.rmdir(dir)
# Marshal.dump(obj)
#
# source://rubocop//lib/rubocop/cop/style/colon_method_call.rb#20
class RuboCop::Cop::Style::ColonMethodCall < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/colon_method_call.rb#26
def java_type_node?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/colon_method_call.rb#35
def on_send(node); end
class << self
# source://rubocop//lib/rubocop/cop/style/colon_method_call.rb#31
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/style/colon_method_call.rb#23
RuboCop::Cop::Style::ColonMethodCall::MSG = T.let(T.unsafe(nil), String)
# Checks for class methods that are defined using the `::`
# operator instead of the `.` operator.
#
# @example
# # bad
# class Foo
# def self::bar
# end
# end
#
# # good
# class Foo
# def self.bar
# end
# end
#
# source://rubocop//lib/rubocop/cop/style/colon_method_definition.rb#22
class RuboCop::Cop::Style::ColonMethodDefinition < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/colon_method_definition.rb#27
def on_defs(node); end
end
# source://rubocop//lib/rubocop/cop/style/colon_method_definition.rb#25
RuboCop::Cop::Style::ColonMethodDefinition::MSG = T.let(T.unsafe(nil), String)
# Checks for multiple `defined?` calls joined by `&&` that can be combined
# into a single `defined?`.
#
# When checking that a nested constant or chained method is defined, it is
# not necessary to check each ancestor or component of the chain.
#
# @example
# # bad
# defined?(Foo) && defined?(Foo::Bar) && defined?(Foo::Bar::Baz)
#
# # good
# defined?(Foo::Bar::Baz)
#
# # bad
# defined?(foo) && defined?(foo.bar) && defined?(foo.bar.baz)
#
# # good
# defined?(foo.bar.baz)
#
# source://rubocop//lib/rubocop/cop/style/combinable_defined.rb#24
class RuboCop::Cop::Style::CombinableDefined < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/combinable_defined.rb#31
def on_and(node); end
private
# source://rubocop//lib/rubocop/cop/style/combinable_defined.rb#55
def defined_calls(nodes); end
# If the redundant `defined?` node is the LHS of an `and` node,
# the term as well as the subsequent `&&`/`and` operator will be removed.
#
# source://rubocop//lib/rubocop/cop/style/combinable_defined.rb#85
def lhs_range_to_remove(term); end
# source://rubocop//lib/rubocop/cop/style/combinable_defined.rb#62
def namespaces(nodes); end
# source://rubocop//lib/rubocop/cop/style/combinable_defined.rb#72
def remove_term(corrector, term); end
# If the redundant `defined?` node is the RHS of an `and` node,
# the term as well as the preceding `&&`/`and` operator will be removed.
#
# source://rubocop//lib/rubocop/cop/style/combinable_defined.rb#100
def rhs_range_to_remove(term); end
# source://rubocop//lib/rubocop/cop/style/combinable_defined.rb#49
def terms(node); end
end
# source://rubocop//lib/rubocop/cop/style/combinable_defined.rb#28
RuboCop::Cop::Style::CombinableDefined::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/combinable_defined.rb#29
RuboCop::Cop::Style::CombinableDefined::OPERATORS = T.let(T.unsafe(nil), Array)
# Checks for places where multiple consecutive loops over the same data
# can be combined into a single loop. It is very likely that combining them
# will make the code more efficient and more concise.
#
# NOTE: Autocorrection is not applied when the block variable names differ in separate loops,
# as it is impossible to determine which variable name should be prioritized.
#
# @example
# # bad
# def method
# items.each do |item|
# do_something(item)
# end
#
# items.each do |item|
# do_something_else(item)
# end
# end
#
# # good
# def method
# items.each do |item|
# do_something(item)
# do_something_else(item)
# end
# end
#
# # bad
# def method
# for item in items do
# do_something(item)
# end
#
# for item in items do
# do_something_else(item)
# end
# end
#
# # good
# def method
# for item in items do
# do_something(item)
# do_something_else(item)
# end
# end
#
# # good
# def method
# each_slice(2) { |slice| do_something(slice) }
# each_slice(3) { |slice| do_something(slice) }
# end
#
# source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#62
class RuboCop::Cop::Style::CombinableLoops < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#68
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#84
def on_for(node); end
# source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#68
def on_numblock(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#95
def collection_looping_method?(node); end
# source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#112
def combine_with_left_sibling(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#119
def correct_end_of_block(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#100
def same_collection_looping_block?(node, sibling); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#108
def same_collection_looping_for?(node, sibling); end
end
# source://rubocop//lib/rubocop/cop/style/combinable_loops.rb#65
RuboCop::Cop::Style::CombinableLoops::MSG = T.let(T.unsafe(nil), String)
# Enforces using `` or %x around command literals.
#
# @example EnforcedStyle: backticks (default)
# # bad
# folders = %x(find . -type d).split
#
# # bad
# %x(
# ln -s foo.example.yml foo.example
# ln -s bar.example.yml bar.example
# )
#
# # good
# folders = `find . -type d`.split
#
# # good
# `
# ln -s foo.example.yml foo.example
# ln -s bar.example.yml bar.example
# `
# @example EnforcedStyle: mixed
# # bad
# folders = %x(find . -type d).split
#
# # bad
# `
# ln -s foo.example.yml foo.example
# ln -s bar.example.yml bar.example
# `
#
# # good
# folders = `find . -type d`.split
#
# # good
# %x(
# ln -s foo.example.yml foo.example
# ln -s bar.example.yml bar.example
# )
# @example EnforcedStyle: percent_x
# # bad
# folders = `find . -type d`.split
#
# # bad
# `
# ln -s foo.example.yml foo.example
# ln -s bar.example.yml bar.example
# `
#
# # good
# folders = %x(find . -type d).split
#
# # good
# %x(
# ln -s foo.example.yml foo.example
# ln -s bar.example.yml bar.example
# )
# @example AllowInnerBackticks: false (default)
# # If `false`, the cop will always recommend using `%x` if one or more
# # backticks are found in the command string.
#
# # bad
# `echo \`ls\``
#
# # good
# %x(echo `ls`)
# @example AllowInnerBackticks: true
# # good
# `echo \`ls\``
#
# source://rubocop//lib/rubocop/cop/style/command_literal.rb#78
class RuboCop::Cop::Style::CommandLiteral < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/command_literal.rb#85
def on_xstr(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/command_literal.rb#146
def allow_inner_backticks?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/command_literal.rb#122
def allowed_backtick_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/command_literal.rb#131
def allowed_percent_x_literal?(node); end
# source://rubocop//lib/rubocop/cop/style/command_literal.rb#109
def autocorrect(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/command_literal.rb#159
def backtick_literal?(node); end
# source://rubocop//lib/rubocop/cop/style/command_literal.rb#97
def check_backtick_literal(node, message); end
# source://rubocop//lib/rubocop/cop/style/command_literal.rb#103
def check_percent_x_literal(node, message); end
# source://rubocop//lib/rubocop/cop/style/command_literal.rb#167
def command_delimiter; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/command_literal.rb#150
def contains_backtick?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/command_literal.rb#142
def contains_disallowed_backtick?(node); end
# source://rubocop//lib/rubocop/cop/style/command_literal.rb#171
def default_delimiter; end
# source://rubocop//lib/rubocop/cop/style/command_literal.rb#154
def node_body(node); end
# source://rubocop//lib/rubocop/cop/style/command_literal.rb#163
def preferred_delimiter; end
# source://rubocop//lib/rubocop/cop/style/command_literal.rb#175
def preferred_delimiters_config; end
end
# source://rubocop//lib/rubocop/cop/style/command_literal.rb#82
RuboCop::Cop::Style::CommandLiteral::MSG_USE_BACKTICKS = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/command_literal.rb#83
RuboCop::Cop::Style::CommandLiteral::MSG_USE_PERCENT_X = T.let(T.unsafe(nil), String)
# Checks that comment annotation keywords are written according
# to guidelines.
#
# Annotation keywords can be specified by overriding the cop's `Keywords`
# configuration. Keywords are allowed to be single words or phrases.
#
# NOTE: With a multiline comment block (where each line is only a
# comment), only the first line will be able to register an offense, even
# if an annotation keyword starts another line. This is done to prevent
# incorrect registering of keywords (eg. `review`) inside a paragraph as an
# annotation.
#
# @example RequireColon: true (default)
# # bad
# # TODO make better
#
# # good
# # TODO: make better
#
# # bad
# # TODO:make better
#
# # good
# # TODO: make better
#
# # bad
# # fixme: does not work
#
# # good
# # FIXME: does not work
#
# # bad
# # Optimize does not work
#
# # good
# # OPTIMIZE: does not work
# @example RequireColon: false
# # bad
# # TODO: make better
#
# # good
# # TODO make better
#
# # bad
# # fixme does not work
#
# # good
# # FIXME does not work
#
# # bad
# # Optimize does not work
#
# # good
# # OPTIMIZE does not work
#
# source://rubocop//lib/rubocop/cop/style/comment_annotation.rb#61
class RuboCop::Cop::Style::CommentAnnotation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/comment_annotation.rb#73
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/style/comment_annotation.rb#110
def annotation_range(annotation); end
# source://rubocop//lib/rubocop/cop/style/comment_annotation.rb#114
def correct_offense(corrector, range, keyword); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/comment_annotation.rb#102
def first_comment_line?(comments, index); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/comment_annotation.rb#106
def inline_comment?(comment); end
# source://rubocop//lib/rubocop/cop/style/comment_annotation.rb#124
def keywords; end
# source://rubocop//lib/rubocop/cop/style/comment_annotation.rb#87
def register_offense(annotation); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/comment_annotation.rb#120
def requires_colon?; end
end
# source://rubocop//lib/rubocop/cop/style/comment_annotation.rb#71
RuboCop::Cop::Style::CommentAnnotation::MISSING_NOTE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/comment_annotation.rb#65
RuboCop::Cop::Style::CommentAnnotation::MSG_COLON_STYLE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/comment_annotation.rb#68
RuboCop::Cop::Style::CommentAnnotation::MSG_SPACE_STYLE = T.let(T.unsafe(nil), String)
# Checks for comments put on the same line as some keywords.
# These keywords are: `class`, `module`, `def`, `begin`, `end`.
#
# Note that some comments
# and RBS::Inline annotation comments are allowed.
#
# Autocorrection removes comments from `end` keyword and keeps comments
# for `class`, `module`, `def` and `begin` above the keyword.
#
# @example
# # bad
# if condition
# statement
# end # end if
#
# # bad
# class X # comment
# statement
# end
#
# # bad
# def x; end # comment
#
# # good
# if condition
# statement
# end
#
# # good
# class X # :nodoc:
# y
# end
#
# source://rubocop//lib/rubocop/cop/style/commented_keyword.rb#45
class RuboCop::Cop::Style::CommentedKeyword < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/commented_keyword.rb#60
def on_new_investigation; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/commented_keyword.rb#83
def offensive?(comment); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/commented_keyword.rb#95
def rbs_inline_annotation?(line, comment); end
# source://rubocop//lib/rubocop/cop/style/commented_keyword.rb#70
def register_offense(comment, matched_keyword); end
# source://rubocop//lib/rubocop/cop/style/commented_keyword.rb#91
def source_line(comment); end
end
# source://rubocop//lib/rubocop/cop/style/commented_keyword.rb#54
RuboCop::Cop::Style::CommentedKeyword::ALLOWED_COMMENTS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/commented_keyword.rb#55
RuboCop::Cop::Style::CommentedKeyword::ALLOWED_COMMENT_REGEXES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/commented_keyword.rb#51
RuboCop::Cop::Style::CommentedKeyword::KEYWORDS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/commented_keyword.rb#52
RuboCop::Cop::Style::CommentedKeyword::KEYWORD_REGEXES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/commented_keyword.rb#49
RuboCop::Cop::Style::CommentedKeyword::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/commented_keyword.rb#58
RuboCop::Cop::Style::CommentedKeyword::REGEXP = T.let(T.unsafe(nil), Regexp)
# Enforces the use of `Comparable#clamp` instead of comparison by minimum and maximum.
#
# This cop supports autocorrection for `if/elsif/else` bad style only.
# Because `ArgumentError` occurs if the minimum and maximum of `clamp` arguments are reversed.
# When these are variables, it is not possible to determine which is the minimum and maximum:
#
# [source,ruby]
# ----
# [1, [2, 3].max].min # => 1
# 1.clamp(3, 1) # => min argument must be smaller than max argument (ArgumentError)
# ----
#
# @example
#
# # bad
# [[x, low].max, high].min
#
# # bad
# if x < low
# low
# elsif high < x
# high
# else
# x
# end
#
# # good
# x.clamp(low, high)
#
# source://rubocop//lib/rubocop/cop/style/comparable_clamp.rb#35
class RuboCop::Cop::Style::ComparableClamp < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/comparable_clamp.rb#61
def array_min_max?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/comparable_clamp.rb#47
def if_elsif_else_condition?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/comparable_clamp.rb#78
def on_if(node); end
# source://rubocop//lib/rubocop/cop/style/comparable_clamp.rb#100
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/comparable_clamp.rb#108
def autocorrect(corrector, node, prefer); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/comparable_clamp.rb#117
def min_condition?(if_condition, else_body); end
end
# source://rubocop//lib/rubocop/cop/style/comparable_clamp.rb#42
RuboCop::Cop::Style::ComparableClamp::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/comparable_clamp.rb#43
RuboCop::Cop::Style::ComparableClamp::MSG_MIN_MAX = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/comparable_clamp.rb#44
RuboCop::Cop::Style::ComparableClamp::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Enforces the use of `Array#push(item)` instead of `Array#concat([item])`
# to avoid redundant array literals.
#
# @example
#
# # bad
# list.concat([foo])
# list.concat([bar, baz])
# list.concat([qux, quux], [corge])
#
# # good
# list.push(foo)
# list.push(bar, baz)
# list.push(qux, quux, corge)
#
# source://rubocop//lib/rubocop/cop/style/concat_array_literals.rb#25
class RuboCop::Cop::Style::ConcatArrayLiterals < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/concat_array_literals.rb#34
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/concat_array_literals.rb#34
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/concat_array_literals.rb#70
def offense_range(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/concat_array_literals.rb#87
def percent_literals_includes_only_basic_literals?(node); end
# source://rubocop//lib/rubocop/cop/style/concat_array_literals.rb#74
def preferred_method(node); end
end
# source://rubocop//lib/rubocop/cop/style/concat_array_literals.rb#28
RuboCop::Cop::Style::ConcatArrayLiterals::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/concat_array_literals.rb#29
RuboCop::Cop::Style::ConcatArrayLiterals::MSG_FOR_PERCENT_LITERALS = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/concat_array_literals.rb#31
RuboCop::Cop::Style::ConcatArrayLiterals::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Check for `if` and `case` statements where each branch is used for
# both the assignment and comparison of the same variable
# when using the return of the condition can be used instead.
#
# @example EnforcedStyle: assign_to_condition (default)
# # bad
# if foo
# bar = 1
# else
# bar = 2
# end
#
# case foo
# when 'a'
# bar += 1
# else
# bar += 2
# end
#
# if foo
# some_method
# bar = 1
# else
# some_other_method
# bar = 2
# end
#
# # good
# bar = if foo
# 1
# else
# 2
# end
#
# bar += case foo
# when 'a'
# 1
# else
# 2
# end
#
# bar << if foo
# some_method
# 1
# else
# some_other_method
# 2
# end
# @example EnforcedStyle: assign_inside_condition
# # bad
# bar = if foo
# 1
# else
# 2
# end
#
# bar += case foo
# when 'a'
# 1
# else
# 2
# end
#
# bar << if foo
# some_method
# 1
# else
# some_other_method
# 2
# end
#
# # good
# if foo
# bar = 1
# else
# bar = 2
# end
#
# case foo
# when 'a'
# bar += 1
# else
# bar += 2
# end
#
# if foo
# some_method
# bar = 1
# else
# some_other_method
# bar = 2
# end
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#210
class RuboCop::Cop::Style::ConditionalAssignment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Style::ConditionalAssignmentHelper
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# The shovel operator `<<` does not have its own type. It is a `send`
# type.
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#228
def assignment_type?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#309
def candidate_condition?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#236
def on_and_asgn(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#264
def on_case(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#274
def on_case_match(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#236
def on_casgn(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#236
def on_cvasgn(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#236
def on_gvasgn(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#250
def on_if(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#236
def on_ivasgn(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#236
def on_lvasgn(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#236
def on_masgn(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#236
def on_op_asgn(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#236
def on_or_asgn(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#244
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#315
def allowed_single_line?(branches); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#386
def allowed_statements?(branches); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#311
def allowed_ternary?(assignment); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#319
def assignment_node(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#363
def assignment_types_match?(*nodes); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#378
def autocorrect(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#304
def candidate_node?(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#286
def check_assignment_to_condition(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#369
def check_node(node, branches); end
# If `Layout/LineLength` is enabled, we do not want to introduce an
# offense by autocorrecting this cop. Find the max configured line
# length. Find the longest line of condition. Remove the assignment
# from lines that contain the offending assignment because after
# correcting, this will not be on the line anymore. Check if the length
# of the longest line + the length of the corrected assignment is
# greater than the max configured line length
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#402
def correction_exceeds_line_limit?(node, branches); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#433
def include_ternary?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#356
def lhs_all_match?(branches); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#421
def line_length_cop_enabled?; end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#414
def longest_line(node, assignment); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#410
def longest_line_exceeds_line_limit?(node, assignment); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#425
def max_line_length; end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#340
def move_assignment_inside_condition(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#330
def move_assignment_outside_condition(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#429
def single_line_conditions_only?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#352
def ternary_condition?(node); end
end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#219
RuboCop::Cop::Style::ConditionalAssignment::ASSIGNMENT_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#217
RuboCop::Cop::Style::ConditionalAssignment::ASSIGN_TO_CONDITION_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#221
RuboCop::Cop::Style::ConditionalAssignment::ENABLED = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#220
RuboCop::Cop::Style::ConditionalAssignment::LINE_LENGTH = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#222
RuboCop::Cop::Style::ConditionalAssignment::MAX = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#216
RuboCop::Cop::Style::ConditionalAssignment::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#223
RuboCop::Cop::Style::ConditionalAssignment::SINGLE_LINE_CONDITIONS_ONLY = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#218
RuboCop::Cop::Style::ConditionalAssignment::VARIABLE_ASSIGNMENT_TYPES = T.let(T.unsafe(nil), Array)
# Helper module to provide common methods to classes needed for the
# ConditionalAssignment Cop.
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#8
module RuboCop::Cop::Style::ConditionalAssignmentHelper
extend ::RuboCop::AST::NodePattern::Macros
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#64
def end_with_eq?(sym); end
# `elsif` branches show up in the `node` as an `else`. We need
# to recursively iterate over all `else` branches and consider all
# but the last `node` an `elsif` branch and consider the last `node`
# the actual `else` branch.
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#20
def expand_elses(branch); end
# `when` nodes contain the entire branch including the condition.
# We only need the contents of the branch, not the condition.
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#28
def expand_when_branches(when_branches); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#55
def indent(cop, source); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#37
def lhs(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#32
def tail(branch); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#109
def assignment_rhs_exist?(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#70
def expand_elsif(node, elsif_branches = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#96
def lhs_for_casgn(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#83
def lhs_for_send(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#105
def setter_method?(method_name); end
end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#13
RuboCop::Cop::Style::ConditionalAssignmentHelper::ALIGN_WITH = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#12
RuboCop::Cop::Style::ConditionalAssignmentHelper::END_ALIGNMENT = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#11
RuboCop::Cop::Style::ConditionalAssignmentHelper::EQUAL = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#14
RuboCop::Cop::Style::ConditionalAssignmentHelper::KEYWORD = T.let(T.unsafe(nil), String)
# Helper module to provide common methods to ConditionalAssignment
# correctors
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#440
module RuboCop::Cop::Style::ConditionalCorrectorHelper
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#461
def assignment(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#490
def correct_branches(corrector, branches); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#467
def correct_if_branches(corrector, cop, node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#441
def remove_whitespace_in_branches(corrector, branch, condition, column); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#477
def replace_branch_assignment(corrector, branch); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#454
def white_space_range(node, column); end
end
# Checks that constants defined in classes and modules have
# an explicit visibility declaration. By default, Ruby makes all class-
# and module constants public, which litters the public API of the
# class or module. Explicitly declaring a visibility makes intent more
# clear, and prevents outside actors from touching private state.
#
# @example
#
# # bad
# class Foo
# BAR = 42
# BAZ = 43
# end
#
# # good
# class Foo
# BAR = 42
# private_constant :BAR
#
# BAZ = 43
# public_constant :BAZ
# end
# @example IgnoreModules: false (default)
# # bad
# class Foo
# MyClass = Struct.new()
# end
#
# # good
# class Foo
# MyClass = Struct.new()
# public_constant :MyClass
# end
# @example IgnoreModules: true
# # good
# class Foo
# MyClass = Struct.new()
# end
#
# source://rubocop//lib/rubocop/cop/style/constant_visibility.rb#47
class RuboCop::Cop::Style::ConstantVisibility < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/style/constant_visibility.rb#51
def on_casgn(node); end
# source://rubocop//lib/rubocop/cop/style/constant_visibility.rb#96
def visibility_declaration_for?(param0 = T.unsafe(nil), param1); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/constant_visibility.rb#76
def class_or_module_scope?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/constant_visibility.rb#62
def ignore_modules?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/constant_visibility.rb#100
def match_name?(name, constant_name); end
# source://rubocop//lib/rubocop/cop/style/constant_visibility.rb#70
def message(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/constant_visibility.rb#66
def module?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/constant_visibility.rb#87
def visibility_declaration?(node); end
end
# source://rubocop//lib/rubocop/cop/style/constant_visibility.rb#48
RuboCop::Cop::Style::ConstantVisibility::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/copyright.rb#21
class RuboCop::Cop::Style::Copyright < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/copyright.rb#28
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/style/copyright.rb#45
def autocorrect(corrector); end
# source://rubocop//lib/rubocop/cop/style/copyright.rb#56
def autocorrect_notice; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/copyright.rb#86
def encoding_token?(processed_source, token_index); end
# source://rubocop//lib/rubocop/cop/style/copyright.rb#72
def insert_notice_before(processed_source); end
# source://rubocop//lib/rubocop/cop/style/copyright.rb#52
def notice; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/copyright.rb#93
def notice_found?(processed_source); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/copyright.rb#79
def shebang_token?(processed_source, token_index); end
# @raise [Warning]
#
# source://rubocop//lib/rubocop/cop/style/copyright.rb#60
def verify_autocorrect_notice!; end
end
# source://rubocop//lib/rubocop/cop/style/copyright.rb#26
RuboCop::Cop::Style::Copyright::AUTOCORRECT_EMPTY_WARNING = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/copyright.rb#25
RuboCop::Cop::Style::Copyright::MSG = T.let(T.unsafe(nil), String)
# Checks for inheritance from `Data.define` to avoid creating the anonymous parent class.
#
# @example
# # bad
# class Person < Data.define(:first_name, :last_name)
# def age
# 42
# end
# end
#
# # good
# Person = Data.define(:first_name, :last_name) do
# def age
# 42
# end
# end
#
# source://rubocop//lib/rubocop/cop/style/data_inheritance.rb#26
class RuboCop::Cop::Style::DataInheritance < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/data_inheritance.rb#48
def data_define?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/data_inheritance.rb#36
def on_class(node); end
private
# source://rubocop//lib/rubocop/cop/style/data_inheritance.rb#55
def correct_parent(parent, corrector); end
# source://rubocop//lib/rubocop/cop/style/data_inheritance.rb#65
def range_for_empty_class_body(class_node, data_define); end
end
# source://rubocop//lib/rubocop/cop/style/data_inheritance.rb#31
RuboCop::Cop::Style::DataInheritance::MSG = T.let(T.unsafe(nil), String)
# Checks for consistent usage of the `DateTime` class over the
# `Time` class. This cop is disabled by default since these classes,
# although highly overlapping, have particularities that make them not
# replaceable in certain situations when dealing with multiple timezones
# and/or DST.
#
# @example
#
# # bad - uses `DateTime` for current time
# DateTime.now
#
# # good - uses `Time` for current time
# Time.now
#
# # bad - uses `DateTime` for modern date
# DateTime.iso8601('2016-06-29')
#
# # good - uses `Time` for modern date
# Time.iso8601('2016-06-29')
#
# # good - uses `DateTime` with start argument for historical date
# DateTime.iso8601('1751-04-23', Date::ENGLAND)
# @example AllowCoercion: false (default)
#
# # bad - coerces to `DateTime`
# something.to_datetime
#
# # good - coerces to `Time`
# something.to_time
# @example AllowCoercion: true
#
# # good
# something.to_datetime
#
# # good
# something.to_time
#
# source://rubocop//lib/rubocop/cop/style/date_time.rb#49
class RuboCop::Cop::Style::DateTime < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/date_time.rb#56
def date_time?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/date_time.rb#61
def historic_date?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/date_time.rb#70
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/date_time.rb#70
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/date_time.rb#66
def to_datetime?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/date_time.rb#86
def autocorrect(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/date_time.rb#82
def disallow_coercion?; end
end
# source://rubocop//lib/rubocop/cop/style/date_time.rb#52
RuboCop::Cop::Style::DateTime::CLASS_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/date_time.rb#53
RuboCop::Cop::Style::DateTime::COERCION_MSG = T.let(T.unsafe(nil), String)
# Checks for parentheses in the definition of a method,
# that does not take any arguments. Both instance and
# class/singleton methods are checked.
#
# @example
#
# # bad
# def foo()
# do_something
# end
#
# # good
# def foo
# do_something
# end
#
# # bad
# def foo() = do_something
#
# # good
# def foo = do_something
#
# # good (without parentheses it's a syntax error)
# def foo() do_something end
#
# # bad
# def Baz.foo()
# do_something
# end
#
# # good
# def Baz.foo
# do_something
# end
#
# source://rubocop//lib/rubocop/cop/style/def_with_parentheses.rb#40
class RuboCop::Cop::Style::DefWithParentheses < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/def_with_parentheses.rb#45
def on_def(node); end
# source://rubocop//lib/rubocop/cop/style/def_with_parentheses.rb#45
def on_defs(node); end
end
# source://rubocop//lib/rubocop/cop/style/def_with_parentheses.rb#43
RuboCop::Cop::Style::DefWithParentheses::MSG = T.let(T.unsafe(nil), String)
# Checks for places where the `#\_\_dir\_\_` method can replace more
# complex constructs to retrieve a canonicalized absolute path to the
# current file.
#
# @example
# # bad
# path = File.expand_path(File.dirname(__FILE__))
#
# # bad
# path = File.dirname(File.realpath(__FILE__))
#
# # good
# path = __dir__
#
# source://rubocop//lib/rubocop/cop/style/dir.rb#19
class RuboCop::Cop::Style::Dir < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/dir.rb#29
def dir_replacement?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/dir.rb#34
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/dir.rb#44
def file_keyword?(node); end
end
# source://rubocop//lib/rubocop/cop/style/dir.rb#25
RuboCop::Cop::Style::Dir::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/dir.rb#26
RuboCop::Cop::Style::Dir::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Prefer to use `Dir.empty?('path/to/dir')` when checking if a directory is empty.
#
# @example
# # bad
# Dir.entries('path/to/dir').size == 2
# Dir.children('path/to/dir').empty?
# Dir.children('path/to/dir').size == 0
# Dir.each_child('path/to/dir').none?
#
# # good
# Dir.empty?('path/to/dir')
#
# source://rubocop//lib/rubocop/cop/style/dir_empty.rb#18
class RuboCop::Cop::Style::DirEmpty < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/dir_empty.rb#28
def offensive?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/dir_empty.rb#37
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/dir_empty.rb#48
def bang(node); end
end
# source://rubocop//lib/rubocop/cop/style/dir_empty.rb#22
RuboCop::Cop::Style::DirEmpty::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/dir_empty.rb#23
RuboCop::Cop::Style::DirEmpty::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Detects comments to enable/disable RuboCop.
# This is useful if want to make sure that every RuboCop error gets fixed
# and not quickly disabled with a comment.
#
# Specific cops can be allowed with the `AllowedCops` configuration. Note that
#
# @example
# # bad
# # rubocop:disable Metrics/AbcSize
# def foo
# end
# # rubocop:enable Metrics/AbcSize
#
# # good
# def foo
# end
# @example AllowedCops: [Metrics/AbcSize]
# # good
# # rubocop:disable Metrics/AbcSize
# def foo
# end
# # rubocop:enable Metrics/AbcSize
#
# source://rubocop//lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb#33
class RuboCop::Cop::Style::DisableCopsWithinSourceCodeDirective < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb#40
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb#77
def allowed_cops; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb#81
def any_cops_allowed?; end
# source://rubocop//lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb#72
def directive_cops(comment); end
# source://rubocop//lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb#53
def register_offense(comment, directive_cops, disallowed_cops); end
end
# source://rubocop//lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb#37
RuboCop::Cop::Style::DisableCopsWithinSourceCodeDirective::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/disable_cops_within_source_code_directive.rb#38
RuboCop::Cop::Style::DisableCopsWithinSourceCodeDirective::MSG_FOR_COPS = T.let(T.unsafe(nil), String)
# When using `class_eval` (or other `eval`) with string interpolation,
# add a comment block showing its appearance if interpolated (a practice used in Rails code).
#
# @example
# # from activesupport/lib/active_support/core_ext/string/output_safety.rb
#
# # bad
# UNSAFE_STRING_METHODS.each do |unsafe_method|
# if 'String'.respond_to?(unsafe_method)
# class_eval <<-EOT, __FILE__, __LINE__ + 1
# def #{unsafe_method}(*params, &block)
# to_str.#{unsafe_method}(*params, &block)
# end
#
# def #{unsafe_method}!(*params)
# @dirty = true
# super
# end
# EOT
# end
# end
#
# # good, inline comments in heredoc
# UNSAFE_STRING_METHODS.each do |unsafe_method|
# if 'String'.respond_to?(unsafe_method)
# class_eval <<-EOT, __FILE__, __LINE__ + 1
# def #{unsafe_method}(*params, &block) # def capitalize(*params, &block)
# to_str.#{unsafe_method}(*params, &block) # to_str.capitalize(*params, &block)
# end # end
#
# def #{unsafe_method}!(*params) # def capitalize!(*params)
# @dirty = true # @dirty = true
# super # super
# end # end
# EOT
# end
# end
#
# # good, block comments in heredoc
# class_eval <<-EOT, __FILE__, __LINE__ + 1
# # def capitalize!(*params)
# # @dirty = true
# # super
# # end
#
# def #{unsafe_method}!(*params)
# @dirty = true
# super
# end
# EOT
#
# # good, block comments before heredoc
# class_eval(
# # def capitalize!(*params)
# # @dirty = true
# # super
# # end
#
# <<-EOT, __FILE__, __LINE__ + 1
# def #{unsafe_method}!(*params)
# @dirty = true
# super
# end
# EOT
# )
#
# # bad - interpolated string without comment
# class_eval("def #{unsafe_method}!(*params); end")
#
# # good - with inline comment or replace it with block comment using heredoc
# class_eval("def #{unsafe_method}!(*params); end # def capitalize!(*params); end")
#
# source://rubocop//lib/rubocop/cop/style/document_dynamic_eval_definition.rb#77
class RuboCop::Cop::Style::DocumentDynamicEvalDefinition < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/style/document_dynamic_eval_definition.rb#84
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/document_dynamic_eval_definition.rb#107
def comment_block_docs?(arg_node); end
# source://rubocop//lib/rubocop/cop/style/document_dynamic_eval_definition.rb#147
def comment_regexp(arg_node); end
# source://rubocop//lib/rubocop/cop/style/document_dynamic_eval_definition.rb#126
def heredoc_comment_blocks(heredoc_body); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/document_dynamic_eval_definition.rb#100
def inline_comment_docs?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/document_dynamic_eval_definition.rb#96
def interpolated?(arg_node); end
# source://rubocop//lib/rubocop/cop/style/document_dynamic_eval_definition.rb#136
def merge_adjacent_comments(line, index, hash); end
# source://rubocop//lib/rubocop/cop/style/document_dynamic_eval_definition.rb#117
def preceding_comment_blocks(node); end
# source://rubocop//lib/rubocop/cop/style/document_dynamic_eval_definition.rb#156
def source_to_regexp(source); end
end
# source://rubocop//lib/rubocop/cop/style/document_dynamic_eval_definition.rb#78
RuboCop::Cop::Style::DocumentDynamicEvalDefinition::BLOCK_COMMENT_REGEXP = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/style/document_dynamic_eval_definition.rb#79
RuboCop::Cop::Style::DocumentDynamicEvalDefinition::COMMENT_REGEXP = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/style/document_dynamic_eval_definition.rb#80
RuboCop::Cop::Style::DocumentDynamicEvalDefinition::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/document_dynamic_eval_definition.rb#82
RuboCop::Cop::Style::DocumentDynamicEvalDefinition::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for missing top-level documentation of classes and
# modules. Classes with no body are exempt from the check and so are
# namespace modules - modules that have nothing in their bodies except
# classes, other modules, constant definitions or constant visibility
# declarations.
#
# The documentation requirement is annulled if the class or module has
# same for all its children.
#
# @example
# # bad
# class Person
# # ...
# end
#
# module Math
# end
#
# # good
# # Description/Explanation of Person class
# class Person
# # ...
# end
#
# # allowed
# # Class without body
# class Person
# end
#
# # Namespace - A namespace can be a class or a module
# # Containing a class
# module Namespace
# # Description/Explanation of Person class
# class Person
# # ...
# end
# end
#
# # Containing constant visibility declaration
# module Namespace
# class Private
# end
#
# private_constant :Private
# end
#
# # Containing constant definition
# module Namespace
# Public = Class.new
# end
#
# # Macro calls
# module Namespace
# extend Foo
# end
# @example AllowedConstants: ['ClassMethods']
#
# # good
# module A
# module ClassMethods
# # ...
# end
# end
#
# source://rubocop//lib/rubocop/cop/style/documentation.rb#72
class RuboCop::Cop::Style::Documentation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::DocumentationComment
include ::RuboCop::Cop::RangeHelp
# source://rubocop//lib/rubocop/cop/style/documentation.rb#79
def constant_definition?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/documentation.rb#85
def constant_visibility_declaration?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/documentation.rb#90
def include_statement?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/documentation.rb#94
def on_class(node); end
# source://rubocop//lib/rubocop/cop/style/documentation.rb#100
def on_module(node); end
# source://rubocop//lib/rubocop/cop/style/documentation.rb#82
def outer_module(param0); end
private
# source://rubocop//lib/rubocop/cop/style/documentation.rb#174
def allowed_constants; end
# source://rubocop//lib/rubocop/cop/style/documentation.rb#106
def check(node, body); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/documentation.rb#147
def compact_namespace?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/documentation.rb#143
def constant_allowed?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/documentation.rb#139
def constant_declaration?(node); end
# source://rubocop//lib/rubocop/cop/style/documentation.rb#178
def identifier(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/documentation.rb#123
def include_statement_only?(body); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/documentation.rb#129
def namespace?(node); end
# source://rubocop//lib/rubocop/cop/style/documentation.rb#170
def nodoc(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/documentation.rb#166
def nodoc?(comment, require_all: T.unsafe(nil)); end
# Note: How end-of-line comments are associated with code changed in
# parser-2.2.0.4.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/documentation.rb#156
def nodoc_comment?(node, require_all: T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/documentation.rb#118
def nodoc_self_or_outer_module?(node); end
# source://rubocop//lib/rubocop/cop/style/documentation.rb#186
def qualify_const(node); end
end
# source://rubocop//lib/rubocop/cop/style/documentation.rb#76
RuboCop::Cop::Style::Documentation::MSG = T.let(T.unsafe(nil), String)
# Checks for missing documentation comment for public methods.
# It can optionally be configured to also require documentation for
# non-public methods.
#
# NOTE: This cop allows `initialize` method because `initialize` is
# a special method called from `new`. In some programming languages
# they are called constructor to distinguish it from method.
#
# @example
#
# # bad
#
# class Foo
# def bar
# puts baz
# end
# end
#
# module Foo
# def bar
# puts baz
# end
# end
#
# def foo.bar
# puts baz
# end
#
# # good
#
# class Foo
# # Documentation
# def bar
# puts baz
# end
# end
#
# module Foo
# # Documentation
# def bar
# puts baz
# end
# end
#
# # Documentation
# def foo.bar
# puts baz
# end
# @example RequireForNonPublicMethods: false (default)
# # good
# class Foo
# protected
# def do_something
# end
# end
#
# class Foo
# private
# def do_something
# end
# end
# @example RequireForNonPublicMethods: true
# # bad
# class Foo
# protected
# def do_something
# end
# end
#
# class Foo
# private
# def do_something
# end
# end
#
# # good
# class Foo
# protected
# # Documentation
# def do_something
# end
# end
#
# class Foo
# private
# # Documentation
# def do_something
# end
# end
# @example AllowedMethods: ['method_missing', 'respond_to_missing?']
#
# # good
# class Foo
# def method_missing(name, *args)
# end
#
# def respond_to_missing?(symbol, include_private)
# end
# end
#
# source://rubocop//lib/rubocop/cop/style/documentation_method.rb#109
class RuboCop::Cop::Style::DocumentationMethod < ::RuboCop::Cop::Base
include ::RuboCop::Cop::DocumentationComment
include ::RuboCop::Cop::VisibilityHelp
include ::RuboCop::Cop::DefNode
# source://rubocop//lib/rubocop/cop/style/documentation_method.rb#116
def modifier_node?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/documentation_method.rb#120
def on_def(node); end
# source://rubocop//lib/rubocop/cop/style/documentation_method.rb#120
def on_defs(node); end
private
# source://rubocop//lib/rubocop/cop/style/documentation_method.rb#146
def allowed_methods; end
# source://rubocop//lib/rubocop/cop/style/documentation_method.rb#130
def check(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/documentation_method.rb#142
def method_allowed?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/documentation_method.rb#138
def require_for_non_public_methods?; end
end
# source://rubocop//lib/rubocop/cop/style/documentation_method.rb#113
RuboCop::Cop::Style::DocumentationMethod::MSG = T.let(T.unsafe(nil), String)
# Detects double disable comments on one line. This is mostly to catch
# automatically generated comments that need to be regenerated.
#
# @example
# # bad
# def f # rubocop:disable Style/For # rubocop:disable Metrics/AbcSize
# end
#
# # good
# # rubocop:disable Metrics/AbcSize
# def f # rubocop:disable Style/For
# end
# # rubocop:enable Metrics/AbcSize
#
# # if both fit on one line
# def f # rubocop:disable Style/For, Metrics/AbcSize
# end
#
# source://rubocop//lib/rubocop/cop/style/double_cop_disable_directive.rb#27
class RuboCop::Cop::Style::DoubleCopDisableDirective < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/double_cop_disable_directive.rb#34
def on_new_investigation; end
end
# source://rubocop//lib/rubocop/cop/style/double_cop_disable_directive.rb#32
RuboCop::Cop::Style::DoubleCopDisableDirective::MSG = T.let(T.unsafe(nil), String)
# Checks for uses of double negation (`!!`) to convert something to a boolean value.
#
# When using `EnforcedStyle: allowed_in_returns`, allow double negation in contexts
# that use boolean as a return value. When using `EnforcedStyle: forbidden`, double negation
# should be forbidden always.
#
# NOTE: when `something` is a boolean value
# `!!something` and `!something.nil?` are not the same thing.
# As you're unlikely to write code that can accept values of any type
# this is rarely a problem in practice.
#
# @example
# # bad
# !!something
#
# # good
# !something.nil?
# @example EnforcedStyle: allowed_in_returns (default)
# # good
# def foo?
# !!return_value
# end
#
# define_method :foo? do
# !!return_value
# end
#
# define_singleton_method :foo? do
# !!return_value
# end
# @example EnforcedStyle: forbidden
# # bad
# def foo?
# !!return_value
# end
#
# define_method :foo? do
# !!return_value
# end
#
# define_singleton_method :foo? do
# !!return_value
# end
#
# source://rubocop//lib/rubocop/cop/style/double_negation.rb#61
class RuboCop::Cop::Style::DoubleNegation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/double_negation.rb#69
def double_negative?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/double_negation.rb#71
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/double_negation.rb#84
def allowed_in_returns?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/double_negation.rb#111
def define_method?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/double_negation.rb#138
def double_negative_condition_return_value?(node, last_child, conditional_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/double_negation.rb#88
def end_of_method_definition?(node); end
# source://rubocop//lib/rubocop/cop/style/double_negation.rb#120
def find_conditional_node_from_ascendant(node); end
# source://rubocop//lib/rubocop/cop/style/double_negation.rb#103
def find_def_node_from_ascendant(node); end
# source://rubocop//lib/rubocop/cop/style/double_negation.rb#127
def find_last_child(node); end
# source://rubocop//lib/rubocop/cop/style/double_negation.rb#147
def find_parent_not_enumerable(node); end
end
# source://rubocop//lib/rubocop/cop/style/double_negation.rb#65
RuboCop::Cop::Style::DoubleNegation::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/double_negation.rb#66
RuboCop::Cop::Style::DoubleNegation::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for loops which iterate a constant number of times,
# using a Range literal and `#each`. This can be done more readably using
# `Integer#times`.
#
# This check only applies if the block takes no parameters.
#
# @example
# # bad
# (1..5).each { }
#
# # good
# 5.times { }
#
# # bad
# (0...10).each {}
#
# # good
# 10.times {}
#
# source://rubocop//lib/rubocop/cop/style/each_for_simple_loop.rb#24
class RuboCop::Cop::Style::EachForSimpleLoop < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/each_for_simple_loop.rb#52
def each_range(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/each_for_simple_loop.rb#64
def each_range_with_zero_origin?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/each_for_simple_loop.rb#76
def each_range_without_block_argument?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/each_for_simple_loop.rb#29
def on_block(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/each_for_simple_loop.rb#45
def offending?(node); end
end
# source://rubocop//lib/rubocop/cop/style/each_for_simple_loop.rb#27
RuboCop::Cop::Style::EachForSimpleLoop::MSG = T.let(T.unsafe(nil), String)
# Looks for inject / reduce calls where the passed in object is
# returned at the end and so could be replaced by each_with_object without
# the need to return the object at the end.
#
# However, we can't replace with each_with_object if the accumulator
# parameter is assigned to within the block.
#
# @example
# # bad
# [1, 2].inject({}) { |a, e| a[e] = e; a }
#
# # good
# [1, 2].each_with_object({}) { |e, a| a[e] = e }
#
# source://rubocop//lib/rubocop/cop/style/each_with_object.rb#19
class RuboCop::Cop::Style::EachWithObject < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/each_with_object.rb#60
def each_with_object_block_candidate?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/each_with_object.rb#65
def each_with_object_numblock_candidate?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/each_with_object.rb#26
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/each_with_object.rb#43
def on_numblock(node); end
private
# if the accumulator parameter is assigned to in the block,
# then we can't convert to each_with_object
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/each_with_object.rb#102
def accumulator_param_assigned_to?(body, args); end
# source://rubocop//lib/rubocop/cop/style/each_with_object.rb#69
def autocorrect_block(corrector, node, return_value); end
# source://rubocop//lib/rubocop/cop/style/each_with_object.rb#84
def autocorrect_numblock(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/each_with_object.rb#121
def first_argument_returned?(args, return_value); end
# source://rubocop//lib/rubocop/cop/style/each_with_object.rb#114
def return_value(body); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/each_with_object.rb#129
def return_value_occupies_whole_line?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/each_with_object.rb#96
def simple_method_arg?(method_arg); end
# source://rubocop//lib/rubocop/cop/style/each_with_object.rb#133
def whole_line_expression(node); end
end
# source://rubocop//lib/rubocop/cop/style/each_with_object.rb#24
RuboCop::Cop::Style::EachWithObject::METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/each_with_object.rb#23
RuboCop::Cop::Style::EachWithObject::MSG = T.let(T.unsafe(nil), String)
# Checks for pipes for empty block parameters. Pipes for empty
# block parameters do not cause syntax errors, but they are redundant.
#
# @example
# # bad
# a do ||
# do_something
# end
#
# # bad
# a { || do_something }
#
# # good
# a do
# end
#
# # good
# a { do_something }
#
# source://rubocop//lib/rubocop/cop/style/empty_block_parameter.rb#24
class RuboCop::Cop::Style::EmptyBlockParameter < ::RuboCop::Cop::Base
include ::RuboCop::Cop::EmptyParameter
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/empty_block_parameter.rb#31
def on_block(node); end
private
# source://rubocop//lib/rubocop/cop/style/empty_block_parameter.rb#38
def autocorrect(corrector, node); end
end
# source://rubocop//lib/rubocop/cop/style/empty_block_parameter.rb#29
RuboCop::Cop::Style::EmptyBlockParameter::MSG = T.let(T.unsafe(nil), String)
# Checks for case statements with an empty condition.
#
# @example
#
# # bad:
# case
# when x == 0
# puts 'x is 0'
# when y == 0
# puts 'y is 0'
# else
# puts 'neither is 0'
# end
#
# # good:
# if x == 0
# puts 'x is 0'
# elsif y == 0
# puts 'y is 0'
# else
# puts 'neither is 0'
# end
#
# # good: (the case condition node is not empty)
# case n
# when 0
# puts 'zero'
# when 1
# puts 'one'
# else
# puts 'more'
# end
#
# source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#38
class RuboCop::Cop::Style::EmptyCaseCondition < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#46
def on_case(case_node); end
private
# source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#63
def autocorrect(corrector, case_node); end
# source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#70
def correct_case_when(corrector, case_node, when_nodes); end
# source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#82
def correct_when_conditions(corrector, when_nodes); end
# source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#97
def keep_first_when_comment(case_range, corrector); end
# source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#107
def replace_then_with_line_break(corrector, conditions, when_node); end
end
# source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#42
RuboCop::Cop::Style::EmptyCaseCondition::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/empty_case_condition.rb#43
RuboCop::Cop::Style::EmptyCaseCondition::NOT_SUPPORTED_PARENT_TYPES = T.let(T.unsafe(nil), Array)
# Checks for empty else-clauses, possibly including comments and/or an
# explicit `nil` depending on the EnforcedStyle.
#
# @example EnforcedStyle: both (default)
# # warn on empty else and else with nil in it
#
# # bad
# if condition
# statement
# else
# nil
# end
#
# # bad
# if condition
# statement
# else
# end
#
# # good
# if condition
# statement
# else
# statement
# end
#
# # good
# if condition
# statement
# end
# @example EnforcedStyle: empty
# # warn only on empty else
#
# # bad
# if condition
# statement
# else
# end
#
# # good
# if condition
# statement
# else
# nil
# end
#
# # good
# if condition
# statement
# else
# statement
# end
#
# # good
# if condition
# statement
# end
# @example EnforcedStyle: nil
# # warn on else with nil in it
#
# # bad
# if condition
# statement
# else
# nil
# end
#
# # good
# if condition
# statement
# else
# end
#
# # good
# if condition
# statement
# else
# statement
# end
#
# # good
# if condition
# statement
# end
# @example AllowComments: false (default)
#
# # bad
# if condition
# statement
# else
# # something comment
# nil
# end
#
# # bad
# if condition
# statement
# else
# # something comment
# end
# @example AllowComments: true
#
# # good
# if condition
# statement
# else
# # something comment
# nil
# end
#
# # good
# if condition
# statement
# else
# # something comment
# end
#
# source://rubocop//lib/rubocop/cop/style/empty_else.rb#127
class RuboCop::Cop::Style::EmptyElse < ::RuboCop::Cop::Base
include ::RuboCop::Cop::OnNormalIfUnless
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/empty_else.rb#139
def on_case(node); end
# source://rubocop//lib/rubocop/cop/style/empty_else.rb#135
def on_normal_if_unless(node); end
private
# source://rubocop//lib/rubocop/cop/style/empty_else.rb#172
def autocorrect(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/empty_else.rb#194
def autocorrect_forbidden?(type); end
# source://rubocop//lib/rubocop/cop/style/empty_else.rb#187
def base_node(node); end
# source://rubocop//lib/rubocop/cop/style/empty_else.rb#145
def check(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/empty_else.rb#180
def comment_in_else?(node); end
# source://rubocop//lib/rubocop/cop/style/empty_else.rb#160
def empty_check(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/empty_else.rb#156
def empty_style?; end
# source://rubocop//lib/rubocop/cop/style/empty_else.rb#198
def missing_else_style; end
# source://rubocop//lib/rubocop/cop/style/empty_else.rb#166
def nil_check(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/empty_else.rb#152
def nil_style?; end
end
# source://rubocop//lib/rubocop/cop/style/empty_else.rb#133
RuboCop::Cop::Style::EmptyElse::MSG = T.let(T.unsafe(nil), String)
# Checks for using empty heredoc to reduce redundancy.
#
# @example
#
# # bad
# <<~EOS
# EOS
#
# <<-EOS
# EOS
#
# <<EOS
# EOS
#
# # good
# ''
#
# # bad
# do_something(<<~EOS)
# EOS
#
# do_something(<<-EOS)
# EOS
#
# do_something(<<EOS)
# EOS
#
# # good
# do_something('')
#
# source://rubocop//lib/rubocop/cop/style/empty_heredoc.rb#36
class RuboCop::Cop::Style::EmptyHeredoc < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Heredoc
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::StringLiteralsHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/empty_heredoc.rb#44
def on_heredoc(node); end
end
# source://rubocop//lib/rubocop/cop/style/empty_heredoc.rb#42
RuboCop::Cop::Style::EmptyHeredoc::MSG = T.let(T.unsafe(nil), String)
# Checks for parentheses for empty lambda parameters. Parentheses
# for empty lambda parameters do not cause syntax errors, but they are
# redundant.
#
# @example
# # bad
# -> () { do_something }
#
# # good
# -> { do_something }
#
# # good
# -> (arg) { do_something(arg) }
#
# source://rubocop//lib/rubocop/cop/style/empty_lambda_parameter.rb#19
class RuboCop::Cop::Style::EmptyLambdaParameter < ::RuboCop::Cop::Base
include ::RuboCop::Cop::EmptyParameter
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/empty_lambda_parameter.rb#26
def on_block(node); end
private
# source://rubocop//lib/rubocop/cop/style/empty_lambda_parameter.rb#35
def autocorrect(corrector, node); end
end
# source://rubocop//lib/rubocop/cop/style/empty_lambda_parameter.rb#24
RuboCop::Cop::Style::EmptyLambdaParameter::MSG = T.let(T.unsafe(nil), String)
# Checks for the use of a method, the result of which
# would be a literal, like an empty array, hash, or string.
#
# @example
# # bad
# a = Array.new
# a = Array[]
# h = Hash.new
# h = Hash[]
# s = String.new
#
# # good
# a = []
# h = {}
# s = ''
#
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#21
class RuboCop::Cop::Style::EmptyLiteral < ::RuboCop::Cop::Base
include ::RuboCop::Cop::FrozenStringLiteral
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::StringLiteralsHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#34
def array_node(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#43
def array_with_block(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#54
def array_with_index(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#37
def hash_node(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#46
def hash_with_block(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#62
def hash_with_index(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#69
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#40
def str_node(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#118
def correction(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#89
def first_argument_unparenthesized?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#136
def frozen_strings?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#109
def offense_array_node?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#113
def offense_hash_node?(node); end
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#79
def offense_message(node); end
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#96
def replacement_range(node); end
end
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#27
RuboCop::Cop::Style::EmptyLiteral::ARR_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#28
RuboCop::Cop::Style::EmptyLiteral::HASH_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#31
RuboCop::Cop::Style::EmptyLiteral::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/empty_literal.rb#29
RuboCop::Cop::Style::EmptyLiteral::STR_MSG = T.let(T.unsafe(nil), String)
# Checks for the formatting of empty method definitions.
# By default it enforces empty method definitions to go on a single
# line (compact style), but it can be configured to enforce the `end`
# to go on its own line (expanded style).
#
# NOTE: A method definition is not considered empty if it contains
# comments.
#
# NOTE: Autocorrection will not be applied for the `compact` style
# if the resulting code is longer than the `Max` configuration for
# `Layout/LineLength`, but an offense will still be registered.
#
# @example EnforcedStyle: compact (default)
# # bad
# def foo(bar)
# end
#
# def self.foo(bar)
# end
#
# # good
# def foo(bar); end
#
# def foo(bar)
# # baz
# end
#
# def self.foo(bar); end
# @example EnforcedStyle: expanded
# # bad
# def foo(bar); end
#
# def self.foo(bar); end
#
# # good
# def foo(bar)
# end
#
# def self.foo(bar)
# end
#
# source://rubocop//lib/rubocop/cop/style/empty_method.rb#47
class RuboCop::Cop::Style::EmptyMethod < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/empty_method.rb#54
def on_def(node); end
# source://rubocop//lib/rubocop/cop/style/empty_method.rb#54
def on_defs(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/empty_method.rb#95
def compact?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/empty_method.rb#103
def compact_style?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/empty_method.rb#73
def correct_style?(node); end
# source://rubocop//lib/rubocop/cop/style/empty_method.rb#77
def corrected(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/empty_method.rb#99
def expanded?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/empty_method.rb#107
def expanded_style?; end
# source://rubocop//lib/rubocop/cop/style/empty_method.rb#89
def joint(node); end
# source://rubocop//lib/rubocop/cop/style/empty_method.rb#111
def max_line_length; end
# source://rubocop//lib/rubocop/cop/style/empty_method.rb#69
def message(_range); end
end
# source://rubocop//lib/rubocop/cop/style/empty_method.rb#51
RuboCop::Cop::Style::EmptyMethod::MSG_COMPACT = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/empty_method.rb#52
RuboCop::Cop::Style::EmptyMethod::MSG_EXPANDED = T.let(T.unsafe(nil), String)
# Checks ensures source files have no utf-8 encoding comments.
#
# @example
# # bad
# # encoding: UTF-8
# # coding: UTF-8
# # -*- coding: UTF-8 -*-
#
# source://rubocop//lib/rubocop/cop/style/encoding.rb#12
class RuboCop::Cop::Style::Encoding < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/encoding.rb#20
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/style/encoding.rb#32
def comments; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/encoding.rb#43
def offense?(comment); end
# source://rubocop//lib/rubocop/cop/style/encoding.rb#47
def register_offense(line_number, comment); end
end
# source://rubocop//lib/rubocop/cop/style/encoding.rb#17
RuboCop::Cop::Style::Encoding::ENCODING_PATTERN = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/style/encoding.rb#16
RuboCop::Cop::Style::Encoding::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/encoding.rb#18
RuboCop::Cop::Style::Encoding::SHEBANG = T.let(T.unsafe(nil), String)
# Checks for END blocks.
#
# @example
# # bad
# END { puts 'Goodbye!' }
#
# # good
# at_exit { puts 'Goodbye!' }
#
# source://rubocop//lib/rubocop/cop/style/end_block.rb#15
class RuboCop::Cop::Style::EndBlock < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/end_block.rb#20
def on_postexe(node); end
end
# source://rubocop//lib/rubocop/cop/style/end_block.rb#18
RuboCop::Cop::Style::EndBlock::MSG = T.let(T.unsafe(nil), String)
# Checks for endless methods.
#
# It can enforce either the use of endless methods definitions
# for single-lined method bodies, or disallow endless methods.
#
# Other method definition types are not considered by this cop.
#
# The supported styles are:
#
# * allow_single_line (default) - only single line endless method definitions are allowed.
# * allow_always - all endless method definitions are allowed.
# * disallow - all endless method definitions are disallowed.
#
# NOTE: Incorrect endless method definitions will always be
# corrected to a multi-line definition.
#
# @example EnforcedStyle: allow_single_line (default)
# # good
# def my_method() = x
#
# # bad, multi-line endless method
# def my_method() = x.foo
# .bar
# .baz
# @example EnforcedStyle: allow_always
# # good
# def my_method() = x
#
# # good
# def my_method() = x.foo
# .bar
# .baz
# @example EnforcedStyle: disallow
# # bad
# def my_method() = x
#
# # bad
# def my_method() = x.foo
# .bar
# .baz
#
# source://rubocop//lib/rubocop/cop/style/endless_method.rb#49
class RuboCop::Cop::Style::EndlessMethod < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::EndlessMethodRewriter
extend ::RuboCop::Cop::TargetRubyVersion
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/endless_method.rb#61
def on_def(node); end
private
# source://rubocop//lib/rubocop/cop/style/endless_method.rb#71
def handle_allow_style(node); end
# source://rubocop//lib/rubocop/cop/style/endless_method.rb#80
def handle_disallow_style(node); end
end
# source://rubocop//lib/rubocop/cop/style/endless_method.rb#57
RuboCop::Cop::Style::EndlessMethod::CORRECTION_STYLES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/endless_method.rb#58
RuboCop::Cop::Style::EndlessMethod::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/endless_method.rb#59
RuboCop::Cop::Style::EndlessMethod::MSG_MULTI_LINE = T.let(T.unsafe(nil), String)
# Checks for consistent usage of `ENV['HOME']`. If `nil` is used as
# the second argument of `ENV.fetch`, it is treated as a bad case like `ENV[]`.
#
# @example
#
# # bad
# ENV['HOME']
# ENV.fetch('HOME', nil)
#
# # good
# Dir.home
#
# # good
# ENV.fetch('HOME', default)
#
# source://rubocop//lib/rubocop/cop/style/env_home.rb#31
class RuboCop::Cop::Style::EnvHome < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/env_home.rb#38
def env_home?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/env_home.rb#45
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/style/env_home.rb#34
RuboCop::Cop::Style::EnvHome::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/env_home.rb#35
RuboCop::Cop::Style::EnvHome::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Ensures that eval methods (`eval`, `instance_eval`, `class_eval`
# and `module_eval`) are given filename and line number values (`\_\_FILE\_\_`
# and `\_\_LINE\_\_`). This data is used to ensure that any errors raised
# within the evaluated code will be given the correct identification
# in a backtrace.
#
# The cop also checks that the line number given relative to `\_\_LINE\_\_` is
# correct.
#
# This cop will autocorrect incorrect or missing filename and line number
# values. However, if `eval` is called without a binding argument, the cop
# will not attempt to automatically add a binding, or add filename and
# line values.
#
# NOTE: This cop works only when a string literal is given as a code string.
# No offense is reported if a string variable is given as below:
#
# [source,ruby]
# ----
# code = <<-RUBY
# def do_something
# end
# RUBY
# eval code # not checked.
# ----
#
# @example
# # bad
# eval <<-RUBY
# def do_something
# end
# RUBY
#
# # bad
# C.class_eval <<-RUBY
# def do_something
# end
# RUBY
#
# # good
# eval <<-RUBY, binding, __FILE__, __LINE__ + 1
# def do_something
# end
# RUBY
#
# # good
# C.class_eval <<-RUBY, __FILE__, __LINE__ + 1
# def do_something
# end
# RUBY
#
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#57
class RuboCop::Cop::Style::EvalWithLocation < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#75
def line_with_offset?(param0 = T.unsafe(nil), param1, param2); end
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#82
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#70
def valid_eval_receiver?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#187
def add_offense_for_different_line(node, line_node, line_diff); end
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#132
def add_offense_for_incorrect_line(method_name, line_node, sign, line_diff); end
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#202
def add_offense_for_missing_line(node, code); end
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#209
def add_offense_for_missing_location(node, code); end
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#181
def add_offense_for_same_line(node, line_node); end
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#144
def check_file(node, file_node); end
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#157
def check_line(node, code); end
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#96
def check_location(node, code); end
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#194
def expected_line(sign, line_diff); end
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#123
def file_and_line(node); end
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#169
def line_difference(line_node, code); end
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#221
def missing_line(node, code); end
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#110
def register_offense(node, &block); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#115
def special_file_keyword?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#119
def special_line_keyword?(node); end
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#173
def string_first_line(str_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#128
def with_binding?(node); end
end
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#60
RuboCop::Cop::Style::EvalWithLocation::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#61
RuboCop::Cop::Style::EvalWithLocation::MSG_EVAL = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#62
RuboCop::Cop::Style::EvalWithLocation::MSG_INCORRECT_FILE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#64
RuboCop::Cop::Style::EvalWithLocation::MSG_INCORRECT_LINE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/eval_with_location.rb#67
RuboCop::Cop::Style::EvalWithLocation::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for places where `Integer#even?` or `Integer#odd?`
# can be used.
#
# @example
#
# # bad
# if x % 2 == 0
# end
#
# # good
# if x.even?
# end
#
# source://rubocop//lib/rubocop/cop/style/even_odd.rb#18
class RuboCop::Cop::Style::EvenOdd < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/even_odd.rb#25
def even_odd_candidate?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/even_odd.rb#33
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/even_odd.rb#45
def replacement_method(arg, method); end
end
# source://rubocop//lib/rubocop/cop/style/even_odd.rb#21
RuboCop::Cop::Style::EvenOdd::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/even_odd.rb#22
RuboCop::Cop::Style::EvenOdd::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for exact regexp match inside Regexp literals.
#
# @example
#
# # bad
# string =~ /\Astring\z/
# string === /\Astring\z/
# string.match(/\Astring\z/)
# string.match?(/\Astring\z/)
#
# # good
# string == 'string'
#
# # bad
# string !~ /\Astring\z/
#
# # good
# string != 'string'
#
# source://rubocop//lib/rubocop/cop/style/exact_regexp_match.rb#25
class RuboCop::Cop::Style::ExactRegexpMatch < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/exact_regexp_match.rb#32
def exact_regexp_match(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/exact_regexp_match.rb#40
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/exact_regexp_match.rb#40
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/exact_regexp_match.rb#57
def exact_match_pattern?(parsed_regexp); end
# source://rubocop//lib/rubocop/cop/style/exact_regexp_match.rb#64
def new_method(node); end
end
# source://rubocop//lib/rubocop/cop/style/exact_regexp_match.rb#28
RuboCop::Cop::Style::ExactRegexpMatch::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/exact_regexp_match.rb#29
RuboCop::Cop::Style::ExactRegexpMatch::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for use of the `File.expand_path` arguments.
# Likewise, it also checks for the `Pathname.new` argument.
#
# Contrastive bad case and good case are alternately shown in
# the following examples.
#
# @example
# # bad
# File.expand_path('..', __FILE__)
#
# # good
# File.expand_path(__dir__)
#
# # bad
# File.expand_path('../..', __FILE__)
#
# # good
# File.expand_path('..', __dir__)
#
# # bad
# File.expand_path('.', __FILE__)
#
# # good
# File.expand_path(__FILE__)
#
# # bad
# Pathname(__FILE__).parent.expand_path
#
# # good
# Pathname(__dir__).expand_path
#
# # bad
# Pathname.new(__FILE__).parent.expand_path
#
# # good
# Pathname.new(__dir__).expand_path
#
# source://rubocop//lib/rubocop/cop/style/expand_path_arguments.rb#43
class RuboCop::Cop::Style::ExpandPathArguments < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/expand_path_arguments.rb#58
def file_expand_path(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/expand_path_arguments.rb#82
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/expand_path_arguments.rb#74
def pathname_new_parent_expand_path(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/expand_path_arguments.rb#66
def pathname_parent_expand_path(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/expand_path_arguments.rb#189
def arguments_range(node); end
# source://rubocop//lib/rubocop/cop/style/expand_path_arguments.rb#100
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/expand_path_arguments.rb#135
def autocorrect_expand_path(corrector, current_path, default_dir); end
# source://rubocop//lib/rubocop/cop/style/expand_path_arguments.rb#162
def depth(current_path); end
# source://rubocop//lib/rubocop/cop/style/expand_path_arguments.rb#113
def inspect_offense_for_expand_path(node, current_path, default_dir); end
# source://rubocop//lib/rubocop/cop/style/expand_path_arguments.rb#168
def parent_path(current_path); end
# source://rubocop//lib/rubocop/cop/style/expand_path_arguments.rb#182
def remove_parent_method(corrector, default_dir); end
# source://rubocop//lib/rubocop/cop/style/expand_path_arguments.rb#155
def strip_surrounded_quotes!(path_string); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/expand_path_arguments.rb#109
def unrecommended_argument?(default_dir); end
end
# source://rubocop//lib/rubocop/cop/style/expand_path_arguments.rb#47
RuboCop::Cop::Style::ExpandPathArguments::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/expand_path_arguments.rb#49
RuboCop::Cop::Style::ExpandPathArguments::PATHNAME_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/expand_path_arguments.rb#51
RuboCop::Cop::Style::ExpandPathArguments::PATHNAME_NEW_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/expand_path_arguments.rb#55
RuboCop::Cop::Style::ExpandPathArguments::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Enforces the use of explicit block argument to avoid writing
# block literal that just passes its arguments to another block.
#
# NOTE: This cop only registers an offense if the block args match the
# yield args exactly.
#
# @example
# # bad
# def with_tmp_dir
# Dir.mktmpdir do |tmp_dir|
# Dir.chdir(tmp_dir) { |dir| yield dir } # block just passes arguments
# end
# end
#
# # bad
# def nine_times
# 9.times { yield }
# end
#
# # good
# def with_tmp_dir(&block)
# Dir.mktmpdir do |tmp_dir|
# Dir.chdir(tmp_dir, &block)
# end
# end
#
# with_tmp_dir do |dir|
# puts "dir is accessible as a parameter and pwd is set: #{dir}"
# end
#
# # good
# def nine_times(&block)
# 9.times(&block)
# end
#
# source://rubocop//lib/rubocop/cop/style/explicit_block_argument.rb#41
class RuboCop::Cop::Style::ExplicitBlockArgument < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# @return [ExplicitBlockArgument] a new instance of ExplicitBlockArgument
#
# source://rubocop//lib/rubocop/cop/style/explicit_block_argument.rb#57
def initialize(config = T.unsafe(nil), options = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/explicit_block_argument.rb#62
def on_yield(node); end
# source://rubocop//lib/rubocop/cop/style/explicit_block_argument.rb#49
def yielding_block?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/explicit_block_argument.rb#108
def add_block_argument(node, corrector, block_name); end
# source://rubocop//lib/rubocop/cop/style/explicit_block_argument.rb#147
def block_body_range(block_node, send_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/explicit_block_argument.rb#125
def call_like?(node); end
# source://rubocop//lib/rubocop/cop/style/explicit_block_argument.rb#137
def correct_call_node(node, corrector, block_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/explicit_block_argument.rb#120
def empty_arguments?(node); end
# source://rubocop//lib/rubocop/cop/style/explicit_block_argument.rb#87
def extract_block_name(def_node); end
# source://rubocop//lib/rubocop/cop/style/explicit_block_argument.rb#129
def insert_argument(node, corrector, block_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/explicit_block_argument.rb#95
def yielding_arguments?(block_args, yield_args); end
class << self
# source://rubocop//lib/rubocop/cop/style/explicit_block_argument.rb#53
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/style/explicit_block_argument.rb#45
RuboCop::Cop::Style::ExplicitBlockArgument::MSG = T.let(T.unsafe(nil), String)
# Enforces consistency when using exponential notation
# for numbers in the code (eg 1.2e4). Different styles are supported:
#
# * `scientific` which enforces a mantissa between 1 (inclusive) and 10 (exclusive).
# * `engineering` which enforces the exponent to be a multiple of 3 and the mantissa
# to be between 0.1 (inclusive) and 10 (exclusive).
# * `integral` which enforces the mantissa to always be a whole number without
# trailing zeroes.
#
# @example EnforcedStyle: scientific (default)
# # Enforces a mantissa between 1 (inclusive) and 10 (exclusive).
#
# # bad
# 10e6
# 0.3e4
# 11.7e5
# 3.14e0
#
# # good
# 1e7
# 3e3
# 1.17e6
# 3.14
# @example EnforcedStyle: engineering
# # Enforces using multiple of 3 exponents,
# # mantissa should be between 0.1 (inclusive) and 1000 (exclusive)
#
# # bad
# 3.2e7
# 0.1e5
# 12e5
# 1232e6
#
# # good
# 32e6
# 10e3
# 1.2e6
# 1.232e9
# @example EnforcedStyle: integral
# # Enforces the mantissa to have no decimal part and no
# # trailing zeroes.
#
# # bad
# 3.2e7
# 0.1e5
# 120e4
#
# # good
# 32e6
# 1e4
# 12e5
#
# source://rubocop//lib/rubocop/cop/style/exponential_notation.rb#60
class RuboCop::Cop::Style::ExponentialNotation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
# source://rubocop//lib/rubocop/cop/style/exponential_notation.rb#68
def on_float(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/exponential_notation.rb#79
def engineering?(node); end
# source://rubocop//lib/rubocop/cop/style/exponential_notation.rb#90
def integral(node); end
# source://rubocop//lib/rubocop/cop/style/exponential_notation.rb#110
def message(_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/exponential_notation.rb#95
def offense?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/exponential_notation.rb#74
def scientific?(node); end
end
# source://rubocop//lib/rubocop/cop/style/exponential_notation.rb#62
RuboCop::Cop::Style::ExponentialNotation::MESSAGES = T.let(T.unsafe(nil), Hash)
# Suggests `ENV.fetch` for the replacement of `ENV[]`.
# `ENV[]` silently fails and returns `nil` when the environment variable is unset,
# which may cause unexpected behaviors when the developer forgets to set it.
# On the other hand, `ENV.fetch` raises KeyError or returns the explicitly
# specified default value.
#
# @example
# # bad
# ENV['X']
# x = ENV['X']
#
# # good
# ENV.fetch('X')
# x = ENV.fetch('X')
#
# # also good
# !ENV['X']
# ENV['X'].some_method # (e.g. `.nil?`)
#
# source://rubocop//lib/rubocop/cop/style/fetch_env_var.rb#25
class RuboCop::Cop::Style::FetchEnvVar < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/fetch_env_var.rb#31
def env_with_bracket?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/fetch_env_var.rb#35
def on_send(node); end
private
# The following are allowed cases:
#
# - Used as a flag (e.g., `if ENV['X']` or `!ENV['X']`) because
# it simply checks whether the variable is set.
# - Receiving a message with dot syntax, e.g. `ENV['X'].nil?`.
# - `ENV['key']` assigned by logical AND/OR assignment.
# - `ENV['key']` is the LHS of a `||`.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/fetch_env_var.rb#105
def allowable_use?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/fetch_env_var.rb#48
def allowed_var?(node); end
# The following are allowed cases:
#
# - `ENV['key']` is a receiver of `||=`, e.g. `ENV['X'] ||= y`.
# - `ENV['key']` is a receiver of `&&=`, e.g. `ENV['X'] &&= y`.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/fetch_env_var.rb#113
def assigned?(node); end
# Check if the node is a receiver and receives a message with dot syntax.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/fetch_env_var.rb#89
def message_chained_with_dot?(node); end
# source://rubocop//lib/rubocop/cop/style/fetch_env_var.rb#126
def new_code(name_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/fetch_env_var.rb#84
def offensive?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/fetch_env_var.rb#120
def or_lhs?(node); end
# Avoid offending in the following cases:
# `ENV['key'] if ENV['key'] = x`
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/fetch_env_var.rb#80
def partial_matched?(node, condition); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/fetch_env_var.rb#53
def used_as_flag?(node); end
# source://rubocop//lib/rubocop/cop/style/fetch_env_var.rb#60
def used_if_condition_in_body(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/fetch_env_var.rb#69
def used_in_condition?(node, condition); end
end
# source://rubocop//lib/rubocop/cop/style/fetch_env_var.rb#28
RuboCop::Cop::Style::FetchEnvVar::MSG = T.let(T.unsafe(nil), String)
# Prefer to use `File.empty?('path/to/file')` when checking if a file is empty.
#
# @example
# # bad
# File.zero?('path/to/file')
# File.size('path/to/file') == 0
# File.size('path/to/file') >= 0
# File.size('path/to/file').zero?
# File.read('path/to/file').empty?
# File.binread('path/to/file') == ''
# FileTest.zero?('path/to/file')
#
# # good
# File.empty?('path/to/file')
# FileTest.empty?('path/to/file')
#
# source://rubocop//lib/rubocop/cop/style/file_empty.rb#27
class RuboCop::Cop::Style::FileEmpty < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/file_empty.rb#37
def offensive?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/file_empty.rb#49
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/file_empty.rb#62
def bang(node); end
end
# source://rubocop//lib/rubocop/cop/style/file_empty.rb#31
RuboCop::Cop::Style::FileEmpty::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/file_empty.rb#32
RuboCop::Cop::Style::FileEmpty::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Favor `File.(bin)read` convenience methods.
#
# @example
# # bad - text mode
# File.open(filename).read
# File.open(filename, &:read)
# File.open(filename) { |f| f.read }
# File.open(filename) do |f|
# f.read
# end
# File.open(filename, 'r').read
# File.open(filename, 'r', &:read)
# File.open(filename, 'r') do |f|
# f.read
# end
#
# # good
# File.read(filename)
#
# # bad - binary mode
# File.open(filename, 'rb').read
# File.open(filename, 'rb', &:read)
# File.open(filename, 'rb') do |f|
# f.read
# end
#
# # good
# File.binread(filename)
#
# source://rubocop//lib/rubocop/cop/style/file_read.rb#35
class RuboCop::Cop::Style::FileRead < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/file_read.rb#62
def block_read?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/file_read.rb#46
def file_open?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/file_read.rb#66
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/file_read.rb#57
def send_read?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/file_read.rb#81
def evidence(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/file_read.rb#97
def file_open_read?(node); end
# source://rubocop//lib/rubocop/cop/style/file_read.rb#103
def read_method(mode); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/file_read.rb#89
def read_node?(node, block_pass); end
end
# source://rubocop//lib/rubocop/cop/style/file_read.rb#39
RuboCop::Cop::Style::FileRead::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/file_read.rb#43
RuboCop::Cop::Style::FileRead::READ_FILE_START_TO_FINISH_MODES = T.let(T.unsafe(nil), Set)
# source://rubocop//lib/rubocop/cop/style/file_read.rb#41
RuboCop::Cop::Style::FileRead::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Favor `File.(bin)write` convenience methods.
#
# NOTE: There are different method signatures between `File.write` (class method)
# and `File#write` (instance method). The following case will be allowed because
# static analysis does not know the contents of the splat argument:
#
# [source,ruby]
# ----
# File.open(filename, 'w') do |f|
# f.write(*objects)
# end
# ----
#
# @example
# # bad - text mode
# File.open(filename, 'w').write(content)
# File.open(filename, 'w') do |f|
# f.write(content)
# end
#
# # good
# File.write(filename, content)
#
# # bad - binary mode
# File.open(filename, 'wb').write(content)
# File.open(filename, 'wb') do |f|
# f.write(content)
# end
#
# # good
# File.binwrite(filename, content)
#
# source://rubocop//lib/rubocop/cop/style/file_write.rb#38
class RuboCop::Cop::Style::FileWrite < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/file_write.rb#65
def block_write?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/file_write.rb#82
def evidence(node); end
# source://rubocop//lib/rubocop/cop/style/file_write.rb#49
def file_open?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/file_write.rb#69
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/file_write.rb#60
def send_write?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
# @yield [content]
#
# source://rubocop//lib/rubocop/cop/style/file_write.rb#92
def file_open_write?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/file_write.rb#120
def heredoc?(write_node); end
# source://rubocop//lib/rubocop/cop/style/file_write.rb#125
def heredoc_range(first_argument); end
# source://rubocop//lib/rubocop/cop/style/file_write.rb#105
def replacement(mode, filename, content, write_node); end
# source://rubocop//lib/rubocop/cop/style/file_write.rb#101
def write_method(mode); end
end
# source://rubocop//lib/rubocop/cop/style/file_write.rb#42
RuboCop::Cop::Style::FileWrite::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/file_write.rb#44
RuboCop::Cop::Style::FileWrite::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Set)
# source://rubocop//lib/rubocop/cop/style/file_write.rb#46
RuboCop::Cop::Style::FileWrite::TRUNCATING_WRITE_MODES = T.let(T.unsafe(nil), Set)
# Checks for division with integers coerced to floats.
# It is recommended to either always use `fdiv` or coerce one side only.
# This cop also provides other options for code consistency.
#
# @example EnforcedStyle: single_coerce (default)
# # bad
# a.to_f / b.to_f
#
# # good
# a.to_f / b
# a / b.to_f
# @example EnforcedStyle: left_coerce
# # bad
# a / b.to_f
# a.to_f / b.to_f
#
# # good
# a.to_f / b
# @example EnforcedStyle: right_coerce
# # bad
# a.to_f / b
# a.to_f / b.to_f
#
# # good
# a / b.to_f
# @example EnforcedStyle: fdiv
# # bad
# a / b.to_f
# a.to_f / b
# a.to_f / b.to_f
#
# # good
# a.fdiv(b)
#
# source://rubocop//lib/rubocop/cop/style/float_division.rb#53
class RuboCop::Cop::Style::FloatDivision < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/float_division.rb#79
def any_coerce?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/float_division.rb#75
def both_coerce?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/float_division.rb#71
def left_coerce?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/float_division.rb#83
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/float_division.rb#67
def right_coerce?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/float_division.rb#121
def add_to_f_method(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/float_division.rb#130
def correct_from_slash_to_fdiv(corrector, node, receiver, argument); end
# source://rubocop//lib/rubocop/cop/style/float_division.rb#141
def extract_receiver_source(node); end
# source://rubocop//lib/rubocop/cop/style/float_division.rb#117
def message(_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/float_division.rb#102
def offense_condition?(node); end
# source://rubocop//lib/rubocop/cop/style/float_division.rb#125
def remove_to_f_method(corrector, send_node); end
end
# source://rubocop//lib/rubocop/cop/style/float_division.rb#57
RuboCop::Cop::Style::FloatDivision::MESSAGES = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/style/float_division.rb#64
RuboCop::Cop::Style::FloatDivision::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Looks for uses of the `for` keyword or `each` method. The
# preferred alternative is set in the EnforcedStyle configuration
# parameter. An `each` call with a block on a single line is always
# allowed.
#
# @example EnforcedStyle: each (default)
# # bad
# def foo
# for n in [1, 2, 3] do
# puts n
# end
# end
#
# # good
# def foo
# [1, 2, 3].each do |n|
# puts n
# end
# end
# @example EnforcedStyle: for
# # bad
# def foo
# [1, 2, 3].each do |n|
# puts n
# end
# end
#
# # good
# def foo
# for n in [1, 2, 3] do
# puts n
# end
# end
#
# source://rubocop//lib/rubocop/cop/style/for.rb#45
class RuboCop::Cop::Style::For < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/for.rb#65
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/for.rb#54
def on_for(node); end
# source://rubocop//lib/rubocop/cop/style/for.rb#65
def on_numblock(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/for.rb#84
def suspect_enumerable?(node); end
end
# source://rubocop//lib/rubocop/cop/style/for.rb#50
RuboCop::Cop::Style::For::EACH_LENGTH = T.let(T.unsafe(nil), Integer)
# source://rubocop//lib/rubocop/cop/style/for.rb#51
RuboCop::Cop::Style::For::PREFER_EACH = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/for.rb#52
RuboCop::Cop::Style::For::PREFER_FOR = T.let(T.unsafe(nil), String)
# Enforces the use of a single string formatting utility.
# Valid options include `Kernel#format`, `Kernel#sprintf`, and `String#%`.
#
# The detection of `String#%` cannot be implemented in a reliable
# manner for all cases, so only two scenarios are considered -
# if the first argument is a string literal and if the second
# argument is an array literal.
#
# Autocorrection will be applied when using argument is a literal or known built-in conversion
# methods such as `to_d`, `to_f`, `to_h`, `to_i`, `to_r`, `to_s`, and `to_sym` on variables,
# provided that their return value is not an array. For example, when using `to_s`,
# `'%s' % [1, 2, 3].to_s` can be autocorrected without any incompatibility:
#
# [source,ruby]
# ----
# '%s' % [1, 2, 3] #=> '1'
# format('%s', [1, 2, 3]) #=> '[1, 2, 3]'
# '%s' % [1, 2, 3].to_s #=> '[1, 2, 3]'
# ----
#
# @example EnforcedStyle: format (default)
# # bad
# puts sprintf('%10s', 'foo')
# puts '%10s' % 'foo'
#
# # good
# puts format('%10s', 'foo')
# @example EnforcedStyle: sprintf
# # bad
# puts format('%10s', 'foo')
# puts '%10s' % 'foo'
#
# # good
# puts sprintf('%10s', 'foo')
# @example EnforcedStyle: percent
# # bad
# puts format('%10s', 'foo')
# puts sprintf('%10s', 'foo')
#
# # good
# puts '%10s' % 'foo'
#
# source://rubocop//lib/rubocop/cop/style/format_string.rb#50
class RuboCop::Cop::Style::FormatString < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/format_string.rb#61
def formatter(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/format_string.rb#74
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/format_string.rb#70
def variable_argument?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/format_string.rb#102
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/format_string.rb#118
def autocorrect_from_percent(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/format_string.rb#132
def autocorrect_to_percent(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/format_string.rb#88
def autocorrectable?(node); end
# source://rubocop//lib/rubocop/cop/style/format_string.rb#145
def format_single_parameter(arg); end
# source://rubocop//lib/rubocop/cop/style/format_string.rb#94
def message(detected_style); end
# source://rubocop//lib/rubocop/cop/style/format_string.rb#98
def method_name(style_name); end
end
# Known conversion methods whose return value is not an array.
#
# source://rubocop//lib/rubocop/cop/style/format_string.rb#58
RuboCop::Cop::Style::FormatString::AUTOCORRECTABLE_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/format_string.rb#54
RuboCop::Cop::Style::FormatString::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/format_string.rb#55
RuboCop::Cop::Style::FormatString::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Use a consistent style for named format string tokens.
#
# NOTE: `unannotated` style cop only works for strings
# which are passed as arguments to those methods:
# `printf`, `sprintf`, `format`, `%`.
# The reason is that _unannotated_ format is very similar
# to encoded URLs or Date/Time formatting strings.
#
# This cop's allowed methods can be customized with `AllowedMethods`.
# By default, there are no allowed methods.
#
# It is allowed to contain unannotated token
# if the number of them is less than or equals to
# `MaxUnannotatedPlaceholdersAllowed`.
#
# @example EnforcedStyle: annotated (default)
#
# # bad
# format('%{greeting}', greeting: 'Hello')
# format('%s', 'Hello')
#
# # good
# format('%<greeting>s', greeting: 'Hello')
# @example EnforcedStyle: template
#
# # bad
# format('%<greeting>s', greeting: 'Hello')
# format('%s', 'Hello')
#
# # good
# format('%{greeting}', greeting: 'Hello')
# @example EnforcedStyle: unannotated
#
# # bad
# format('%<greeting>s', greeting: 'Hello')
# format('%{greeting}', greeting: 'Hello')
#
# # good
# format('%s', 'Hello')
# @example MaxUnannotatedPlaceholdersAllowed: 0
#
# # bad
# format('%06d', 10)
# format('%s %s.', 'Hello', 'world')
#
# # good
# format('%<number>06d', number: 10)
# @example MaxUnannotatedPlaceholdersAllowed: 1 (default)
#
# # bad
# format('%s %s.', 'Hello', 'world')
#
# # good
# format('%06d', 10)
# @example AllowedMethods: [] (default)
#
# # bad
# redirect('foo/%{bar_id}')
# @example AllowedMethods: [redirect]
#
# # good
# redirect('foo/%{bar_id}')
# @example AllowedPatterns: [] (default)
#
# # bad
# redirect('foo/%{bar_id}')
# @example AllowedPatterns: ['redirect']
#
# # good
# redirect('foo/%{bar_id}')
#
# source://rubocop//lib/rubocop/cop/style/format_string_token.rb#85
class RuboCop::Cop::Style::FormatStringToken < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::AllowedMethods
include ::RuboCop::Cop::AllowedPattern
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/format_string_token.rb#106
def format_string_in_typical_context?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/format_string_token.rb#91
def on_str(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/format_string_token.rb#213
def allowed_unannotated?(detections); end
# source://rubocop//lib/rubocop/cop/style/format_string_token.rb#139
def autocorrect_sequence(corrector, detected_sequence, token_range); end
# source://rubocop//lib/rubocop/cop/style/format_string_token.rb#124
def check_sequence(detected_sequence, token_range); end
# source://rubocop//lib/rubocop/cop/style/format_string_token.rb#203
def collect_detections(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/format_string_token.rb#135
def correctable_sequence?(detected_type); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/format_string_token.rb#113
def format_string_token?(node); end
# source://rubocop//lib/rubocop/cop/style/format_string_token.rb#222
def max_unannotated_placeholders_allowed; end
# source://rubocop//lib/rubocop/cop/style/format_string_token.rb#160
def message(detected_style); end
# source://rubocop//lib/rubocop/cop/style/format_string_token.rb#165
def message_text(style); end
# source://rubocop//lib/rubocop/cop/style/format_string_token.rb#180
def str_contents(source_map); end
# source://rubocop//lib/rubocop/cop/style/format_string_token.rb#190
def token_ranges(contents); end
# source://rubocop//lib/rubocop/cop/style/format_string_token.rb#174
def tokens(str_node, &block); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/format_string_token.rb#156
def unannotated_format?(node, detected_style); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/format_string_token.rb#117
def use_allowed_method?(node); end
end
# Helps you transition from mutable string literals
# to frozen string literals.
# of files to enable frozen string literals. Frozen string literals may be
# default in future Ruby. The comment will be added below a shebang and
# encoding comment. The frozen string literal comment is only valid in Ruby 2.3+.
#
# Note that the cop will accept files where the comment exists but is set
# to `false` instead of `true`.
#
# To require a blank line after this comment, please see
# `Layout/EmptyLineAfterMagicComment` cop.
#
# @example EnforcedStyle: always (default)
# # The `always` style will always add the frozen string literal comment
# # to a file, regardless of the Ruby version or if `freeze` or `<<` are
# # called on a string literal.
# # bad
# module Bar
# # ...
# end
#
# # good
# # frozen_string_literal: true
#
# module Bar
# # ...
# end
#
# # good
# # frozen_string_literal: false
#
# module Bar
# # ...
# end
# @example EnforcedStyle: never
# # The `never` will enforce that the frozen string literal comment does
# # not exist in a file.
# # bad
# # frozen_string_literal: true
#
# module Baz
# # ...
# end
#
# # good
# module Baz
# # ...
# end
# @example EnforcedStyle: always_true
# # The `always_true` style enforces that the frozen string literal
# # comment is set to `true`. This is a stricter option than `always`
# # and forces projects to use frozen string literals.
# # bad
# # frozen_string_literal: false
#
# module Baz
# # ...
# end
#
# # bad
# module Baz
# # ...
# end
#
# # good
# # frozen_string_literal: true
#
# module Bar
# # ...
# end
#
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#84
class RuboCop::Cop::Style::FrozenStringLiteralComment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::FrozenStringLiteral
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#99
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#178
def disabled_offense(processed_source); end
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#190
def enable_comment(corrector); end
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#120
def ensure_comment(processed_source); end
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#126
def ensure_enabled_comment(processed_source); end
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#114
def ensure_no_comment(processed_source); end
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#214
def following_comment; end
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#152
def frozen_string_literal_comment(processed_source); end
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#196
def insert_comment(corrector); end
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#137
def last_special_comment(processed_source); end
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#206
def line_range(line); end
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#158
def missing_offense(processed_source); end
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#164
def missing_true_offense(processed_source); end
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#210
def preceding_comment; end
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#186
def remove_comment(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#170
def unnecessary_comment_offense(processed_source); end
end
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#96
RuboCop::Cop::Style::FrozenStringLiteralComment::MSG_DISABLED = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#94
RuboCop::Cop::Style::FrozenStringLiteralComment::MSG_MISSING = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#93
RuboCop::Cop::Style::FrozenStringLiteralComment::MSG_MISSING_TRUE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#95
RuboCop::Cop::Style::FrozenStringLiteralComment::MSG_UNNECESSARY = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/frozen_string_literal_comment.rb#97
RuboCop::Cop::Style::FrozenStringLiteralComment::SHEBANG = T.let(T.unsafe(nil), String)
# Enforces the use of `$stdout/$stderr/$stdin` instead of `STDOUT/STDERR/STDIN`.
# `STDOUT/STDERR/STDIN` are constants, and while you can actually
# reassign (possibly to redirect some stream) constants in Ruby, you'll get
# an interpreter warning if you do so.
#
# @example
# # bad
# STDOUT.puts('hello')
#
# hash = { out: STDOUT, key: value }
#
# def m(out = STDOUT)
# out.puts('hello')
# end
#
# # good
# $stdout.puts('hello')
#
# hash = { out: $stdout, key: value }
#
# def m(out = $stdout)
# out.puts('hello')
# end
#
# source://rubocop//lib/rubocop/cop/style/global_std_stream.rb#34
class RuboCop::Cop::Style::GlobalStdStream < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/global_std_stream.rb#42
def const_to_gvar_assignment?(param0 = T.unsafe(nil), param1); end
# source://rubocop//lib/rubocop/cop/style/global_std_stream.rb#46
def on_const(node); end
private
# source://rubocop//lib/rubocop/cop/style/global_std_stream.rb#70
def gvar_name(const_name); end
# source://rubocop//lib/rubocop/cop/style/global_std_stream.rb#62
def message(const_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/global_std_stream.rb#66
def namespaced?(node); end
end
# source://rubocop//lib/rubocop/cop/style/global_std_stream.rb#37
RuboCop::Cop::Style::GlobalStdStream::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/global_std_stream.rb#39
RuboCop::Cop::Style::GlobalStdStream::STD_STREAMS = T.let(T.unsafe(nil), Set)
# Looks for uses of global variables.
# It does not report offenses for built-in global variables.
# Built-in global variables are allowed by default. Additionally
# users can allow additional variables via the AllowedVariables option.
#
# Note that backreferences like $1, $2, etc are not global variables.
#
# @example
# # bad
# $foo = 2
# bar = $foo + 5
#
# # good
# FOO = 2
# foo = 2
# $stdin.read
#
# source://rubocop//lib/rubocop/cop/style/global_vars.rb#22
class RuboCop::Cop::Style::GlobalVars < ::RuboCop::Cop::Base
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/global_vars.rb#60
def allowed_var?(global_var); end
# source://rubocop//lib/rubocop/cop/style/global_vars.rb#72
def check(node); end
# source://rubocop//lib/rubocop/cop/style/global_vars.rb#64
def on_gvar(node); end
# source://rubocop//lib/rubocop/cop/style/global_vars.rb#68
def on_gvasgn(node); end
# source://rubocop//lib/rubocop/cop/style/global_vars.rb#56
def user_vars; end
end
# built-in global variables and their English aliases
# https://www.zenspider.com/ruby/quickref.html
#
# source://rubocop//lib/rubocop/cop/style/global_vars.rb#27
RuboCop::Cop::Style::GlobalVars::BUILT_IN_VARS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/global_vars.rb#23
RuboCop::Cop::Style::GlobalVars::MSG = T.let(T.unsafe(nil), String)
# Use a guard clause instead of wrapping the code inside a conditional
# expression
#
# A condition with an `elsif` or `else` branch is allowed unless
# one of `return`, `break`, `next`, `raise`, or `fail` is used
# in the body of the conditional expression.
#
# NOTE: Autocorrect works in most cases except with if-else statements
# that contain logical operators such as `foo || raise('exception')`
#
# @example
# # bad
# def test
# if something
# work
# end
# end
#
# # good
# def test
# return unless something
#
# work
# end
#
# # also good
# def test
# work if something
# end
#
# # bad
# if something
# raise 'exception'
# else
# ok
# end
#
# # good
# raise 'exception' if something
# ok
#
# # bad
# if something
# foo || raise('exception')
# else
# ok
# end
#
# # good
# foo || raise('exception') if something
# ok
#
# # bad
# define_method(:test) do
# if something
# work
# end
# end
#
# # good
# define_method(:test) do
# return unless something
#
# work
# end
#
# # also good
# define_method(:test) do
# work if something
# end
# @example AllowConsecutiveConditionals: false (default)
# # bad
# def test
# if foo?
# work
# end
#
# if bar? # <- reports an offense
# work
# end
# end
# @example AllowConsecutiveConditionals: true
# # good
# def test
# if foo?
# work
# end
#
# if bar?
# work
# end
# end
#
# # bad
# def test
# if foo?
# work
# end
#
# do_something
#
# if bar? # <- reports an offense
# work
# end
# end
#
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#114
class RuboCop::Cop::Style::GuardClause < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::MinBodyLength
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::LineLengthHelp
include ::RuboCop::Cop::StatementModifier
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#132
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#123
def on_def(node); end
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#123
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#139
def on_if(node); end
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#132
def on_numblock(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#275
def accepted_form?(node, ending: T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#285
def accepted_if?(node, ending); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#312
def allowed_consecutive_conditionals?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#265
def and_or_guard_clause?(guard_clause); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#296
def assigned_lvar_used_in_if_branch?(node); end
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#210
def autocorrect(corrector, node, condition, replacement, guard); end
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#236
def autocorrect_heredoc_argument(corrector, node, heredoc_branch, leave_branch, guard); end
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#159
def check_ending_body(body); end
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#170
def check_ending_if(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#180
def consecutive_conditionals?(parent, node); end
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#257
def guard_clause_source(guard_clause); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#232
def heredoc?(argument); end
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#248
def range_of_branch_to_remove(node, guard); end
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#188
def register_offense(node, scope_exiting_keyword, conditional_keyword, guard = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#308
def remove_whole_lines(corrector, range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#270
def too_long_for_single_line?(node, example); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#279
def trivial?(node); end
end
# source://rubocop//lib/rubocop/cop/style/guard_clause.rb#120
RuboCop::Cop::Style::GuardClause::MSG = T.let(T.unsafe(nil), String)
# Checks for presence or absence of braces around hash literal as a last
# array item depending on configuration.
#
# NOTE: This cop will ignore arrays where all items are hashes, regardless of
# EnforcedStyle.
#
# @example EnforcedStyle: braces (default)
# # bad
# [1, 2, one: 1, two: 2]
#
# # good
# [1, 2, { one: 1, two: 2 }]
#
# # good
# [{ one: 1 }, { two: 2 }]
# @example EnforcedStyle: no_braces
# # bad
# [1, 2, { one: 1, two: 2 }]
#
# # good
# [1, 2, one: 1, two: 2]
#
# # good
# [{ one: 1 }, { two: 2 }]
#
# source://rubocop//lib/rubocop/cop/style/hash_as_last_array_item.rb#31
class RuboCop::Cop::Style::HashAsLastArrayItem < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/hash_as_last_array_item.rb#36
def on_hash(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_as_last_array_item.rb#85
def braces_style?; end
# source://rubocop//lib/rubocop/cop/style/hash_as_last_array_item.rb#66
def check_braces(node); end
# source://rubocop//lib/rubocop/cop/style/hash_as_last_array_item.rb#74
def check_no_braces(node); end
# source://rubocop//lib/rubocop/cop/style/hash_as_last_array_item.rb#50
def containing_array(hash_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_as_last_array_item.rb#61
def explicit_array?(array); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_as_last_array_item.rb#55
def last_array_item?(array, node); end
# source://rubocop//lib/rubocop/cop/style/hash_as_last_array_item.rb#89
def remove_last_element_trailing_comma(corrector, node); end
end
# Checks the usage of pre-2.1 `Hash[args]` method of converting enumerables and
# sequences of values to hashes.
#
# Correction code from splat argument (`Hash[*ary]`) is not simply determined. For example,
# `Hash[*ary]` can be replaced with `ary.each_slice(2).to_h` but it will be complicated.
# So, `AllowSplatArgument` option is true by default to allow splat argument for simple code.
#
# @example
# # bad
# Hash[ary]
#
# # good
# ary.to_h
#
# # bad
# Hash[key1, value1, key2, value2]
#
# # good
# {key1 => value1, key2 => value2}
# @example AllowSplatArgument: true (default)
# # good
# Hash[*ary]
# @example AllowSplatArgument: false
# # bad
# Hash[*ary]
#
# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#44
class RuboCop::Cop::Style::HashConversion < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#54
def hash_from_array?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#56
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#138
def allowed_splat_argument?; end
# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#131
def args_to_hash(args); end
# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#118
def multi_argument(node); end
# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#94
def register_offense_for_hash(node, hash_argument); end
# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#103
def register_offense_for_zip_method(node, zip_method); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#113
def requires_parens?(node); end
# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#71
def single_argument(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#88
def use_zip_method_without_argument?(first_argument); end
end
# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#49
RuboCop::Cop::Style::HashConversion::MSG_LITERAL_HASH_ARG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#48
RuboCop::Cop::Style::HashConversion::MSG_LITERAL_MULTI_ARG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#50
RuboCop::Cop::Style::HashConversion::MSG_SPLAT = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#47
RuboCop::Cop::Style::HashConversion::MSG_TO_H = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/hash_conversion.rb#51
RuboCop::Cop::Style::HashConversion::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for uses of `each_key` and `each_value` Hash methods.
#
# NOTE: If you have an array of two-element arrays, you can put
# parentheses around the block arguments to indicate that you're not
# working with a hash, and suppress RuboCop offenses.
#
# @example
# # bad
# hash.keys.each { |k| p k }
# hash.each { |k, unused_value| p k }
#
# # good
# hash.each_key { |k| p k }
#
# # bad
# hash.values.each { |v| p v }
# hash.each { |unused_key, v| p v }
#
# # good
# hash.each_value { |v| p v }
# @example AllowedReceivers: ['execute']
# # good
# execute(sql).keys.each { |v| p v }
# execute(sql).values.each { |v| p v }
#
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#36
class RuboCop::Cop::Style::HashEachMethods < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedReceivers
include ::RuboCop::Cop::Lint::UnusedArgument
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#79
def check_unused_block_args(node, key, value); end
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#51
def each_arguments(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#61
def hash_mutated?(param0 = T.unsafe(nil), param1); end
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#46
def kv_each(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#56
def kv_each_with_block_pass(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#65
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#100
def on_block_pass(node); end
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#65
def on_numblock(node); end
private
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#186
def check_argument(variable); end
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#210
def correct_args(node, corrector); end
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#196
def correct_implicit(node, corrector, method_name); end
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#201
def correct_key_value_each(node, corrector); end
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#182
def format_message(method_name, current); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#108
def handleable?(node); end
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#217
def kv_range(outer_node); end
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#139
def message(prefer, method_name, unused_code); end
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#145
def register_each_args_offense(node, message, prefer, unused_range); end
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#116
def register_kv_offense(target, method); end
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#152
def register_kv_with_block_pass_offense(node, target, method); end
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#173
def root_receiver(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#127
def unused_block_arg_exist?(node, block_arg); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#163
def use_array_converter_method_as_preceding?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#192
def used?(arg); end
end
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#43
RuboCop::Cop::Style::HashEachMethods::ARRAY_CONVERTER_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#41
RuboCop::Cop::Style::HashEachMethods::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/hash_each_methods.rb#42
RuboCop::Cop::Style::HashEachMethods::UNUSED_BLOCK_ARG_MSG = T.let(T.unsafe(nil), String)
# Checks for usages of `Hash#reject`, `Hash#select`, and `Hash#filter` methods
# that can be replaced with `Hash#except` method.
#
# This cop should only be enabled on Ruby version 3.0 or higher.
# (`Hash#except` was added in Ruby 3.0.)
#
# For safe detection, it is limited to commonly used string and symbol comparisons
# when used `==`.
# And do not check `Hash#delete_if` and `Hash#keep_if` to change receiver object.
#
# @example
#
# # bad
# {foo: 1, bar: 2, baz: 3}.reject {|k, v| k == :bar }
# {foo: 1, bar: 2, baz: 3}.select {|k, v| k != :bar }
# {foo: 1, bar: 2, baz: 3}.filter {|k, v| k != :bar }
# {foo: 1, bar: 2, baz: 3}.reject {|k, v| %i[bar].include?(k) }
# {foo: 1, bar: 2, baz: 3}.select {|k, v| !%i[bar].include?(k) }
# {foo: 1, bar: 2, baz: 3}.filter {|k, v| !%i[bar].include?(k) }
#
# # good
# {foo: 1, bar: 2, baz: 3}.except(:bar)
#
# source://rubocop//lib/rubocop/cop/style/hash_except.rb#33
class RuboCop::Cop::Style::HashExcept < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::TargetRubyVersion
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/hash_except.rb#60
def bad_method_with_active_support?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/hash_except.rb#44
def bad_method_with_poro?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/hash_except.rb#75
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/hash_except.rb#75
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_except.rb#95
def bad_method?(method_name, block); end
# source://rubocop//lib/rubocop/cop/style/hash_except.rb#169
def decorate_source(value); end
# source://rubocop//lib/rubocop/cop/style/hash_except.rb#177
def except_key(node); end
# source://rubocop//lib/rubocop/cop/style/hash_except.rb#156
def except_key_source(key); end
# source://rubocop//lib/rubocop/cop/style/hash_except.rb#150
def extract_body_if_negated(body); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_except.rb#131
def included?(negated, body); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_except.rb#135
def not_included?(negated, body); end
# source://rubocop//lib/rubocop/cop/style/hash_except.rb#186
def offense_range(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_except.rb#139
def safe_to_register_offense?(block, except_key); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_except.rb#115
def semantically_except_method?(send, block); end
end
# source://rubocop//lib/rubocop/cop/style/hash_except.rb#40
RuboCop::Cop::Style::HashExcept::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/hash_except.rb#41
RuboCop::Cop::Style::HashExcept::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for places where `case-when` represents a simple 1:1
# mapping and can be replaced with a hash lookup.
#
# @example MinBranchesCount: 3 (default)
# # bad
# case country
# when 'europe'
# 'http://eu.example.com'
# when 'america'
# 'http://us.example.com'
# when 'australia'
# 'http://au.example.com'
# end
#
# # good
# SITES = {
# 'europe' => 'http://eu.example.com',
# 'america' => 'http://us.example.com',
# 'australia' => 'http://au.example.com'
# }
# SITES[country]
# @example MinBranchesCount: 4
# # good
# case country
# when 'europe'
# 'http://eu.example.com'
# when 'america'
# 'http://us.example.com'
# when 'australia'
# 'http://au.example.com'
# end
#
# source://rubocop//lib/rubocop/cop/style/hash_like_case.rb#39
class RuboCop::Cop::Style::HashLikeCase < ::RuboCop::Cop::Base
include ::RuboCop::Cop::MinBranchesCount
# source://rubocop//lib/rubocop/cop/style/hash_like_case.rb#45
def hash_like_case?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/hash_like_case.rb#53
def on_case(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_like_case.rb#65
def nodes_of_same_type?(nodes); end
end
# source://rubocop//lib/rubocop/cop/style/hash_like_case.rb#42
RuboCop::Cop::Style::HashLikeCase::MSG = T.let(T.unsafe(nil), String)
# Checks hash literal syntax.
#
# It can enforce either the use of the class hash rocket syntax or
# the use of the newer Ruby 1.9 syntax (when applicable).
#
# A separate offense is registered for each problematic pair.
#
# The supported styles are:
#
# * ruby19 - forces use of the 1.9 syntax (e.g. `{a: 1}`) when hashes have
# all symbols for keys
# * hash_rockets - forces use of hash rockets for all hashes
# * no_mixed_keys - simply checks for hashes with mixed syntaxes
# * ruby19_no_mixed_keys - forces use of ruby 1.9 syntax and forbids mixed
# syntax hashes
#
# This cop has `EnforcedShorthandSyntax` option.
# It can enforce either the use of the explicit hash value syntax or
# the use of Ruby 3.1's hash value shorthand syntax.
#
# The supported styles are:
#
# * always - forces use of the 3.1 syntax (e.g. {foo:})
# * never - forces use of explicit hash literal value
# * either - accepts both shorthand and explicit use of hash literal value
# * consistent - forces use of the 3.1 syntax only if all values can be omitted in the hash
# * either_consistent - accepts both shorthand and explicit use of hash literal value,
# but they must be consistent
#
# @example EnforcedStyle: ruby19 (default)
# # bad
# {:a => 2}
# {b: 1, :c => 2}
#
# # good
# {a: 2, b: 1}
# {:c => 2, 'd' => 2} # acceptable since 'd' isn't a symbol
# {d: 1, 'e' => 2} # technically not forbidden
# @example EnforcedStyle: hash_rockets
# # bad
# {a: 1, b: 2}
# {c: 1, 'd' => 5}
#
# # good
# {:a => 1, :b => 2}
# @example EnforcedStyle: no_mixed_keys
# # bad
# {:a => 1, b: 2}
# {c: 1, 'd' => 2}
#
# # good
# {:a => 1, :b => 2}
# {c: 1, d: 2}
# @example EnforcedStyle: ruby19_no_mixed_keys
# # bad
# {:a => 1, :b => 2}
# {c: 2, 'd' => 3} # should just use hash rockets
#
# # good
# {a: 1, b: 2}
# {:c => 3, 'd' => 4}
# @example EnforcedShorthandSyntax: always
#
# # bad
# {foo: foo, bar: bar}
#
# # good
# {foo:, bar:}
# @example EnforcedShorthandSyntax: never
#
# # bad
# {foo:, bar:}
#
# # good
# {foo: foo, bar: bar}
# @example EnforcedShorthandSyntax: either (default)
#
# # good
# {foo: foo, bar: bar}
#
# # good
# {foo: foo, bar:}
#
# # good
# {foo:, bar:}
# @example EnforcedShorthandSyntax: consistent
#
# # bad - `foo` and `bar` values can be omitted
# {foo: foo, bar: bar}
#
# # bad - `bar` value can be omitted
# {foo:, bar: bar}
#
# # bad - mixed syntaxes
# {foo:, bar: baz}
#
# # good
# {foo:, bar:}
#
# # good - can't omit `baz`
# {foo: foo, bar: baz}
# @example EnforcedShorthandSyntax: either_consistent
#
# # good - `foo` and `bar` values can be omitted, but they are consistent, so it's accepted
# {foo: foo, bar: bar}
#
# # bad - `bar` value can be omitted
# {foo:, bar: bar}
#
# # bad - mixed syntaxes
# {foo:, bar: baz}
#
# # good
# {foo:, bar:}
#
# # good - can't omit `baz`
# {foo: foo, bar: baz}
#
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#131
class RuboCop::Cop::Style::HashSyntax < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::HashShorthandSyntax
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#185
def alternative_style; end
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#163
def hash_rockets_check(pairs); end
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#177
def no_mixed_keys_check(pairs); end
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#141
def on_hash(node); end
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#159
def ruby19_check(pairs); end
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#167
def ruby19_no_mixed_keys_check(pairs); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#217
def acceptable_19_syntax_symbol?(sym_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#274
def argument_without_space?(node); end
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#196
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#278
def autocorrect_hash_rockets(corrector, pair_node); end
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#287
def autocorrect_no_mixed_keys(corrector, pair_node); end
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#253
def autocorrect_ruby19(corrector, pair_node); end
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#238
def check(pairs, delim, msg); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#295
def force_hash_rockets?(pairs); end
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#266
def range_for_autocorrect_ruby19(pair_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#206
def sym_indices?(pairs); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#210
def word_symbol_pair?(pair); end
end
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#137
RuboCop::Cop::Style::HashSyntax::MSG_19 = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#139
RuboCop::Cop::Style::HashSyntax::MSG_HASH_ROCKETS = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/hash_syntax.rb#138
RuboCop::Cop::Style::HashSyntax::MSG_NO_MIXED_KEYS = T.let(T.unsafe(nil), String)
# Looks for uses of `\_.each_with_object({}) {...}`,
# `\_.map {...}.to_h`, and `Hash[\_.map {...}]` that are actually just
# transforming the keys of a hash, and tries to use a simpler & faster
# call to `transform_keys` instead.
# It should only be enabled on Ruby version 2.5 or newer.
# (`transform_keys` was added in Ruby 2.5.)
#
# @example
# # bad
# {a: 1, b: 2}.each_with_object({}) { |(k, v), h| h[foo(k)] = v }
# Hash[{a: 1, b: 2}.collect { |k, v| [foo(k), v] }]
# {a: 1, b: 2}.map { |k, v| [k.to_s, v] }.to_h
# {a: 1, b: 2}.to_h { |k, v| [k.to_s, v] }
#
# # good
# {a: 1, b: 2}.transform_keys { |k| foo(k) }
# {a: 1, b: 2}.transform_keys { |k| k.to_s }
#
# source://rubocop//lib/rubocop/cop/style/hash_transform_keys.rb#28
class RuboCop::Cop::Style::HashTransformKeys < ::RuboCop::Cop::Base
include ::RuboCop::Cop::HashTransformMethod
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/hash_transform_keys.rb#36
def on_bad_each_with_object(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/hash_transform_keys.rb#48
def on_bad_hash_brackets_map(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/hash_transform_keys.rb#61
def on_bad_map_to_h(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/hash_transform_keys.rb#73
def on_bad_to_h(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/hash_transform_keys.rb#84
def extract_captures(match); end
# source://rubocop//lib/rubocop/cop/style/hash_transform_keys.rb#89
def new_method_name; end
end
# Looks for uses of `\_.each_with_object({}) {...}`,
# `\_.map {...}.to_h`, and `Hash[\_.map {...}]` that are actually just
# transforming the values of a hash, and tries to use a simpler & faster
# call to `transform_values` instead.
#
# @example
# # bad
# {a: 1, b: 2}.each_with_object({}) { |(k, v), h| h[k] = foo(v) }
# Hash[{a: 1, b: 2}.collect { |k, v| [k, foo(v)] }]
# {a: 1, b: 2}.map { |k, v| [k, v * v] }.to_h
# {a: 1, b: 2}.to_h { |k, v| [k, v * v] }
#
# # good
# {a: 1, b: 2}.transform_values { |v| foo(v) }
# {a: 1, b: 2}.transform_values { |v| v * v }
#
# source://rubocop//lib/rubocop/cop/style/hash_transform_values.rb#26
class RuboCop::Cop::Style::HashTransformValues < ::RuboCop::Cop::Base
include ::RuboCop::Cop::HashTransformMethod
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/hash_transform_values.rb#34
def on_bad_each_with_object(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/hash_transform_values.rb#46
def on_bad_hash_brackets_map(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/hash_transform_values.rb#59
def on_bad_map_to_h(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/hash_transform_values.rb#71
def on_bad_to_h(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/hash_transform_values.rb#82
def extract_captures(match); end
# source://rubocop//lib/rubocop/cop/style/hash_transform_values.rb#87
def new_method_name; end
end
# Checks for identical expressions at the beginning or end of
# each branch of a conditional expression. Such expressions should normally
# be placed outside the conditional expression - before or after it.
#
# NOTE: The cop is poorly named and some people might think that it actually
# checks for duplicated conditional branches. The name will probably be changed
# in a future major RuboCop release.
#
# @example
# # bad
# if condition
# do_x
# do_z
# else
# do_y
# do_z
# end
#
# # good
# if condition
# do_x
# else
# do_y
# end
# do_z
#
# # bad
# if condition
# do_z
# do_x
# else
# do_z
# do_y
# end
#
# # good
# do_z
# if condition
# do_x
# else
# do_y
# end
#
# # bad
# case foo
# when 1
# do_x
# when 2
# do_x
# else
# do_x
# end
#
# # good
# case foo
# when 1
# do_x
# do_y
# when 2
# # nothing
# else
# do_x
# do_z
# end
#
# # bad
# case foo
# in 1
# do_x
# in 2
# do_x
# else
# do_x
# end
#
# # good
# case foo
# in 1
# do_x
# do_y
# in 2
# # nothing
# else
# do_x
# do_z
# end
#
# source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#110
class RuboCop::Cop::Style::IdenticalConditionalBranches < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#123
def on_case(node); end
# source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#130
def on_case_match(node); end
# source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#116
def on_if(node); end
private
# source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#184
def assignable_condition_value(node); end
# source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#140
def check_branches(node, branches); end
# source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#193
def check_expressions(node, expressions, insert_position); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#173
def duplicated_expressions?(node, expressions); end
# `elsif` branches show up in the if node as nested `else` branches. We
# need to recursively iterate over all `else` branches.
#
# source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#233
def expand_elses(branch); end
# source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#248
def head(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#217
def last_child_of_parent?(node); end
# source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#227
def message(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#223
def single_child_branch?(branch_node); end
# source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#244
def tail(node); end
end
# source://rubocop//lib/rubocop/cop/style/identical_conditional_branches.rb#114
RuboCop::Cop::Style::IdenticalConditionalBranches::MSG = T.let(T.unsafe(nil), String)
# Corrector to correct conditional assignment in `if` statements.
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#559
class RuboCop::Cop::Style::IfCorrector
extend ::RuboCop::Cop::Style::ConditionalAssignmentHelper
extend ::RuboCop::Cop::Style::ConditionalCorrectorHelper
class << self
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#564
def correct(corrector, cop, node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#568
def move_assignment_inside_condition(corrector, node); end
private
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#582
def extract_tail_branches(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#589
def move_branch_inside_condition(corrector, branch, condition, assignment, column); end
end
end
# If the `else` branch of a conditional consists solely of an `if` node,
# it can be combined with the `else` to become an `elsif`.
# This helps to keep the nesting level from getting too deep.
#
# @example
# # bad
# if condition_a
# action_a
# else
# if condition_b
# action_b
# else
# action_c
# end
# end
#
# # good
# if condition_a
# action_a
# elsif condition_b
# action_b
# else
# action_c
# end
# @example AllowIfModifier: false (default)
# # bad
# if condition_a
# action_a
# else
# action_b if condition_b
# end
#
# # good
# if condition_a
# action_a
# elsif condition_b
# action_b
# end
# @example AllowIfModifier: true
# # good
# if condition_a
# action_a
# else
# action_b if condition_b
# end
#
# # good
# if condition_a
# action_a
# elsif condition_b
# action_b
# end
#
# source://rubocop//lib/rubocop/cop/style/if_inside_else.rb#61
class RuboCop::Cop::Style::IfInsideElse < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/if_inside_else.rb#69
def on_if(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_inside_else.rb#150
def allow_if_modifier?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_inside_else.rb#146
def allow_if_modifier_in_else_branch?(else_branch); end
# source://rubocop//lib/rubocop/cop/style/if_inside_else.rb#88
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/if_inside_else.rb#117
def correct_to_elsif_from_if_inside_else_form(corrector, node, condition); end
# source://rubocop//lib/rubocop/cop/style/if_inside_else.rb#109
def correct_to_elsif_from_modifier_form(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/if_inside_else.rb#135
def find_end_range(node); end
# source://rubocop//lib/rubocop/cop/style/if_inside_else.rb#142
def if_condition_range(node, condition); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_inside_else.rb#131
def then?(node); end
end
# source://rubocop//lib/rubocop/cop/style/if_inside_else.rb#66
RuboCop::Cop::Style::IfInsideElse::MSG = T.let(T.unsafe(nil), String)
# Checks for `if` and `unless` statements that would fit on one line if
# written as modifier `if`/`unless`. The cop also checks for modifier
# `if`/`unless` lines that exceed the maximum line length.
#
# The maximum line length is configured in the `Layout/LineLength`
# cop. The tab size is configured in the `IndentationWidth` of the
# `Layout/IndentationStyle` cop.
#
# One-line pattern matching is always allowed. To ensure that there are few cases
# where the match variable is not used, and to prevent oversights. The variable `x`
# becomes undefined and raises `NameError` when the following example is changed to
# the modifier form:
#
# [source,ruby]
# ----
# if [42] in [x]
# x # `x` is undefined when using modifier form.
# end
# ----
#
# NOTE: It is allowed when `defined?` argument has an undefined value,
# because using the modifier form causes the following incompatibility:
#
# [source,ruby]
# ----
# unless defined?(undefined_foo)
# undefined_foo = 'default_value'
# end
# undefined_foo # => 'default_value'
#
# undefined_bar = 'default_value' unless defined?(undefined_bar)
# undefined_bar # => nil
# ----
#
# @example
# # bad
# if condition
# do_stuff(bar)
# end
#
# unless qux.empty?
# Foo.do_something
# end
#
# do_something_with_a_long_name(arg) if long_condition_that_prevents_code_fit_on_single_line
#
# # good
# do_stuff(bar) if condition
# Foo.do_something unless qux.empty?
#
# if long_condition_that_prevents_code_fit_on_single_line
# do_something_with_a_long_name(arg)
# end
#
# if short_condition # a long comment that makes it too long if it were just a single line
# do_something
# end
#
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#63
class RuboCop::Cop::Style::IfUnlessModifier < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::LineLengthHelp
include ::RuboCop::Cop::StatementModifier
include ::RuboCop::Cop::AllowedPattern
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::CommentsHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#80
def on_if(node); end
private
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#171
def allowed_patterns; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#231
def another_statement_on_same_line?(node); end
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#132
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#285
def comment_on_node_line(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#104
def defined_argument_is_undefined?(if_node, defined_node); end
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#96
def defined_nodes(condition); end
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#272
def extract_heredoc_from(last_argument); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#215
def line_length_enabled_at_line?(line); end
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#124
def message(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#219
def named_capture_in_condition?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#223
def non_eligible_node?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#227
def non_simple_if_unless?(node); end
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#114
def pattern_matching_nodes(condition); end
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#289
def remove_comment(corrector, _node, comment); end
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#279
def remove_heredoc(corrector, heredoc); end
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#141
def replacement_for_modifier_form(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#265
def to_modifier_form_with_move_comment(node, indentation, comment); end
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#245
def to_normal_form(node, indentation); end
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#253
def to_normal_form_with_heredoc(node, indentation, heredoc); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#165
def too_long_due_to_comment_after_modifier?(node, comment); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#160
def too_long_due_to_modifier?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#206
def too_long_line_based_on_allow_uri?(line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#189
def too_long_line_based_on_config?(range, line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#198
def too_long_line_based_on_ignore_cop_directives?(range, line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#176
def too_long_single_line?(node); end
class << self
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#76
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#71
RuboCop::Cop::Style::IfUnlessModifier::MSG_USE_MODIFIER = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier.rb#74
RuboCop::Cop::Style::IfUnlessModifier::MSG_USE_NORMAL = T.let(T.unsafe(nil), String)
# Checks for if and unless statements used as modifiers of other if or
# unless statements.
#
# @example
#
# # bad
# tired? ? 'stop' : 'go faster' if running?
#
# # bad
# if tired?
# "please stop"
# else
# "keep going"
# end if running?
#
# # good
# if running?
# tired? ? 'stop' : 'go faster'
# end
#
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb#25
class RuboCop::Cop::Style::IfUnlessModifierOfIfUnless < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::LineLengthHelp
include ::RuboCop::Cop::StatementModifier
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb#31
def on_if(node); end
end
# source://rubocop//lib/rubocop/cop/style/if_unless_modifier_of_if_unless.rb#29
RuboCop::Cop::Style::IfUnlessModifierOfIfUnless::MSG = T.let(T.unsafe(nil), String)
# Checks for redundant `if` with boolean literal branches.
# It checks only conditions to return boolean value (`true` or `false`) for safe detection.
# The conditions to be checked are comparison methods, predicate methods, and
# double negation (!!).
# `nonzero?` method is allowed by default.
# These are customizable with `AllowedMethods` option.
#
# This cop targets only `if`s with a single `elsif` or `else` branch. The following
# code will be allowed, because it has two `elsif` branches:
#
# [source,ruby]
# ----
# if foo
# true
# elsif bar > baz
# true
# elsif qux > quux # Single `elsif` is warned, but two or more `elsif`s are not.
# true
# else
# false
# end
# ----
#
# @example
# # bad
# if foo == bar
# true
# else
# false
# end
#
# # bad
# foo == bar ? true : false
#
# # good
# foo == bar
#
# # bad
# if foo.do_something?
# true
# else
# false
# end
#
# # good (but potentially an unsafe correction)
# foo.do_something?
# @example AllowedMethods: ['nonzero?'] (default)
# # good
# num.nonzero? ? true : false
#
# source://rubocop//lib/rubocop/cop/style/if_with_boolean_literal_branches.rb#61
class RuboCop::Cop::Style::IfWithBooleanLiteralBranches < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedMethods
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/if_with_boolean_literal_branches.rb#73
def double_negative?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/if_with_boolean_literal_branches.rb#69
def if_with_boolean_literal_branches?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/if_with_boolean_literal_branches.rb#75
def on_if(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_with_boolean_literal_branches.rb#135
def assume_boolean_value?(condition); end
# source://rubocop//lib/rubocop/cop/style/if_with_boolean_literal_branches.rb#113
def message(node, keyword); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_with_boolean_literal_branches.rb#95
def multiple_elsif?(node); end
# source://rubocop//lib/rubocop/cop/style/if_with_boolean_literal_branches.rb#101
def offense_range_with_keyword(node, condition); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_with_boolean_literal_branches.rb#152
def opposite_condition?(node); end
# source://rubocop//lib/rubocop/cop/style/if_with_boolean_literal_branches.rb#142
def replacement_condition(node, condition); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_with_boolean_literal_branches.rb#157
def require_parentheses?(condition); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_with_boolean_literal_branches.rb#121
def return_boolean_value?(condition); end
end
# source://rubocop//lib/rubocop/cop/style/if_with_boolean_literal_branches.rb#65
RuboCop::Cop::Style::IfWithBooleanLiteralBranches::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/if_with_boolean_literal_branches.rb#66
RuboCop::Cop::Style::IfWithBooleanLiteralBranches::MSG_FOR_ELSIF = T.let(T.unsafe(nil), String)
# Checks for uses of semicolon in if statements.
#
# @example
#
# # bad
# result = if some_condition; something else another_thing end
#
# # good
# result = some_condition ? something : another_thing
#
# source://rubocop//lib/rubocop/cop/style/if_with_semicolon.rb#16
class RuboCop::Cop::Style::IfWithSemicolon < ::RuboCop::Cop::Base
include ::RuboCop::Cop::OnNormalIfUnless
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/if_with_semicolon.rb#24
def on_normal_if_unless(node); end
private
# source://rubocop//lib/rubocop/cop/style/if_with_semicolon.rb#54
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/if_with_semicolon.rb#93
def build_else_branch(second_condition); end
# source://rubocop//lib/rubocop/cop/style/if_with_semicolon.rb#84
def build_expression(expr); end
# source://rubocop//lib/rubocop/cop/style/if_with_semicolon.rb#75
def correct_elsif(node); end
# source://rubocop//lib/rubocop/cop/style/if_with_semicolon.rb#40
def message(node); end
# source://rubocop//lib/rubocop/cop/style/if_with_semicolon.rb#66
def replacement(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_with_semicolon.rb#113
def require_argument_parentheses?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/if_with_semicolon.rb#62
def use_block_in_branches?(node); end
end
# source://rubocop//lib/rubocop/cop/style/if_with_semicolon.rb#20
RuboCop::Cop::Style::IfWithSemicolon::MSG_IF_ELSE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/if_with_semicolon.rb#21
RuboCop::Cop::Style::IfWithSemicolon::MSG_NEWLINE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/if_with_semicolon.rb#22
RuboCop::Cop::Style::IfWithSemicolon::MSG_TERNARY = T.let(T.unsafe(nil), String)
# Checks for `raise` or `fail` statements which do not specify an
# explicit exception class. (This raises a `RuntimeError`. Some projects
# might prefer to use exception classes which more precisely identify the
# nature of the error.)
#
# @example
# # bad
# raise 'Error message here'
#
# # good
# raise ArgumentError, 'Error message here'
#
# source://rubocop//lib/rubocop/cop/style/implicit_runtime_error.rb#17
class RuboCop::Cop::Style::ImplicitRuntimeError < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/style/implicit_runtime_error.rb#23
def implicit_runtime_error_raise_or_fail(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/implicit_runtime_error.rb#26
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/style/implicit_runtime_error.rb#18
RuboCop::Cop::Style::ImplicitRuntimeError::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/implicit_runtime_error.rb#20
RuboCop::Cop::Style::ImplicitRuntimeError::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for `in;` uses in `case` expressions.
#
# @example
# # bad
# case expression
# in pattern_a; foo
# in pattern_b; bar
# end
#
# # good
# case expression
# in pattern_a then foo
# in pattern_b then bar
# end
#
# source://rubocop//lib/rubocop/cop/style/in_pattern_then.rb#21
class RuboCop::Cop::Style::InPatternThen < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/in_pattern_then.rb#29
def on_in_pattern(node); end
private
# source://rubocop//lib/rubocop/cop/style/in_pattern_then.rb#46
def alternative_pattern_source(pattern); end
# source://rubocop//lib/rubocop/cop/style/in_pattern_then.rb#50
def collect_alternative_patterns(pattern); end
end
# source://rubocop//lib/rubocop/cop/style/in_pattern_then.rb#27
RuboCop::Cop::Style::InPatternThen::MSG = T.let(T.unsafe(nil), String)
# Use `Kernel#loop` for infinite loops.
#
# @example
# # bad
# while true
# work
# end
#
# # good
# loop do
# work
# end
#
# source://rubocop//lib/rubocop/cop/style/infinite_loop.rb#23
class RuboCop::Cop::Style::InfiniteLoop < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/infinite_loop.rb#35
def after_leaving_scope(scope, _variable_table); end
# source://rubocop//lib/rubocop/cop/style/infinite_loop.rb#44
def on_until(node); end
# source://rubocop//lib/rubocop/cop/style/infinite_loop.rb#44
def on_until_post(node); end
# source://rubocop//lib/rubocop/cop/style/infinite_loop.rb#40
def on_while(node); end
# source://rubocop//lib/rubocop/cop/style/infinite_loop.rb#40
def on_while_post(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/infinite_loop.rb#84
def assigned_before_loop?(var, range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/infinite_loop.rb#80
def assigned_inside_loop?(var, range); end
# source://rubocop//lib/rubocop/cop/style/infinite_loop.rb#70
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/infinite_loop.rb#103
def modifier_replacement(node); end
# source://rubocop//lib/rubocop/cop/style/infinite_loop.rb#114
def non_modifier_range(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/infinite_loop.rb#89
def referenced_after_loop?(var, range); end
# source://rubocop//lib/rubocop/cop/style/infinite_loop.rb#94
def replace_begin_end_with_modifier(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/infinite_loop.rb#99
def replace_source(corrector, range, replacement); end
# source://rubocop//lib/rubocop/cop/style/infinite_loop.rb#53
def while_or_until(node); end
class << self
# source://rubocop//lib/rubocop/cop/style/infinite_loop.rb#31
def joining_forces; end
end
end
# source://rubocop//lib/rubocop/cop/style/infinite_loop.rb#27
RuboCop::Cop::Style::InfiniteLoop::LEADING_SPACE = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/style/infinite_loop.rb#29
RuboCop::Cop::Style::InfiniteLoop::MSG = T.let(T.unsafe(nil), String)
# Checks for trailing inline comments.
#
# @example
#
# # good
# foo.each do |f|
# # Standalone comment
# f.bar
# end
#
# # bad
# foo.each do |f|
# f.bar # Trailing inline comment
# end
#
# source://rubocop//lib/rubocop/cop/style/inline_comment.rb#20
class RuboCop::Cop::Style::InlineComment < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/style/inline_comment.rb#23
def on_new_investigation; end
end
# source://rubocop//lib/rubocop/cop/style/inline_comment.rb#21
RuboCop::Cop::Style::InlineComment::MSG = T.let(T.unsafe(nil), String)
# Check for usages of not (`not` or `!`) called on a method
# when an inverse of that method can be used instead.
#
# Methods that can be inverted by a not (`not` or `!`) should be defined
# in `InverseMethods`.
#
# Methods that are inverted by inverting the return
# of the block that is passed to the method should be defined in
# `InverseBlocks`.
#
# @example
# # bad
# !foo.none?
# !foo.any? { |f| f.even? }
# !foo.blank?
# !(foo == bar)
# foo.select { |f| !f.even? }
# foo.reject { |f| f != 7 }
#
# # good
# foo.none?
# foo.blank?
# foo.any? { |f| f.even? }
# foo != bar
# foo == bar
# !!('foo' =~ /^\w+$/)
# !(foo.class < Numeric) # Checking class hierarchy is allowed
# # Blocks with guard clauses are ignored:
# foo.select do |f|
# next if f.zero?
# f != 1
# end
#
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#43
class RuboCop::Cop::Style::InverseMethods < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#70
def inverse_block?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#61
def inverse_candidate?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#92
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#78
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#92
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#78
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#177
def camel_case_constant?(node); end
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#121
def correct_inverse_block(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#112
def correct_inverse_method(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#128
def correct_inverse_selector(block, corrector); end
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#181
def dot_range(loc); end
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#166
def end_parentheses(node, method_call); end
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#150
def inverse_blocks; end
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#145
def inverse_methods; end
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#191
def message(method, inverse); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#154
def negated?(node); end
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#162
def not_to_receiver(node, method_call); end
# When comparing classes, `!(Integer < Numeric)` is not the same as
# `Integer > Numeric`.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#172
def possible_class_hierarchy_check?(lhs, rhs, method); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#158
def relational_comparison_with_safe_navigation?(node); end
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#185
def remove_end_parenthesis(corrector, node, method, method_call); end
class << self
# source://rubocop-rails/2.27.0/lib/rubocop-rails.rb#22
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#52
RuboCop::Cop::Style::InverseMethods::CAMEL_CASE = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#49
RuboCop::Cop::Style::InverseMethods::CLASS_COMPARISON_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#50
RuboCop::Cop::Style::InverseMethods::EQUALITY_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#48
RuboCop::Cop::Style::InverseMethods::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#51
RuboCop::Cop::Style::InverseMethods::NEGATED_EQUALITY_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/inverse_methods.rb#54
RuboCop::Cop::Style::InverseMethods::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for usages of `unless` which can be replaced by `if` with inverted condition.
# Code without `unless` is easier to read, but that is subjective, so this cop
# is disabled by default.
#
# Methods that can be inverted should be defined in `InverseMethods`. Note that
# the relationship of inverse methods needs to be defined in both directions.
# For example,
#
# [source,yaml]
# ----
# InverseMethods:
# :!=: :==
# :even?: :odd?
# :odd?: :even?
# ----
#
# will suggest both `even?` and `odd?` to be inverted, but only `!=` (and not `==`).
#
# @example
# # bad (simple condition)
# foo unless !bar
# foo unless x != y
# foo unless x >= 10
# foo unless x.even?
# foo unless odd?
#
# # good
# foo if bar
# foo if x == y
# foo if x < 10
# foo if x.odd?
# foo if even?
#
# # bad (complex condition)
# foo unless x != y || x.even?
#
# # good
# foo if x == y && x.odd?
#
# # good (if)
# foo if !condition
#
# source://rubocop//lib/rubocop/cop/style/invertible_unless_condition.rb#53
class RuboCop::Cop::Style::InvertibleUnlessCondition < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/invertible_unless_condition.rb#58
def on_if(node); end
private
# source://rubocop//lib/rubocop/cop/style/invertible_unless_condition.rb#133
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/invertible_unless_condition.rb#146
def autocorrect_send_node(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/invertible_unless_condition.rb#90
def inheritance_check?(node); end
# source://rubocop//lib/rubocop/cop/style/invertible_unless_condition.rb#154
def inverse_methods; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/invertible_unless_condition.rb#75
def invertible?(node); end
# source://rubocop//lib/rubocop/cop/style/invertible_unless_condition.rb#96
def preferred_condition(node); end
# source://rubocop//lib/rubocop/cop/style/invertible_unless_condition.rb#126
def preferred_logical_condition(node); end
# source://rubocop//lib/rubocop/cop/style/invertible_unless_condition.rb#104
def preferred_send_condition(node); end
end
# source://rubocop//lib/rubocop/cop/style/invertible_unless_condition.rb#56
RuboCop::Cop::Style::InvertibleUnlessCondition::MSG = T.let(T.unsafe(nil), String)
# Checks for hardcoded IP addresses, which can make code
# brittle. IP addresses are likely to need to be changed when code
# is deployed to a different server or environment, which may break
# a deployment if forgotten. Prefer setting IP addresses in ENV or
# other configuration.
#
# @example
#
# # bad
# ip_address = '127.59.241.29'
#
# # good
# ip_address = ENV['DEPLOYMENT_IP_ADDRESS']
#
# source://rubocop//lib/rubocop/cop/style/ip_addresses.rb#21
class RuboCop::Cop::Style::IpAddresses < ::RuboCop::Cop::Base
include ::RuboCop::Cop::StringHelp
# Dummy implementation of method in ConfigurableEnforcedStyle that is
# called from StringHelp.
#
# source://rubocop//lib/rubocop/cop/style/ip_addresses.rb#46
def correct_style_detected; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ip_addresses.rb#27
def offense?(node); end
# Dummy implementation of method in ConfigurableEnforcedStyle that is
# called from StringHelp.
#
# source://rubocop//lib/rubocop/cop/style/ip_addresses.rb#42
def opposite_style_detected; end
private
# source://rubocop//lib/rubocop/cop/style/ip_addresses.rb#50
def allowed_addresses; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ip_addresses.rb#55
def could_be_ip?(str); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ip_addresses.rb#68
def starts_with_hex_or_colon?(str); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ip_addresses.rb#64
def too_long?(str); end
end
# IPv4-mapped IPv6 is the longest
#
# source://rubocop//lib/rubocop/cop/style/ip_addresses.rb#24
RuboCop::Cop::Style::IpAddresses::IPV6_MAX_SIZE = T.let(T.unsafe(nil), Integer)
# source://rubocop//lib/rubocop/cop/style/ip_addresses.rb#25
RuboCop::Cop::Style::IpAddresses::MSG = T.let(T.unsafe(nil), String)
# When passing an existing hash as keyword arguments, provide additional arguments
# directly rather than using `merge`.
#
# Providing arguments directly is more performant, than using `merge`, and
# also leads to a shorter and simpler code.
#
# @example
# # bad
# some_method(**opts.merge(foo: true))
# some_method(**opts.merge(other_opts))
#
# # good
# some_method(**opts, foo: true)
# some_method(**opts, **other_opts)
#
# source://rubocop//lib/rubocop/cop/style/keyword_arguments_merging.rb#21
class RuboCop::Cop::Style::KeywordArgumentsMerging < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/keyword_arguments_merging.rb#27
def merge_kwargs?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/keyword_arguments_merging.rb#36
def on_kwsplat(node); end
private
# source://rubocop//lib/rubocop/cop/style/keyword_arguments_merging.rb#48
def autocorrect(corrector, kwsplat_node, hash_node, other_hash_node); end
end
# source://rubocop//lib/rubocop/cop/style/keyword_arguments_merging.rb#24
RuboCop::Cop::Style::KeywordArgumentsMerging::MSG = T.let(T.unsafe(nil), String)
# Enforces that optional keyword parameters are placed at the
# end of the parameters list.
#
# This improves readability, because when looking through the source,
# it is expected to find required parameters at the beginning of parameters list
# and optional parameters at the end.
#
# @example
# # bad
# def some_method(first: false, second:, third: 10)
# # body omitted
# end
#
# # good
# def some_method(second:, first: false, third: 10)
# # body omitted
# end
#
# # bad
# do_something do |first: false, second:, third: 10|
# # body omitted
# end
#
# # good
# do_something do |second:, first: false, third: 10|
# # body omitted
# end
#
# source://rubocop//lib/rubocop/cop/style/keyword_parameters_order.rb#34
class RuboCop::Cop::Style::KeywordParametersOrder < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/keyword_parameters_order.rb#40
def on_kwoptarg(node); end
private
# source://rubocop//lib/rubocop/cop/style/keyword_parameters_order.rb#58
def append_newline_to_last_kwoptarg(arguments, corrector); end
# source://rubocop//lib/rubocop/cop/style/keyword_parameters_order.rb#66
def remove_kwargs(kwarg_nodes, corrector); end
end
# source://rubocop//lib/rubocop/cop/style/keyword_parameters_order.rb#38
RuboCop::Cop::Style::KeywordParametersOrder::MSG = T.let(T.unsafe(nil), String)
# (by default) checks for uses of the lambda literal syntax for
# single line lambdas, and the method call syntax for multiline lambdas.
# It is configurable to enforce one of the styles for both single line
# and multiline lambdas as well.
#
# @example EnforcedStyle: line_count_dependent (default)
# # bad
# f = lambda { |x| x }
# f = ->(x) do
# x
# end
#
# # good
# f = ->(x) { x }
# f = lambda do |x|
# x
# end
# @example EnforcedStyle: lambda
# # bad
# f = ->(x) { x }
# f = ->(x) do
# x
# end
#
# # good
# f = lambda { |x| x }
# f = lambda do |x|
# x
# end
# @example EnforcedStyle: literal
# # bad
# f = lambda { |x| x }
# f = lambda do |x|
# x
# end
#
# # good
# f = ->(x) { x }
# f = ->(x) do
# x
# end
#
# source://rubocop//lib/rubocop/cop/style/lambda.rb#49
class RuboCop::Cop::Style::Lambda < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/lambda.rb#64
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/lambda.rb#64
def on_numblock(node); end
private
# source://rubocop//lib/rubocop/cop/style/lambda.rb#115
def arguments_with_whitespace(node); end
# source://rubocop//lib/rubocop/cop/style/lambda.rb#104
def autocorrect_method_to_literal(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/lambda.rb#119
def lambda_arg_string(args); end
# source://rubocop//lib/rubocop/cop/style/lambda.rb#89
def message(node, selector); end
# source://rubocop//lib/rubocop/cop/style/lambda.rb#95
def message_line_modifier(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/lambda.rb#83
def offending_selector?(node, selector); end
end
# source://rubocop//lib/rubocop/cop/style/lambda.rb#53
RuboCop::Cop::Style::Lambda::LITERAL_MESSAGE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/lambda.rb#54
RuboCop::Cop::Style::Lambda::METHOD_MESSAGE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/lambda.rb#56
RuboCop::Cop::Style::Lambda::OFFENDING_SELECTORS = T.let(T.unsafe(nil), Hash)
# Checks for use of the lambda.(args) syntax.
#
# @example EnforcedStyle: call (default)
# # bad
# lambda.(x, y)
#
# # good
# lambda.call(x, y)
# @example EnforcedStyle: braces
# # bad
# lambda.call(x, y)
#
# # good
# lambda.(x, y)
#
# source://rubocop//lib/rubocop/cop/style/lambda_call.rb#21
class RuboCop::Cop::Style::LambdaCall < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/lambda_call.rb#29
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/lambda_call.rb#67
def explicit_style?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/lambda_call.rb#63
def implicit_style?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/lambda_call.rb#51
def offense?(node); end
# source://rubocop//lib/rubocop/cop/style/lambda_call.rb#55
def prefer(node); end
end
# source://rubocop//lib/rubocop/cop/style/lambda_call.rb#26
RuboCop::Cop::Style::LambdaCall::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/lambda_call.rb#27
RuboCop::Cop::Style::LambdaCall::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for string literal concatenation at
# the end of a line.
#
# @example
#
# # bad
# some_str = 'ala' +
# 'bala'
#
# some_str = 'ala' <<
# 'bala'
#
# # good
# some_str = 'ala' \
# 'bala'
#
# source://rubocop//lib/rubocop/cop/style/line_end_concatenation.rb#35
class RuboCop::Cop::Style::LineEndConcatenation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/line_end_concatenation.rb#51
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/style/line_end_concatenation.rb#74
def autocorrect(corrector, operator_range); end
# source://rubocop//lib/rubocop/cop/style/line_end_concatenation.rb#57
def check_token_set(index); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/line_end_concatenation.rb#101
def eligible_next_successor?(next_successor); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/line_end_concatenation.rb#97
def eligible_operator?(operator); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/line_end_concatenation.rb#105
def eligible_predecessor?(predecessor); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/line_end_concatenation.rb#93
def eligible_successor?(successor); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/line_end_concatenation.rb#87
def eligible_token_set?(predecessor, operator, successor); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/line_end_concatenation.rb#124
def standard_string_literal?(token); end
# source://rubocop//lib/rubocop/cop/style/line_end_concatenation.rb#109
def token_after_last_string(successor, base_index); end
class << self
# source://rubocop//lib/rubocop/cop/style/line_end_concatenation.rb#47
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/style/line_end_concatenation.rb#42
RuboCop::Cop::Style::LineEndConcatenation::COMPLEX_STRING_BEGIN_TOKEN = T.let(T.unsafe(nil), Symbol)
# source://rubocop//lib/rubocop/cop/style/line_end_concatenation.rb#43
RuboCop::Cop::Style::LineEndConcatenation::COMPLEX_STRING_END_TOKEN = T.let(T.unsafe(nil), Symbol)
# source://rubocop//lib/rubocop/cop/style/line_end_concatenation.rb#40
RuboCop::Cop::Style::LineEndConcatenation::CONCAT_TOKEN_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/line_end_concatenation.rb#44
RuboCop::Cop::Style::LineEndConcatenation::HIGH_PRECEDENCE_OP_TOKEN_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/line_end_concatenation.rb#39
RuboCop::Cop::Style::LineEndConcatenation::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/line_end_concatenation.rb#45
RuboCop::Cop::Style::LineEndConcatenation::QUOTE_DELIMITERS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/line_end_concatenation.rb#41
RuboCop::Cop::Style::LineEndConcatenation::SIMPLE_STRING_TOKEN_TYPE = T.let(T.unsafe(nil), Symbol)
# Ensures magic comments are written consistently throughout your code base.
# Looks for discrepancies in separators (`-` vs `_`) and capitalization for
# both magic comment directives and values.
#
# Required capitalization can be set with the `DirectiveCapitalization` and
# `ValueCapitalization` configuration keys.
#
# NOTE: If one of these configuration is set to nil, any capitalization is allowed.
#
# @example EnforcedStyle: snake_case (default)
# # The `snake_case` style will enforce that the frozen string literal
# # comment is written in snake case. (Words separated by underscores)
# # bad
# # frozen-string-literal: true
#
# module Bar
# # ...
# end
#
# # good
# # frozen_string_literal: false
#
# module Bar
# # ...
# end
# @example EnforcedStyle: kebab_case
# # The `kebab_case` style will enforce that the frozen string literal
# # comment is written in kebab case. (Words separated by hyphens)
# # bad
# # frozen_string_literal: true
#
# module Baz
# # ...
# end
#
# # good
# # frozen-string-literal: true
#
# module Baz
# # ...
# end
# @example DirectiveCapitalization: lowercase (default)
# # bad
# # FROZEN-STRING-LITERAL: true
#
# # good
# # frozen-string-literal: true
# @example DirectiveCapitalization: uppercase
# # bad
# # frozen-string-literal: true
#
# # good
# # FROZEN-STRING-LITERAL: true
# @example DirectiveCapitalization: nil
# # any capitalization is accepted
#
# # good
# # frozen-string-literal: true
#
# # good
# # FROZEN-STRING-LITERAL: true
# @example ValueCapitalization: nil (default)
# # any capitalization is accepted
#
# # good
# # frozen-string-literal: true
#
# # good
# # frozen-string-literal: TRUE
# @example ValueCapitalization: lowercase
# # when a value is not given, any capitalization is accepted
#
# # bad
# # frozen-string-literal: TRUE
#
# # good
# # frozen-string-literal: TRUE
# @example ValueCapitalization: uppercase
# # bad
# # frozen-string-literal: true
#
# # good
# # frozen-string-literal: TRUE
#
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#97
class RuboCop::Cop::Style::MagicCommentFormat < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#156
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#241
def correct_separator; end
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#279
def directive_capitalization; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#197
def directive_offends?(directive); end
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#233
def expected_style; end
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#183
def find_issues(comment); end
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#207
def fix_directives(issues); end
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#221
def fix_values(issues); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#245
def incorrect_separator?(text); end
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#173
def leading_comment_lines; end
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#275
def line_range(line); end
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#167
def magic_comments; end
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#202
def register_offenses(issues); end
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#264
def replace_capitalization(text, style); end
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#260
def replace_separator(text); end
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#301
def supported_capitalizations; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#295
def valid_capitalization?(style); end
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#287
def value_capitalization; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#249
def wrong_capitalization?(text, expected_case); end
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#237
def wrong_separator; end
end
# Value object to extract source ranges for the different parts of a magic comment
#
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#107
class RuboCop::Cop::Style::MagicCommentFormat::CommentRange
extend ::RuboCop::SimpleForwardable
# @return [CommentRange] a new instance of CommentRange
#
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#119
def initialize(comment); end
# Returns the value of attribute comment.
#
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#117
def comment; end
# A magic comment can contain one directive (normal style) or
# multiple directives (emacs style)
#
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#125
def directives; end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def loc(*_arg0, **_arg1, &_arg2); end
# source://rubocop-ast/1.33.1/lib/rubocop/ast/utilities/simple_forwardable.rb#9
def text(*_arg0, **_arg1, &_arg2); end
# A magic comment can contain one value (normal style) or
# multiple directives (emacs style)
#
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#141
def values; end
end
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#110
RuboCop::Cop::Style::MagicCommentFormat::CommentRange::DIRECTIVE_REGEXP = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#114
RuboCop::Cop::Style::MagicCommentFormat::CommentRange::VALUE_REGEXP = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#102
RuboCop::Cop::Style::MagicCommentFormat::KEBAB_SEPARATOR = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#103
RuboCop::Cop::Style::MagicCommentFormat::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#104
RuboCop::Cop::Style::MagicCommentFormat::MSG_VALUE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/magic_comment_format.rb#101
RuboCop::Cop::Style::MagicCommentFormat::SNAKE_SEPARATOR = T.let(T.unsafe(nil), String)
# Prefer `select` or `reject` over `map { ... }.compact`.
# This cop also handles `filter_map { ... }`, similar to `map { ... }.compact`.
#
# @example
#
# # bad
# array.map { |e| some_condition? ? e : next }.compact
#
# # bad
# array.filter_map { |e| some_condition? ? e : next }
#
# # bad
# array.map do |e|
# if some_condition?
# e
# else
# next
# end
# end.compact
#
# # bad
# array.map do |e|
# next if some_condition?
#
# e
# end.compact
#
# # bad
# array.map do |e|
# e if some_condition?
# end.compact
#
# # good
# array.select { |e| some_condition? }
#
# # good
# array.reject { |e| some_condition? }
#
# source://rubocop//lib/rubocop/cop/style/map_compact_with_conditional_block.rb#44
class RuboCop::Cop::Style::MapCompactWithConditionalBlock < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/map_compact_with_conditional_block.rb#51
def conditional_block(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/map_compact_with_conditional_block.rb#76
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/map_compact_with_conditional_block.rb#76
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/map_compact_with_conditional_block.rb#148
def current(node); end
# source://rubocop//lib/rubocop/cop/style/map_compact_with_conditional_block.rb#162
def filter_map_range(node); end
# source://rubocop//lib/rubocop/cop/style/map_compact_with_conditional_block.rb#96
def inspect(node, block_argument_node, condition_node, return_value_node, range); end
# source://rubocop//lib/rubocop/cop/style/map_compact_with_conditional_block.rb#158
def map_with_compact_range(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/map_compact_with_conditional_block.rb#114
def returns_block_argument?(block_argument_node, return_value_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/map_compact_with_conditional_block.rb#118
def truthy_branch?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/map_compact_with_conditional_block.rb#138
def truthy_branch_for_guard?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/map_compact_with_conditional_block.rb#128
def truthy_branch_for_if?(node); end
end
# source://rubocop//lib/rubocop/cop/style/map_compact_with_conditional_block.rb#47
RuboCop::Cop::Style::MapCompactWithConditionalBlock::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/map_compact_with_conditional_block.rb#48
RuboCop::Cop::Style::MapCompactWithConditionalBlock::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for usages of `each` with `<<`, `push`, or `append` which
# can be replaced by `map`.
#
# If `PreferredMethods` is configured for `map` in `Style/CollectionMethods`,
# this cop uses the specified method for replacement.
#
# NOTE: The return value of `Enumerable#each` is `self`, whereas the
# return value of `Enumerable#map` is an `Array`. They are not autocorrected
# when a return value could be used because these types differ.
#
# NOTE: It only detects when the mapping destination is either:
# * a local variable initialized as an empty array and referred to only by the
# pushing operation;
# * or, if it is the single block argument to a `[].tap` block.
# This is because, if not, it's challenging to statically guarantee that the
# mapping destination variable remains an empty array:
#
# [source,ruby]
# ----
# ret = []
# src.each { |e| ret << e * 2 } # `<<` method may mutate `ret`
#
# dest = []
# src.each { |e| dest << transform(e, dest) } # `transform` method may mutate `dest`
# ----
#
# @example
# # bad
# dest = []
# src.each { |e| dest << e * 2 }
# dest
#
# # good
# dest = src.map { |e| e * 2 }
#
# # bad
# [].tap do |dest|
# src.each { |e| dest << e * 2 }
# end
#
# # good
# dest = src.map { |e| e * 2 }
#
# # good - contains another operation
# dest = []
# src.each { |e| dest << e * 2; puts e }
# dest
#
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#60
class RuboCop::Cop::Style::MapIntoArray < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#109
def after_leaving_scope(scope, _variable_table); end
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#72
def each_block_with_push?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#81
def empty_array_asgn?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#93
def empty_array_tap(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#103
def lvar_ref?(param0 = T.unsafe(nil), param1); end
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#113
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#113
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#67
def suitable_argument_node?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#213
def correct_push_node(corrector, push_node); end
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#221
def correct_return_value_handling(corrector, block, dest_var); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#156
def dest_used_only_for_mapping?(block, dest_var, asgn); end
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#150
def find_closest_assignment(block, dest_var); end
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#133
def find_dest_var(block); end
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#181
def new_method_name; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#141
def offending_empty_array_tap?(node, dest_var); end
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#164
def register_offense(block, dest_var, asgn); end
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#200
def remove_assignment(corrector, asgn); end
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#207
def remove_tap(corrector, node, block_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#187
def return_value_used?(node); end
class << self
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#105
def joining_forces; end
end
end
# source://rubocop//lib/rubocop/cop/style/map_into_array.rb#64
RuboCop::Cop::Style::MapIntoArray::MSG = T.let(T.unsafe(nil), String)
# Looks for uses of `map.to_h` or `collect.to_h` that could be
# written with just `to_h` in Ruby >= 2.6.
#
# NOTE: `Style/HashTransformKeys` and `Style/HashTransformValues` will
# also change this pattern if only hash keys or hash values are being
# transformed.
#
# @example
# # bad
# something.map { |v| [v, v * 2] }.to_h
#
# # good
# something.to_h { |v| [v, v * 2] }
#
# # bad
# {foo: bar}.collect { |k, v| [k.to_s, v.do_something] }.to_h
#
# # good
# {foo: bar}.to_h { |k, v| [k.to_s, v.do_something] }
#
# source://rubocop//lib/rubocop/cop/style/map_to_hash.rb#30
class RuboCop::Cop::Style::MapToHash < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/map_to_hash.rb#41
def map_to_h(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/map_to_hash.rb#52
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/map_to_hash.rb#52
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/map_to_hash.rb#68
def autocorrect(corrector, to_h, map); end
class << self
# source://rubocop//lib/rubocop/cop/style/map_to_hash.rb#48
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/style/map_to_hash.rb#37
RuboCop::Cop::Style::MapToHash::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/map_to_hash.rb#38
RuboCop::Cop::Style::MapToHash::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Looks for uses of `map.to_set` or `collect.to_set` that could be
# written with just `to_set`.
#
# @example
# # bad
# something.map { |i| i * 2 }.to_set
#
# # good
# something.to_set { |i| i * 2 }
#
# # bad
# [1, 2, 3].collect { |i| i.to_s }.to_set
#
# # good
# [1, 2, 3].to_set { |i| i.to_s }
#
# source://rubocop//lib/rubocop/cop/style/map_to_set.rb#26
class RuboCop::Cop::Style::MapToSet < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/map_to_set.rb#34
def map_to_set?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/map_to_set.rb#41
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/map_to_set.rb#55
def autocorrect(corrector, to_set, map); end
end
# source://rubocop//lib/rubocop/cop/style/map_to_set.rb#30
RuboCop::Cop::Style::MapToSet::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/map_to_set.rb#31
RuboCop::Cop::Style::MapToSet::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Enforces the presence (default) or absence of parentheses in
# method calls containing arguments.
#
# In the default style (require_parentheses), macro methods are allowed.
# Additional methods can be added to the `AllowedMethods` or
# `AllowedPatterns` list. These options are valid only in the default
# style. Macros can be included by either setting `IgnoreMacros` to false
# or adding specific macros to the `IncludedMacros` list.
#
# Precedence of options is as follows:
#
# 1. `AllowedMethods`
# 2. `AllowedPatterns`
# 3. `IncludedMacros`
#
# If a method is listed in both `IncludedMacros` and `AllowedMethods`,
# then the latter takes precedence (that is, the method is allowed).
#
# In the alternative style (omit_parentheses), there are three additional
# options.
#
# 1. `AllowParenthesesInChaining` is `false` by default. Setting it to
# `true` allows the presence of parentheses in the last call during
# method chaining.
#
# 2. `AllowParenthesesInMultilineCall` is `false` by default. Setting it
# to `true` allows the presence of parentheses in multi-line method
# calls.
#
# 3. `AllowParenthesesInCamelCaseMethod` is `false` by default. This
# allows the presence of parentheses when calling a method whose name
# begins with a capital letter and which has no arguments. Setting it
# to `true` allows the presence of parentheses in such a method call
# even with arguments.
#
# NOTE: The style of `omit_parentheses` allows parentheses in cases where
# omitting them results in ambiguous or syntactically incorrect code.
#
# Non-exhaustive list of examples:
#
# - Parentheses are required allowed in method calls with arguments inside
# literals, logical operators, setting default values in position and
# keyword arguments, chaining and more.
# - Parentheses are allowed in method calls with arguments inside
# operators to avoid ambiguity.
# triple-dot syntax introduced in Ruby 2.7 as omitting them starts an
# endless range.
# - Parentheses are allowed when forwarding arguments with the
# triple-dot syntax introduced in Ruby 2.7 as omitting them starts an
# endless range.
# - Parentheses are required in calls with arguments when inside an
# endless method definition introduced in Ruby 3.0.
# - Ruby 3.1's hash omission syntax allows parentheses if the method call
# is in conditionals and requires parentheses if the call
# is not the value-returning expression. See
# https://bugs.ruby-lang.org/issues/18396.
# - Parentheses are required in anonymous arguments, keyword arguments
# and block passing in Ruby 3.2.
#
# @example EnforcedStyle: require_parentheses (default)
#
# # bad
# array.delete e
#
# # good
# array.delete(e)
#
# # good
# # Operators don't need parens
# foo == bar
#
# # good
# # Setter methods don't need parens
# foo.bar = baz
#
# # okay with `puts` listed in `AllowedMethods`
# puts 'test'
#
# # okay with `^assert` listed in `AllowedPatterns`
# assert_equal 'test', x
# @example EnforcedStyle: omit_parentheses
#
# # bad
# array.delete(e)
#
# # good
# array.delete e
#
# # bad
# action.enforce(strict: true)
#
# # good
# action.enforce strict: true
#
# # good
# # Parentheses are allowed for code that can be ambiguous without
# # them.
# action.enforce(condition) || other_condition
#
# # good
# # Parentheses are allowed for calls that won't produce valid Ruby
# # without them.
# yield path, File.basename(path)
#
# # good
# # Omitting the parentheses in Ruby 3.1 hash omission syntax can lead
# # to ambiguous code. We allow them in conditionals and non-last
# # expressions. See https://bugs.ruby-lang.org/issues/18396
# if meets(criteria:, action:)
# safe_action(action) || dangerous_action(action)
# end
# @example IgnoreMacros: true (default)
#
# # good
# class Foo
# bar :baz
# end
# @example IgnoreMacros: false
#
# # bad
# class Foo
# bar :baz
# end
# @example AllowParenthesesInMultilineCall: false (default)
#
# # bad
# foo.enforce(
# strict: true
# )
#
# # good
# foo.enforce \
# strict: true
# @example AllowParenthesesInMultilineCall: true
#
# # good
# foo.enforce(
# strict: true
# )
#
# # good
# foo.enforce \
# strict: true
# @example AllowParenthesesInChaining: false (default)
#
# # bad
# foo().bar(1)
#
# # good
# foo().bar 1
# @example AllowParenthesesInChaining: true
#
# # good
# foo().bar(1)
#
# # good
# foo().bar 1
# @example AllowParenthesesInCamelCaseMethod: false (default)
#
# # bad
# Array(1)
#
# # good
# Array 1
# @example AllowParenthesesInCamelCaseMethod: true
#
# # good
# Array(1)
#
# # good
# Array 1
# @example AllowParenthesesInStringInterpolation: false (default)
#
# # bad
# "#{t('this.is.bad')}"
#
# # good
# "#{t 'this.is.better'}"
# @example AllowParenthesesInStringInterpolation: true
#
# # good
# "#{t('this.is.good')}"
#
# # good
# "#{t 'this.is.also.good'}"
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses.rb#202
class RuboCop::Cop::Style::MethodCallWithArgsParentheses < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::AllowedMethods
include ::RuboCop::Cop::AllowedPattern
include ::RuboCop::Cop::Style::MethodCallWithArgsParentheses::RequireParentheses
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::Style::MethodCallWithArgsParentheses::OmitParentheses
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses.rb#217
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses.rb#217
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses.rb#217
def on_yield(node); end
private
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses.rb#225
def args_begin(node); end
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses.rb#233
def args_end(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses.rb#237
def args_parenthesized?(node); end
class << self
# source://rubocop-rails/2.27.0/lib/rubocop-rails.rb#30
def autocorrect_incompatible_with; end
end
end
# Style omit_parentheses
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#9
module RuboCop::Cop::Style::MethodCallWithArgsParentheses::OmitParentheses
include ::RuboCop::Cop::RangeHelp
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#80
def allowed_camel_case_method_call?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#184
def allowed_chained_call_with_parentheses?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#180
def allowed_multiline_call_with_parentheses?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#85
def allowed_string_interpolation_method_call?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#193
def ambiguous_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#222
def assigned_before?(node, target); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#230
def assignment_in_condition?(node); end
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#34
def autocorrect(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#161
def call_as_argument_or_chain?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#154
def call_in_argument_with_block?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#110
def call_in_literals?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#121
def call_in_logical_operators?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#167
def call_in_match_pattern?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#130
def call_in_optional_arguments?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#134
def call_in_single_line_inheritance?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#138
def call_with_ambiguous_arguments?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#150
def call_with_braced_block?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#240
def forwards_anonymous_rest_arguments?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#209
def hash_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#173
def hash_literal_in_arguments?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#50
def inside_endless_method_def?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#226
def inside_string_interpolation?(node); end
# Require hash value omission be enclosed in parentheses to prevent the following issue:
# https://bugs.ruby-lang.org/issues/18396.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#64
def last_expression?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#97
def legitimate_call_with_parentheses?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#205
def logical_operator?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#72
def method_call_before_constant_resolution?(node); end
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#46
def offense_range(node); end
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#18
def omit_parentheses(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#90
def parentheses_at_the_end_of_multiline_call?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#213
def regexp_slash_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#55
def require_parentheses_for_hash_value_omission?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#197
def splat?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#76
def super_call_without_arguments?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#68
def syntax_like_method_call?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#201
def ternary_if?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#217
def unary_literal?(node); end
end
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#13
RuboCop::Cop::Style::MethodCallWithArgsParentheses::OmitParentheses::OMIT_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/omit_parentheses.rb#12
RuboCop::Cop::Style::MethodCallWithArgsParentheses::OmitParentheses::TRAILING_WHITESPACE_REGEX = T.let(T.unsafe(nil), Regexp)
# Style require_parentheses
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb#8
module RuboCop::Cop::Style::MethodCallWithArgsParentheses::RequireParentheses
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb#27
def allowed_method_name?(name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb#31
def eligible_for_parentheses_omission?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb#39
def ignored_macro?(node); end
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb#35
def included_macros_list; end
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb#14
def require_parentheses(node); end
end
# source://rubocop//lib/rubocop/cop/style/method_call_with_args_parentheses/require_parentheses.rb#9
RuboCop::Cop::Style::MethodCallWithArgsParentheses::RequireParentheses::REQUIRE_MSG = T.let(T.unsafe(nil), String)
# Checks for unwanted parentheses in parameterless method calls.
#
# This cop's allowed methods can be customized with `AllowedMethods`.
# By default, there are no allowed methods.
#
# NOTE: This cop allows the use of `it()` without arguments in blocks,
# as in `0.times { it() }`, following `Lint/ItWithoutArgumentsInBlock` cop.
#
# @example
# # bad
# object.some_method()
#
# # good
# object.some_method
# @example AllowedMethods: [] (default)
# # bad
# object.foo()
# @example AllowedMethods: [foo]
# # good
# object.foo()
#
# source://rubocop//lib/rubocop/cop/style/method_call_without_args_parentheses.rb#29
class RuboCop::Cop::Style::MethodCallWithoutArgsParentheses < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedMethods
include ::RuboCop::Cop::AllowedPattern
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/method_call_without_args_parentheses.rb#37
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_without_args_parentheses.rb#66
def allowed_method_name?(name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_without_args_parentheses.rb#94
def any_assignment?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_without_args_parentheses.rb#62
def default_argument?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_without_args_parentheses.rb#58
def ineligible_node?(node); end
# source://rubocop//lib/rubocop/cop/style/method_call_without_args_parentheses.rb#117
def offense_range(node); end
# Respects `Lint/ItWithoutArgumentsInBlock` cop and the following Ruby 3.3's warning:
#
# $ ruby -e '0.times { begin; it; end }'
# -e:1: warning: `it` calls without arguments will refer to the first block param in
# Ruby 3.4; use it() or self.it
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_without_args_parentheses.rb#86
def parenthesized_it_method_in_block?(node); end
# source://rubocop//lib/rubocop/cop/style/method_call_without_args_parentheses.rb#51
def register_offense(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_without_args_parentheses.rb#70
def same_name_assignment?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_call_without_args_parentheses.rb#110
def variable_in_mass_assignment?(variable_name, node); end
end
# source://rubocop//lib/rubocop/cop/style/method_call_without_args_parentheses.rb#34
RuboCop::Cop::Style::MethodCallWithoutArgsParentheses::MSG = T.let(T.unsafe(nil), String)
# Checks for methods called on a do...end block. The point of
# this check is that it's easy to miss the call tacked on to the block
# when reading code.
#
# @example
# # bad
# a do
# b
# end.c
#
# # good
# a { b }.c
#
# # good
# foo = a do
# b
# end
# foo.c
#
# source://rubocop//lib/rubocop/cop/style/method_called_on_do_end_block.rb#24
class RuboCop::Cop::Style::MethodCalledOnDoEndBlock < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
# source://rubocop//lib/rubocop/cop/style/method_called_on_do_end_block.rb#29
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/method_called_on_do_end_block.rb#40
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/method_called_on_do_end_block.rb#29
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/style/method_called_on_do_end_block.rb#40
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/style/method_called_on_do_end_block.rb#27
RuboCop::Cop::Style::MethodCalledOnDoEndBlock::MSG = T.let(T.unsafe(nil), String)
# Checks for parentheses around the arguments in method
# definitions. Both instance and class/singleton methods are checked.
#
# Regardless of style, parentheses are necessary for:
#
# 1. Endless methods
# 2. Argument lists containing a `forward-arg` (`...`)
# 3. Argument lists containing an anonymous rest arguments forwarding (`*`)
# 4. Argument lists containing an anonymous keyword rest arguments forwarding (`**`)
# 5. Argument lists containing an anonymous block forwarding (`&`)
#
# Removing the parens would be a syntax error here.
#
# @example EnforcedStyle: require_parentheses (default)
# # The `require_parentheses` style requires method definitions
# # to always use parentheses
#
# # bad
# def bar num1, num2
# num1 + num2
# end
#
# def foo descriptive_var_name,
# another_descriptive_var_name,
# last_descriptive_var_name
# do_something
# end
#
# # good
# def bar(num1, num2)
# num1 + num2
# end
#
# def foo(descriptive_var_name,
# another_descriptive_var_name,
# last_descriptive_var_name)
# do_something
# end
# @example EnforcedStyle: require_no_parentheses
# # The `require_no_parentheses` style requires method definitions
# # to never use parentheses
#
# # bad
# def bar(num1, num2)
# num1 + num2
# end
#
# def foo(descriptive_var_name,
# another_descriptive_var_name,
# last_descriptive_var_name)
# do_something
# end
#
# # good
# def bar num1, num2
# num1 + num2
# end
#
# def foo descriptive_var_name,
# another_descriptive_var_name,
# last_descriptive_var_name
# do_something
# end
# @example EnforcedStyle: require_no_parentheses_except_multiline
# # The `require_no_parentheses_except_multiline` style prefers no
# # parentheses when method definition arguments fit on single line,
# # but prefers parentheses when arguments span multiple lines.
#
# # bad
# def bar(num1, num2)
# num1 + num2
# end
#
# def foo descriptive_var_name,
# another_descriptive_var_name,
# last_descriptive_var_name
# do_something
# end
#
# # good
# def bar num1, num2
# num1 + num2
# end
#
# def foo(descriptive_var_name,
# another_descriptive_var_name,
# last_descriptive_var_name)
# do_something
# end
#
# source://rubocop//lib/rubocop/cop/style/method_def_parentheses.rb#97
class RuboCop::Cop::Style::MethodDefParentheses < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/method_def_parentheses.rb#105
def on_def(node); end
# source://rubocop//lib/rubocop/cop/style/method_def_parentheses.rb#105
def on_defs(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_def_parentheses.rb#169
def anonymous_arguments?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_def_parentheses.rb#147
def arguments_without_parentheses?(node); end
# source://rubocop//lib/rubocop/cop/style/method_def_parentheses.rb#126
def correct_arguments(arg_node, corrector); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_def_parentheses.rb#131
def forced_parentheses?(node); end
# source://rubocop//lib/rubocop/cop/style/method_def_parentheses.rb#151
def missing_parentheses(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/method_def_parentheses.rb#142
def require_parentheses?(args); end
# source://rubocop//lib/rubocop/cop/style/method_def_parentheses.rb#161
def unwanted_parentheses(args); end
end
# source://rubocop//lib/rubocop/cop/style/method_def_parentheses.rb#103
RuboCop::Cop::Style::MethodDefParentheses::MSG_MISSING = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/method_def_parentheses.rb#102
RuboCop::Cop::Style::MethodDefParentheses::MSG_PRESENT = T.let(T.unsafe(nil), String)
# Checks for potential uses of `Enumerable#minmax`.
#
# @example
#
# # bad
# bar = [foo.min, foo.max]
# return foo.min, foo.max
#
# # good
# bar = foo.minmax
# return foo.minmax
#
# source://rubocop//lib/rubocop/cop/style/min_max.rb#17
class RuboCop::Cop::Style::MinMax < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/min_max.rb#38
def min_max_candidate(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/min_max.rb#22
def on_array(node); end
# source://rubocop//lib/rubocop/cop/style/min_max.rb#22
def on_return(node); end
private
# source://rubocop//lib/rubocop/cop/style/min_max.rb#55
def argument_range(node); end
# source://rubocop//lib/rubocop/cop/style/min_max.rb#42
def message(offender, receiver); end
# source://rubocop//lib/rubocop/cop/style/min_max.rb#46
def offending_range(node); end
end
# source://rubocop//lib/rubocop/cop/style/min_max.rb#20
RuboCop::Cop::Style::MinMax::MSG = T.let(T.unsafe(nil), String)
# Enforces the use of `max` or `min` instead of comparison for greater or less.
#
# NOTE: It can be used if you want to present limit or threshold in Ruby 2.7+.
# That it is slow though. So autocorrection will apply generic `max` or `min`:
#
# [source,ruby]
# ----
# a.clamp(b..) # Same as `[a, b].max`
# a.clamp(..b) # Same as `[a, b].min`
# ----
#
# @example
#
# # bad
# a > b ? a : b
# a >= b ? a : b
#
# # good
# [a, b].max
#
# # bad
# a < b ? a : b
# a <= b ? a : b
#
# # good
# [a, b].min
#
# source://rubocop//lib/rubocop/cop/style/min_max_comparison.rb#37
class RuboCop::Cop::Style::MinMaxComparison < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/min_max_comparison.rb#46
def on_if(node); end
private
# source://rubocop//lib/rubocop/cop/style/min_max_comparison.rb#72
def autocorrect(corrector, node, replacement); end
# source://rubocop//lib/rubocop/cop/style/min_max_comparison.rb#64
def preferred_method(operator, lhs, rhs, if_branch, else_branch); end
end
# source://rubocop//lib/rubocop/cop/style/min_max_comparison.rb#44
RuboCop::Cop::Style::MinMaxComparison::COMPARISON_OPERATORS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/min_max_comparison.rb#42
RuboCop::Cop::Style::MinMaxComparison::GRATER_OPERATORS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/min_max_comparison.rb#43
RuboCop::Cop::Style::MinMaxComparison::LESS_OPERATORS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/min_max_comparison.rb#41
RuboCop::Cop::Style::MinMaxComparison::MSG = T.let(T.unsafe(nil), String)
# Checks for `if` expressions that do not have an `else` branch.
#
# NOTE: Pattern matching is allowed to have no `else` branch because unlike `if` and `case`,
# it raises `NoMatchingPatternError` if the pattern doesn't match and without having `else`.
#
# Supported styles are: if, case, both.
#
# @example EnforcedStyle: both (default)
# # warn when an `if` or `case` expression is missing an `else` branch.
#
# # bad
# if condition
# statement
# end
#
# # bad
# case var
# when condition
# statement
# end
#
# # good
# if condition
# statement
# else
# # the content of `else` branch will be determined by Style/EmptyElse
# end
#
# # good
# case var
# when condition
# statement
# else
# # the content of `else` branch will be determined by Style/EmptyElse
# end
# @example EnforcedStyle: if
# # warn when an `if` expression is missing an `else` branch.
#
# # bad
# if condition
# statement
# end
#
# # good
# if condition
# statement
# else
# # the content of `else` branch will be determined by Style/EmptyElse
# end
#
# # good
# case var
# when condition
# statement
# end
#
# # good
# case var
# when condition
# statement
# else
# # the content of `else` branch will be determined by Style/EmptyElse
# end
# @example EnforcedStyle: case
# # warn when a `case` expression is missing an `else` branch.
#
# # bad
# case var
# when condition
# statement
# end
#
# # good
# case var
# when condition
# statement
# else
# # the content of `else` branch will be determined by Style/EmptyElse
# end
#
# # good
# if condition
# statement
# end
#
# # good
# if condition
# statement
# else
# # the content of `else` branch will be determined by Style/EmptyElse
# end
#
# source://rubocop//lib/rubocop/cop/style/missing_else.rb#99
class RuboCop::Cop::Style::MissingElse < ::RuboCop::Cop::Base
include ::RuboCop::Cop::OnNormalIfUnless
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/missing_else.rb#115
def on_case(node); end
# source://rubocop//lib/rubocop/cop/style/missing_else.rb#121
def on_case_match(node); end
# source://rubocop//lib/rubocop/cop/style/missing_else.rb#108
def on_normal_if_unless(node); end
private
# source://rubocop//lib/rubocop/cop/style/missing_else.rb#146
def autocorrect(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/missing_else.rb#159
def case_style?; end
# source://rubocop//lib/rubocop/cop/style/missing_else.rb#127
def check(node); end
# source://rubocop//lib/rubocop/cop/style/missing_else.rb#177
def empty_else_config; end
# source://rubocop//lib/rubocop/cop/style/missing_else.rb#171
def empty_else_style; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/missing_else.rb#155
def if_style?; end
# source://rubocop//lib/rubocop/cop/style/missing_else.rb#135
def message_template; end
# source://rubocop//lib/rubocop/cop/style/missing_else.rb#167
def unless_else_config; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/missing_else.rb#163
def unless_else_cop_enabled?; end
end
# source://rubocop//lib/rubocop/cop/style/missing_else.rb#104
RuboCop::Cop::Style::MissingElse::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/missing_else.rb#106
RuboCop::Cop::Style::MissingElse::MSG_EMPTY = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/missing_else.rb#105
RuboCop::Cop::Style::MissingElse::MSG_NIL = T.let(T.unsafe(nil), String)
# Checks for the presence of `method_missing` without also
# defining `respond_to_missing?`.
#
# @example
# # bad
# def method_missing(name, *args)
# # ...
# end
#
# # good
# def respond_to_missing?(name, include_private)
# # ...
# end
#
# def method_missing(name, *args)
# # ...
# end
#
# source://rubocop//lib/rubocop/cop/style/missing_respond_to_missing.rb#24
class RuboCop::Cop::Style::MissingRespondToMissing < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/style/missing_respond_to_missing.rb#27
def on_def(node); end
# source://rubocop//lib/rubocop/cop/style/missing_respond_to_missing.rb#27
def on_defs(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/missing_respond_to_missing.rb#37
def implements_respond_to_missing?(node); end
end
# source://rubocop//lib/rubocop/cop/style/missing_respond_to_missing.rb#25
RuboCop::Cop::Style::MissingRespondToMissing::MSG = T.let(T.unsafe(nil), String)
# Checks for grouping of mixins in `class` and `module` bodies.
# By default it enforces mixins to be placed in separate declarations,
# but it can be configured to enforce grouping them in one declaration.
#
# @example EnforcedStyle: separated (default)
# # bad
# class Foo
# include Bar, Qox
# end
#
# # good
# class Foo
# include Qox
# include Bar
# end
# @example EnforcedStyle: grouped
# # bad
# class Foo
# extend Bar
# extend Qox
# end
#
# # good
# class Foo
# extend Qox, Bar
# end
#
# source://rubocop//lib/rubocop/cop/style/mixin_grouping.rb#33
class RuboCop::Cop::Style::MixinGrouping < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/mixin_grouping.rb#40
def on_class(node); end
# source://rubocop//lib/rubocop/cop/style/mixin_grouping.rb#40
def on_module(node); end
private
# source://rubocop//lib/rubocop/cop/style/mixin_grouping.rb#64
def check(send_node); end
# source://rubocop//lib/rubocop/cop/style/mixin_grouping.rb#72
def check_grouped_style(send_node); end
# source://rubocop//lib/rubocop/cop/style/mixin_grouping.rb#91
def check_separated_style(send_node); end
# source://rubocop//lib/rubocop/cop/style/mixin_grouping.rb#127
def group_mixins(node, mixins); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/mixin_grouping.rb#110
def grouped_style?; end
# source://rubocop//lib/rubocop/cop/style/mixin_grouping.rb#53
def range_to_remove_for_subsequent_mixin(mixins, node); end
# source://rubocop//lib/rubocop/cop/style/mixin_grouping.rb#118
def separate_mixins(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/mixin_grouping.rb#114
def separated_style?; end
# source://rubocop//lib/rubocop/cop/style/mixin_grouping.rb#104
def sibling_mixins(send_node); end
end
# source://rubocop//lib/rubocop/cop/style/mixin_grouping.rb#37
RuboCop::Cop::Style::MixinGrouping::MIXIN_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/mixin_grouping.rb#38
RuboCop::Cop::Style::MixinGrouping::MSG = T.let(T.unsafe(nil), String)
# Checks that `include`, `extend` and `prepend` statements appear
# inside classes and modules, not at the top level, so as to not affect
# the behavior of `Object`.
#
# @example
# # bad
# include M
#
# class C
# end
#
# # bad
# extend M
#
# class C
# end
#
# # bad
# prepend M
#
# class C
# end
#
# # good
# class C
# include M
# end
#
# # good
# class C
# extend M
# end
#
# # good
# class C
# prepend M
# end
#
# source://rubocop//lib/rubocop/cop/style/mixin_usage.rb#43
class RuboCop::Cop::Style::MixinUsage < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/style/mixin_usage.rb#54
def in_top_level_scope?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/mixin_usage.rb#48
def include_statement(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/mixin_usage.rb#62
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/style/mixin_usage.rb#44
RuboCop::Cop::Style::MixinUsage::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/mixin_usage.rb#45
RuboCop::Cop::Style::MixinUsage::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for use of `extend self` or `module_function` in a module.
#
# Supported styles are: `module_function` (default), `extend_self` and `forbidden`.
#
# A couple of things to keep in mind:
#
# - `forbidden` style prohibits the usage of both styles
# - in default mode (`module_function`), the cop won't be activated when the module
# contains any private methods
#
# @example EnforcedStyle: module_function (default)
# # bad
# module Test
# extend self
# # ...
# end
#
# # good
# module Test
# module_function
# # ...
# end
#
# # good
# module Test
# extend self
# # ...
# private
# # ...
# end
#
# # good
# module Test
# class << self
# # ...
# end
# end
# @example EnforcedStyle: extend_self
# # bad
# module Test
# module_function
# # ...
# end
#
# # good
# module Test
# extend self
# # ...
# end
#
# # good
# module Test
# class << self
# # ...
# end
# end
# @example EnforcedStyle: forbidden
# # bad
# module Test
# module_function
# # ...
# end
#
# # bad
# module Test
# extend self
# # ...
# end
#
# # bad
# module Test
# extend self
# # ...
# private
# # ...
# end
#
# # good
# module Test
# class << self
# # ...
# end
# end
#
# source://rubocop//lib/rubocop/cop/style/module_function.rb#95
class RuboCop::Cop::Style::ModuleFunction < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/module_function.rb#107
def extend_self_node?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/module_function.rb#104
def module_function_node?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/module_function.rb#112
def on_module(node); end
# source://rubocop//lib/rubocop/cop/style/module_function.rb#110
def private_directive?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/module_function.rb#149
def check_extend_self(nodes); end
# source://rubocop//lib/rubocop/cop/style/module_function.rb#155
def check_forbidden(nodes); end
# source://rubocop//lib/rubocop/cop/style/module_function.rb#141
def check_module_function(nodes); end
# source://rubocop//lib/rubocop/cop/style/module_function.rb#130
def each_wrong_style(nodes, &block); end
# source://rubocop//lib/rubocop/cop/style/module_function.rb#162
def message(_range); end
end
# source://rubocop//lib/rubocop/cop/style/module_function.rb#100
RuboCop::Cop::Style::ModuleFunction::EXTEND_SELF_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/module_function.rb#101
RuboCop::Cop::Style::ModuleFunction::FORBIDDEN_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/module_function.rb#99
RuboCop::Cop::Style::ModuleFunction::MODULE_FUNCTION_MSG = T.let(T.unsafe(nil), String)
# Checks for chaining of a block after another block that spans
# multiple lines.
#
# @example
#
# # bad
# Thread.list.select do |t|
# t.alive?
# end.map do |t|
# t.object_id
# end
#
# # good
# alive_threads = Thread.list.select do |t|
# t.alive?
# end
# alive_threads.map do |t|
# t.object_id
# end
#
# source://rubocop//lib/rubocop/cop/style/multiline_block_chain.rb#25
class RuboCop::Cop::Style::MultilineBlockChain < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
# source://rubocop//lib/rubocop/cop/style/multiline_block_chain.rb#30
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/multiline_block_chain.rb#30
def on_numblock(node); end
end
# source://rubocop//lib/rubocop/cop/style/multiline_block_chain.rb#28
RuboCop::Cop::Style::MultilineBlockChain::MSG = T.let(T.unsafe(nil), String)
# Checks for uses of if/unless modifiers with multiple-lines bodies.
#
# @example
#
# # bad
# {
# result: 'this should not happen'
# } unless cond
#
# # good
# { result: 'ok' } if cond
#
# source://rubocop//lib/rubocop/cop/style/multiline_if_modifier.rb#17
class RuboCop::Cop::Style::MultilineIfModifier < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::LineLengthHelp
include ::RuboCop::Cop::StatementModifier
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/multiline_if_modifier.rb#25
def on_if(node); end
private
# source://rubocop//lib/rubocop/cop/style/multiline_if_modifier.rb#43
def indented_body(body, node); end
# source://rubocop//lib/rubocop/cop/style/multiline_if_modifier.rb#35
def to_normal_if(node); end
end
# source://rubocop//lib/rubocop/cop/style/multiline_if_modifier.rb#22
RuboCop::Cop::Style::MultilineIfModifier::MSG = T.let(T.unsafe(nil), String)
# Checks for uses of the `then` keyword in multi-line if statements.
#
# @example
# # bad
# # This is considered bad practice.
# if cond then
# end
#
# # good
# # If statements can contain `then` on the same line.
# if cond then a
# elsif cond then b
# end
#
# source://rubocop//lib/rubocop/cop/style/multiline_if_then.rb#19
class RuboCop::Cop::Style::MultilineIfThen < ::RuboCop::Cop::Base
include ::RuboCop::Cop::OnNormalIfUnless
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/multiline_if_then.rb#28
def on_normal_if_unless(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/multiline_if_then.rb#38
def non_modifier_then?(node); end
end
# source://rubocop//lib/rubocop/cop/style/multiline_if_then.rb#26
RuboCop::Cop::Style::MultilineIfThen::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/multiline_if_then.rb#24
RuboCop::Cop::Style::MultilineIfThen::NON_MODIFIER_THEN = T.let(T.unsafe(nil), Regexp)
# Checks uses of the `then` keyword in multi-line `in` statement.
#
# @example
# # bad
# case expression
# in pattern then
# end
#
# # good
# case expression
# in pattern
# end
#
# # good
# case expression
# in pattern then do_something
# end
#
# # good
# case expression
# in pattern then do_something(arg1,
# arg2)
# end
#
# source://rubocop//lib/rubocop/cop/style/multiline_in_pattern_then.rb#30
class RuboCop::Cop::Style::MultilineInPatternThen < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/multiline_in_pattern_then.rb#39
def on_in_pattern(node); end
private
# Requires `then` for write `in` and its body on the same line.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/multiline_in_pattern_then.rb#51
def require_then?(in_pattern_node); end
end
# source://rubocop//lib/rubocop/cop/style/multiline_in_pattern_then.rb#37
RuboCop::Cop::Style::MultilineInPatternThen::MSG = T.let(T.unsafe(nil), String)
# Checks expressions wrapping styles for multiline memoization.
#
# @example EnforcedStyle: keyword (default)
# # bad
# foo ||= (
# bar
# baz
# )
#
# # good
# foo ||= begin
# bar
# baz
# end
# @example EnforcedStyle: braces
# # bad
# foo ||= begin
# bar
# baz
# end
#
# # good
# foo ||= (
# bar
# baz
# )
#
# source://rubocop//lib/rubocop/cop/style/multiline_memoization.rb#33
class RuboCop::Cop::Style::MultilineMemoization < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/multiline_memoization.rb#56
def message(_node); end
# source://rubocop//lib/rubocop/cop/style/multiline_memoization.rb#41
def on_or_asgn(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/multiline_memoization.rb#62
def bad_rhs?(rhs); end
# source://rubocop//lib/rubocop/cop/style/multiline_memoization.rb#72
def keyword_autocorrect(node, corrector); end
# source://rubocop//lib/rubocop/cop/style/multiline_memoization.rb#78
def keyword_begin_str(node, node_buf); end
# source://rubocop//lib/rubocop/cop/style/multiline_memoization.rb#86
def keyword_end_str(node, node_buf); end
end
# source://rubocop//lib/rubocop/cop/style/multiline_memoization.rb#39
RuboCop::Cop::Style::MultilineMemoization::BRACES_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/multiline_memoization.rb#38
RuboCop::Cop::Style::MultilineMemoization::KEYWORD_MSG = T.let(T.unsafe(nil), String)
# Checks for method signatures that span multiple lines.
#
# @example
#
# # good
#
# def foo(bar, baz)
# end
#
# # bad
#
# def foo(bar,
# baz)
# end
#
# source://rubocop//lib/rubocop/cop/style/multiline_method_signature.rb#21
class RuboCop::Cop::Style::MultilineMethodSignature < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/multiline_method_signature.rb#27
def on_def(node); end
# source://rubocop//lib/rubocop/cop/style/multiline_method_signature.rb#27
def on_defs(node); end
private
# source://rubocop//lib/rubocop/cop/style/multiline_method_signature.rb#69
def arguments_range(node); end
# source://rubocop//lib/rubocop/cop/style/multiline_method_signature.rb#42
def autocorrect(corrector, node, begin_of_arguments); end
# source://rubocop//lib/rubocop/cop/style/multiline_method_signature.rb#81
def closing_line(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/multiline_method_signature.rb#85
def correction_exceeds_max_line_length?(node); end
# source://rubocop//lib/rubocop/cop/style/multiline_method_signature.rb#93
def definition_width(node); end
# source://rubocop//lib/rubocop/cop/style/multiline_method_signature.rb#89
def indentation_width(node); end
# source://rubocop//lib/rubocop/cop/style/multiline_method_signature.rb#65
def last_line_source_of_arguments(arguments); end
# source://rubocop//lib/rubocop/cop/style/multiline_method_signature.rb#97
def max_line_length; end
# source://rubocop//lib/rubocop/cop/style/multiline_method_signature.rb#77
def opening_line(node); end
end
# source://rubocop//lib/rubocop/cop/style/multiline_method_signature.rb#25
RuboCop::Cop::Style::MultilineMethodSignature::MSG = T.let(T.unsafe(nil), String)
# Checks for multi-line ternary op expressions.
#
# NOTE: `return if ... else ... end` is syntax error. If `return` is used before
# multiline ternary operator expression, it will be autocorrected to single-line
# ternary operator. The same is true for `break`, `next`, and method call.
#
# @example
# # bad
# a = cond ?
# b : c
# a = cond ? b :
# c
# a = cond ?
# b :
# c
#
# return cond ?
# b :
# c
#
# # good
# a = cond ? b : c
# a = if cond
# b
# else
# c
# end
#
# return cond ? b : c
#
# source://rubocop//lib/rubocop/cop/style/multiline_ternary_operator.rb#36
class RuboCop::Cop::Style::MultilineTernaryOperator < ::RuboCop::Cop::Base
include ::RuboCop::Cop::CommentsHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/multiline_ternary_operator.rb#44
def on_if(node); end
private
# source://rubocop//lib/rubocop/cop/style/multiline_ternary_operator.rb#64
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/multiline_ternary_operator.rb#86
def comments_in_condition(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/multiline_ternary_operator.rb#92
def enforce_single_line_ternary_operator?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/multiline_ternary_operator.rb#60
def offense?(node); end
# source://rubocop//lib/rubocop/cop/style/multiline_ternary_operator.rb#72
def replacement(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/multiline_ternary_operator.rb#96
def use_assignment_method?(node); end
end
# source://rubocop//lib/rubocop/cop/style/multiline_ternary_operator.rb#40
RuboCop::Cop::Style::MultilineTernaryOperator::MSG_IF = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/multiline_ternary_operator.rb#41
RuboCop::Cop::Style::MultilineTernaryOperator::MSG_SINGLE_LINE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/multiline_ternary_operator.rb#42
RuboCop::Cop::Style::MultilineTernaryOperator::SINGLE_LINE_TYPES = T.let(T.unsafe(nil), Array)
# Checks uses of the `then` keyword
# in multi-line when statements.
#
# @example
# # bad
# case foo
# when bar then
# end
#
# # good
# case foo
# when bar
# end
#
# # good
# case foo
# when bar then do_something
# end
#
# # good
# case foo
# when bar then do_something(arg1,
# arg2)
# end
#
# source://rubocop//lib/rubocop/cop/style/multiline_when_then.rb#31
class RuboCop::Cop::Style::MultilineWhenThen < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/multiline_when_then.rb#37
def on_when(node); end
private
# Requires `then` for write `when` and its body on the same line.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/multiline_when_then.rb#49
def require_then?(when_node); end
end
# source://rubocop//lib/rubocop/cop/style/multiline_when_then.rb#35
RuboCop::Cop::Style::MultilineWhenThen::MSG = T.let(T.unsafe(nil), String)
# Checks against comparing a variable with multiple items, where
# `Array#include?`, `Set#include?` or a `case` could be used instead
# to avoid code repetition.
# It accepts comparisons of multiple method calls to avoid unnecessary method calls
# by default. It can be configured by `AllowMethodComparison` option.
#
# @example
# # bad
# a = 'a'
# foo if a == 'a' || a == 'b' || a == 'c'
#
# # good
# a = 'a'
# foo if ['a', 'b', 'c'].include?(a)
#
# VALUES = Set['a', 'b', 'c'].freeze
# # elsewhere...
# foo if VALUES.include?(a)
#
# case foo
# when 'a', 'b', 'c' then foo
# # ...
# end
#
# # accepted (but consider `case` as above)
# foo if a == b.lightweight || a == b.heavyweight
# @example AllowMethodComparison: true (default)
# # good
# foo if a == b.lightweight || a == b.heavyweight
# @example AllowMethodComparison: false
# # bad
# foo if a == b.lightweight || a == b.heavyweight
#
# # good
# foo if [b.lightweight, b.heavyweight].include?(a)
# @example ComparisonsThreshold: 2 (default)
# # bad
# foo if a == 'a' || a == 'b'
# @example ComparisonsThreshold: 3
# # good
# foo if a == 'a' || a == 'b'
#
# source://rubocop//lib/rubocop/cop/style/multiple_comparison.rb#52
class RuboCop::Cop::Style::MultipleComparison < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/multiple_comparison.rb#58
def on_or(node); end
# source://rubocop//lib/rubocop/cop/style/multiple_comparison.rb#80
def simple_comparison_lhs?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/multiple_comparison.rb#85
def simple_comparison_rhs?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/multiple_comparison.rb#77
def simple_double_comparison?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/multiple_comparison.rb#142
def allow_method_comparison?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/multiple_comparison.rb#121
def comparison?(node); end
# source://rubocop//lib/rubocop/cop/style/multiple_comparison.rb#146
def comparisons_threshold; end
# source://rubocop//lib/rubocop/cop/style/multiple_comparison.rb#90
def find_offending_var(node, variables = T.unsafe(nil), values = T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/multiple_comparison.rb#113
def nested_comparison?(node); end
# source://rubocop//lib/rubocop/cop/style/multiple_comparison.rb#132
def root_of_or_node(or_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/multiple_comparison.rb#125
def simple_comparison?(node); end
# source://rubocop//lib/rubocop/cop/style/multiple_comparison.rb#109
def variable_name(node); end
end
# source://rubocop//lib/rubocop/cop/style/multiple_comparison.rb#55
RuboCop::Cop::Style::MultipleComparison::MSG = T.let(T.unsafe(nil), String)
# Checks whether some constant value isn't a
# mutable literal (e.g. array or hash).
#
# Strict mode can be used to freeze all constants, rather than
# just literals.
# Strict mode is considered an experimental feature. It has not been
# updated with an exhaustive list of all methods that will produce
# frozen objects so there is a decent chance of getting some false
# positives. Luckily, there is no harm in freezing an already
# frozen object.
#
# From Ruby 3.0, this cop honours the magic comment
# 'shareable_constant_value'. When this magic comment is set to any
# acceptable value other than none, it will suppress the offenses
# raised by this cop. It enforces frozen state.
#
# NOTE: Regexp and Range literals are frozen objects since Ruby 3.0.
#
# NOTE: From Ruby 3.0, interpolated strings are not frozen when
# `# frozen-string-literal: true` is used, so this cop enforces explicit
# freezing for such strings.
#
# NOTE: From Ruby 3.0, this cop allows explicit freezing of constants when
# the `shareable_constant_value` directive is used.
#
# @example EnforcedStyle: literals (default)
# # bad
# CONST = [1, 2, 3]
#
# # good
# CONST = [1, 2, 3].freeze
#
# # good
# CONST = <<~TESTING.freeze
# This is a heredoc
# TESTING
#
# # good
# CONST = Something.new
# @example EnforcedStyle: strict
# # bad
# CONST = Something.new
#
# # bad
# CONST = Struct.new do
# def foo
# puts 1
# end
# end
#
# # good
# CONST = Something.new.freeze
#
# # good
# CONST = Struct.new do
# def foo
# puts 1
# end
# end.freeze
# @example
# # Magic comment - shareable_constant_value: literal
#
# # bad
# CONST = [1, 2, 3]
#
# # good
# # shareable_constant_value: literal
# CONST = [1, 2, 3]
#
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#83
class RuboCop::Cop::Style::MutableConstant < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Style::MutableConstant::ShareableConstantValue
include ::RuboCop::Cop::FrozenStringLiteral
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop-sorbet/0.8.7/lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#18
def on_assignment(value); end
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#127
def on_casgn(node); end
# Some of these patterns may not actually return an immutable object,
# but we want to consider them immutable for this cop.
#
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#224
def operation_produces_immutable_object?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#241
def range_enclosed_in_parentheses?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#217
def splat_value(param0 = T.unsafe(nil)); end
# source://rubocop-sorbet/0.8.7/lib/rubocop/cop/sorbet/mutable_constant_sorbet_aware_behaviour.rb#12
def t_let(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#169
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#158
def check(value); end
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#208
def correct_splat_expansion(corrector, expr, splat_value); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#200
def frozen_regexp_or_range_literals?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#190
def immutable_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#184
def mutable_literal?(value); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#204
def requires_parentheses?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#194
def shareable_constant_value?(node); end
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#149
def strict_check(value); end
end
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#125
RuboCop::Cop::Style::MutableConstant::MSG = T.let(T.unsafe(nil), String)
# Handles magic comment shareable_constant_value with O(n ^ 2) complexity
# n - number of lines in the source
# Iterates over all lines before a CONSTANT
# until it reaches shareable_constant_value
#
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#88
module RuboCop::Cop::Style::MutableConstant::ShareableConstantValue
private
# Identifies the most recent magic comment with valid shareable constant values
# that's in scope for this node
#
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#102
def magic_comment_in_scope(node); end
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#110
def processed_source_till_node(node); end
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#91
def recent_shareable_value?(node); end
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#114
def shareable_constant_value_enabled?(value); end
class << self
# Identifies the most recent magic comment with valid shareable constant values
# that's in scope for this node
#
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#102
def magic_comment_in_scope(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/mutable_constant.rb#91
def recent_shareable_value?(node); end
end
end
# Checks for uses of if with a negated condition. Only ifs
# without else are considered. There are three different styles:
#
# * both
# * prefix
# * postfix
#
# @example EnforcedStyle: both (default)
# # enforces `unless` for `prefix` and `postfix` conditionals
#
# # bad
#
# if !foo
# bar
# end
#
# # good
#
# unless foo
# bar
# end
#
# # bad
#
# bar if !foo
#
# # good
#
# bar unless foo
# @example EnforcedStyle: prefix
# # enforces `unless` for just `prefix` conditionals
#
# # bad
#
# if !foo
# bar
# end
#
# # good
#
# unless foo
# bar
# end
#
# # good
#
# bar if !foo
# @example EnforcedStyle: postfix
# # enforces `unless` for just `postfix` conditionals
#
# # bad
#
# bar if !foo
#
# # good
#
# bar unless foo
#
# # good
#
# if !foo
# bar
# end
#
# source://rubocop//lib/rubocop/cop/style/negated_if.rb#71
class RuboCop::Cop::Style::NegatedIf < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::NegativeConditional
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/negated_if.rb#76
def on_if(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/negated_if.rb#92
def correct_style?(node); end
# source://rubocop//lib/rubocop/cop/style/negated_if.rb#88
def message(node); end
end
# Checks for uses of `if-else` and ternary operators with a negated condition
# which can be simplified by inverting condition and swapping branches.
#
# @example
# # bad
# if !x
# do_something
# else
# do_something_else
# end
#
# # good
# if x
# do_something_else
# else
# do_something
# end
#
# # bad
# !x ? do_something : do_something_else
#
# # good
# x ? do_something_else : do_something
#
# source://rubocop//lib/rubocop/cop/style/negated_if_else_condition.rb#30
class RuboCop::Cop::Style::NegatedIfElseCondition < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/negated_if_else_condition.rb#39
def double_negation?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/negated_if_else_condition.rb#49
def on_if(node); end
# source://rubocop//lib/rubocop/cop/style/negated_if_else_condition.rb#45
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/style/negated_if_else_condition.rb#94
def correct_negated_condition(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/negated_if_else_condition.rb#90
def corrected_ancestor?(node); end
# Collect the entire else branch, including whitespace and comments
#
# source://rubocop//lib/rubocop/cop/style/negated_if_else_condition.rb#125
def else_range(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/negated_if_else_condition.rb#68
def if_else?(node); end
# Collect the entire if branch, including whitespace and comments
#
# source://rubocop//lib/rubocop/cop/style/negated_if_else_condition.rb#116
def if_range(node); end
# source://rubocop//lib/rubocop/cop/style/negated_if_else_condition.rb#84
def message(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/negated_if_else_condition.rb#79
def negated_condition?(node); end
# source://rubocop//lib/rubocop/cop/style/negated_if_else_condition.rb#107
def swap_branches(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/negated_if_else_condition.rb#73
def unwrap_begin_nodes(node); end
class << self
# source://rubocop//lib/rubocop/cop/style/negated_if_else_condition.rb#41
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/style/negated_if_else_condition.rb#34
RuboCop::Cop::Style::NegatedIfElseCondition::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/negated_if_else_condition.rb#36
RuboCop::Cop::Style::NegatedIfElseCondition::NEGATED_EQUALITY_METHODS = T.let(T.unsafe(nil), Array)
# Checks for uses of unless with a negated condition. Only unless
# without else are considered. There are three different styles:
#
# * both
# * prefix
# * postfix
#
# @example EnforcedStyle: both (default)
# # enforces `if` for `prefix` and `postfix` conditionals
#
# # bad
# unless !foo
# bar
# end
#
# # good
# if foo
# bar
# end
#
# # bad
# bar unless !foo
#
# # good
# bar if foo
# @example EnforcedStyle: prefix
# # enforces `if` for just `prefix` conditionals
#
# # bad
# unless !foo
# bar
# end
#
# # good
# if foo
# bar
# end
#
# # good
# bar unless !foo
# @example EnforcedStyle: postfix
# # enforces `if` for just `postfix` conditionals
#
# # bad
# bar unless !foo
#
# # good
# bar if foo
#
# # good
# unless !foo
# bar
# end
#
# source://rubocop//lib/rubocop/cop/style/negated_unless.rb#61
class RuboCop::Cop::Style::NegatedUnless < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::NegativeConditional
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/negated_unless.rb#66
def on_if(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/negated_unless.rb#82
def correct_style?(node); end
# source://rubocop//lib/rubocop/cop/style/negated_unless.rb#78
def message(node); end
end
# Checks for uses of while with a negated condition.
#
# @example
# # bad
# while !foo
# bar
# end
#
# # good
# until foo
# bar
# end
#
# # bad
# bar until !foo
#
# # good
# bar while foo
# bar while !foo && baz
#
# source://rubocop//lib/rubocop/cop/style/negated_while.rb#25
class RuboCop::Cop::Style::NegatedWhile < ::RuboCop::Cop::Base
include ::RuboCop::Cop::NegativeConditional
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/negated_while.rb#29
def on_until(node); end
# source://rubocop//lib/rubocop/cop/style/negated_while.rb#29
def on_while(node); end
end
# Checks for nested `File.dirname`.
# It replaces nested `File.dirname` with the level argument introduced in Ruby 3.1.
#
# @example
#
# # bad
# File.dirname(File.dirname(path))
#
# # good
# File.dirname(path, 2)
#
# source://rubocop//lib/rubocop/cop/style/nested_file_dirname.rb#17
class RuboCop::Cop::Style::NestedFileDirname < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/nested_file_dirname.rb#28
def file_dirname?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/nested_file_dirname.rb#33
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/nested_file_dirname.rb#60
def offense_range(node); end
# source://rubocop//lib/rubocop/cop/style/nested_file_dirname.rb#49
def path_with_dir_level(node, level); end
end
# source://rubocop//lib/rubocop/cop/style/nested_file_dirname.rb#22
RuboCop::Cop::Style::NestedFileDirname::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/nested_file_dirname.rb#23
RuboCop::Cop::Style::NestedFileDirname::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for nested use of if, unless, while and until in their
# modifier form.
#
# @example
#
# # bad
# something if a if b
#
# # good
# something if b && a
#
# source://rubocop//lib/rubocop/cop/style/nested_modifier.rb#16
class RuboCop::Cop::Style::NestedModifier < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/nested_modifier.rb#22
def on_if(node); end
# source://rubocop//lib/rubocop/cop/style/nested_modifier.rb#22
def on_until(node); end
# source://rubocop//lib/rubocop/cop/style/nested_modifier.rb#22
def on_while(node); end
private
# source://rubocop//lib/rubocop/cop/style/nested_modifier.rb#85
def add_parentheses_to_method_arguments(send_node); end
# source://rubocop//lib/rubocop/cop/style/nested_modifier.rb#42
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/nested_modifier.rb#30
def check(node); end
# source://rubocop//lib/rubocop/cop/style/nested_modifier.rb#65
def left_hand_operand(node, operator); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/nested_modifier.rb#38
def modifier?(node); end
# source://rubocop//lib/rubocop/cop/style/nested_modifier.rb#51
def new_expression(inner_node); end
# source://rubocop//lib/rubocop/cop/style/nested_modifier.rb#61
def replacement_operator(keyword); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/nested_modifier.rb#94
def requires_parens?(node); end
# source://rubocop//lib/rubocop/cop/style/nested_modifier.rb#71
def right_hand_operand(node, left_hand_keyword); end
end
# source://rubocop//lib/rubocop/cop/style/nested_modifier.rb#20
RuboCop::Cop::Style::NestedModifier::MSG = T.let(T.unsafe(nil), String)
# Checks for unparenthesized method calls in the argument list
# of a parenthesized method call.
# `be`, `be_a`, `be_an`, `be_between`, `be_falsey`, `be_kind_of`, `be_instance_of`,
# `be_truthy`, `be_within`, `eq`, `eql`, `end_with`, `include`, `match`, `raise_error`,
# `respond_to`, and `start_with` methods are allowed by default.
# These are customizable with `AllowedMethods` option.
#
# @example
# # good
# method1(method2(arg))
#
# # bad
# method1(method2 arg)
# @example AllowedMethods: [foo]
# # good
# method1(foo arg)
#
# source://rubocop//lib/rubocop/cop/style/nested_parenthesized_calls.rb#24
class RuboCop::Cop::Style::NestedParenthesizedCalls < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::AllowedMethods
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/nested_parenthesized_calls.rb#35
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/nested_parenthesized_calls.rb#35
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/nested_parenthesized_calls.rb#71
def allowed?(send_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/nested_parenthesized_calls.rb#65
def allowed_omission?(send_node); end
# source://rubocop//lib/rubocop/cop/style/nested_parenthesized_calls.rb#51
def autocorrect(corrector, nested); end
class << self
# source://rubocop//lib/rubocop/cop/style/nested_parenthesized_calls.rb#31
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/style/nested_parenthesized_calls.rb#29
RuboCop::Cop::Style::NestedParenthesizedCalls::MSG = T.let(T.unsafe(nil), String)
# Checks for nested ternary op expressions.
#
# @example
# # bad
# a ? (b ? b1 : b2) : a2
#
# # good
# if a
# b ? b1 : b2
# else
# a2
# end
#
# source://rubocop//lib/rubocop/cop/style/nested_ternary_operator.rb#18
class RuboCop::Cop::Style::NestedTernaryOperator < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/nested_ternary_operator.rb#25
def on_if(node); end
private
# source://rubocop//lib/rubocop/cop/style/nested_ternary_operator.rb#40
def autocorrect(corrector, if_node); end
# source://rubocop//lib/rubocop/cop/style/nested_ternary_operator.rb#47
def remove_parentheses(source); end
# source://rubocop//lib/rubocop/cop/style/nested_ternary_operator.rb#53
def replace_loc_and_whitespace(corrector, range, replacement); end
end
# source://rubocop//lib/rubocop/cop/style/nested_ternary_operator.rb#23
RuboCop::Cop::Style::NestedTernaryOperator::MSG = T.let(T.unsafe(nil), String)
# Use `next` to skip iteration instead of a condition at the end.
#
# @example EnforcedStyle: skip_modifier_ifs (default)
# # bad
# [1, 2].each do |a|
# if a == 1
# puts a
# end
# end
#
# # good
# [1, 2].each do |a|
# next unless a == 1
# puts a
# end
#
# # good
# [1, 2].each do |a|
# puts a if a == 1
# end
# @example EnforcedStyle: always
# # With `always` all conditions at the end of an iteration needs to be
# # replaced by next - with `skip_modifier_ifs` the modifier if like
# # this one are ignored: `[1, 2].each { |a| puts a if a == 1 }`
#
# # bad
# [1, 2].each do |a|
# puts a if a == 1
# end
#
# # bad
# [1, 2].each do |a|
# if a == 1
# puts a
# end
# end
#
# # good
# [1, 2].each do |a|
# next unless a == 1
# puts a
# end
#
# source://rubocop//lib/rubocop/cop/style/next.rb#49
class RuboCop::Cop::Style::Next < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::MinBodyLength
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/next.rb#68
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/next.rb#76
def on_for(node); end
# source://rubocop//lib/rubocop/cop/style/next.rb#62
def on_new_investigation; end
# source://rubocop//lib/rubocop/cop/style/next.rb#68
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/style/next.rb#76
def on_until(node); end
# source://rubocop//lib/rubocop/cop/style/next.rb#76
def on_while(node); end
private
# source://rubocop//lib/rubocop/cop/style/next.rb#213
def actual_indent(lines, buffer); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/next.rb#112
def allowed_modifier_if?(node); end
# source://rubocop//lib/rubocop/cop/style/next.rb#155
def autocorrect_block(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/next.rb#145
def autocorrect_modifier(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/next.rb#84
def check(node); end
# source://rubocop//lib/rubocop/cop/style/next.rb#170
def cond_range(node, cond); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/next.rb#189
def end_followed_by_whitespace_only?(source_buffer, end_pos); end
# source://rubocop//lib/rubocop/cop/style/next.rb#180
def end_range(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/next.rb#98
def ends_with_condition?(body); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/next.rb#128
def exit_body_type?(node); end
# source://rubocop//lib/rubocop/cop/style/next.rb#217
def heredoc_lines(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/next.rb#120
def if_else_children?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/next.rb#124
def if_without_else?(node); end
# source://rubocop//lib/rubocop/cop/style/next.rb#140
def offense_location(offense_node); end
# source://rubocop//lib/rubocop/cop/style/next.rb#134
def offense_node(body); end
# Adjust indentation of `lines` to match `node`
#
# source://rubocop//lib/rubocop/cop/style/next.rb#204
def reindent(lines, node, corrector); end
# source://rubocop//lib/rubocop/cop/style/next.rb#224
def reindent_line(corrector, lineno, delta, buffer); end
# source://rubocop//lib/rubocop/cop/style/next.rb#193
def reindentable_lines(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/next.rb#104
def simple_if_without_break?(node); end
class << self
# source://rubocop//lib/rubocop/cop/style/next.rb#58
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/style/next.rb#56
RuboCop::Cop::Style::Next::EXIT_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/next.rb#55
RuboCop::Cop::Style::Next::MSG = T.let(T.unsafe(nil), String)
# Checks for comparison of something with nil using `==` and
# `nil?`.
#
# Supported styles are: predicate, comparison.
#
# @example EnforcedStyle: predicate (default)
#
# # bad
# if x == nil
# end
#
# # good
# if x.nil?
# end
# @example EnforcedStyle: comparison
#
# # bad
# if x.nil?
# end
#
# # good
# if x == nil
# end
#
# source://rubocop//lib/rubocop/cop/style/nil_comparison.rb#31
class RuboCop::Cop::Style::NilComparison < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/nil_comparison.rb#44
def nil_check?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/nil_comparison.rb#41
def nil_comparison?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/nil_comparison.rb#46
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/nil_comparison.rb#67
def message(_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/nil_comparison.rb#79
def prefer_comparison?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/nil_comparison.rb#71
def style_check?(node, &block); end
end
# source://rubocop//lib/rubocop/cop/style/nil_comparison.rb#36
RuboCop::Cop::Style::NilComparison::EXPLICIT_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/nil_comparison.rb#35
RuboCop::Cop::Style::NilComparison::PREDICATE_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/nil_comparison.rb#38
RuboCop::Cop::Style::NilComparison::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for lambdas and procs that always return nil,
# which can be replaced with an empty lambda or proc instead.
#
# @example
# # bad
# -> { nil }
#
# lambda do
# next nil
# end
#
# proc { nil }
#
# Proc.new do
# break nil
# end
#
# # good
# -> {}
#
# lambda do
# end
#
# -> (x) { nil if x }
#
# proc {}
#
# Proc.new { nil if x }
#
# source://rubocop//lib/rubocop/cop/style/nil_lambda.rb#35
class RuboCop::Cop::Style::NilLambda < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/nil_lambda.rb#42
def nil_return?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/nil_lambda.rb#46
def on_block(node); end
private
# source://rubocop//lib/rubocop/cop/style/nil_lambda.rb#58
def autocorrect(corrector, node); end
end
# source://rubocop//lib/rubocop/cop/style/nil_lambda.rb#39
RuboCop::Cop::Style::NilLambda::MSG = T.let(T.unsafe(nil), String)
# Checks for non-nil checks, which are usually redundant.
#
# With `IncludeSemanticChanges` set to `false` by default, this cop
# does not report offenses for `!x.nil?` and does no changes that might
# change behavior.
# Also `IncludeSemanticChanges` set to `false` with `EnforcedStyle: comparison` of
# `Style/NilComparison` cop, this cop does not report offenses for `x != nil` and
# does no changes to `!x.nil?` style.
#
# With `IncludeSemanticChanges` set to `true`, this cop reports offenses
# for `!x.nil?` and autocorrects that and `x != nil` to solely `x`, which
# is *usually* OK, but might change behavior.
#
# @example
# # bad
# if x != nil
# end
#
# # good
# if x
# end
#
# # Non-nil checks are allowed if they are the final nodes of predicate.
# # good
# def signed_in?
# !current_user.nil?
# end
# @example IncludeSemanticChanges: false (default)
# # good
# if !x.nil?
# end
# @example IncludeSemanticChanges: true
# # bad
# if !x.nil?
# end
#
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#44
class RuboCop::Cop::Style::NonNilCheck < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#59
def nil_check?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#62
def not_and_nil_check?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#53
def not_equal_to_nil?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#73
def on_def(node); end
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#73
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#64
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#56
def unless_check?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#93
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#123
def autocorrect_comparison(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#137
def autocorrect_non_nil(corrector, node, inner_node); end
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#145
def autocorrect_unless_nil(corrector, node, receiver); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#119
def include_semantic_changes?; end
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#110
def message(node); end
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#150
def nil_comparison_style; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#88
def register_offense?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#104
def unless_and_nil_check?(send_node); end
end
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#48
RuboCop::Cop::Style::NonNilCheck::MSG_FOR_REDUNDANCY = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#47
RuboCop::Cop::Style::NonNilCheck::MSG_FOR_REPLACEMENT = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/non_nil_check.rb#50
RuboCop::Cop::Style::NonNilCheck::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for uses of the keyword `not` instead of `!`.
#
# @example
#
# # bad - parentheses are required because of op precedence
# x = (not something)
#
# # good
# x = !something
#
# source://rubocop//lib/rubocop/cop/style/not.rb#16
class RuboCop::Cop::Style::Not < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/not.rb#32
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/not.rb#60
def correct_opposite_method(corrector, range, child); end
# source://rubocop//lib/rubocop/cop/style/not.rb#65
def correct_with_parens(corrector, range, node); end
# source://rubocop//lib/rubocop/cop/style/not.rb#70
def correct_without_parens(corrector, range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/not.rb#50
def opposite_method?(child); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/not.rb#54
def requires_parens?(child); end
end
# source://rubocop//lib/rubocop/cop/style/not.rb#20
RuboCop::Cop::Style::Not::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/not.rb#23
RuboCop::Cop::Style::Not::OPPOSITE_METHODS = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/style/not.rb#21
RuboCop::Cop::Style::Not::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for numbered parameters.
#
# It can either restrict the use of numbered parameters to
# single-lined blocks, or disallow completely numbered parameters.
#
# @example EnforcedStyle: allow_single_line (default)
# # bad
# collection.each do
# puts _1
# end
#
# # good
# collection.each { puts _1 }
# @example EnforcedStyle: disallow
# # bad
# collection.each { puts _1 }
#
# # good
# collection.each { |item| puts item }
#
# source://rubocop//lib/rubocop/cop/style/numbered_parameters.rb#27
class RuboCop::Cop::Style::NumberedParameters < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/numbered_parameters.rb#36
def on_numblock(node); end
end
# source://rubocop//lib/rubocop/cop/style/numbered_parameters.rb#31
RuboCop::Cop::Style::NumberedParameters::MSG_DISALLOW = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/numbered_parameters.rb#32
RuboCop::Cop::Style::NumberedParameters::MSG_MULTI_LINE = T.let(T.unsafe(nil), String)
# Detects use of an excessive amount of numbered parameters in a
# single block. Having too many numbered parameters can make code too
# cryptic and hard to read.
#
# The cop defaults to registering an offense if there is more than 1 numbered
# parameter but this maximum can be configured by setting `Max`.
#
# @example Max: 1 (default)
# # bad
# use_multiple_numbered_parameters { _1.call(_2, _3, _4) }
#
# # good
# array.each { use_array_element_as_numbered_parameter(_1) }
# hash.each { use_only_hash_value_as_numbered_parameter(_2) }
#
# source://rubocop//lib/rubocop/cop/style/numbered_parameters_limit.rb#20
class RuboCop::Cop::Style::NumberedParametersLimit < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/exclude_limit.rb#11
def max=(value); end
# source://rubocop//lib/rubocop/cop/style/numbered_parameters_limit.rb#32
def on_numblock(node); end
private
# source://rubocop//lib/rubocop/cop/style/numbered_parameters_limit.rb#49
def max_count; end
# source://rubocop//lib/rubocop/cop/style/numbered_parameters_limit.rb#43
def numbered_parameter_nodes(node); end
end
# source://rubocop//lib/rubocop/cop/style/numbered_parameters_limit.rb#24
RuboCop::Cop::Style::NumberedParametersLimit::DEFAULT_MAX_VALUE = T.let(T.unsafe(nil), Integer)
# source://rubocop//lib/rubocop/cop/style/numbered_parameters_limit.rb#29
RuboCop::Cop::Style::NumberedParametersLimit::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/numbered_parameters_limit.rb#30
RuboCop::Cop::Style::NumberedParametersLimit::NUMBERED_PARAMETER_PATTERN = T.let(T.unsafe(nil), Regexp)
# Checks for octal, hex, binary, and decimal literals using
# uppercase prefixes and corrects them to lowercase prefix
# or no prefix (in case of decimals).
#
# @example EnforcedOctalStyle: zero_with_o (default)
# # bad - missing octal prefix
# num = 01234
#
# # bad - uppercase prefix
# num = 0O1234
# num = 0X12AB
# num = 0B10101
#
# # bad - redundant decimal prefix
# num = 0D1234
# num = 0d1234
#
# # good
# num = 0o1234
# num = 0x12AB
# num = 0b10101
# num = 1234
# @example EnforcedOctalStyle: zero_only
# # bad
# num = 0o1234
# num = 0O1234
#
# # good
# num = 01234
#
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#36
class RuboCop::Cop::Style::NumericLiteralPrefix < ::RuboCop::Cop::Base
include ::RuboCop::Cop::IntegerNode
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#52
def on_int(node); end
private
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#109
def format_binary(source); end
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#113
def format_decimal(source); end
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#105
def format_hex(source); end
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#97
def format_octal(source); end
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#101
def format_octal_zero_only(source); end
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#82
def hex_bin_dec_literal_type(literal); end
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#68
def literal_type(node); end
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#64
def message(node); end
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#74
def octal_literal_type(literal); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#93
def octal_zero_only?; end
end
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#49
RuboCop::Cop::Style::NumericLiteralPrefix::BINARY_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#43
RuboCop::Cop::Style::NumericLiteralPrefix::BINARY_REGEX = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#50
RuboCop::Cop::Style::NumericLiteralPrefix::DECIMAL_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#44
RuboCop::Cop::Style::NumericLiteralPrefix::DECIMAL_REGEX = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#48
RuboCop::Cop::Style::NumericLiteralPrefix::HEX_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#42
RuboCop::Cop::Style::NumericLiteralPrefix::HEX_REGEX = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#47
RuboCop::Cop::Style::NumericLiteralPrefix::OCTAL_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#41
RuboCop::Cop::Style::NumericLiteralPrefix::OCTAL_REGEX = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#46
RuboCop::Cop::Style::NumericLiteralPrefix::OCTAL_ZERO_ONLY_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/numeric_literal_prefix.rb#40
RuboCop::Cop::Style::NumericLiteralPrefix::OCTAL_ZERO_ONLY_REGEX = T.let(T.unsafe(nil), Regexp)
# Checks for big numeric literals without `_` between groups
# of digits in them.
#
# Additional allowed patterns can be added by adding regexps to
# the `AllowedPatterns` configuration. All regexps are treated
# as anchored even if the patterns do not contain anchors (so
# `\d{4}_\d{4}` will allow `1234_5678` but not `1234_5678_9012`).
#
# NOTE: Even if `AllowedPatterns` are given, autocorrection will
# only correct to the standard pattern of an `_` every 3 digits.
#
# @example
#
# # bad
# 1000000
# 1_00_000
# 1_0000
#
# # good
# 1_000_000
# 1000
# @example Strict: false (default)
#
# # good
# 10_000_00 # typical representation of $10,000 in cents
# @example Strict: true
#
# # bad
# 10_000_00 # typical representation of $10,000 in cents
# @example AllowedNumbers: [3000]
#
# # good
# 3000 # You can specify allowed numbers. (e.g. port number)
#
# source://rubocop//lib/rubocop/cop/style/numeric_literals.rb#43
class RuboCop::Cop::Style::NumericLiterals < ::RuboCop::Cop::Base
include ::RuboCop::Cop::IntegerNode
include ::RuboCop::Cop::AllowedPattern
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/exclude_limit.rb#11
def min_digits=(value); end
# source://rubocop//lib/rubocop/cop/style/numeric_literals.rb#60
def on_float(node); end
# source://rubocop//lib/rubocop/cop/style/numeric_literals.rb#56
def on_int(node); end
private
# source://rubocop//lib/rubocop/cop/style/numeric_literals.rb#118
def allowed_numbers; end
# source://rubocop//lib/rubocop/cop/style/numeric_literals.rb#122
def allowed_patterns; end
# source://rubocop//lib/rubocop/cop/style/numeric_literals.rb#66
def check(node); end
# @param int_part [String]
#
# source://rubocop//lib/rubocop/cop/style/numeric_literals.rb#107
def format_int_part(int_part); end
# source://rubocop//lib/rubocop/cop/style/numeric_literals.rb#93
def format_number(node); end
# source://rubocop//lib/rubocop/cop/style/numeric_literals.rb#114
def min_digits; end
# source://rubocop//lib/rubocop/cop/style/numeric_literals.rb#82
def register_offense(node, &_block); end
# source://rubocop//lib/rubocop/cop/style/numeric_literals.rb#89
def short_group_regex; end
end
# source://rubocop//lib/rubocop/cop/style/numeric_literals.rb#49
RuboCop::Cop::Style::NumericLiterals::DELIMITER_REGEXP = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/style/numeric_literals.rb#48
RuboCop::Cop::Style::NumericLiterals::MSG = T.let(T.unsafe(nil), String)
# Checks for usage of comparison operators (`==`,
# `>`, `<`) to test numbers as zero, positive, or negative.
# These can be replaced by their respective predicate methods.
# This cop can also be configured to do the reverse.
#
# This cop's allowed methods can be customized with `AllowedMethods`.
# By default, there are no allowed methods.
#
# This cop disregards `#nonzero?` as its value is truthy or falsey,
# but not `true` and `false`, and thus not always interchangeable with
# `!= 0`.
#
# This cop allows comparisons to global variables, since they are often
# populated with objects which can be compared with integers, but are
# not themselves `Integer` polymorphic.
#
# @example EnforcedStyle: predicate (default)
# # bad
# foo == 0
# 0 > foo
# bar.baz > 0
#
# # good
# foo.zero?
# foo.negative?
# bar.baz.positive?
# @example EnforcedStyle: comparison
# # bad
# foo.zero?
# foo.negative?
# bar.baz.positive?
#
# # good
# foo == 0
# 0 > foo
# bar.baz > 0
# @example AllowedMethods: [] (default) with EnforcedStyle: predicate
# # bad
# foo == 0
# 0 > foo
# bar.baz > 0
# @example AllowedMethods: [==] with EnforcedStyle: predicate
# # good
# foo == 0
#
# # bad
# 0 > foo
# bar.baz > 0
# @example AllowedPatterns: [] (default) with EnforcedStyle: comparison
# # bad
# foo.zero?
# foo.negative?
# bar.baz.positive?
# @example AllowedPatterns: ['zero'] with EnforcedStyle: predicate
# # good
# # bad
# foo.zero?
#
# # bad
# foo.negative?
# bar.baz.positive?
#
# source://rubocop//lib/rubocop/cop/style/numeric_predicate.rb#78
class RuboCop::Cop::Style::NumericPredicate < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::AllowedMethods
include ::RuboCop::Cop::AllowedPattern
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/numeric_predicate.rb#174
def comparison(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/numeric_predicate.rb#179
def inverted_comparison(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/numeric_predicate.rb#90
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/numeric_predicate.rb#169
def predicate(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/numeric_predicate.rb#107
def allowed_method_name?(name); end
# source://rubocop//lib/rubocop/cop/style/numeric_predicate.rb#111
def check(node); end
# source://rubocop//lib/rubocop/cop/style/numeric_predicate.rb#154
def invert; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/numeric_predicate.rb#162
def negated?(node); end
# source://rubocop//lib/rubocop/cop/style/numeric_predicate.rb#134
def parenthesized_source(node); end
# source://rubocop//lib/rubocop/cop/style/numeric_predicate.rb#124
def replacement(node, numeric, operation); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/numeric_predicate.rb#146
def replacement_supported?(operator); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/numeric_predicate.rb#142
def require_parentheses?(node); end
end
# source://rubocop//lib/rubocop/cop/style/numeric_predicate.rb#84
RuboCop::Cop::Style::NumericPredicate::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/numeric_predicate.rb#86
RuboCop::Cop::Style::NumericPredicate::REPLACEMENTS = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/style/numeric_predicate.rb#88
RuboCop::Cop::Style::NumericPredicate::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Enforces the use of consistent method names
# `Object#yield_self` or `Object#then`.
#
# @example EnforcedStyle: then (default)
#
# # bad
# obj.yield_self { |x| x.do_something }
#
# # good
# obj.then { |x| x.do_something }
# @example EnforcedStyle: yield_self
#
# # bad
# obj.then { |x| x.do_something }
#
# # good
# obj.yield_self { |x| x.do_something }
#
# source://rubocop//lib/rubocop/cop/style/object_then.rb#25
class RuboCop::Cop::Style::ObjectThen < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/object_then.rb#34
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/object_then.rb#34
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/style/object_then.rb#40
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/object_then.rb#48
def check_method_node(node); end
# source://rubocop//lib/rubocop/cop/style/object_then.rb#70
def message(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/object_then.rb#59
def preferred_method?(node); end
end
# source://rubocop//lib/rubocop/cop/style/object_then.rb#32
RuboCop::Cop::Style::ObjectThen::MSG = T.let(T.unsafe(nil), String)
# Checks for uses of if/then/else/end constructs on a single line.
# AlwaysCorrectToMultiline config option can be set to true to auto-convert all offenses to
# multi-line constructs. When AlwaysCorrectToMultiline is false (default case) the
# autocorrect will first try converting them to ternary operators.
#
# @example
# # bad
# if foo then bar else baz end
#
# # bad
# unless foo then baz else bar end
#
# # good
# foo ? bar : baz
#
# # good
# bar if foo
#
# # good
# if foo then bar end
#
# # good
# if foo
# bar
# else
# baz
# end
#
# source://rubocop//lib/rubocop/cop/style/one_line_conditional.rb#33
class RuboCop::Cop::Style::OneLineConditional < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::OnNormalIfUnless
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/one_line_conditional.rb#42
def on_normal_if_unless(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/one_line_conditional.rb#81
def always_multiline?; end
# source://rubocop//lib/rubocop/cop/style/one_line_conditional.rb#63
def autocorrect(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/one_line_conditional.rb#85
def cannot_replace_to_ternary?(node); end
# source://rubocop//lib/rubocop/cop/style/one_line_conditional.rb#97
def expr_replacement(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/one_line_conditional.rb#118
def keyword_with_changed_precedence?(node); end
# source://rubocop//lib/rubocop/cop/style/one_line_conditional.rb#59
def message(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/one_line_conditional.rb#111
def method_call_with_changed_precedence?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/one_line_conditional.rb#103
def requires_parentheses?(node); end
# source://rubocop//lib/rubocop/cop/style/one_line_conditional.rb#71
def ternary_correction(node); end
# source://rubocop//lib/rubocop/cop/style/one_line_conditional.rb#89
def ternary_replacement(node); end
end
# source://rubocop//lib/rubocop/cop/style/one_line_conditional.rb#39
RuboCop::Cop::Style::OneLineConditional::MSG = T.let(T.unsafe(nil), String)
# Flags uses of OpenStruct, as it is now officially discouraged
# to be used for performance, version compatibility, and potential security issues.
#
# @example
#
# # bad
# point = OpenStruct.new(x: 0, y: 1)
#
# # good
# Point = Struct.new(:x, :y)
# point = Point.new(0, 1)
#
# # also good
# point = { x: 0, y: 1 }
#
# # bad
# test_double = OpenStruct.new(a: 'b')
#
# # good (assumes test using rspec-mocks)
# test_double = double
# allow(test_double).to receive(:a).and_return('b')
#
# source://rubocop//lib/rubocop/cop/style/open_struct_use.rb#44
class RuboCop::Cop::Style::OpenStructUse < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/style/open_struct_use.rb#52
def on_const(node); end
# source://rubocop//lib/rubocop/cop/style/open_struct_use.rb#48
def uses_open_struct?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/open_struct_use.rb#61
def custom_class_or_module_definition?(node); end
end
# source://rubocop//lib/rubocop/cop/style/open_struct_use.rb#45
RuboCop::Cop::Style::OpenStructUse::MSG = T.let(T.unsafe(nil), String)
# Checks for redundant dot before operator method call.
# The target operator methods are `|`, `^`, `&`, ``<=>``, `==`, `===`, `=~`, `>`, `>=`, `<`,
# ``<=``, `<<`, `>>`, `+`, `-`, `*`, `/`, `%`, `**`, `~`, `!`, `!=`, and `!~`.
#
# @example
#
# # bad
# foo.+ bar
# foo.& bar
#
# # good
# foo + bar
# foo & bar
#
# source://rubocop//lib/rubocop/cop/style/operator_method_call.rb#20
class RuboCop::Cop::Style::OperatorMethodCall < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/operator_method_call.rb#30
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/operator_method_call.rb#75
def insert_space_after?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/operator_method_call.rb#58
def invalid_syntax_argument?(argument); end
# Checks for an acceptable case of `foo.+(bar).baz`.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/operator_method_call.rb#52
def method_call_with_parenthesized_arg?(argument); end
# source://rubocop//lib/rubocop/cop/style/operator_method_call.rb#64
def wrap_in_parentheses_if_chained(corrector, node); end
end
# source://rubocop//lib/rubocop/cop/style/operator_method_call.rb#25
RuboCop::Cop::Style::OperatorMethodCall::INVALID_SYNTAX_ARG_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/operator_method_call.rb#23
RuboCop::Cop::Style::OperatorMethodCall::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/operator_method_call.rb#24
RuboCop::Cop::Style::OperatorMethodCall::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for options hashes and discourages them if the
# current Ruby version supports keyword arguments.
#
# @example
#
# # bad
# def fry(options = {})
# temperature = options.fetch(:temperature, 300)
# # ...
# end
#
# # good
# def fry(temperature: 300)
# # ...
# end
#
# source://rubocop//lib/rubocop/cop/style/option_hash.rb#22
class RuboCop::Cop::Style::OptionHash < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/style/option_hash.rb#30
def on_args(node); end
# source://rubocop//lib/rubocop/cop/style/option_hash.rb#26
def option_hash(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/option_hash.rb#39
def allowlist; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/option_hash.rb#48
def super_used?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/option_hash.rb#43
def suspicious_name?(arg_name); end
end
# source://rubocop//lib/rubocop/cop/style/option_hash.rb#23
RuboCop::Cop::Style::OptionHash::MSG = T.let(T.unsafe(nil), String)
# Checks for optional arguments to methods
# that do not come at the end of the argument list.
#
# @example
# # bad
# def foo(a = 1, b, c)
# end
#
# # good
# def baz(a, b, c = 1)
# end
#
# def foobar(a = 1, b = 2, c = 3)
# end
#
# source://rubocop//lib/rubocop/cop/style/optional_arguments.rb#24
class RuboCop::Cop::Style::OptionalArguments < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/style/optional_arguments.rb#27
def on_def(node); end
private
# source://rubocop//lib/rubocop/cop/style/optional_arguments.rb#45
def argument_positions(arguments); end
# source://rubocop//lib/rubocop/cop/style/optional_arguments.rb#33
def each_misplaced_optional_arg(arguments); end
end
# source://rubocop//lib/rubocop/cop/style/optional_arguments.rb#25
RuboCop::Cop::Style::OptionalArguments::MSG = T.let(T.unsafe(nil), String)
# Checks for places where keyword arguments can be used instead of
# boolean arguments when defining methods. `respond_to_missing?` method is allowed by default.
# These are customizable with `AllowedMethods` option.
#
# @example
# # bad
# def some_method(bar = false)
# puts bar
# end
#
# # bad - common hack before keyword args were introduced
# def some_method(options = {})
# bar = options.fetch(:bar, false)
# puts bar
# end
#
# # good
# def some_method(bar: false)
# puts bar
# end
# @example AllowedMethods: ['some_method']
# # good
# def some_method(bar = false)
# puts bar
# end
#
# source://rubocop//lib/rubocop/cop/style/optional_boolean_parameter.rb#37
class RuboCop::Cop::Style::OptionalBooleanParameter < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedMethods
# source://rubocop//lib/rubocop/cop/style/optional_boolean_parameter.rb#43
def on_def(node); end
# source://rubocop//lib/rubocop/cop/style/optional_boolean_parameter.rb#43
def on_defs(node); end
private
# source://rubocop//lib/rubocop/cop/style/optional_boolean_parameter.rb#56
def format_message(argument); end
end
# source://rubocop//lib/rubocop/cop/style/optional_boolean_parameter.rb#40
RuboCop::Cop::Style::OptionalBooleanParameter::MSG = T.let(T.unsafe(nil), String)
# Checks for potential usage of the `||=` operator.
#
# @example
# # bad
# name = name ? name : 'Bozhidar'
#
# # bad
# name = if name
# name
# else
# 'Bozhidar'
# end
#
# # bad
# unless name
# name = 'Bozhidar'
# end
#
# # bad
# name = 'Bozhidar' unless name
#
# # good - set name to 'Bozhidar', only if it's nil or false
# name ||= 'Bozhidar'
#
# source://rubocop//lib/rubocop/cop/style/or_assignment.rb#29
class RuboCop::Cop::Style::OrAssignment < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/or_assignment.rb#57
def on_cvasgn(node); end
# source://rubocop//lib/rubocop/cop/style/or_assignment.rb#57
def on_gvasgn(node); end
# source://rubocop//lib/rubocop/cop/style/or_assignment.rb#51
def on_if(node); end
# source://rubocop//lib/rubocop/cop/style/or_assignment.rb#57
def on_ivasgn(node); end
# source://rubocop//lib/rubocop/cop/style/or_assignment.rb#57
def on_lvasgn(node); end
# source://rubocop//lib/rubocop/cop/style/or_assignment.rb#35
def ternary_assignment?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/or_assignment.rb#44
def unless_assignment?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/or_assignment.rb#70
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/or_assignment.rb#80
def take_variable_and_default_from_ternary(node); end
# source://rubocop//lib/rubocop/cop/style/or_assignment.rb#85
def take_variable_and_default_from_unless(node); end
end
# source://rubocop//lib/rubocop/cop/style/or_assignment.rb#32
RuboCop::Cop::Style::OrAssignment::MSG = T.let(T.unsafe(nil), String)
# Checks for simple usages of parallel assignment.
# This will only complain when the number of variables
# being assigned matched the number of assigning variables.
#
# @example
# # bad
# a, b, c = 1, 2, 3
# a, b, c = [1, 2, 3]
#
# # good
# one, two = *foo
# a, b = foo()
# a, b = b, a
#
# a = 1
# b = 2
# c = 3
#
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#25
class RuboCop::Cop::Style::ParallelAssignment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RescueNode
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#124
def implicit_self_getter?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#31
def on_masgn(node); end
private
# Converts (send nil :something) nodes to (send (:self) :something).
# This makes the sorting algorithm work for expressions such as
# `self.a, self.b = b, a`.
#
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#117
def add_self_to_getters(right_elements); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#64
def allowed_lhs?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#58
def allowed_masign?(lhs_elements, rhs_elements); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#72
def allowed_rhs?(node); end
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#84
def assignment_corrector(node, rhs, order); end
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#49
def autocorrect(corrector, node, lhs, rhs); end
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#100
def find_valid_order(left_elements, right_elements); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#183
def modifier_statement?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#80
def return_of_method_call?(node); end
end
# Helper class necessitated by silly design of TSort prior to Ruby 2.1
# Newer versions have a better API, but that doesn't help us
#
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#128
class RuboCop::Cop::Style::ParallelAssignment::AssignmentSorter
include ::TSort
extend ::RuboCop::AST::NodePattern::Macros
# @return [AssignmentSorter] a new instance of AssignmentSorter
#
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#141
def initialize(assignments); end
# `lhs` is an assignment method call like `obj.attr=` or `ary[idx]=`.
# Does `rhs` access the same value which is assigned by `lhs`?
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#170
def accesses?(rhs, lhs); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#163
def dependency?(lhs, rhs); end
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#139
def matching_calls(param0, param1, param2); end
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#149
def tsort_each_child(assignment); end
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#145
def tsort_each_node(*_arg0, **_arg1, &_arg2); end
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#136
def uses_var?(param0, param1); end
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#133
def var_name(param0 = T.unsafe(nil)); end
end
# An internal class for correcting parallel assignment
#
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#190
class RuboCop::Cop::Style::ParallelAssignment::GenericCorrector
include ::RuboCop::Cop::Alignment
# @return [GenericCorrector] a new instance of GenericCorrector
#
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#195
def initialize(node, rhs, modifier, config, new_elements); end
# Returns the value of attribute config.
#
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#193
def config; end
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#203
def correction; end
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#207
def correction_range; end
# Returns the value of attribute node.
#
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#193
def node; end
# Returns the value of attribute rescue_result.
#
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#193
def rescue_result; end
# Returns the value of attribute rhs.
#
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#193
def rhs; end
protected
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#213
def assignment; end
private
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#234
def cop_config; end
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#230
def extract_sources(node); end
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#219
def source(node, loc); end
end
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#29
RuboCop::Cop::Style::ParallelAssignment::MSG = T.let(T.unsafe(nil), String)
# An internal class for correcting parallel assignment
# guarded by if, unless, while, or until
#
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#276
class RuboCop::Cop::Style::ParallelAssignment::ModifierCorrector < ::RuboCop::Cop::Style::ParallelAssignment::GenericCorrector
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#277
def correction; end
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#286
def correction_range; end
private
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#292
def modifier_range(node); end
end
# An internal class for correcting parallel assignment
# protected by rescue
#
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#241
class RuboCop::Cop::Style::ParallelAssignment::RescueCorrector < ::RuboCop::Cop::Style::ParallelAssignment::GenericCorrector
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#242
def correction; end
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#253
def correction_range; end
private
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#264
def begin_correction(rescue_result); end
# source://rubocop//lib/rubocop/cop/style/parallel_assignment.rb#259
def def_correction(rescue_result); end
end
# Checks for the presence of superfluous parentheses around the
# condition of if/unless/while/until.
#
# `AllowSafeAssignment` option for safe assignment.
# By safe assignment we mean putting parentheses around
# an assignment to indicate "I know I'm using an assignment
# as a condition. It's not a mistake."
#
# @example
# # bad
# x += 1 while (x < 10)
# foo unless (bar || baz)
#
# if (x > 10)
# elsif (x < 3)
# end
#
# # good
# x += 1 while x < 10
# foo unless bar || baz
#
# if x > 10
# elsif x < 3
# end
# @example AllowSafeAssignment: true (default)
# # good
# foo unless (bar = baz)
# @example AllowSafeAssignment: false
# # bad
# foo unless (bar = baz)
# @example AllowInMultilineConditions: false (default)
# # bad
# if (x > 10 &&
# y > 10)
# end
#
# # good
# if x > 10 &&
# y > 10
# end
# @example AllowInMultilineConditions: true
# # good
# if (x > 10 &&
# y > 10)
# end
#
# source://rubocop//lib/rubocop/cop/style/parentheses_around_condition.rb#56
class RuboCop::Cop::Style::ParenthesesAroundCondition < ::RuboCop::Cop::Base
include ::RuboCop::Cop::SafeAssignment
include ::RuboCop::Cop::Parentheses
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/parentheses_around_condition.rb#76
def control_op_condition(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/parentheses_around_condition.rb#62
def on_if(node); end
# source://rubocop//lib/rubocop/cop/style/parentheses_around_condition.rb#68
def on_until(node); end
# source://rubocop//lib/rubocop/cop/style/parentheses_around_condition.rb#68
def on_while(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/parentheses_around_condition.rb#130
def allow_multiline_conditions?; end
# source://rubocop//lib/rubocop/cop/style/parentheses_around_condition.rb#118
def message(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/parentheses_around_condition.rb#111
def modifier_op?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/parentheses_around_condition.rb#124
def parens_allowed?(node); end
# source://rubocop//lib/rubocop/cop/style/parentheses_around_condition.rb#80
def process_control_op(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/parentheses_around_condition.rb#96
def require_parentheses?(node, condition_body); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/parentheses_around_condition.rb#103
def semicolon_separated_expressions?(first_exp, rest_exps); end
end
# Enforces the consistent usage of `%`-literal delimiters.
#
# Specify the 'default' key to set all preferred delimiters at once. You
# can continue to specify individual preferred delimiters to override the
# default.
#
# @example
# # Style/PercentLiteralDelimiters:
# # PreferredDelimiters:
# # default: '[]'
# # '%i': '()'
#
# # good
# %w[alpha beta] + %i(gamma delta)
#
# # bad
# %W(alpha #{beta})
#
# # bad
# %I(alpha beta)
#
# source://rubocop//lib/rubocop/cop/style/percent_literal_delimiters.rb#26
class RuboCop::Cop::Style::PercentLiteralDelimiters < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::PercentLiteral
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/percent_literal_delimiters.rb#30
def on_array(node); end
# source://rubocop//lib/rubocop/cop/style/percent_literal_delimiters.rb#38
def on_dstr(node); end
# source://rubocop//lib/rubocop/cop/style/percent_literal_delimiters.rb#34
def on_regexp(node); end
# source://rubocop//lib/rubocop/cop/style/percent_literal_delimiters.rb#38
def on_str(node); end
# source://rubocop//lib/rubocop/cop/style/percent_literal_delimiters.rb#43
def on_sym(node); end
# source://rubocop//lib/rubocop/cop/style/percent_literal_delimiters.rb#47
def on_xstr(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/percent_literal_delimiters.rb#93
def contains_delimiter?(node, delimiters); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/percent_literal_delimiters.rb#82
def contains_preferred_delimiter?(node, type); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/percent_literal_delimiters.rb#86
def include_same_character_as_used_for_delimiter?(node, type); end
# source://rubocop//lib/rubocop/cop/style/percent_literal_delimiters.rb#107
def matchpairs(begin_delimiter); end
# source://rubocop//lib/rubocop/cop/style/percent_literal_delimiters.rb#67
def message(type); end
# source://rubocop//lib/rubocop/cop/style/percent_literal_delimiters.rb#53
def on_percent_literal(node); end
# source://rubocop//lib/rubocop/cop/style/percent_literal_delimiters.rb#74
def preferred_delimiters_for(type); end
# source://rubocop//lib/rubocop/cop/style/percent_literal_delimiters.rb#99
def string_source(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/percent_literal_delimiters.rb#78
def uses_preferred_delimiter?(node, type); end
end
# Checks for usage of the %Q() syntax when %q() would do.
#
# @example EnforcedStyle: lower_case_q (default)
# # The `lower_case_q` style prefers `%q` unless
# # interpolation is needed.
# # bad
# %Q[Mix the foo into the baz.]
# %Q(They all said: 'Hooray!')
#
# # good
# %q[Mix the foo into the baz]
# %q(They all said: 'Hooray!')
# @example EnforcedStyle: upper_case_q
# # The `upper_case_q` style requires the sole use of `%Q`.
# # bad
# %q/Mix the foo into the baz./
# %q{They all said: 'Hooray!'}
#
# # good
# %Q/Mix the foo into the baz./
# %Q{They all said: 'Hooray!'}
#
# source://rubocop//lib/rubocop/cop/style/percent_q_literals.rb#28
class RuboCop::Cop::Style::PercentQLiterals < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::PercentLiteral
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/percent_q_literals.rb#36
def on_str(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/percent_q_literals.rb#55
def correct_literal_style?(node); end
# source://rubocop//lib/rubocop/cop/style/percent_q_literals.rb#64
def corrected(src); end
# source://rubocop//lib/rubocop/cop/style/percent_q_literals.rb#60
def message(_range); end
# source://rubocop//lib/rubocop/cop/style/percent_q_literals.rb#42
def on_percent_literal(node); end
end
# source://rubocop//lib/rubocop/cop/style/percent_q_literals.rb#33
RuboCop::Cop::Style::PercentQLiterals::LOWER_CASE_Q_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/percent_q_literals.rb#34
RuboCop::Cop::Style::PercentQLiterals::UPPER_CASE_Q_MSG = T.let(T.unsafe(nil), String)
# Looks for uses of Perl-style regexp match
# backreferences and their English versions like
# $1, $2, $&, &+, $MATCH, $PREMATCH, etc.
#
# @example
# # bad
# puts $1
#
# # good
# puts Regexp.last_match(1)
#
# source://rubocop//lib/rubocop/cop/style/perl_backrefs.rb#16
class RuboCop::Cop::Style::PerlBackrefs < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/perl_backrefs.rb#21
def on_back_ref(node); end
# source://rubocop//lib/rubocop/cop/style/perl_backrefs.rb#25
def on_gvar(node); end
# source://rubocop//lib/rubocop/cop/style/perl_backrefs.rb#29
def on_nth_ref(node); end
private
# @param node [RuboCop::AST::Node]
# @private
# @return [String]
#
# source://rubocop//lib/rubocop/cop/style/perl_backrefs.rb#99
def constant_prefix(node); end
# @param node [RuboCop::AST::Node]
# @private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/perl_backrefs.rb#38
def derived_from_braceless_interpolation?(node); end
# @param node [RuboCop::AST::Node]
# @param preferred_expression [String]
# @private
# @return [String]
#
# source://rubocop//lib/rubocop/cop/style/perl_backrefs.rb#46
def format_message(node:, preferred_expression:); end
# @param node [RuboCop::AST::Node]
# @private
#
# source://rubocop//lib/rubocop/cop/style/perl_backrefs.rb#109
def on_back_ref_or_gvar_or_nth_ref(node); end
# @param node [RuboCop::AST::Node]
# @private
# @return [String]
#
# source://rubocop//lib/rubocop/cop/style/perl_backrefs.rb#58
def original_expression_of(node); end
# @param node [RuboCop::AST::Node]
# @private
# @return [String, nil]
#
# source://rubocop//lib/rubocop/cop/style/perl_backrefs.rb#70
def preferred_expression_to(node); end
# @param node [RuboCop::AST::Node]
# @private
# @return [String, nil]
#
# source://rubocop//lib/rubocop/cop/style/perl_backrefs.rb#89
def preferred_expression_to_node_with_constant_prefix(node); end
end
# source://rubocop//lib/rubocop/cop/style/perl_backrefs.rb#19
RuboCop::Cop::Style::PerlBackrefs::MESSAGE_FORMAT = T.let(T.unsafe(nil), String)
# Checks for uses of methods `Hash#has_key?` and
# `Hash#has_value?`, and suggests using `Hash#key?` and `Hash#value?` instead.
#
# It is configurable to enforce the verbose method names, by using the
# `EnforcedStyle: verbose` configuration.
#
# @example EnforcedStyle: short (default)
# # bad
# Hash#has_key?
# Hash#has_value?
#
# # good
# Hash#key?
# Hash#value?
# @example EnforcedStyle: verbose
# # bad
# Hash#key?
# Hash#value?
#
# # good
# Hash#has_key?
# Hash#has_value?
#
# source://rubocop//lib/rubocop/cop/style/preferred_hash_methods.rb#33
class RuboCop::Cop::Style::PreferredHashMethods < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/preferred_hash_methods.rb#43
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/preferred_hash_methods.rb#43
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/preferred_hash_methods.rb#56
def message(method_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/preferred_hash_methods.rb#68
def offending_selector?(method_name); end
# source://rubocop//lib/rubocop/cop/style/preferred_hash_methods.rb#60
def proper_method_name(method_name); end
end
# source://rubocop//lib/rubocop/cop/style/preferred_hash_methods.rb#37
RuboCop::Cop::Style::PreferredHashMethods::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/preferred_hash_methods.rb#39
RuboCop::Cop::Style::PreferredHashMethods::OFFENDING_SELECTORS = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/style/preferred_hash_methods.rb#41
RuboCop::Cop::Style::PreferredHashMethods::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for uses of Proc.new where Kernel#proc
# would be more appropriate.
#
# @example
# # bad
# p = Proc.new { |n| puts n }
#
# # good
# p = proc { |n| puts n }
#
# source://rubocop//lib/rubocop/cop/style/proc.rb#16
class RuboCop::Cop::Style::Proc < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/proc.rb#25
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/proc.rb#25
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/style/proc.rb#22
def proc_new?(param0 = T.unsafe(nil)); end
end
# source://rubocop//lib/rubocop/cop/style/proc.rb#19
RuboCop::Cop::Style::Proc::MSG = T.let(T.unsafe(nil), String)
# Checks if the quotes used for quoted symbols match the configured defaults.
# By default uses the same configuration as `Style/StringLiterals`; if that
# cop is not enabled, the default `EnforcedStyle` is `single_quotes`.
#
# String interpolation is always kept in double quotes.
#
# NOTE: `Lint/SymbolConversion` can be used in parallel to ensure that symbols
# are not quoted that don't need to be. This cop is for configuring the quoting
# style to use for symbols that require quotes.
#
# @example EnforcedStyle: same_as_string_literals (default) / single_quotes
# # bad
# :"abc-def"
#
# # good
# :'abc-def'
# :"#{str}"
# :"a\'b"
# @example EnforcedStyle: double_quotes
# # bad
# :'abc-def'
#
# # good
# :"abc-def"
# :"#{str}"
# :"a\'b"
#
# source://rubocop//lib/rubocop/cop/style/quoted_symbols.rb#33
class RuboCop::Cop::Style::QuotedSymbols < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::SymbolHelp
include ::RuboCop::Cop::StringLiteralsHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/quoted_symbols.rb#44
def on_sym(node); end
private
# source://rubocop//lib/rubocop/cop/style/quoted_symbols.rb#106
def alternative_style; end
# source://rubocop//lib/rubocop/cop/style/quoted_symbols.rb#71
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/quoted_symbols.rb#88
def correct_quotes(str); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/quoted_symbols.rb#83
def hash_colon_key?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/quoted_symbols.rb#61
def invalid_double_quotes?(source); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/quoted_symbols.rb#110
def quoted?(sym_node); end
# source://rubocop//lib/rubocop/cop/style/quoted_symbols.rb#99
def style; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/quoted_symbols.rb#114
def wrong_quotes?(node); end
end
# source://rubocop//lib/rubocop/cop/style/quoted_symbols.rb#41
RuboCop::Cop::Style::QuotedSymbols::MSG_DOUBLE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/quoted_symbols.rb#39
RuboCop::Cop::Style::QuotedSymbols::MSG_SINGLE = T.let(T.unsafe(nil), String)
# Checks the args passed to `fail` and `raise`. For exploded
# style (default), it recommends passing the exception class and message
# to `raise`, rather than construct an instance of the error. It will
# still allow passing just a message, or the construction of an error
# with more than one argument.
#
# The exploded style works identically, but with the addition that it
# will also suggest constructing error objects when the exception is
# passed multiple arguments.
#
# The exploded style has an `AllowedCompactTypes` configuration
# option that takes an Array of exception name Strings.
#
# @example EnforcedStyle: exploded (default)
# # bad
# raise StandardError.new('message')
#
# # good
# raise StandardError, 'message'
# fail 'message'
# raise MyCustomError
# raise MyCustomError.new(arg1, arg2, arg3)
# raise MyKwArgError.new(key1: val1, key2: val2)
#
# # With `AllowedCompactTypes` set to ['MyWrappedError']
# raise MyWrappedError.new(obj)
# raise MyWrappedError.new(obj), 'message'
# @example EnforcedStyle: compact
# # bad
# raise StandardError, 'message'
# raise RuntimeError, arg1, arg2, arg3
#
# # good
# raise StandardError.new('message')
# raise MyCustomError
# raise MyCustomError.new(arg1, arg2, arg3)
# fail 'message'
#
# source://rubocop//lib/rubocop/cop/style/raise_args.rb#47
class RuboCop::Cop::Style::RaiseArgs < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/raise_args.rb#56
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/raise_args.rb#132
def acceptable_exploded_args?(args); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/raise_args.rb#146
def allowed_non_exploded_type?(arg); end
# source://rubocop//lib/rubocop/cop/style/raise_args.rb#95
def check_compact(node); end
# source://rubocop//lib/rubocop/cop/style/raise_args.rb#111
def check_exploded(node); end
# source://rubocop//lib/rubocop/cop/style/raise_args.rb#69
def correction_compact_to_exploded(node); end
# source://rubocop//lib/rubocop/cop/style/raise_args.rb#81
def correction_exploded_to_compact(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/raise_args.rb#152
def requires_parens?(parent); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/raise_args.rb#128
def use_new_method?(first_arg); end
end
# source://rubocop//lib/rubocop/cop/style/raise_args.rb#52
RuboCop::Cop::Style::RaiseArgs::COMPACT_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/raise_args.rb#51
RuboCop::Cop::Style::RaiseArgs::EXPLODED_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/raise_args.rb#54
RuboCop::Cop::Style::RaiseArgs::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for the use of randomly generated numbers,
# added/subtracted with integer literals, as well as those with
# Integer#succ and Integer#pred methods. Prefer using ranges instead,
# as it clearly states the intentions.
#
# @example
# # bad
# rand(6) + 1
# 1 + rand(6)
# rand(6) - 1
# 1 - rand(6)
# rand(6).succ
# rand(6).pred
# Random.rand(6) + 1
# Kernel.rand(6) + 1
# rand(0..5) + 1
#
# # good
# rand(1..6)
# rand(1...7)
#
# source://rubocop//lib/rubocop/cop/style/random_with_offset.rb#26
class RuboCop::Cop::Style::RandomWithOffset < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/random_with_offset.rb#33
def integer_op_rand?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/random_with_offset.rb#63
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/random_with_offset.rb#54
def rand_modified?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/random_with_offset.rb#43
def rand_op_integer?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/random_with_offset.rb#73
def random_call(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/random_with_offset.rb#147
def to_int(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/random_with_offset.rb#78
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/random_with_offset.rb#135
def boundaries_from_random_node(random_node); end
# source://rubocop//lib/rubocop/cop/style/random_with_offset.rb#88
def corrected_integer_op_rand(node); end
# source://rubocop//lib/rubocop/cop/style/random_with_offset.rb#118
def corrected_rand_modified(node); end
# source://rubocop//lib/rubocop/cop/style/random_with_offset.rb#103
def corrected_rand_op_integer(node); end
# source://rubocop//lib/rubocop/cop/style/random_with_offset.rb#131
def prefix_from_prefix_node(node); end
end
# source://rubocop//lib/rubocop/cop/style/random_with_offset.rb#29
RuboCop::Cop::Style::RandomWithOffset::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/random_with_offset.rb#30
RuboCop::Cop::Style::RandomWithOffset::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for a redundant argument passed to certain methods.
#
# NOTE: This cop is limited to methods with single parameter.
#
# Method names and their redundant arguments can be configured like this:
#
# [source,yaml]
# ----
# Methods:
# join: ''
# sum: 0
# split: ' '
# chomp: "\n"
# chomp!: "\n"
# foo: 2
# ----
#
# @example
# # bad
# array.join('')
# [1, 2, 3].join("")
# array.sum(0)
# exit(true)
# exit!(false)
# string.split(" ")
# "first\nsecond".split(" ")
# string.chomp("\n")
# string.chomp!("\n")
# A.foo(2)
#
# # good
# array.join
# [1, 2, 3].join
# array.sum
# exit
# exit!
# string.split
# "first second".split
# string.chomp
# string.chomp!
# A.foo
#
# source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#57
class RuboCop::Cop::Style::RedundantArgument < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#64
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#64
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#108
def argument_matched?(target_argument, redundant_argument); end
# source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#100
def argument_range(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#120
def exclude_cntrl_character?(target_argument, redundant_argument); end
# source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#93
def redundant_arg_for_method(method_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#80
def redundant_argument?(node); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#61
RuboCop::Cop::Style::RedundantArgument::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_argument.rb#62
RuboCop::Cop::Style::RedundantArgument::NO_RECEIVER_METHODS = T.let(T.unsafe(nil), Array)
# Checks for the instantiation of array using redundant `Array` constructor.
# Autocorrect replaces to array literal which is the simplest and fastest.
#
# @example
#
# # bad
# Array.new([])
# Array[]
# Array([])
# Array.new(['foo', 'foo', 'foo'])
# Array['foo', 'foo', 'foo']
# Array(['foo', 'foo', 'foo'])
#
# # good
# []
# ['foo', 'foo', 'foo']
# Array.new(3, 'foo')
# Array.new(3) { 'foo' }
#
# source://rubocop//lib/rubocop/cop/style/redundant_array_constructor.rb#25
class RuboCop::Cop::Style::RedundantArrayConstructor < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_array_constructor.rb#47
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_array_constructor.rb#33
def redundant_array_constructor(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/redundant_array_constructor.rb#69
def register_offense(range, node, replacement); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_array_constructor.rb#28
RuboCop::Cop::Style::RedundantArrayConstructor::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_array_constructor.rb#30
RuboCop::Cop::Style::RedundantArrayConstructor::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for redundant assignment before returning.
#
# @example
# # bad
# def test
# x = foo
# x
# end
#
# # bad
# def test
# if x
# z = foo
# z
# elsif y
# z = bar
# z
# end
# end
#
# # good
# def test
# foo
# end
#
# # good
# def test
# if x
# foo
# elsif y
# bar
# end
# end
#
# source://rubocop//lib/rubocop/cop/style/redundant_assignment.rb#40
class RuboCop::Cop::Style::RedundantAssignment < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_assignment.rb#50
def on_def(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_assignment.rb#50
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_assignment.rb#46
def redundant_assignment?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/redundant_assignment.rb#99
def check_begin_node(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_assignment.rb#58
def check_branch(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_assignment.rb#79
def check_case_match_node(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_assignment.rb#74
def check_case_node(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_assignment.rb#95
def check_ensure_node(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_assignment.rb#84
def check_if_node(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_assignment.rb#91
def check_rescue_node(node); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_assignment.rb#43
RuboCop::Cop::Style::RedundantAssignment::MSG = T.let(T.unsafe(nil), String)
# Checks for redundant `begin` blocks.
#
# Currently it checks for code like this:
#
# @example
#
# # bad
# def redundant
# begin
# ala
# bala
# rescue StandardError => e
# something
# end
# end
#
# # good
# def preferred
# ala
# bala
# rescue StandardError => e
# something
# end
#
# # bad
# begin
# do_something
# end
#
# # good
# do_something
#
# # bad
# # When using Ruby 2.5 or later.
# do_something do
# begin
# something
# rescue => ex
# anything
# end
# end
#
# # good
# # In Ruby 2.5 or later, you can omit `begin` in `do-end` block.
# do_something do
# something
# rescue => ex
# anything
# end
#
# # good
# # Stabby lambdas don't support implicit `begin` in `do-end` blocks.
# -> do
# begin
# foo
# rescue Bar
# baz
# end
# end
#
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#65
class RuboCop::Cop::Style::RedundantBegin < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#76
def offensive_kwbegins(param0); end
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#88
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#80
def on_def(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#80
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#99
def on_kwbegin(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#88
def on_numblock(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#107
def allowable_kwbegin?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#181
def begin_block_has_multiline_statements?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#173
def condition_range(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#185
def contain_rescue_or_ensure?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#166
def correct_modifier_form_after_multiline_begin_block(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#177
def empty_begin?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#114
def register_offense(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#143
def remove_begin(corrector, offense_range, node); end
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#131
def replace_begin_with_statement(corrector, offense_range, node); end
# Restore comments that occur between "begin" and "first_child".
# These comments will be moved to above the assignment line.
#
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#153
def restore_removed_comments(corrector, offense_range, node, first_child); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#160
def use_modifier_form_after_multiline_begin_block?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#198
def valid_begin_assignment?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#191
def valid_context_using_only_begin?(node); end
class << self
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#71
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/style/redundant_begin.rb#69
RuboCop::Cop::Style::RedundantBegin::MSG = T.let(T.unsafe(nil), String)
# Checks for usage of the %W() syntax when %w() would do.
#
# @example
# # bad
# %W(cat dog pig)
# %W[door wall floor]
#
# # good
# %w/swim run bike/
# %w[shirt pants shoes]
# %W(apple #{fruit} grape)
#
# source://rubocop//lib/rubocop/cop/style/redundant_capital_w.rb#17
class RuboCop::Cop::Style::RedundantCapitalW < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::PercentLiteral
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_capital_w.rb#23
def on_array(node); end
private
# source://rubocop//lib/rubocop/cop/style/redundant_capital_w.rb#29
def on_percent_literal(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_capital_w.rb#38
def requires_interpolation?(node); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_capital_w.rb#21
RuboCop::Cop::Style::RedundantCapitalW::MSG = T.let(T.unsafe(nil), String)
# Checks for unnecessary conditional expressions.
#
# @example
# # bad
# a = b ? b : c
#
# # good
# a = b || c
#
# # bad
# if b
# b
# else
# c
# end
#
# # good
# b || c
#
# # good
# if b
# b
# elsif cond
# c
# end
#
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#32
class RuboCop::Cop::Style::RedundantCondition < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#43
def on_if(node); end
private
# If the argument is using an operator, it is an invalid syntax.
# e.g. `foo || *bar`, `foo || **bar`, and `foo || &bar`.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#167
def argument_with_operator?(argument); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#142
def asgn_type?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#132
def branches_have_assignment?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#146
def branches_have_method?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#240
def correct_ternary(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#187
def else_source(else_branch, arithmetic_operation); end
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#213
def else_source_if_has_assignment(else_branch); end
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#203
def else_source_if_has_method(else_branch); end
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#175
def if_source(if_branch, arithmetic_operation); end
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#223
def make_ternary_form(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#64
def message(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#79
def offense?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#72
def range_of_offense(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#88
def redundant_condition?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#255
def require_braces?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#248
def require_parentheses?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#161
def same_method?(if_branch, else_branch); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#155
def single_argument_method?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#104
def synonymous_condition_and_branch?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#259
def use_arithmetic_operation?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#100
def use_hash_key_access?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#96
def use_hash_key_assignment?(else_branch); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#92
def use_if_branch?(else_branch); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#263
def without_argument_parentheses_method?(node); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#38
RuboCop::Cop::Style::RedundantCondition::ARGUMENT_WITH_OPERATOR_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#36
RuboCop::Cop::Style::RedundantCondition::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_condition.rb#37
RuboCop::Cop::Style::RedundantCondition::REDUNDANT_CONDITION = T.let(T.unsafe(nil), String)
# Checks for redundant returning of true/false in conditionals.
#
# @example
# # bad
# x == y ? true : false
#
# # bad
# if x == y
# true
# else
# false
# end
#
# # good
# x == y
#
# # bad
# x == y ? false : true
#
# # good
# x != y
#
# source://rubocop//lib/rubocop/cop/style/redundant_conditional.rb#27
class RuboCop::Cop::Style::RedundantConditional < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_conditional.rb#36
def on_if(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_conditional.rb#56
def redundant_condition?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/redundant_conditional.rb#61
def redundant_condition_inverted?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/redundant_conditional.rb#78
def indented_else_node(expression, node); end
# source://rubocop//lib/rubocop/cop/style/redundant_conditional.rb#48
def message(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_conditional.rb#65
def offense?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_conditional.rb#71
def replacement_condition(node); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_conditional.rb#32
RuboCop::Cop::Style::RedundantConditional::COMPARISON_OPERATOR_MATCHER = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_conditional.rb#34
RuboCop::Cop::Style::RedundantConditional::MSG = T.let(T.unsafe(nil), String)
# Avoid redundant `::` prefix on constant.
#
# How Ruby searches constant is a bit complicated, and it can often be difficult to
# understand from the code whether the `::` is intended or not. Where `Module.nesting`
# is empty, there is no need to prepend `::`, so it would be nice to consistently
# avoid such meaningless `::` prefix to avoid confusion.
#
# NOTE: This cop is disabled if `Lint/ConstantResolution` cop is enabled to prevent
# conflicting rules. Because it respects user configurations that want to enable
# `Lint/ConstantResolution` cop which is disabled by default.
#
# @example
# # bad
# ::Const
#
# # good
# Const
#
# # bad
# class << self
# ::Const
# end
#
# # good
# class << self
# Const
# end
#
# # good
# class A
# ::Const
# end
#
# # good
# module A
# ::Const
# end
#
# source://rubocop//lib/rubocop/cop/style/redundant_constant_base.rb#43
class RuboCop::Cop::Style::RedundantConstantBase < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_constant_base.rb#48
def on_cbase(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_constant_base.rb#67
def bad?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_constant_base.rb#63
def lint_constant_resolution_config; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_constant_base.rb#59
def lint_constant_resolution_cop_enabled?; end
# source://rubocop//lib/rubocop/cop/style/redundant_constant_base.rb#71
def module_nesting_ancestors_of(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_constant_base.rb#77
def used_in_super_class_part?(node, class_node:); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_constant_base.rb#46
RuboCop::Cop::Style::RedundantConstantBase::MSG = T.let(T.unsafe(nil), String)
# Checks for uses a redundant current directory in path.
#
# @example
#
# # bad
# require_relative './path/to/feature'
#
# # good
# require_relative 'path/to/feature'
#
# source://rubocop//lib/rubocop/cop/style/redundant_current_directory_in_path.rb#16
class RuboCop::Cop::Style::RedundantCurrentDirectoryInPath < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_current_directory_in_path.rb#24
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_current_directory_in_path.rb#22
RuboCop::Cop::Style::RedundantCurrentDirectoryInPath::CURRENT_DIRECTORY_PATH = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_current_directory_in_path.rb#20
RuboCop::Cop::Style::RedundantCurrentDirectoryInPath::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_current_directory_in_path.rb#21
RuboCop::Cop::Style::RedundantCurrentDirectoryInPath::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for redundant uses of double splat hash braces.
#
# @example
#
# # bad
# do_something(**{foo: bar, baz: qux})
#
# # good
# do_something(foo: bar, baz: qux)
#
# # bad
# do_something(**{foo: bar, baz: qux}.merge(options))
#
# # good
# do_something(foo: bar, baz: qux, **options)
#
# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#22
class RuboCop::Cop::Style::RedundantDoubleSplatHashBraces < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#29
def on_hash(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#45
def allowed_double_splat_receiver?(kwsplat); end
# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#55
def autocorrect(corrector, node, kwsplat); end
# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#89
def autocorrect_merge_methods(corrector, merge_methods, kwsplat); end
# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#85
def closing_brace(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#111
def convert_to_new_arguments(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#107
def extract_send_methods(kwsplat); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#123
def mergeable?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#81
def opening_brace(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#100
def range_of_merge_methods(merge_methods); end
# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#66
def root_receiver(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#75
def select_merge_method_nodes(kwsplat); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#26
RuboCop::Cop::Style::RedundantDoubleSplatHashBraces::MERGE_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/redundant_double_splat_hash_braces.rb#25
RuboCop::Cop::Style::RedundantDoubleSplatHashBraces::MSG = T.let(T.unsafe(nil), String)
# Checks for redundant `each`.
#
# @example
#
# # bad
# array.each.each { |v| do_something(v) }
#
# # good
# array.each { |v| do_something(v) }
#
# # bad
# array.each.each_with_index { |v, i| do_something(v, i) }
#
# # good
# array.each.with_index { |v, i| do_something(v, i) }
# array.each_with_index { |v, i| do_something(v, i) }
#
# # bad
# array.each.each_with_object { |v, o| do_something(v, o) }
#
# # good
# array.each.with_object { |v, o| do_something(v, o) }
# array.each_with_object { |v, o| do_something(v, o) }
#
# source://rubocop//lib/rubocop/cop/style/redundant_each.rb#34
class RuboCop::Cop::Style::RedundantEach < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_each.rb#43
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_each.rb#43
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/redundant_each.rb#96
def message(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_each.rb#86
def range(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_each.rb#64
def redundant_each_method(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_each.rb#107
def remove_redundant_each(corrector, range, redundant_node); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_each.rb#37
RuboCop::Cop::Style::RedundantEach::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_each.rb#38
RuboCop::Cop::Style::RedundantEach::MSG_WITH_INDEX = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_each.rb#39
RuboCop::Cop::Style::RedundantEach::MSG_WITH_OBJECT = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_each.rb#41
RuboCop::Cop::Style::RedundantEach::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for RuntimeError as the argument of raise/fail.
#
# @example
# # bad
# raise RuntimeError, 'message'
# raise RuntimeError.new('message')
#
# # good
# raise 'message'
#
# # bad - message is not a string
# raise RuntimeError, Object.new
# raise RuntimeError.new(Object.new)
#
# # good
# raise Object.new.to_s
#
# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#23
class RuboCop::Cop::Style::RedundantException < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#79
def compact?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#74
def exploded?(param0 = T.unsafe(nil)); end
# Switch `raise RuntimeError, 'message'` to `raise 'message'`, and
# `raise RuntimeError.new('message')` to `raise 'message'`.
#
# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#33
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#57
def fix_compact(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#39
def fix_exploded(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#65
def replaced_compact(message); end
# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#47
def replaced_exploded(node, command, message); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#53
def string_message?(message); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#26
RuboCop::Cop::Style::RedundantException::MSG_1 = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#27
RuboCop::Cop::Style::RedundantException::MSG_2 = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_exception.rb#29
RuboCop::Cop::Style::RedundantException::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Identifies places where `fetch(key) { value }` can be replaced by `fetch(key, value)`.
#
# In such cases `fetch(key, value)` method is faster than `fetch(key) { value }`.
#
# NOTE: The block string `'value'` in `hash.fetch(:key) { 'value' }` is detected
# but not when disabled.
#
# @example SafeForConstants: false (default)
# # bad
# hash.fetch(:key) { 5 }
# hash.fetch(:key) { true }
# hash.fetch(:key) { nil }
# array.fetch(5) { :value }
# ENV.fetch(:key) { 'value' }
#
# # good
# hash.fetch(:key, 5)
# hash.fetch(:key, true)
# hash.fetch(:key, nil)
# array.fetch(5, :value)
# ENV.fetch(:key, 'value')
# @example SafeForConstants: true
# # bad
# ENV.fetch(:key) { VALUE }
#
# # good
# ENV.fetch(:key, VALUE)
#
# source://rubocop//lib/rubocop/cop/style/redundant_fetch_block.rb#40
class RuboCop::Cop::Style::RedundantFetchBlock < ::RuboCop::Cop::Base
include ::RuboCop::Cop::FrozenStringLiteral
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_fetch_block.rb#55
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_fetch_block.rb#89
def rails_cache?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/redundant_fetch_block.rb#48
def redundant_fetch_block_candidate?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_fetch_block.rb#74
def basic_literal?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_fetch_block.rb#104
def build_bad_method(send, body); end
# source://rubocop//lib/rubocop/cop/style/redundant_fetch_block.rb#97
def build_good_method(send, body); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_fetch_block.rb#111
def check_for_constant?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_fetch_block.rb#115
def check_for_string?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_fetch_block.rb#78
def const_type?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_fetch_block.rb#93
def fetch_range(send, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_fetch_block.rb#82
def should_not_check?(send, body); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_fetch_block.rb#45
RuboCop::Cop::Style::RedundantFetchBlock::MSG = T.let(T.unsafe(nil), String)
# Checks for the presence of superfluous `.rb` extension in
# the filename provided to `require` and `require_relative`.
#
# NOTE: If the extension is omitted, Ruby tries adding '.rb', '.so',
# and so on to the name until found. If the file named cannot be found,
# a `LoadError` will be raised.
# There is an edge case where `foo.so` file is loaded instead of a `LoadError`
# if `foo.so` file exists when `require 'foo.rb'` will be changed to `require 'foo'`,
# but that seems harmless.
#
# @example
# # bad
# require 'foo.rb'
# require_relative '../foo.rb'
#
# # good
# require 'foo'
# require 'foo.so'
# require_relative '../foo'
# require_relative '../foo.so'
#
# source://rubocop//lib/rubocop/cop/style/redundant_file_extension_in_require.rb#27
class RuboCop::Cop::Style::RedundantFileExtensionInRequire < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_file_extension_in_require.rb#39
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_file_extension_in_require.rb#35
def require_call?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/redundant_file_extension_in_require.rb#53
def extension_range(name_node); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_file_extension_in_require.rb#31
RuboCop::Cop::Style::RedundantFileExtensionInRequire::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_file_extension_in_require.rb#32
RuboCop::Cop::Style::RedundantFileExtensionInRequire::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Identifies usages of `any?`, `empty?` or `none?` predicate methods
# chained to `select`/`filter`/`find_all` and change them to use predicate method instead.
#
# @example
# # bad
# arr.select { |x| x > 1 }.any?
#
# # good
# arr.any? { |x| x > 1 }
#
# # bad
# arr.select { |x| x > 1 }.empty?
# arr.select { |x| x > 1 }.none?
#
# # good
# arr.none? { |x| x > 1 }
#
# # good
# relation.select(:name).any?
# arr.select { |x| x > 1 }.any?(&:odd?)
# @example AllCops:ActiveSupportExtensionsEnabled: false (default)
# # good
# arr.select { |x| x > 1 }.many?
#
# # good
# arr.select { |x| x > 1 }.present?
# @example AllCops:ActiveSupportExtensionsEnabled: true
# # bad
# arr.select { |x| x > 1 }.many?
#
# # good
# arr.many? { |x| x > 1 }
#
# # bad
# arr.select { |x| x > 1 }.present?
#
# # good
# arr.any? { |x| x > 1 }
#
# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#53
class RuboCop::Cop::Style::RedundantFilterChain < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#81
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#81
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#62
def select_predicate?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#108
def offense_range(select_node, predicate_node); end
# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#112
def predicate_range(predicate_node); end
# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#94
def register_offense(select_node, predicate_node); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#56
RuboCop::Cop::Style::RedundantFilterChain::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#58
RuboCop::Cop::Style::RedundantFilterChain::RAILS_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#71
RuboCop::Cop::Style::RedundantFilterChain::REPLACEMENT_METHODS = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/style/redundant_filter_chain.rb#59
RuboCop::Cop::Style::RedundantFilterChain::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Check for uses of `Object#freeze` on immutable objects.
#
# NOTE: Regexp and Range literals are frozen objects since Ruby 3.0.
#
# NOTE: From Ruby 3.0, this cop allows explicit freezing of interpolated
# string literals when `# frozen-string-literal: true` is used.
#
# @example
# # bad
# CONST = 1.freeze
#
# # good
# CONST = 1
#
# source://rubocop//lib/rubocop/cop/style/redundant_freeze.rb#19
class RuboCop::Cop::Style::RedundantFreeze < ::RuboCop::Cop::Base
include ::RuboCop::Cop::FrozenStringLiteral
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_freeze.rb#26
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_freeze.rb#57
def operation_produces_immutable_object?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_freeze.rb#39
def immutable_literal?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_freeze.rb#48
def strip_parenthesis(node); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_freeze.rb#23
RuboCop::Cop::Style::RedundantFreeze::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_freeze.rb#24
RuboCop::Cop::Style::RedundantFreeze::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for redundant heredoc delimiter quotes.
#
# @example
#
# # bad
# do_something(<<~'EOS')
# no string interpolation style text
# EOS
#
# # good
# do_something(<<~EOS)
# no string interpolation style text
# EOS
#
# do_something(<<~'EOS')
# #{string_interpolation_style_text_not_evaluated}
# EOS
#
# do_something(<<~'EOS')
# Preserve \
# newlines
# EOS
#
# source://rubocop//lib/rubocop/cop/style/redundant_heredoc_delimiter_quotes.rb#29
class RuboCop::Cop::Style::RedundantHeredocDelimiterQuotes < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Heredoc
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_heredoc_delimiter_quotes.rb#36
def on_heredoc(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_heredoc_delimiter_quotes.rb#48
def need_heredoc_delimiter_quotes?(node); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_heredoc_delimiter_quotes.rb#33
RuboCop::Cop::Style::RedundantHeredocDelimiterQuotes::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_heredoc_delimiter_quotes.rb#34
RuboCop::Cop::Style::RedundantHeredocDelimiterQuotes::STRING_INTERPOLATION_OR_ESCAPED_CHARACTER_PATTERN = T.let(T.unsafe(nil), Regexp)
# Checks for `initialize` methods that are redundant.
#
# An initializer is redundant if it does not do anything, or if it only
# calls `super` with the same arguments given to it. If the initializer takes
# an argument that accepts multiple values (`restarg`, `kwrestarg`, etc.) it
# will not register an offense, because it allows the initializer to take a different
# number of arguments as its superclass potentially does.
#
# NOTE: If an initializer argument has a default value, RuboCop assumes it
# to *not* be redundant.
#
# NOTE: Empty initializers are registered as offenses, but it is possible
# to purposely create an empty `initialize` method to override a superclass's
# initializer.
#
# @example
# # bad
# def initialize
# end
#
# # bad
# def initialize
# super
# end
#
# # bad
# def initialize(a, b)
# super
# end
#
# # bad
# def initialize(a, b)
# super(a, b)
# end
#
# # good
# def initialize
# do_something
# end
#
# # good
# def initialize
# do_something
# super
# end
#
# # good (different number of parameters)
# def initialize(a, b)
# super(a)
# end
#
# # good (default value)
# def initialize(a, b = 5)
# super
# end
#
# # good (default value)
# def initialize(a, b: 5)
# super
# end
#
# # good (changes the parameter requirements)
# def initialize(*)
# end
#
# # good (changes the parameter requirements)
# def initialize(**)
# end
#
# # good (changes the parameter requirements)
# def initialize(...)
# end
# @example AllowComments: true (default)
#
# # good
# def initialize
# # Overriding to negate superclass `initialize` method.
# end
# @example AllowComments: false
#
# # bad
# def initialize
# # Overriding to negate superclass `initialize` method.
# end
#
# source://rubocop//lib/rubocop/cop/style/redundant_initialize.rb#97
class RuboCop::Cop::Style::RedundantInitialize < ::RuboCop::Cop::Base
include ::RuboCop::Cop::CommentsHelp
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_initialize.rb#106
def initialize_forwards?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/redundant_initialize.rb#110
def on_def(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_initialize.rb#134
def acceptable?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_initialize.rb#142
def allow_comments?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_initialize.rb#138
def forwards?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_initialize.rb#128
def register_offense(node, message); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_initialize.rb#148
def same_args?(super_node, args); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_initialize.rb#102
RuboCop::Cop::Style::RedundantInitialize::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_initialize.rb#103
RuboCop::Cop::Style::RedundantInitialize::MSG_EMPTY = T.let(T.unsafe(nil), String)
# Checks for strings that are just an interpolated expression.
#
# @example
#
# # bad
# "#{@var}"
#
# # good
# @var.to_s
#
# # good if @var is already a String
# @var
#
# source://rubocop//lib/rubocop/cop/style/redundant_interpolation.rb#39
class RuboCop::Cop::Style::RedundantInterpolation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::PercentLiteral
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_interpolation.rb#49
def on_dstr(node); end
private
# source://rubocop//lib/rubocop/cop/style/redundant_interpolation.rb#122
def autocorrect_other(corrector, embedded_node, node); end
# source://rubocop//lib/rubocop/cop/style/redundant_interpolation.rb#105
def autocorrect_single_variable_interpolation(corrector, embedded_node, node); end
# source://rubocop//lib/rubocop/cop/style/redundant_interpolation.rb#99
def autocorrect_variable_interpolation(corrector, embedded_node, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_interpolation.rb#95
def embedded_in_percent_array?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_interpolation.rb#91
def implicit_concatenation?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_interpolation.rb#83
def interpolation?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_interpolation.rb#132
def require_parentheses?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_interpolation.rb#67
def single_interpolation?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_interpolation.rb#74
def single_variable_interpolation?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_interpolation.rb#87
def variable_interpolation?(node); end
class << self
# source://rubocop//lib/rubocop/cop/style/redundant_interpolation.rb#45
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/style/redundant_interpolation.rb#43
RuboCop::Cop::Style::RedundantInterpolation::MSG = T.let(T.unsafe(nil), String)
# Before Ruby 3.0, interpolated strings followed the frozen string literal
# magic comment which sometimes made it necessary to explicitly unfreeze them.
# Ruby 3.0 changed interpolated strings to always be unfrozen which makes
# unfreezing them redundant.
#
# @example
# # bad
# +"#{foo} bar"
#
# # bad
# "#{foo} bar".dup
#
# # good
# "#{foo} bar"
#
# source://rubocop//lib/rubocop/cop/style/redundant_interpolation_unfreeze.rb#21
class RuboCop::Cop::Style::RedundantInterpolationUnfreeze < ::RuboCop::Cop::Base
include ::RuboCop::Cop::FrozenStringLiteral
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/redundant_interpolation_unfreeze.rb#32
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_interpolation_unfreeze.rb#26
RuboCop::Cop::Style::RedundantInterpolationUnfreeze::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_interpolation_unfreeze.rb#28
RuboCop::Cop::Style::RedundantInterpolationUnfreeze::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Check for redundant line continuation.
#
# This cop marks a line continuation as redundant if removing the backslash
# does not result in a syntax error.
# However, a backslash at the end of a comment or
# for string concatenation is not redundant and is not considered an offense.
#
# @example
# # bad
# foo. \
# bar
# foo \
# &.bar \
# .baz
#
# # good
# foo.
# bar
# foo
# &.bar
# .baz
#
# # bad
# [foo, \
# bar]
# {foo: \
# bar}
#
# # good
# [foo,
# bar]
# {foo:
# bar}
#
# # bad
# foo(bar, \
# baz)
#
# # good
# foo(bar,
# baz)
#
# # also good - backslash in string concatenation is not redundant
# foo('bar' \
# 'baz')
#
# # also good - backslash at the end of a comment is not redundant
# foo(bar, # \
# baz)
#
# # also good - backslash at the line following the newline begins with a + or -,
# # it is not redundant
# 1 \
# + 2 \
# - 3
#
# # also good - backslash with newline between the method name and its arguments,
# # it is not redundant.
# some_method \
# (argument)
#
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#67
class RuboCop::Cop::Style::RedundantLineContinuation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::MatchRange
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#81
def on_new_investigation; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#201
def argument_is_method?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#165
def argument_newline?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#106
def ends_with_backslash_without_comment?(source_line); end
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#181
def find_node_for_line(last_line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#150
def inside_string_literal?(range, token); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#114
def inside_string_literal_or_method_with_argument?(range); end
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#139
def inspect_eof_line_continuation; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#122
def leading_dot_method_chain_with_blank_line?(range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#208
def method_call_with_arguments?(node); end
# A method call without parentheses such as the following cannot remove `\`:
#
# do_something \
# argument
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#158
def method_with_argument?(current_token, next_token); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#128
def redundant_line_continuation?(range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#98
def require_line_continuation?(range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#187
def same_line?(node, line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#212
def start_with_arithmetic_operator?(source_line); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#110
def string_concatenation?(source_line); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#74
RuboCop::Cop::Style::RedundantLineContinuation::ALLOWED_STRING_TOKENS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#79
RuboCop::Cop::Style::RedundantLineContinuation::ARGUMENT_TAKING_FLOW_TOKEN_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#75
RuboCop::Cop::Style::RedundantLineContinuation::ARGUMENT_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#72
RuboCop::Cop::Style::RedundantLineContinuation::LINE_CONTINUATION = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#73
RuboCop::Cop::Style::RedundantLineContinuation::LINE_CONTINUATION_PATTERN = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/style/redundant_line_continuation.rb#71
RuboCop::Cop::Style::RedundantLineContinuation::MSG = T.let(T.unsafe(nil), String)
# Checks for redundant parentheses.
#
# @example
#
# # bad
# (x) if ((y.z).nil?)
#
# # good
# x if y.z.nil?
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#16
class RuboCop::Cop::Style::RedundantParentheses < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Parentheses
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#32
def allowed_pin_operator?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#261
def first_send_argument?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#266
def first_super_argument?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#271
def first_yield_argument?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#166
def interpolation?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#26
def method_node_and_args(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#34
def on_begin(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#29
def rescue?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#23
def square_brackets?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#168
def allow_in_multiline_conditions?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#64
def allowed_ancestor?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#57
def allowed_expression?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#69
def allowed_multiple_expression?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#78
def allowed_ternary?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#275
def call_chain_starts_with_int?(begin_node, send_node); end
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#127
def check(begin_node); end
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#175
def check_send(begin_node, node); end
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#185
def check_unary(begin_node, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#209
def disallowed_literal?(begin_node, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#281
def do_end_block_in_method_chain?(begin_node, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#105
def empty_parentheses?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#138
def find_offense_message(begin_node, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#110
def first_arg_begins_with_hash_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#250
def first_argument?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#50
def ignore_syntax?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#205
def keyword_ancestor?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#224
def keyword_with_redundant_parentheses?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#91
def like_method_argument_parentheses?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#237
def method_call_with_redundant_parentheses?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#119
def method_chain_begins_with_hash_literal(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#98
def multiline_control_flow_statements?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#195
def offense(node, msg); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#246
def only_begin_arg?(args); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#42
def parens_allowed?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#213
def raised_to_power_negative_numeric?(begin_node, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#201
def suspect_unary?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#84
def ternary_parentheses_required?; end
end
# source://rubocop//lib/rubocop/cop/style/redundant_parentheses.rb#20
RuboCop::Cop::Style::RedundantParentheses::ALLOWED_NODE_TYPES = T.let(T.unsafe(nil), Array)
# Checks for usage of the %q/%Q syntax when '' or "" would do.
#
# @example
#
# # bad
# name = %q(Bruce Wayne)
# time = %q(8 o'clock)
# question = %q("What did you say?")
#
# # good
# name = 'Bruce Wayne'
# time = "8 o'clock"
# question = '"What did you say?"'
#
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#20
class RuboCop::Cop::Style::RedundantPercentQ < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#34
def on_dstr(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#40
def on_str(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#99
def acceptable_capital_q?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#91
def acceptable_q?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#67
def allowed_percent_q?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#51
def check(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#63
def interpolated_quotes?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#72
def message(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#87
def start_with_percent_q_variant?(string); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#82
def string_literal?(node); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#25
RuboCop::Cop::Style::RedundantPercentQ::DYNAMIC_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#28
RuboCop::Cop::Style::RedundantPercentQ::EMPTY = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#32
RuboCop::Cop::Style::RedundantPercentQ::ESCAPED_NON_BACKSLASH = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#23
RuboCop::Cop::Style::RedundantPercentQ::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#30
RuboCop::Cop::Style::RedundantPercentQ::PERCENT_CAPITAL_Q = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#29
RuboCop::Cop::Style::RedundantPercentQ::PERCENT_Q = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#27
RuboCop::Cop::Style::RedundantPercentQ::QUOTE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#26
RuboCop::Cop::Style::RedundantPercentQ::SINGLE_QUOTE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_percent_q.rb#31
RuboCop::Cop::Style::RedundantPercentQ::STRING_INTERPOLATION_REGEXP = T.let(T.unsafe(nil), Regexp)
# Identifies places where argument can be replaced from
# a deterministic regexp to a string.
#
# @example
# # bad
# 'foo'.byteindex(/f/)
# 'foo'.byterindex(/f/)
# 'foo'.gsub(/f/, 'x')
# 'foo'.gsub!(/f/, 'x')
# 'foo'.partition(/f/)
# 'foo'.rpartition(/f/)
# 'foo'.scan(/f/)
# 'foo'.split(/f/)
# 'foo'.start_with?(/f/)
# 'foo'.sub(/f/, 'x')
# 'foo'.sub!(/f/, 'x')
#
# # good
# 'foo'.byteindex('f')
# 'foo'.byterindex('f')
# 'foo'.gsub('f', 'x')
# 'foo'.gsub!('f', 'x')
# 'foo'.partition('f')
# 'foo'.rpartition('f')
# 'foo'.scan('f')
# 'foo'.split('f')
# 'foo'.start_with?('f')
# 'foo'.sub('f', 'x')
# 'foo'.sub!('f', 'x')
#
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_argument.rb#35
class RuboCop::Cop::Style::RedundantRegexpArgument < ::RuboCop::Cop::Base
include ::RuboCop::Cop::StringLiteralsHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_argument.rb#48
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_argument.rb#48
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_argument.rb#65
def determinist_regexp?(regexp_node); end
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_argument.rb#69
def preferred_argument(regexp_node); end
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_argument.rb#84
def replacement(regexp_node); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_argument.rb#43
RuboCop::Cop::Style::RedundantRegexpArgument::DETERMINISTIC_REGEX = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_argument.rb#39
RuboCop::Cop::Style::RedundantRegexpArgument::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_argument.rb#40
RuboCop::Cop::Style::RedundantRegexpArgument::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_argument.rb#44
RuboCop::Cop::Style::RedundantRegexpArgument::STR_SPECIAL_CHARS = T.let(T.unsafe(nil), Array)
# Checks for unnecessary single-element Regexp character classes.
#
# @example
#
# # bad
# r = /[x]/
#
# # good
# r = /x/
#
# # bad
# r = /[\s]/
#
# # good
# r = /\s/
#
# # bad
# r = %r{/[b]}
#
# # good
# r = %r{/b}
#
# # good
# r = /[ab]/
#
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_character_class.rb#30
class RuboCop::Cop::Style::RedundantRegexpCharacterClass < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_character_class.rb#37
def on_regexp(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_character_class.rb#101
def backslash_b?(elem); end
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_character_class.rb#53
def each_redundant_character_class(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_character_class.rb#61
def each_single_element_character_class(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_character_class.rb#83
def multiple_codepoints?(expression); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_character_class.rb#107
def octal_requiring_char_class?(elem); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_character_class.rb#72
def redundant_single_element_character_class?(node, char_class); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_character_class.rb#113
def requires_escape_outside_char_class?(elem); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_character_class.rb#95
def whitespace_in_free_space_mode?(node, elem); end
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_character_class.rb#87
def without_character_class(loc); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_character_class.rb#34
RuboCop::Cop::Style::RedundantRegexpCharacterClass::MSG_REDUNDANT_CHARACTER_CLASS = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_character_class.rb#33
RuboCop::Cop::Style::RedundantRegexpCharacterClass::REQUIRES_ESCAPE_OUTSIDE_CHAR_CLASS_CHARS = T.let(T.unsafe(nil), Array)
# Checks for the instantiation of regexp using redundant `Regexp.new` or `Regexp.compile`.
# Autocorrect replaces to regexp literal which is the simplest and fastest.
#
# @example
#
# # bad
# Regexp.new(/regexp/)
# Regexp.compile(/regexp/)
#
# # good
# /regexp/
# Regexp.new('regexp')
# Regexp.compile('regexp')
#
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_constructor.rb#20
class RuboCop::Cop::Style::RedundantRegexpConstructor < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_constructor.rb#33
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_constructor.rb#27
def redundant_regexp_constructor(param0 = T.unsafe(nil)); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_constructor.rb#23
RuboCop::Cop::Style::RedundantRegexpConstructor::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_constructor.rb#24
RuboCop::Cop::Style::RedundantRegexpConstructor::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for redundant escapes inside Regexp literals.
#
# @example
# # bad
# %r{foo\/bar}
#
# # good
# %r{foo/bar}
#
# # good
# /foo\/bar/
#
# # good
# %r/foo\/bar/
#
# # good
# %r!foo\!bar!
#
# # bad
# /a\-b/
#
# # good
# /a-b/
#
# # bad
# /[\+\-]\d/
#
# # good
# /[+\-]\d/
#
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_escape.rb#35
class RuboCop::Cop::Style::RedundantRegexpEscape < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_escape.rb#45
def on_regexp(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_escape.rb#60
def allowed_escape?(node, char, index, within_character_class); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_escape.rb#76
def char_class_begins_or_ends_with_escaped_hyphen?(node, index); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_escape.rb#92
def delimiter?(node, char); end
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_escape.rb#98
def each_escape(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_escape.rb#110
def escape_range_at_index(node, index); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_escape.rb#41
RuboCop::Cop::Style::RedundantRegexpEscape::ALLOWED_ALWAYS_ESCAPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_escape.rb#43
RuboCop::Cop::Style::RedundantRegexpEscape::ALLOWED_OUTSIDE_CHAR_CLASS_METACHAR_ESCAPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_escape.rb#42
RuboCop::Cop::Style::RedundantRegexpEscape::ALLOWED_WITHIN_CHAR_CLASS_METACHAR_ESCAPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/redundant_regexp_escape.rb#39
RuboCop::Cop::Style::RedundantRegexpEscape::MSG_REDUNDANT_ESCAPE = T.let(T.unsafe(nil), String)
# Checks for redundant `return` expressions.
#
# @example
# # These bad cases should be extended to handle methods whose body is
# # if/else or a case expression with a default branch.
#
# # bad
# def test
# return something
# end
#
# # bad
# def test
# one
# two
# three
# return something
# end
#
# # bad
# def test
# return something if something_else
# end
#
# # good
# def test
# something if something_else
# end
#
# # good
# def test
# if x
# elsif y
# else
# end
# end
# @example AllowMultipleReturnValues: false (default)
# # bad
# def test
# return x, y
# end
# @example AllowMultipleReturnValues: true
# # good
# def test
# return x, y
# end
#
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#55
class RuboCop::Cop::Style::RedundantReturn < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#69
def on_def(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#69
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#63
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#104
def add_braces(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#99
def add_brackets(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#175
def allow_multiple_return_values?; end
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#170
def check_begin_node(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#110
def check_branch(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#144
def check_case_match_node(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#139
def check_case_node(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#165
def check_ensure_node(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#149
def check_if_node(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#161
def check_resbody_node(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#156
def check_rescue_node(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#127
def check_return_node(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#80
def correct_with_arguments(return_node, corrector); end
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#76
def correct_without_arguments(return_node, corrector); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#95
def hash_without_braces?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#179
def message(node); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#59
RuboCop::Cop::Style::RedundantReturn::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#60
RuboCop::Cop::Style::RedundantReturn::MULTI_RETURN_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_return.rb#61
RuboCop::Cop::Style::RedundantReturn::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for redundant uses of `self`.
#
# The usage of `self` is only needed when:
#
# * Sending a message to same object with zero arguments in
# presence of a method name clash with an argument or a local
# variable.
#
# * Calling an attribute writer to prevent a local variable assignment.
#
# Note, with using explicit self you can only send messages with public or
# protected scope, you cannot send private messages this way.
#
# Note we allow uses of `self` with operators because it would be awkward
# otherwise. Also allows the use of `self.it` without arguments in blocks,
# as in `0.times { self.it }`, following `Lint/ItWithoutArgumentsInBlock` cop.
#
# @example
#
# # bad
# def foo(bar)
# self.baz
# end
#
# # good
# def foo(bar)
# self.bar # Resolves name clash with the argument.
# end
#
# def foo
# bar = 1
# self.bar # Resolves name clash with the local variable.
# end
#
# def foo
# %w[x y z].select do |bar|
# self.bar == bar # Resolves name clash with argument of the block.
# end
# end
#
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#45
class RuboCop::Cop::Style::RedundantSelf < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# @return [RedundantSelf] a new instance of RedundantSelf
#
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#60
def initialize(config = T.unsafe(nil), options = T.unsafe(nil)); end
# Assignment of self.x
#
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#68
def on_and_asgn(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#86
def on_args(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#120
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#90
def on_blockarg(node); end
# Using self.x to distinguish from local variable x
#
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#81
def on_def(node); end
# Using self.x to distinguish from local variable x
#
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#81
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#126
def on_if(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#104
def on_in_pattern(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#99
def on_lvasgn(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#94
def on_masgn(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#120
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#74
def on_op_asgn(node); end
# Assignment of self.x
#
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#68
def on_or_asgn(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#108
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#126
def on_until(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#126
def on_while(node); end
private
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#196
def add_lhs_to_local_variables_scopes(rhs, lhs); end
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#204
def add_masgn_lhs_variables(rhs, lhs); end
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#210
def add_match_var_scopes(in_pattern_node); end
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#144
def add_scope(node, local_variables = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#190
def allow_self(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#150
def allowed_send_node?(node); end
# Respects `Lint/ItWithoutArgumentsInBlock` cop and the following Ruby 3.3's warning:
#
# $ ruby -e '0.times { begin; it; end }'
# -e:1: warning: `it` calls without arguments will refer to the first block param in
# Ruby 3.4; use it() or self.it
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#165
def it_method_in_block?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#181
def on_argument(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#173
def regular_method_call?(node); end
class << self
# source://rubocop-rails/2.27.0/lib/rubocop-rails.rb#38
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#49
RuboCop::Cop::Style::RedundantSelf::KERNEL_METHODS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#50
RuboCop::Cop::Style::RedundantSelf::KEYWORDS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/redundant_self.rb#48
RuboCop::Cop::Style::RedundantSelf::MSG = T.let(T.unsafe(nil), String)
# Checks for places where redundant assignments are made for in place
# modification methods.
#
# @example
# # bad
# args = args.concat(ary)
# hash = hash.merge!(other)
#
# # good
# args.concat(foo)
# args += foo
# hash.merge!(other)
#
# # bad
# self.foo = foo.concat(ary)
#
# # good
# foo.concat(ary)
# self.foo += ary
#
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment.rb#31
class RuboCop::Cop::Style::RedundantSelfAssignment < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment.rb#52
def on_cvasgn(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment.rb#52
def on_gvasgn(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment.rb#52
def on_ivasgn(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment.rb#52
def on_lvasgn(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment.rb#69
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment.rb#96
def redundant_nonself_assignment?(param0 = T.unsafe(nil), param1, param2); end
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment.rb#86
def redundant_self_assignment?(param0 = T.unsafe(nil), param1); end
private
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment.rb#112
def correction_range(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment.rb#81
def method_returning_self?(method_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment.rb#105
def redundant_assignment?(node); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment.rb#45
RuboCop::Cop::Style::RedundantSelfAssignment::ASSIGNMENT_TYPE_TO_RECEIVER_TYPE = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment.rb#38
RuboCop::Cop::Style::RedundantSelfAssignment::METHODS_RETURNING_SELF = T.let(T.unsafe(nil), Set)
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment.rb#35
RuboCop::Cop::Style::RedundantSelfAssignment::MSG = T.let(T.unsafe(nil), String)
# Checks for places where conditional branch makes redundant self-assignment.
#
# It only detects local variable because it may replace state of instance variable,
# class variable, and global variable that have state across methods with `nil`.
#
# @example
#
# # bad
# foo = condition ? bar : foo
#
# # good
# foo = bar if condition
#
# # bad
# foo = condition ? foo : bar
#
# # good
# foo = bar unless condition
#
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment_branch.rb#25
class RuboCop::Cop::Style::RedundantSelfAssignmentBranch < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment_branch.rb#32
def bad_method?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment_branch.rb#36
def on_lvasgn(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment_branch.rb#59
def inconvertible_to_modifier?(if_branch, else_branch); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment_branch.rb#64
def multiple_statements?(branch); end
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment_branch.rb#74
def register_offense(if_node, offense_branch, opposite_branch, keyword); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment_branch.rb#70
def self_assign?(variable, branch); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment_branch.rb#53
def use_if_and_else_branch?(expression); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_self_assignment_branch.rb#29
RuboCop::Cop::Style::RedundantSelfAssignmentBranch::MSG = T.let(T.unsafe(nil), String)
# Identifies instances of sorting and then
# taking only the first or last element. The same behavior can
# be accomplished without a relatively expensive sort by using
# `Enumerable#min` instead of sorting and taking the first
# element and `Enumerable#max` instead of sorting and taking the
# last element. Similarly, `Enumerable#min_by` and
# `Enumerable#max_by` can replace `Enumerable#sort_by` calls
# after which only the first or last element is used.
#
# @example
# # bad
# [2, 1, 3].sort.first
# [2, 1, 3].sort[0]
# [2, 1, 3].sort.at(0)
# [2, 1, 3].sort.slice(0)
#
# # good
# [2, 1, 3].min
#
# # bad
# [2, 1, 3].sort.last
# [2, 1, 3].sort[-1]
# [2, 1, 3].sort.at(-1)
# [2, 1, 3].sort.slice(-1)
#
# # good
# [2, 1, 3].max
#
# # bad
# arr.sort_by(&:foo).first
# arr.sort_by(&:foo)[0]
# arr.sort_by(&:foo).at(0)
# arr.sort_by(&:foo).slice(0)
#
# # good
# arr.min_by(&:foo)
#
# # bad
# arr.sort_by(&:foo).last
# arr.sort_by(&:foo)[-1]
# arr.sort_by(&:foo).at(-1)
# arr.sort_by(&:foo).slice(-1)
#
# # good
# arr.max_by(&:foo)
#
# source://rubocop//lib/rubocop/cop/style/redundant_sort.rb#79
class RuboCop::Cop::Style::RedundantSort < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_sort.rb#104
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_sort.rb#104
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_sort.rb#88
def redundant_sort?(param0 = T.unsafe(nil)); end
private
# This gets the start of the accessor whether it has a dot
# (e.g. `.first`) or doesn't (e.g. `[0]`)
#
# source://rubocop//lib/rubocop/cop/style/redundant_sort.rb#193
def accessor_start(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_sort.rb#183
def arg_node(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_sort.rb#187
def arg_value(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_sort.rb#148
def autocorrect(corrector, node, sort_node, sorter, accessor); end
# source://rubocop//lib/rubocop/cop/style/redundant_sort.rb#166
def base(accessor, arg); end
# source://rubocop//lib/rubocop/cop/style/redundant_sort.rb#115
def find_redundant_sort(*nodes); end
# source://rubocop//lib/rubocop/cop/style/redundant_sort.rb#136
def message(node, sorter, accessor); end
# source://rubocop//lib/rubocop/cop/style/redundant_sort.rb#132
def offense_range(sort_node, node); end
# source://rubocop//lib/rubocop/cop/style/redundant_sort.rb#125
def register_offense(node, sort_node, sorter, accessor); end
# source://rubocop//lib/rubocop/cop/style/redundant_sort.rb#157
def replace_with_logical_operator(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/redundant_sort.rb#174
def suffix(sorter); end
# source://rubocop//lib/rubocop/cop/style/redundant_sort.rb#162
def suggestion(sorter, accessor, arg); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_sort.rb#201
def with_logical_operator?(node); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_sort.rb#83
RuboCop::Cop::Style::RedundantSort::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_sort.rb#85
RuboCop::Cop::Style::RedundantSort::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Identifies places where `sort_by { ... }` can be replaced by
# `sort`.
#
# @example
# # bad
# array.sort_by { |x| x }
# array.sort_by do |var|
# var
# end
#
# # good
# array.sort
#
# source://rubocop//lib/rubocop/cop/style/redundant_sort_by.rb#18
class RuboCop::Cop::Style::RedundantSortBy < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_sort_by.rb#25
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_sort_by.rb#35
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_sort_by.rb#48
def redundant_sort_by_block(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/redundant_sort_by.rb#53
def redundant_sort_by_numblock(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/redundant_sort_by.rb#57
def sort_by_range(send, node); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_sort_by.rb#22
RuboCop::Cop::Style::RedundantSortBy::MSG_BLOCK = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/redundant_sort_by.rb#23
RuboCop::Cop::Style::RedundantSortBy::MSG_NUMBLOCK = T.let(T.unsafe(nil), String)
# Checks for redundant escapes in string literals.
#
# @example
# # bad - no need to escape # without following {/$/@
# "\#foo"
#
# # bad - no need to escape single quotes inside double quoted string
# "\'foo\'"
#
# # bad - heredocs are also checked for unnecessary escapes
# <<~STR
# \#foo \"foo\"
# STR
#
# # good
# "#foo"
#
# # good
# "\#{no_interpolation}"
#
# # good
# "'foo'"
#
# # good
# "foo\
# bar"
#
# # good
# <<~STR
# #foo "foo"
# STR
#
# source://rubocop//lib/rubocop/cop/style/redundant_string_escape.rb#37
class RuboCop::Cop::Style::RedundantStringEscape < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::MatchRange
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/redundant_string_escape.rb#43
def on_str(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_string_escape.rb#79
def allowed_escape?(node, range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_string_escape.rb#119
def array_literal?(node, prefix); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_string_escape.rb#73
def begin_loc_present?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_string_escape.rb#153
def delimiter?(node, char); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_string_escape.rb#171
def disabling_interpolation?(range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_string_escape.rb#149
def heredoc?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_string_escape.rb#139
def heredoc_with_disabled_interpolation?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_string_escape.rb#100
def interpolation_not_enabled?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_string_escape.rb#167
def literal_in_interpolated_or_multiline_string?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_string_escape.rb#59
def message(range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_string_escape.rb#135
def percent_array_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_string_escape.rb#111
def percent_q_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_string_escape.rb#127
def percent_w_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_string_escape.rb#131
def percent_w_upper_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/redundant_string_escape.rb#107
def single_quoted?(node); end
# source://rubocop//lib/rubocop/cop/style/redundant_string_escape.rb#63
def str_contents_range(node); end
end
# source://rubocop//lib/rubocop/cop/style/redundant_string_escape.rb#41
RuboCop::Cop::Style::RedundantStringEscape::MSG = T.let(T.unsafe(nil), String)
# Enforces using `//` or `%r` around regular expressions.
#
# NOTE: The following `%r` cases using a regexp starts with a blank or `=`
# as a method argument allowed to prevent syntax errors.
#
# [source,ruby]
# ----
# do_something %r{ regexp} # `do_something / regexp/` is an invalid syntax.
# do_something %r{=regexp} # `do_something /=regexp/` is an invalid syntax.
# ----
#
# @example EnforcedStyle: slashes (default)
# # bad
# snake_case = %r{^[\dA-Z_]+$}
#
# # bad
# regex = %r{
# foo
# (bar)
# (baz)
# }x
#
# # good
# snake_case = /^[\dA-Z_]+$/
#
# # good
# regex = /
# foo
# (bar)
# (baz)
# /x
# @example EnforcedStyle: percent_r
# # bad
# snake_case = /^[\dA-Z_]+$/
#
# # bad
# regex = /
# foo
# (bar)
# (baz)
# /x
#
# # good
# snake_case = %r{^[\dA-Z_]+$}
#
# # good
# regex = %r{
# foo
# (bar)
# (baz)
# }x
# @example EnforcedStyle: mixed
# # bad
# snake_case = %r{^[\dA-Z_]+$}
#
# # bad
# regex = /
# foo
# (bar)
# (baz)
# /x
#
# # good
# snake_case = /^[\dA-Z_]+$/
#
# # good
# regex = %r{
# foo
# (bar)
# (baz)
# }x
# @example AllowInnerSlashes: false (default)
# # If `false`, the cop will always recommend using `%r` if one or more
# # slashes are found in the regexp string.
#
# # bad
# x =~ /home\//
#
# # good
# x =~ %r{home/}
# @example AllowInnerSlashes: true
# # good
# x =~ /home\//
#
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#93
class RuboCop::Cop::Style::RegexpLiteral < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#101
def on_regexp(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#144
def allow_inner_slashes?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#132
def allowed_mixed_percent_r?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#122
def allowed_mixed_slash?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#161
def allowed_omit_parentheses_with_percent_r_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#126
def allowed_percent_r_literal?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#118
def allowed_slash_literal?(node); end
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#221
def calculate_replacement(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#136
def contains_disallowed_slash?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#140
def contains_slash?(node); end
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#170
def correct_delimiters(node, corrector); end
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#176
def correct_inner_slashes(node, corrector); end
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#209
def inner_slash_after_correction(node); end
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#205
def inner_slash_before_correction(node); end
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#213
def inner_slash_for(opening_delimiter); end
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#192
def inner_slash_indices(node); end
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#148
def node_body(node, include_begin_nodes: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#157
def preferred_delimiters; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#153
def slash_literal?(node); end
end
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#99
RuboCop::Cop::Style::RegexpLiteral::MSG_USE_PERCENT_R = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/regexp_literal.rb#98
RuboCop::Cop::Style::RegexpLiteral::MSG_USE_SLASHES = T.let(T.unsafe(nil), String)
# Sort `require` and `require_relative` in alphabetical order.
#
# @example
# # bad
# require 'b'
# require 'a'
#
# # good
# require 'a'
# require 'b'
#
# # bad
# require_relative 'b'
# require_relative 'a'
#
# # good
# require_relative 'a'
# require_relative 'b'
#
# # good (sorted within each section separated by a blank line)
# require 'a'
# require 'd'
#
# require 'b'
# require 'c'
#
# # good
# require 'b'
# require_relative 'c'
# require 'a'
#
# # bad
# require 'a'
# require 'c' if foo
# require 'b'
#
# # good
# require 'a'
# require 'b'
# require 'c' if foo
#
# # bad
# require 'c'
# if foo
# require 'd'
# require 'b'
# end
# require 'a'
#
# # good
# require 'c'
# if foo
# require 'b'
# require 'd'
# end
# require 'a'
#
# source://rubocop//lib/rubocop/cop/style/require_order.rb#66
class RuboCop::Cop::Style::RequireOrder < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/require_order.rb#76
def if_inside_only_require(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/require_order.rb#83
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/require_order.rb#115
def autocorrect(corrector, node, previous_older_sibling); end
# source://rubocop//lib/rubocop/cop/style/require_order.rb#101
def find_previous_older_sibling(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/require_order.rb#133
def in_same_section?(node1, node2); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/require_order.rb#97
def not_modifier_form?(node); end
# source://rubocop//lib/rubocop/cop/style/require_order.rb#123
def search_node(node); end
# source://rubocop//lib/rubocop/cop/style/require_order.rb#127
def sibling_node(node); end
end
# source://rubocop//lib/rubocop/cop/style/require_order.rb#73
RuboCop::Cop::Style::RequireOrder::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/require_order.rb#71
RuboCop::Cop::Style::RequireOrder::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for uses of `rescue` in its modifier form is added for following
# reasons:
#
# * The syntax of modifier form `rescue` can be misleading because it
# might lead us to believe that `rescue` handles the given exception
# but it actually rescue all exceptions to return the given rescue
# block. In this case, value returned by handle_error or
# SomeException.
#
# * Modifier form `rescue` would rescue all the exceptions. It would
# silently skip all exception or errors and handle the error.
# Example: If `NoMethodError` is raised, modifier form rescue would
# handle the exception.
#
# @example
# # bad
# some_method rescue handle_error
#
# # bad
# some_method rescue SomeException
#
# # good
# begin
# some_method
# rescue
# handle_error
# end
#
# # good
# begin
# some_method
# rescue SomeException
# handle_error
# end
#
# source://rubocop//lib/rubocop/cop/style/rescue_modifier.rb#40
class RuboCop::Cop::Style::RescueModifier < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::RescueNode
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/rescue_modifier.rb#52
def on_resbody(node); end
private
# source://rubocop//lib/rubocop/cop/style/rescue_modifier.rb#70
def correct_rescue_block(corrector, node, parenthesized); end
# source://rubocop//lib/rubocop/cop/style/rescue_modifier.rb#96
def heredoc_end(node); end
# source://rubocop//lib/rubocop/cop/style/rescue_modifier.rb#86
def indentation_and_offset(node, parenthesized); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/rescue_modifier.rb#66
def parenthesized?(node); end
class << self
# source://rubocop//lib/rubocop/cop/style/rescue_modifier.rb#48
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/style/rescue_modifier.rb#46
RuboCop::Cop::Style::RescueModifier::MSG = T.let(T.unsafe(nil), String)
# Checks for rescuing `StandardError`. There are two supported
# styles `implicit` and `explicit`. This cop will not register an offense
# if any error other than `StandardError` is specified.
#
# @example EnforcedStyle: explicit (default)
# # `explicit` will enforce using `rescue StandardError`
# # instead of `rescue`.
#
# # bad
# begin
# foo
# rescue
# bar
# end
#
# # good
# begin
# foo
# rescue StandardError
# bar
# end
#
# # good
# begin
# foo
# rescue OtherError
# bar
# end
#
# # good
# begin
# foo
# rescue StandardError, SecurityError
# bar
# end
# @example EnforcedStyle: implicit
# # `implicit` will enforce using `rescue` instead of
# # `rescue StandardError`.
#
# # bad
# begin
# foo
# rescue StandardError
# bar
# end
#
# # good
# begin
# foo
# rescue
# bar
# end
#
# # good
# begin
# foo
# rescue OtherError
# bar
# end
#
# # good
# begin
# foo
# rescue StandardError, SecurityError
# bar
# end
#
# source://rubocop//lib/rubocop/cop/style/rescue_standard_error.rb#73
class RuboCop::Cop::Style::RescueStandardError < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RescueNode
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/rescue_standard_error.rb#92
def on_resbody(node); end
# source://rubocop//lib/rubocop/cop/style/rescue_standard_error.rb#88
def rescue_standard_error?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/rescue_standard_error.rb#83
def rescue_without_error_class?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/rescue_standard_error.rb#118
def offense_for_explicit_enforced_style(node); end
# source://rubocop//lib/rubocop/cop/style/rescue_standard_error.rb#107
def offense_for_implicit_enforced_style(node, error); end
end
# source://rubocop//lib/rubocop/cop/style/rescue_standard_error.rb#80
RuboCop::Cop::Style::RescueStandardError::MSG_EXPLICIT = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/rescue_standard_error.rb#79
RuboCop::Cop::Style::RescueStandardError::MSG_IMPLICIT = T.let(T.unsafe(nil), String)
# Enforces consistency between `return nil` and `return`.
#
# This cop is disabled by default. Because there seems to be a perceived semantic difference
# between `return` and `return nil`. The former can be seen as just halting evaluation,
# while the latter might be used when the return value is of specific concern.
#
# Supported styles are `return` and `return_nil`.
#
# @example EnforcedStyle: return (default)
# # bad
# def foo(arg)
# return nil if arg
# end
#
# # good
# def foo(arg)
# return if arg
# end
# @example EnforcedStyle: return_nil
# # bad
# def foo(arg)
# return if arg
# end
#
# # good
# def foo(arg)
# return nil if arg
# end
#
# source://rubocop//lib/rubocop/cop/style/return_nil.rb#35
class RuboCop::Cop::Style::ReturnNil < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/return_nil.rb#90
def chained_send?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/return_nil.rb#93
def define_method?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/return_nil.rb#48
def on_return(node); end
# source://rubocop//lib/rubocop/cop/style/return_nil.rb#46
def return_nil_node?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/return_nil.rb#43
def return_node?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/return_nil.rb#80
def correct_style?(node); end
# source://rubocop//lib/rubocop/cop/style/return_nil.rb#76
def message(_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/return_nil.rb#85
def scoped_node?(node); end
end
# source://rubocop//lib/rubocop/cop/style/return_nil.rb#39
RuboCop::Cop::Style::ReturnNil::RETURN_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/return_nil.rb#40
RuboCop::Cop::Style::ReturnNil::RETURN_NIL_MSG = T.let(T.unsafe(nil), String)
# Checks for predicate method definitions that return `nil`.
# A predicate method should only return a boolean value.
#
# @example
# # bad
# def foo?
# return if condition
#
# do_something?
# end
#
# # bad
# def foo?
# return nil if condition
#
# do_something?
# end
#
# # good
# def foo?
# return false if condition
#
# do_something?
# end
#
# # bad
# def foo?
# if condition
# nil
# else
# true
# end
# end
#
# # good
# def foo?
# if condition
# false
# else
# true
# end
# end
# @example AllowedMethods: ['foo?']
# # good
# def foo?
# return if condition
#
# do_something?
# end
# @example AllowedPatterns: [/foo/]
# # good
# def foo?
# return if condition
#
# do_something?
# end
#
# source://rubocop//lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb#69
class RuboCop::Cop::Style::ReturnNilInPredicateMethodDefinition < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedMethods
include ::RuboCop::Cop::AllowedPattern
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb#81
def on_def(node); end
# source://rubocop//lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb#81
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb#77
def return_nil?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb#128
def handle_if(if_node); end
# source://rubocop//lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb#113
def handle_implicit_return_values(node); end
# source://rubocop//lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb#122
def handle_nil(nil_node); end
# source://rubocop//lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb#118
def handle_return(return_node); end
# source://rubocop//lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb#94
def last_node_of_type(node, type); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb#103
def node_type?(node, type); end
# source://rubocop//lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb#107
def register_offense(offense_node, replacement); end
end
# source://rubocop//lib/rubocop/cop/style/return_nil_in_predicate_method_definition.rb#74
RuboCop::Cop::Style::ReturnNilInPredicateMethodDefinition::MSG = T.let(T.unsafe(nil), String)
# Transforms usages of a method call safeguarded by a non `nil`
# check for the variable whose method is being called to
# safe navigation (`&.`). If there is a method chain, all of the methods
# in the chain need to be checked for safety, and all of the methods will
# need to be changed to use safe navigation.
#
# The default for `ConvertCodeThatCanStartToReturnNil` is `false`.
# When configured to `true`, this will
# check for code in the format `!foo.nil? && foo.bar`. As it is written,
# the return of this code is limited to `false` and whatever the return
# of the method is. If this is converted to safe navigation,
# `foo&.bar` can start returning `nil` as well as what the method
# returns.
#
# The default for `MaxChainLength` is `2`.
# We have limited the cop to not register an offense for method chains
# that exceed this option's value.
#
# NOTE: This cop will recognize offenses but not autocorrect code when the
# right hand side (RHS) of the `&&` statement is an `||` statement
# (eg. `foo && (foo.bar? || foo.baz?)`). It can be corrected
# manually by removing the `foo &&` and adding `&.` to each `foo` on the RHS.
#
# @example
# # bad
# foo.bar if foo
# foo.bar.baz if foo
# foo.bar(param1, param2) if foo
# foo.bar { |e| e.something } if foo
# foo.bar(param) { |e| e.something } if foo
#
# foo.bar if !foo.nil?
# foo.bar unless !foo
# foo.bar unless foo.nil?
#
# foo && foo.bar
# foo && foo.bar.baz
# foo && foo.bar(param1, param2)
# foo && foo.bar { |e| e.something }
# foo && foo.bar(param) { |e| e.something }
#
# foo ? foo.bar : nil
# foo.nil? ? nil : foo.bar
# !foo.nil? ? foo.bar : nil
# !foo ? nil : foo.bar
#
# # good
# foo&.bar
# foo&.bar&.baz
# foo&.bar(param1, param2)
# foo&.bar { |e| e.something }
# foo&.bar(param) { |e| e.something }
# foo && foo.bar.baz.qux # method chain with more than 2 methods
# foo && foo.nil? # method that `nil` responds to
#
# # Method calls that do not use `.`
# foo && foo < bar
# foo < bar if foo
#
# # When checking `foo&.empty?` in a conditional, `foo` being `nil` will actually
# # do the opposite of what the author intends.
# foo && foo.empty?
#
# # This could start returning `nil` as well as the return of the method
# foo.nil? || foo.bar
# !foo || foo.bar
#
# # Methods that are used on assignment, arithmetic operation or
# # comparison should not be converted to use safe navigation
# foo.baz = bar if foo
# foo.baz + bar if foo
# foo.bar > 2 if foo
#
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#89
class RuboCop::Cop::Style::SafeNavigation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedMethods
include ::RuboCop::Cop::NilMethods
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#136
def and_inside_begin?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#130
def and_with_rhs_or?(param0 = T.unsafe(nil)); end
# if format: (if checked_variable body nil)
# unless format: (if checked_variable nil body)
#
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#104
def modifier_if_safe_navigation_candidate(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#133
def not_nil_check?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#157
def on_and(node); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#141
def on_if(node); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#181
def report_offense(node, rhs, rhs_receiver, *removal_ranges, offense_range: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#139
def strip_begin(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#119
def ternary_safe_navigation_candidate(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#360
def add_safe_nav_to_all_methods_in_chain(corrector, start_method, method_chain); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#277
def allowed_if_condition?(node); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#222
def and_parts(node); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#352
def begin_range(node, method_call); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#314
def chain_length(method_chain, method); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#204
def collect_and_clauses(node); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#258
def comments(node); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#216
def concat_nodes(nodes, and_node); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#356
def end_range(node, method_call); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#296
def extract_common_parts(method_chain, checked_variable); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#243
def extract_if_body(node); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#281
def extract_parts_from_if(node); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#304
def find_matching_receiver_invocation(method_chain, checked_variable); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#198
def find_method_chain(node); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#251
def handle_comments(corrector, node, method_call); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#374
def max_chain_length; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#348
def method_called?(send_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#340
def negated?(send_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#229
def offending_node?(node, lhs_receiver, rhs, rhs_receiver); end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#264
def relevant_comment_ranges(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#334
def unsafe_method?(send_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#322
def unsafe_method_used?(method_chain, method); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#239
def use_var_only_in_unless_modifier?(node, variable); end
end
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#97
RuboCop::Cop::Style::SafeNavigation::LOGIC_JUMP_KEYWORDS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/safe_navigation.rb#95
RuboCop::Cop::Style::SafeNavigation::MSG = T.let(T.unsafe(nil), String)
# Enforces safe navigation chains length to not exceed the configured maximum.
# The longer the chain is, the harder it becomes to track what on it could be
# returning `nil`.
#
# There is a potential interplay with `Style/SafeNavigation` - if both are enabled
# and their settings are "incompatible", one of the cops will complain about what
# the other proposes.
#
# E.g. if `Style/SafeNavigation` is configured with `MaxChainLength: 2` (default)
# and this cop is configured with `Max: 1`, then for `foo.bar.baz if foo` the former
# will suggest `foo&.bar&.baz`, which is an offense for the latter.
#
# @example Max: 2 (default)
# # bad
# user&.address&.zip&.upcase
#
# # good
# user&.address&.zip
# user.address.zip if user
#
# source://rubocop//lib/rubocop/cop/style/safe_navigation_chain_length.rb#26
class RuboCop::Cop::Style::SafeNavigationChainLength < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/style/safe_navigation_chain_length.rb#29
def on_csend(node); end
private
# source://rubocop//lib/rubocop/cop/style/safe_navigation_chain_length.rb#46
def max; end
# source://rubocop//lib/rubocop/cop/style/safe_navigation_chain_length.rb#38
def safe_navigation_chains(node); end
end
# source://rubocop//lib/rubocop/cop/style/safe_navigation_chain_length.rb#27
RuboCop::Cop::Style::SafeNavigationChainLength::MSG = T.let(T.unsafe(nil), String)
# Identifies usages of `shuffle.first`,
# `shuffle.last`, and `shuffle[]` and change them to use
# `sample` instead.
#
# @example
# # bad
# [1, 2, 3].shuffle.first
# [1, 2, 3].shuffle.first(2)
# [1, 2, 3].shuffle.last
# [2, 1, 3].shuffle.at(0)
# [2, 1, 3].shuffle.slice(0)
# [1, 2, 3].shuffle[2]
# [1, 2, 3].shuffle[0, 2] # sample(2) will do the same
# [1, 2, 3].shuffle[0..2] # sample(3) will do the same
# [1, 2, 3].shuffle(random: Random.new).first
#
# # good
# [1, 2, 3].shuffle
# [1, 2, 3].sample
# [1, 2, 3].sample(3)
# [1, 2, 3].shuffle[1, 3] # sample(3) might return a longer Array
# [1, 2, 3].shuffle[1..3] # sample(3) might return a longer Array
# [1, 2, 3].shuffle[foo, bar]
# [1, 2, 3].shuffle(random: Random.new)
#
# source://rubocop//lib/rubocop/cop/style/sample.rb#30
class RuboCop::Cop::Style::Sample < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/sample.rb#41
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/sample.rb#41
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/sample.rb#37
def sample_candidate?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/sample.rb#122
def correction(shuffle_arg, method, method_args); end
# source://rubocop//lib/rubocop/cop/style/sample.rb#138
def extract_source(args); end
# source://rubocop//lib/rubocop/cop/style/sample.rb#116
def message(shuffle_arg, method, method_args, range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/sample.rb#59
def offensive?(method, method_args); end
# source://rubocop//lib/rubocop/cop/style/sample.rb#96
def range_size(range_node); end
# source://rubocop//lib/rubocop/cop/style/sample.rb#129
def sample_arg(method, method_args); end
# source://rubocop//lib/rubocop/cop/style/sample.rb#70
def sample_size(method_args); end
# source://rubocop//lib/rubocop/cop/style/sample.rb#79
def sample_size_for_one_arg(arg); end
# source://rubocop//lib/rubocop/cop/style/sample.rb#89
def sample_size_for_two_args(first, second); end
# source://rubocop//lib/rubocop/cop/style/sample.rb#112
def source_range(shuffle_node, node); end
end
# source://rubocop//lib/rubocop/cop/style/sample.rb#33
RuboCop::Cop::Style::Sample::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/sample.rb#34
RuboCop::Cop::Style::Sample::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Looks for places where an subset of an Enumerable (array,
# range, set, etc.; see note below) is calculated based on a `Regexp`
# match, and suggests `grep` or `grep_v` instead.
#
# NOTE: Hashes do not behave as you may expect with `grep`, which
# means that `hash.grep` is not equivalent to `hash.select`. Although
# RuboCop is limited by static analysis, this cop attempts to avoid
# registering an offense when the receiver is a hash (hash literal,
# `Hash.new`, `Hash#[]`, or `to_h`/`to_hash`).
#
# NOTE: `grep` and `grep_v` were optimized when used without a block
# in Ruby 3.0, but may be slower in previous versions.
# See https://bugs.ruby-lang.org/issues/17030
#
# @example
# # bad (select, filter, or find_all)
# array.select { |x| x.match? /regexp/ }
# array.select { |x| /regexp/.match?(x) }
# array.select { |x| x =~ /regexp/ }
# array.select { |x| /regexp/ =~ x }
#
# # bad (reject)
# array.reject { |x| x.match? /regexp/ }
# array.reject { |x| /regexp/.match?(x) }
# array.reject { |x| x =~ /regexp/ }
# array.reject { |x| /regexp/ =~ x }
#
# # good
# array.grep(regexp)
# array.grep_v(regexp)
#
# source://rubocop//lib/rubocop/cop/style/select_by_regexp.rb#45
class RuboCop::Cop::Style::SelectByRegexp < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/select_by_regexp.rb#81
def calls_lvar?(param0 = T.unsafe(nil), param1); end
# Returns true if a node appears to return a hash
#
# source://rubocop//lib/rubocop/cop/style/select_by_regexp.rb#67
def creates_hash?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/select_by_regexp.rb#76
def env_const?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/select_by_regexp.rb#90
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/select_by_regexp.rb#90
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/select_by_regexp.rb#58
def regexp_match?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/select_by_regexp.rb#136
def extract_send_node(block_node); end
# source://rubocop//lib/rubocop/cop/style/select_by_regexp.rb#149
def find_regexp(node, block); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/select_by_regexp.rb#160
def match_predicate_without_receiver?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/select_by_regexp.rb#145
def opposite?(regexp_method_send_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/select_by_regexp.rb#110
def receiver_allowed?(node); end
# source://rubocop//lib/rubocop/cop/style/select_by_regexp.rb#124
def register_offense(node, block_node, regexp, replacement); end
# source://rubocop//lib/rubocop/cop/style/select_by_regexp.rb#116
def replacement(regexp_method_send_node, node); end
end
# source://rubocop//lib/rubocop/cop/style/select_by_regexp.rb#49
RuboCop::Cop::Style::SelectByRegexp::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/select_by_regexp.rb#52
RuboCop::Cop::Style::SelectByRegexp::OPPOSITE_REPLACEMENTS = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/style/select_by_regexp.rb#55
RuboCop::Cop::Style::SelectByRegexp::REGEXP_METHODS = T.let(T.unsafe(nil), Set)
# source://rubocop//lib/rubocop/cop/style/select_by_regexp.rb#51
RuboCop::Cop::Style::SelectByRegexp::REPLACEMENTS = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/style/select_by_regexp.rb#50
RuboCop::Cop::Style::SelectByRegexp::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Enforces the use the shorthand for self-assignment.
#
# @example
#
# # bad
# x = x + 1
#
# # good
# x += 1
#
# source://rubocop//lib/rubocop/cop/style/self_assignment.rb#15
class RuboCop::Cop::Style::SelfAssignment < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/self_assignment.rb#33
def on_cvasgn(node); end
# source://rubocop//lib/rubocop/cop/style/self_assignment.rb#29
def on_ivasgn(node); end
# source://rubocop//lib/rubocop/cop/style/self_assignment.rb#25
def on_lvasgn(node); end
private
# source://rubocop//lib/rubocop/cop/style/self_assignment.rb#94
def apply_autocorrect(corrector, node, rhs, operator, new_rhs); end
# source://rubocop//lib/rubocop/cop/style/self_assignment.rb#74
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/self_assignment.rb#89
def autocorrect_boolean_node(corrector, node, rhs); end
# source://rubocop//lib/rubocop/cop/style/self_assignment.rb#84
def autocorrect_send_node(corrector, node, rhs); end
# source://rubocop//lib/rubocop/cop/style/self_assignment.rb#39
def check(node, var_type); end
# source://rubocop//lib/rubocop/cop/style/self_assignment.rb#62
def check_boolean_node(node, rhs, var_name, var_type); end
# source://rubocop//lib/rubocop/cop/style/self_assignment.rb#50
def check_send_node(node, rhs, var_name, var_type); end
class << self
# source://rubocop//lib/rubocop/cop/style/self_assignment.rb#21
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/style/self_assignment.rb#18
RuboCop::Cop::Style::SelfAssignment::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/self_assignment.rb#19
RuboCop::Cop::Style::SelfAssignment::OPS = T.let(T.unsafe(nil), Array)
# Checks for multiple expressions placed on the same line.
# It also checks for lines terminated with a semicolon.
#
# This cop has `AllowAsExpressionSeparator` configuration option.
# It allows `;` to separate several expressions on the same line.
#
# @example
# # bad
# foo = 1; bar = 2;
# baz = 3;
#
# # good
# foo = 1
# bar = 2
# baz = 3
# @example AllowAsExpressionSeparator: false (default)
# # bad
# foo = 1; bar = 2
# @example AllowAsExpressionSeparator: true
# # good
# foo = 1; bar = 2
#
# source://rubocop//lib/rubocop/cop/style/semicolon.rb#29
class RuboCop::Cop::Style::Semicolon < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/semicolon.rb#45
def on_begin(node); end
# source://rubocop//lib/rubocop/cop/style/semicolon.rb#39
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/style/semicolon.rb#64
def check_for_line_terminator_or_opener; end
# source://rubocop//lib/rubocop/cop/style/semicolon.rb#70
def each_semicolon; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/semicolon.rb#106
def exist_semicolon_after_left_curly_brace?(tokens); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/semicolon.rb#110
def exist_semicolon_after_left_lambda_curly_brace?(tokens); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/semicolon.rb#118
def exist_semicolon_after_left_string_interpolation_brace?(tokens); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/semicolon.rb#102
def exist_semicolon_before_right_curly_brace?(tokens); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/semicolon.rb#114
def exist_semicolon_before_right_string_interpolation_brace?(tokens); end
# source://rubocop//lib/rubocop/cop/style/semicolon.rb#142
def expressions_per_line(exprs); end
# source://rubocop//lib/rubocop/cop/style/semicolon.rb#156
def find_range_node(token_before_semicolon); end
# source://rubocop//lib/rubocop/cop/style/semicolon.rb#148
def find_semicolon_positions(line); end
# source://rubocop//lib/rubocop/cop/style/semicolon.rb#162
def range_nodes; end
# source://rubocop//lib/rubocop/cop/style/semicolon.rb#122
def register_semicolon(line, column, after_expression, token_before_semicolon = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/semicolon.rb#84
def semicolon_position(tokens); end
# source://rubocop//lib/rubocop/cop/style/semicolon.rb#79
def tokens_for_lines; end
class << self
# source://rubocop//lib/rubocop/cop/style/semicolon.rb#35
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/style/semicolon.rb#33
RuboCop::Cop::Style::Semicolon::MSG = T.let(T.unsafe(nil), String)
# Checks for the use of the send method.
#
# @example
# # bad
# Foo.send(bar)
# quuz.send(fred)
#
# # good
# Foo.__send__(bar)
# quuz.public_send(fred)
#
# source://rubocop//lib/rubocop/cop/style/send.rb#16
class RuboCop::Cop::Style::Send < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/style/send.rb#20
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/send.rb#20
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/style/send.rb#17
RuboCop::Cop::Style::Send::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/send.rb#18
RuboCop::Cop::Style::Send::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Detects the use of the `public_send` method with a literal method name argument.
# Since the `send` method can be used to call private methods, by default,
# only the `public_send` method is detected.
#
# NOTE: Writer methods with names ending in `=` are always permitted because their
# behavior differs as follows:
#
# [source,ruby]
# ----
# def foo=(foo)
# @foo = foo
# 42
# end
#
# self.foo = 1 # => 1
# send(:foo=, 1) # => 42
# ----
#
# @example
# # bad
# obj.public_send(:method_name)
# obj.public_send('method_name')
#
# # good
# obj.method_name
# @example AllowSend: true (default)
# # good
# obj.send(:method_name)
# obj.send('method_name')
# obj.__send__(:method_name)
# obj.__send__('method_name')
# @example AllowSend: false
# # bad
# obj.send(:method_name)
# obj.send('method_name')
# obj.__send__(:method_name)
# obj.__send__('method_name')
#
# # good
# obj.method_name
#
# source://rubocop//lib/rubocop/cop/style/send_with_literal_method_name.rb#54
class RuboCop::Cop::Style::SendWithLiteralMethodName < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/send_with_literal_method_name.rb#68
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/send_with_literal_method_name.rb#90
def allow_send?; end
# source://rubocop//lib/rubocop/cop/style/send_with_literal_method_name.rb#94
def offense_range(node); end
# source://rubocop//lib/rubocop/cop/style/send_with_literal_method_name.rb#98
def removal_argument_range(first_argument, second_argument); end
end
# source://rubocop//lib/rubocop/cop/style/send_with_literal_method_name.rb#60
RuboCop::Cop::Style::SendWithLiteralMethodName::METHOD_NAME_PATTERN = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/style/send_with_literal_method_name.rb#57
RuboCop::Cop::Style::SendWithLiteralMethodName::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/send_with_literal_method_name.rb#61
RuboCop::Cop::Style::SendWithLiteralMethodName::RESERVED_WORDS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/send_with_literal_method_name.rb#58
RuboCop::Cop::Style::SendWithLiteralMethodName::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/send_with_literal_method_name.rb#59
RuboCop::Cop::Style::SendWithLiteralMethodName::STATIC_METHOD_NAME_NODE_TYPES = T.let(T.unsafe(nil), Array)
# Checks for uses of `fail` and `raise`.
#
# @example EnforcedStyle: only_raise (default)
# # The `only_raise` style enforces the sole use of `raise`.
# # bad
# begin
# fail
# rescue Exception
# # handle it
# end
#
# def watch_out
# fail
# rescue Exception
# # handle it
# end
#
# Kernel.fail
#
# # good
# begin
# raise
# rescue Exception
# # handle it
# end
#
# def watch_out
# raise
# rescue Exception
# # handle it
# end
#
# Kernel.raise
# @example EnforcedStyle: only_fail
# # The `only_fail` style enforces the sole use of `fail`.
# # bad
# begin
# raise
# rescue Exception
# # handle it
# end
#
# def watch_out
# raise
# rescue Exception
# # handle it
# end
#
# Kernel.raise
#
# # good
# begin
# fail
# rescue Exception
# # handle it
# end
#
# def watch_out
# fail
# rescue Exception
# # handle it
# end
#
# Kernel.fail
# @example EnforcedStyle: semantic
# # The `semantic` style enforces the use of `fail` to signal an
# # exception, then will use `raise` to trigger an offense after
# # it has been rescued.
# # bad
# begin
# raise
# rescue Exception
# # handle it
# end
#
# def watch_out
# # Error thrown
# rescue Exception
# fail
# end
#
# Kernel.fail
# Kernel.raise
#
# # good
# begin
# fail
# rescue Exception
# # handle it
# end
#
# def watch_out
# fail
# rescue Exception
# raise 'Preferably with descriptive message'
# end
#
# explicit_receiver.fail
# explicit_receiver.raise
#
# source://rubocop//lib/rubocop/cop/style/signal_exception.rb#107
class RuboCop::Cop::Style::SignalException < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/signal_exception.rb#120
def custom_fail_methods(param0); end
# source://rubocop//lib/rubocop/cop/style/signal_exception.rb#117
def kernel_call?(param0 = T.unsafe(nil), param1); end
# source://rubocop//lib/rubocop/cop/style/signal_exception.rb#122
def on_rescue(node); end
# source://rubocop//lib/rubocop/cop/style/signal_exception.rb#134
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/signal_exception.rb#206
def allow(method_name, node); end
# source://rubocop//lib/rubocop/cop/style/signal_exception.rb#188
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/signal_exception.rb#167
def check_scope(method_name, node); end
# source://rubocop//lib/rubocop/cop/style/signal_exception.rb#180
def check_send(method_name, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/signal_exception.rb#200
def command_or_kernel_call?(name, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/signal_exception.rb#149
def custom_fail_defined?; end
# source://rubocop//lib/rubocop/cop/style/signal_exception.rb#210
def each_command_or_kernel_call(method_name, node); end
# source://rubocop//lib/rubocop/cop/style/signal_exception.rb#156
def message(method_name); end
end
# source://rubocop//lib/rubocop/cop/style/signal_exception.rb#111
RuboCop::Cop::Style::SignalException::FAIL_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/signal_exception.rb#112
RuboCop::Cop::Style::SignalException::RAISE_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/signal_exception.rb#114
RuboCop::Cop::Style::SignalException::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Sometimes using `dig` method ends up with just a single
# argument. In such cases, dig should be replaced with `[]`.
#
# Since replacing `hash&.dig(:key)` with `hash[:key]` could potentially lead to error,
# calls to the `dig` method using safe navigation will be ignored.
#
# @example
# # bad
# { key: 'value' }.dig(:key)
# [1, 2, 3].dig(0)
#
# # good
# { key: 'value' }[:key]
# [1, 2, 3][0]
#
# # good
# { key1: { key2: 'value' } }.dig(:key1, :key2)
# [1, [2, [3]]].dig(1, 1)
#
# # good
# keys = %i[key1 key2]
# { key1: { key2: 'value' } }.dig(*keys)
#
# source://rubocop//lib/rubocop/cop/style/single_argument_dig.rb#34
class RuboCop::Cop::Style::SingleArgumentDig < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/single_argument_dig.rb#46
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/single_argument_dig.rb#42
def single_argument_dig?(param0 = T.unsafe(nil)); end
end
# source://rubocop//lib/rubocop/cop/style/single_argument_dig.rb#39
RuboCop::Cop::Style::SingleArgumentDig::IGNORED_ARGUMENT_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/single_argument_dig.rb#37
RuboCop::Cop::Style::SingleArgumentDig::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/single_argument_dig.rb#38
RuboCop::Cop::Style::SingleArgumentDig::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks whether the block parameters of a single-line
# method accepting a block match the names specified via configuration.
#
# For instance one can configure `reduce`(`inject`) to use |a, e| as
# parameters.
#
# Configuration option: Methods
# Should be set to use this cop. Array of hashes, where each key is the
# method name and value - array of argument names.
#
# @example Methods: [{reduce: %w[a b]}]
# # bad
# foo.reduce { |c, d| c + d }
# foo.reduce { |_, _d| 1 }
#
# # good
# foo.reduce { |a, b| a + b }
# foo.reduce { |a, _b| a }
# foo.reduce { |a, (id, _)| a + id }
# foo.reduce { true }
#
# # good
# foo.reduce do |c, d|
# c + d
# end
#
# source://rubocop//lib/rubocop/cop/style/single_line_block_params.rb#31
class RuboCop::Cop::Style::SingleLineBlockParams < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/single_line_block_params.rb#36
def on_block(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/single_line_block_params.rb#105
def args_match?(method_name, args); end
# source://rubocop//lib/rubocop/cop/style/single_line_block_params.rb#69
def autocorrect(corrector, node, preferred_block_arguments, joined_block_arguments); end
# source://rubocop//lib/rubocop/cop/style/single_line_block_params.rb#57
def build_preferred_arguments_map(node, preferred_arguments); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/single_line_block_params.rb#79
def eligible_arguments?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/single_line_block_params.rb#83
def eligible_method?(node); end
# source://rubocop//lib/rubocop/cop/style/single_line_block_params.rb#95
def method_name(method); end
# source://rubocop//lib/rubocop/cop/style/single_line_block_params.rb#91
def method_names; end
# source://rubocop//lib/rubocop/cop/style/single_line_block_params.rb#87
def methods; end
# source://rubocop//lib/rubocop/cop/style/single_line_block_params.rb#99
def target_args(method_name); end
end
# source://rubocop//lib/rubocop/cop/style/single_line_block_params.rb#34
RuboCop::Cop::Style::SingleLineBlockParams::MSG = T.let(T.unsafe(nil), String)
# Checks for single-line `do`...`end` block.
#
# In practice a single line `do`...`end` is autocorrected when `EnforcedStyle: semantic`
# in `Style/BlockDelimiters`. The autocorrection maintains the `do` ... `end` syntax to
# preserve semantics and does not change it to `{`...`}` block.
#
# @example
#
# # bad
# foo do |arg| bar(arg) end
#
# # good
# foo do |arg|
# bar(arg)
# end
#
# # bad
# ->(arg) do bar(arg) end
#
# # good
# ->(arg) { bar(arg) }
#
# source://rubocop//lib/rubocop/cop/style/single_line_do_end_block.rb#28
class RuboCop::Cop::Style::SingleLineDoEndBlock < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/single_line_do_end_block.rb#34
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/single_line_do_end_block.rb#34
def on_numblock(node); end
private
# source://rubocop//lib/rubocop/cop/style/single_line_do_end_block.rb#55
def do_line(node); end
# source://rubocop//lib/rubocop/cop/style/single_line_do_end_block.rb#63
def x(corrector, node); end
end
# source://rubocop//lib/rubocop/cop/style/single_line_do_end_block.rb#31
RuboCop::Cop::Style::SingleLineDoEndBlock::MSG = T.let(T.unsafe(nil), String)
# Checks for single-line method definitions that contain a body.
# It will accept single-line methods with no body.
#
# Endless methods added in Ruby 3.0 are also accepted by this cop.
#
# If `Style/EndlessMethod` is enabled with `EnforcedStyle: allow_single_line` or
# `allow_always`, single-line methods will be autocorrected to endless
# methods if there is only one statement in the body.
#
# @example
# # bad
# def some_method; body end
# def link_to(url); {:name => url}; end
# def @table.columns; super; end
#
# # good
# def self.resource_class=(klass); end
# def @table.columns; end
# def some_method() = body
# @example AllowIfMethodIsEmpty: true (default)
# # good
# def no_op; end
# @example AllowIfMethodIsEmpty: false
# # bad
# def no_op; end
#
# source://rubocop//lib/rubocop/cop/style/single_line_methods.rb#34
class RuboCop::Cop::Style::SingleLineMethods < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/single_line_methods.rb#41
def on_def(node); end
# source://rubocop//lib/rubocop/cop/style/single_line_methods.rb#41
def on_defs(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/single_line_methods.rb#60
def allow_empty?; end
# source://rubocop//lib/rubocop/cop/style/single_line_methods.rb#52
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/single_line_methods.rb#97
def break_line_before(corrector, node, range, indent_steps: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/single_line_methods.rb#88
def correct_to_endless(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/single_line_methods.rb#64
def correct_to_endless?(body_node); end
# source://rubocop//lib/rubocop/cop/style/single_line_methods.rb#74
def correct_to_multiline(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/single_line_methods.rb#136
def disallow_endless_method_style?; end
# source://rubocop//lib/rubocop/cop/style/single_line_methods.rb#104
def each_part(body); end
# source://rubocop//lib/rubocop/cop/style/single_line_methods.rb#121
def method_body_source(method_body); end
# source://rubocop//lib/rubocop/cop/style/single_line_methods.rb#114
def move_comment(node, corrector); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/single_line_methods.rb#132
def require_parentheses?(method_body); end
end
# source://rubocop//lib/rubocop/cop/style/single_line_methods.rb#38
RuboCop::Cop::Style::SingleLineMethods::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/single_line_methods.rb#39
RuboCop::Cop::Style::SingleLineMethods::NOT_SUPPORTED_ENDLESS_METHOD_BODY_TYPES = T.let(T.unsafe(nil), Array)
# Checks that arrays are not sliced with the redundant `ary[0..-1]`, replacing it with `ary`,
# and ensures arrays are sliced with endless ranges instead of `ary[start..-1]` on Ruby 2.6+,
# and with beginless ranges instead of `ary[nil..end]` on Ruby 2.7+.
#
# @example
# # bad
# items[0..-1]
# items[0..nil]
# items[0...nil]
#
# # good
# items
#
# # bad
# items[1..-1] # Ruby 2.6+
# items[1..nil] # Ruby 2.6+
#
# # good
# items[1..] # Ruby 2.6+
#
# # bad
# items[nil..42] # Ruby 2.7+
#
# # good
# items[..42] # Ruby 2.7+
# items[0..42] # Ruby 2.7+
#
# source://rubocop//lib/rubocop/cop/style/slicing_with_range.rb#46
class RuboCop::Cop::Style::SlicingWithRange < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/slicing_with_range.rb#77
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/slicing_with_range.rb#73
def range_from_zero?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/slicing_with_range.rb#57
def range_from_zero_till_minus_one?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/slicing_with_range.rb#65
def range_till_minus_one?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/slicing_with_range.rb#111
def beginless(range_node); end
# source://rubocop//lib/rubocop/cop/style/slicing_with_range.rb#107
def endless(range_node); end
# source://rubocop//lib/rubocop/cop/style/slicing_with_range.rb#93
def offense_message_with_removal_range(range_node, selector); end
end
# source://rubocop//lib/rubocop/cop/style/slicing_with_range.rb#52
RuboCop::Cop::Style::SlicingWithRange::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/slicing_with_range.rb#53
RuboCop::Cop::Style::SlicingWithRange::MSG_USELESS_RANGE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/slicing_with_range.rb#54
RuboCop::Cop::Style::SlicingWithRange::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# If the branch of a conditional consists solely of a conditional node,
# its conditions can be combined with the conditions of the outer branch.
# This helps to keep the nesting level from getting too deep.
#
# @example
# # bad
# if condition_a
# if condition_b
# do_something
# end
# end
#
# # bad
# if condition_b
# do_something
# end if condition_a
#
# # good
# if condition_a && condition_b
# do_something
# end
# @example AllowModifier: false (default)
# # bad
# if condition_a
# do_something if condition_b
# end
#
# # bad
# if condition_b
# do_something
# end if condition_a
# @example AllowModifier: true
# # good
# if condition_a
# do_something if condition_b
# end
#
# # good
# if condition_b
# do_something
# end if condition_a
#
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#49
class RuboCop::Cop::Style::SoleNestedConditional < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#59
def on_if(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#261
def allow_modifier?; end
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#233
def arguments_range(node); end
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#81
def assigned_variables(condition); end
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#98
def autocorrect(corrector, node, if_branch); end
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#110
def autocorrect_outer_condition_basic(corrector, node, if_branch); end
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#125
def autocorrect_outer_condition_modify_form(corrector, node, if_branch); end
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#145
def correct_for_basic_condition_style(corrector, node, if_branch, and_operator); end
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#181
def correct_for_comment(corrector, node, if_branch); end
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#136
def correct_for_guard_condition_style(corrector, outer_condition, if_branch, and_operator); end
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#171
def correct_for_outer_condition_modify_form_style(corrector, node, if_branch); end
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#130
def correct_from_unless_to_if(corrector, node, is_modify_form: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#190
def correct_outer_condition(corrector, condition); end
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#203
def insert_bang(corrector, node, is_modify_form); end
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#216
def insert_bang_for_and(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#89
def offending_branch?(node, branch); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#265
def outer_condition_modify_form?(node, if_branch); end
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#254
def parenthesized_method_arguments(node); end
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#244
def replace_condition(condition); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#228
def require_parentheses?(condition); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#74
def use_variable_assignment_in_condition?(condition, if_branch); end
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#155
def wrap_condition(corrector, condition); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#239
def wrap_condition?(node); end
class << self
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#55
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/style/sole_nested_conditional.rb#53
RuboCop::Cop::Style::SoleNestedConditional::MSG = T.let(T.unsafe(nil), String)
# Looks for uses of Perl-style global variables.
# Correcting to global variables in the 'English' library
# will add a require statement to the top of the file if
# enabled by RequireEnglish config.
#
# @example EnforcedStyle: use_english_names (default)
# # good
# require 'English' # or this could be in another file.
#
# puts $LOAD_PATH
# puts $LOADED_FEATURES
# puts $PROGRAM_NAME
# puts $ERROR_INFO
# puts $ERROR_POSITION
# puts $FIELD_SEPARATOR # or $FS
# puts $OUTPUT_FIELD_SEPARATOR # or $OFS
# puts $INPUT_RECORD_SEPARATOR # or $RS
# puts $OUTPUT_RECORD_SEPARATOR # or $ORS
# puts $INPUT_LINE_NUMBER # or $NR
# puts $LAST_READ_LINE
# puts $DEFAULT_OUTPUT
# puts $DEFAULT_INPUT
# puts $PROCESS_ID # or $PID
# puts $CHILD_STATUS
# puts $LAST_MATCH_INFO
# puts $IGNORECASE
# puts $ARGV # or ARGV
# @example EnforcedStyle: use_perl_names
# # good
# puts $:
# puts $"
# puts $0
# puts $!
# puts $@
# puts $;
# puts $,
# puts $/
# puts $\
# puts $.
# puts $_
# puts $>
# puts $<
# puts $$
# puts $?
# puts $~
# puts $=
# puts $*
# @example EnforcedStyle: use_builtin_english_names
#
# # good
# # Like `use_perl_names` but allows builtin global vars.
# puts $LOAD_PATH
# puts $LOADED_FEATURES
# puts $PROGRAM_NAME
# puts ARGV
# puts $:
# puts $"
# puts $0
# puts $!
# puts $@
# puts $;
# puts $,
# puts $/
# puts $\
# puts $.
# puts $_
# puts $>
# puts $<
# puts $$
# puts $?
# puts $~
# puts $=
# puts $*
#
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#86
class RuboCop::Cop::Style::SpecialGlobalVars < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::RequireLibrary
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#175
def autocorrect(corrector, node, global_var); end
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#167
def message(global_var); end
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#151
def on_gvar(node); end
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#146
def on_new_investigation; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#246
def add_require_english?; end
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#240
def english_name_replacement(preferred_name, node); end
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#189
def format_english_message(global_var); end
# For now, we assume that lists are 2 items or less. Easy grammar!
#
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#211
def format_list(items); end
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#197
def format_message(english, regular, global); end
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#234
def matching_styles(global); end
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#226
def preferred_names(global); end
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#215
def replacement(node, global_var); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#250
def should_require_english?(global_var); end
end
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#127
RuboCop::Cop::Style::SpecialGlobalVars::BUILTIN_VARS = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#99
RuboCop::Cop::Style::SpecialGlobalVars::ENGLISH_VARS = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#144
RuboCop::Cop::Style::SpecialGlobalVars::LIBRARY_NAME = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#92
RuboCop::Cop::Style::SpecialGlobalVars::MSG_BOTH = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#95
RuboCop::Cop::Style::SpecialGlobalVars::MSG_ENGLISH = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#97
RuboCop::Cop::Style::SpecialGlobalVars::MSG_REGULAR = T.let(T.unsafe(nil), String)
# Anything *not* in this set is provided by the English library.
#
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#121
RuboCop::Cop::Style::SpecialGlobalVars::NON_ENGLISH_VARS = T.let(T.unsafe(nil), Set)
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#123
RuboCop::Cop::Style::SpecialGlobalVars::PERL_VARS = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/cop/style/special_global_vars.rb#138
RuboCop::Cop::Style::SpecialGlobalVars::STYLE_VARS_MAP = T.let(T.unsafe(nil), Hash)
# Check for parentheses around stabby lambda arguments.
# There are two different styles. Defaults to `require_parentheses`.
#
# @example EnforcedStyle: require_parentheses (default)
# # bad
# ->a,b,c { a + b + c }
#
# # good
# ->(a,b,c) { a + b + c}
# @example EnforcedStyle: require_no_parentheses
# # bad
# ->(a,b,c) { a + b + c }
#
# # good
# ->a,b,c { a + b + c}
#
# source://rubocop//lib/rubocop/cop/style/stabby_lambda_parentheses.rb#22
class RuboCop::Cop::Style::StabbyLambdaParentheses < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/stabby_lambda_parentheses.rb#28
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/stabby_lambda_parentheses.rb#54
def message(_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/stabby_lambda_parentheses.rb#46
def missing_parentheses?(node); end
# source://rubocop//lib/rubocop/cop/style/stabby_lambda_parentheses.rb#58
def missing_parentheses_corrector(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/stabby_lambda_parentheses.rb#73
def parentheses?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/stabby_lambda_parentheses.rb#50
def redundant_parentheses?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/stabby_lambda_parentheses.rb#69
def stabby_lambda_with_args?(node); end
# source://rubocop//lib/rubocop/cop/style/stabby_lambda_parentheses.rb#62
def unwanted_parentheses_corrector(corrector, node); end
end
# source://rubocop//lib/rubocop/cop/style/stabby_lambda_parentheses.rb#27
RuboCop::Cop::Style::StabbyLambdaParentheses::MSG_NO_REQUIRE = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/stabby_lambda_parentheses.rb#26
RuboCop::Cop::Style::StabbyLambdaParentheses::MSG_REQUIRE = T.let(T.unsafe(nil), String)
# Checks for places where classes with only class methods can be
# replaced with a module. Classes should be used only when it makes sense to create
# instances out of them.
#
# @example
# # bad
# class SomeClass
# def self.some_method
# # body omitted
# end
#
# def self.some_other_method
# # body omitted
# end
# end
#
# # good
# module SomeModule
# module_function
#
# def some_method
# # body omitted
# end
#
# def some_other_method
# # body omitted
# end
# end
#
# # good - has instance method
# class SomeClass
# def instance_method; end
# def self.class_method; end
# end
#
# source://rubocop//lib/rubocop/cop/style/static_class.rb#46
class RuboCop::Cop::Style::StaticClass < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::VisibilityHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/static_class.rb#53
def on_class(class_node); end
private
# source://rubocop//lib/rubocop/cop/style/static_class.rb#64
def autocorrect(corrector, class_node); end
# source://rubocop//lib/rubocop/cop/style/static_class.rb#77
def autocorrect_def(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/static_class.rb#83
def autocorrect_sclass(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/static_class.rb#90
def class_convertible_to_module?(class_node); end
# source://rubocop//lib/rubocop/cop/style/static_class.rb#114
def class_elements(class_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/static_class.rb#102
def extend_call?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/static_class.rb#106
def sclass_convertible_to_module?(node); end
end
# source://rubocop//lib/rubocop/cop/style/static_class.rb#51
RuboCop::Cop::Style::StaticClass::MSG = T.let(T.unsafe(nil), String)
# Identifies places where `$stderr.puts` can be replaced by
# `warn`. The latter has the advantage of easily being disabled by,
# the `-W0` interpreter flag or setting `$VERBOSE` to `nil`.
#
# @example
# # bad
# $stderr.puts('hello')
#
# # good
# warn('hello')
#
# source://rubocop//lib/rubocop/cop/style/stderr_puts.rb#17
class RuboCop::Cop::Style::StderrPuts < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/stderr_puts.rb#32
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/stderr_puts.rb#25
def stderr_puts?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/stderr_puts.rb#43
def message(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/stderr_puts.rb#47
def stderr_gvar?(sym); end
# source://rubocop//lib/rubocop/cop/style/stderr_puts.rb#51
def stderr_puts_range(send); end
end
# source://rubocop//lib/rubocop/cop/style/stderr_puts.rb#21
RuboCop::Cop::Style::StderrPuts::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/stderr_puts.rb#22
RuboCop::Cop::Style::StderrPuts::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for uses of `String#split` with empty string or regexp literal argument.
#
# @example
# # bad
# string.split(//)
# string.split('')
#
# # good
# string.chars
#
# source://rubocop//lib/rubocop/cop/style/string_chars.rb#21
class RuboCop::Cop::Style::StringChars < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/string_chars.rb#29
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/string_chars.rb#29
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/style/string_chars.rb#27
RuboCop::Cop::Style::StringChars::BAD_ARGUMENTS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/string_chars.rb#25
RuboCop::Cop::Style::StringChars::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/string_chars.rb#26
RuboCop::Cop::Style::StringChars::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for places where string concatenation
# can be replaced with string interpolation.
#
# The cop can autocorrect simple cases but will skip autocorrecting
# more complex cases where the resulting code would be harder to read.
# In those cases, it might be useful to extract statements to local
# variables or methods which you can then interpolate in a string.
#
# NOTE: When concatenation between two strings is broken over multiple
# lines, this cop does not register an offense; instead,
# `Style/LineEndConcatenation` will pick up the offense if enabled.
#
# Two modes are supported:
# 1. `aggressive` style checks and corrects all occurrences of `+` where
# either the left or right side of `+` is a string literal.
# 2. `conservative` style on the other hand, checks and corrects only if
# left side (receiver of `+` method call) is a string literal.
# This is useful when the receiver is some expression that returns string like `Pathname`
# instead of a string literal.
#
# @example Mode: aggressive (default)
# # bad
# email_with_name = user.name + ' <' + user.email + '>'
# Pathname.new('/') + 'test'
#
# # good
# email_with_name = "#{user.name} <#{user.email}>"
# email_with_name = format('%s <%s>', user.name, user.email)
# "#{Pathname.new('/')}test"
#
# # accepted, line-end concatenation
# name = 'First' +
# 'Last'
# @example Mode: conservative
# # bad
# 'Hello' + user.name
#
# # good
# "Hello #{user.name}"
# user.name + '!!'
# Pathname.new('/') + 'test'
#
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#53
class RuboCop::Cop::Style::StringConcatenation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#69
def on_new_investigation; end
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#73
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#62
def string_concatenation?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#116
def collect_parts(node, parts = T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#141
def corrected_ancestor?(node); end
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#108
def find_topmost_plus_node(node); end
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#162
def handle_quotes(parts); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#135
def heredoc?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#98
def line_end_concatenation?(node); end
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#172
def mode; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#127
def plus_node?(node); end
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#86
def register_offense(topmost_plus_node, parts); end
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#145
def replacement(parts); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#168
def single_quoted?(str_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#131
def uncorrectable?(part); end
end
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#58
RuboCop::Cop::Style::StringConcatenation::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/string_concatenation.rb#59
RuboCop::Cop::Style::StringConcatenation::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for the use of strings as keys in hashes. The use of
# symbols is preferred instead.
#
# @example
# # bad
# { 'one' => 1, 'two' => 2, 'three' => 3 }
#
# # good
# { one: 1, two: 2, three: 3 }
#
# source://rubocop//lib/rubocop/cop/style/string_hash_keys.rb#19
class RuboCop::Cop::Style::StringHashKeys < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/string_hash_keys.rb#42
def on_pair(node); end
# source://rubocop//lib/rubocop/cop/style/string_hash_keys.rb#30
def receive_environments_method?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/string_hash_keys.rb#25
def string_hash_key?(param0 = T.unsafe(nil)); end
end
# source://rubocop//lib/rubocop/cop/style/string_hash_keys.rb#22
RuboCop::Cop::Style::StringHashKeys::MSG = T.let(T.unsafe(nil), String)
# Checks if uses of quotes match the configured preference.
#
# @example EnforcedStyle: single_quotes (default)
# # bad
# "No special symbols"
# "No string interpolation"
# "Just text"
#
# # good
# 'No special symbols'
# 'No string interpolation'
# 'Just text'
# "Wait! What's #{this}!"
# @example EnforcedStyle: double_quotes
# # bad
# 'Just some text'
# 'No special chars or interpolation'
#
# # good
# "Just some text"
# "No special chars or interpolation"
# "Every string in #{project} uses double_quotes"
#
# source://rubocop//lib/rubocop/cop/style/string_literals.rb#29
class RuboCop::Cop::Style::StringLiterals < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::StringLiteralsHelp
include ::RuboCop::Cop::StringHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/string_literals.rb#37
def on_dstr(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/string_literals.rb#123
def accept_child_double_quotes?(nodes); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/string_literals.rb#71
def all_string_literals?(nodes); end
# source://rubocop//lib/rubocop/cop/style/string_literals.rb#61
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/string_literals.rb#105
def check_multiline_quote_style(node, quote); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/string_literals.rb#101
def consistent_multiline?; end
# source://rubocop//lib/rubocop/cop/style/string_literals.rb#75
def detect_quote_styles(node); end
# source://rubocop//lib/rubocop/cop/style/string_literals.rb#87
def message(_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/string_literals.rb#97
def offense?(node); end
# source://rubocop//lib/rubocop/cop/style/string_literals.rb#65
def register_offense(node, message: T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/string_literals.rb#119
def unexpected_double_quotes?(quote); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/string_literals.rb#115
def unexpected_single_quotes?(quote); end
end
# source://rubocop//lib/rubocop/cop/style/string_literals.rb#35
RuboCop::Cop::Style::StringLiterals::MSG_INCONSISTENT = T.let(T.unsafe(nil), String)
# Checks that quotes inside string, symbol, and regexp interpolations
# match the configured preference.
#
# @example EnforcedStyle: single_quotes (default)
# # bad
# string = "Tests #{success ? "PASS" : "FAIL"}"
# symbol = :"Tests #{success ? "PASS" : "FAIL"}"
# heredoc = <<~TEXT
# Tests #{success ? "PASS" : "FAIL"}
# TEXT
# regexp = /Tests #{success ? "PASS" : "FAIL"}/
#
# # good
# string = "Tests #{success ? 'PASS' : 'FAIL'}"
# symbol = :"Tests #{success ? 'PASS' : 'FAIL'}"
# heredoc = <<~TEXT
# Tests #{success ? 'PASS' : 'FAIL'}
# TEXT
# regexp = /Tests #{success ? 'PASS' : 'FAIL'}/
# @example EnforcedStyle: double_quotes
# # bad
# string = "Tests #{success ? 'PASS' : 'FAIL'}"
# symbol = :"Tests #{success ? 'PASS' : 'FAIL'}"
# heredoc = <<~TEXT
# Tests #{success ? 'PASS' : 'FAIL'}
# TEXT
# regexp = /Tests #{success ? 'PASS' : 'FAIL'}/
#
# # good
# string = "Tests #{success ? "PASS" : "FAIL"}"
# symbol = :"Tests #{success ? "PASS" : "FAIL"}"
# heredoc = <<~TEXT
# Tests #{success ? "PASS" : "FAIL"}
# TEXT
# regexp = /Tests #{success ? "PASS" : "FAIL"}/
#
# source://rubocop//lib/rubocop/cop/style/string_literals_in_interpolation.rb#42
class RuboCop::Cop::Style::StringLiteralsInInterpolation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::StringLiteralsHelp
include ::RuboCop::Cop::StringHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/string_literals_in_interpolation.rb#48
def autocorrect(corrector, node); end
# Cop classes that include the StringHelp module usually ignore regexp
# nodes. Not so for this cop, which is why we override the on_regexp
# definition with an empty one.
#
# source://rubocop//lib/rubocop/cop/style/string_literals_in_interpolation.rb#55
def on_regexp(node); end
private
# source://rubocop//lib/rubocop/cop/style/string_literals_in_interpolation.rb#59
def message(_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/string_literals_in_interpolation.rb#66
def offense?(node); end
end
# Enforces the use of consistent method names
# from the String class.
#
# @example
# # bad
# 'name'.intern
# 'var'.unfavored_method
#
# # good
# 'name'.to_sym
# 'var'.preferred_method
#
# source://rubocop//lib/rubocop/cop/style/string_methods.rb#17
class RuboCop::Cop::Style::StringMethods < ::RuboCop::Cop::Base
include ::RuboCop::Cop::MethodPreference
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/string_methods.rb#23
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/string_methods.rb#23
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/style/string_methods.rb#21
RuboCop::Cop::Style::StringMethods::MSG = T.let(T.unsafe(nil), String)
# Identifies places where `lstrip.rstrip` can be replaced by
# `strip`.
#
# @example
# # bad
# 'abc'.lstrip.rstrip
# 'abc'.rstrip.lstrip
#
# # good
# 'abc'.strip
#
# source://rubocop//lib/rubocop/cop/style/strip.rb#16
class RuboCop::Cop::Style::Strip < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/strip.rb#24
def lstrip_rstrip(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/strip.rb#31
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/strip.rb#31
def on_send(node); end
end
# source://rubocop//lib/rubocop/cop/style/strip.rb#20
RuboCop::Cop::Style::Strip::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/strip.rb#21
RuboCop::Cop::Style::Strip::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for inheritance from Struct.new.
#
# @example
# # bad
# class Person < Struct.new(:first_name, :last_name)
# def age
# 42
# end
# end
#
# # good
# Person = Struct.new(:first_name, :last_name) do
# def age
# 42
# end
# end
#
# source://rubocop//lib/rubocop/cop/style/struct_inheritance.rb#26
class RuboCop::Cop::Style::StructInheritance < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/struct_inheritance.rb#33
def on_class(node); end
# source://rubocop//lib/rubocop/cop/style/struct_inheritance.rb#45
def struct_constructor?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/struct_inheritance.rb#52
def correct_parent(parent, corrector); end
# source://rubocop//lib/rubocop/cop/style/struct_inheritance.rb#62
def range_for_empty_class_body(class_node, struct_new); end
end
# source://rubocop//lib/rubocop/cop/style/struct_inheritance.rb#30
RuboCop::Cop::Style::StructInheritance::MSG = T.let(T.unsafe(nil), String)
# Checks for redundant argument forwarding when calling super with arguments identical to
# the method definition.
#
# Using zero arity `super` within a `define_method` block results in `RuntimeError`:
#
# [source,ruby]
# ----
# def m
# define_method(:foo) { super() } # => OK
# end
#
# def m
# define_method(:foo) { super } # => RuntimeError
# end
# ----
#
# Furthermore, any arguments accompanied by a block may potentially be delegating to
# `define_method`, therefore, `super` used within these blocks will be allowed.
# This approach might result in false negatives, yet ensuring safe detection takes precedence.
#
# @example
# # bad
# def method(*args, **kwargs)
# super(*args, **kwargs)
# end
#
# # good - implicitly passing all arguments
# def method(*args, **kwargs)
# super
# end
#
# # good - forwarding a subset of the arguments
# def method(*args, **kwargs)
# super(*args)
# end
#
# # good - forwarding no arguments
# def method(*args, **kwargs)
# super()
# end
#
# # good - assigning to the block variable before calling super
# def method(&block)
# # Assigning to the block variable would pass the old value to super,
# # under this circumstance the block must be referenced explicitly.
# block ||= proc { 'fallback behavior' }
# super(&block)
# end
#
# source://rubocop//lib/rubocop/cop/style/super_arguments.rb#54
class RuboCop::Cop::Style::SuperArguments < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/super_arguments.rb#62
def on_super(super_node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/super_arguments.rb#81
def arguments_identical?(def_node, def_args, super_args); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/super_arguments.rb#136
def block_arg_same?(def_node, def_arg, super_arg); end
# Reassigning the block argument will still pass along the original block to super
# https://bugs.ruby-lang.org/issues/20505
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/super_arguments.rb#147
def block_reassigned?(def_node, block_arg_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/super_arguments.rb#158
def forward_arg_same?(def_arg, super_arg); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/super_arguments.rb#116
def keyword_arg_same?(def_arg, super_arg); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/super_arguments.rb#126
def keyword_rest_arg_same?(def_arg, super_arg); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/super_arguments.rb#99
def positional_arg_same?(def_arg, super_arg); end
# source://rubocop//lib/rubocop/cop/style/super_arguments.rb#106
def positional_rest_arg_same(def_arg, super_arg); end
# source://rubocop//lib/rubocop/cop/style/super_arguments.rb#162
def preprocess_super_args(super_args); end
end
# source://rubocop//lib/rubocop/cop/style/super_arguments.rb#58
RuboCop::Cop::Style::SuperArguments::ASSIGN_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/super_arguments.rb#57
RuboCop::Cop::Style::SuperArguments::DEF_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/super_arguments.rb#60
RuboCop::Cop::Style::SuperArguments::MSG = T.let(T.unsafe(nil), String)
# Enforces the presence of parentheses in `super` containing arguments.
#
# `super` is a keyword and is provided as a distinct cop from those designed for method call.
#
# @example
#
# # bad
# super name, age
#
# # good
# super(name, age)
#
# source://rubocop//lib/rubocop/cop/style/super_with_args_parentheses.rb#18
class RuboCop::Cop::Style::SuperWithArgsParentheses < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/super_with_args_parentheses.rb#23
def on_super(node); end
end
# source://rubocop//lib/rubocop/cop/style/super_with_args_parentheses.rb#21
RuboCop::Cop::Style::SuperWithArgsParentheses::MSG = T.let(T.unsafe(nil), String)
# Enforces the use of shorthand-style swapping of 2 variables.
#
# @example
# # bad
# tmp = x
# x = y
# y = tmp
#
# # good
# x, y = y, x
#
# source://rubocop//lib/rubocop/cop/style/swap_values.rb#21
class RuboCop::Cop::Style::SwapValues < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/swap_values.rb#30
def on_asgn(node); end
# source://rubocop//lib/rubocop/cop/style/swap_values.rb#30
def on_casgn(node); end
# source://rubocop//lib/rubocop/cop/style/swap_values.rb#30
def on_cvasgn(node); end
# source://rubocop//lib/rubocop/cop/style/swap_values.rb#30
def on_gvasgn(node); end
# source://rubocop//lib/rubocop/cop/style/swap_values.rb#30
def on_ivasgn(node); end
# source://rubocop//lib/rubocop/cop/style/swap_values.rb#30
def on_lvasgn(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/swap_values.rb#47
def allowed_assignment?(node); end
# source://rubocop//lib/rubocop/cop/style/swap_values.rb#104
def correction_range(tmp_assign, y_assign); end
# source://rubocop//lib/rubocop/cop/style/swap_values.rb#81
def lhs(node); end
# source://rubocop//lib/rubocop/cop/style/swap_values.rb#66
def message(x_assign, y_assign); end
# source://rubocop//lib/rubocop/cop/style/swap_values.rb#75
def replacement(x_assign); end
# source://rubocop//lib/rubocop/cop/style/swap_values.rb#95
def rhs(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/swap_values.rb#60
def simple_assignment?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/swap_values.rb#51
def swapping_values?(tmp_assign, x_assign, y_assign); end
end
# source://rubocop//lib/rubocop/cop/style/swap_values.rb#25
RuboCop::Cop::Style::SwapValues::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/swap_values.rb#28
RuboCop::Cop::Style::SwapValues::SIMPLE_ASSIGNMENT_TYPES = T.let(T.unsafe(nil), Set)
# Checks for array literals made up of symbols that are not
# using the %i() syntax.
#
# Alternatively, it checks for symbol arrays using the %i() syntax on
# projects which do not want to use that syntax, perhaps because they
# support a version of Ruby lower than 2.0.
#
# Configuration option: MinSize
# If set, arrays with fewer elements than this value will not trigger the
# cop. For example, a `MinSize` of `3` will not enforce a style on an
# array of 2 or fewer elements.
#
# @example EnforcedStyle: percent (default)
# # good
# %i[foo bar baz]
#
# # bad
# [:foo, :bar, :baz]
#
# # bad (contains spaces)
# %i[foo\ bar baz\ quux]
#
# # bad (contains [] with spaces)
# %i[foo \[ \]]
#
# # bad (contains () with spaces)
# %i(foo \( \))
# @example EnforcedStyle: brackets
# # good
# [:foo, :bar, :baz]
#
# # bad
# %i[foo bar baz]
#
# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#40
class RuboCop::Cop::Style::SymbolArray < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ArrayMinSize
include ::RuboCop::Cop::ArraySyntax
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::PercentArray
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#66
def on_array(node); end
private
# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#96
def build_bracketed_array(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#78
def complex_content?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#92
def invalid_percent_array_contents?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#119
def symbol_without_quote?(string); end
# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#111
def to_symbol_literal(string); end
class << self
# Returns the value of attribute largest_brackets.
#
# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#63
def largest_brackets; end
# Sets the attribute largest_brackets
#
# @param value the value to set the attribute largest_brackets to.
#
# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#63
def largest_brackets=(_arg0); end
end
end
# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#51
RuboCop::Cop::Style::SymbolArray::ARRAY_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#52
RuboCop::Cop::Style::SymbolArray::DELIMITERS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#50
RuboCop::Cop::Style::SymbolArray::PERCENT_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#57
RuboCop::Cop::Style::SymbolArray::REDEFINABLE_OPERATORS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/symbol_array.rb#53
RuboCop::Cop::Style::SymbolArray::SPECIAL_GVARS = T.let(T.unsafe(nil), Array)
# Checks symbol literal syntax.
#
# @example
#
# # bad
# :"symbol"
#
# # good
# :symbol
#
# source://rubocop//lib/rubocop/cop/style/symbol_literal.rb#15
class RuboCop::Cop::Style::SymbolLiteral < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/symbol_literal.rb#20
def on_sym(node); end
end
# source://rubocop//lib/rubocop/cop/style/symbol_literal.rb#18
RuboCop::Cop::Style::SymbolLiteral::MSG = T.let(T.unsafe(nil), String)
# Use symbols as procs when possible.
#
# If you prefer a style that allows block for method with arguments,
# please set `true` to `AllowMethodsWithArguments`.
# `define_method?` methods are allowed by default.
# These are customizable with `AllowedMethods` option.
#
# @example
# # bad
# something.map { |s| s.upcase }
# something.map { _1.upcase }
#
# # good
# something.map(&:upcase)
# @example AllowMethodsWithArguments: false (default)
# # bad
# something.do_something(foo) { |o| o.bar }
#
# # good
# something.do_something(foo, &:bar)
# @example AllowMethodsWithArguments: true
# # good
# something.do_something(foo) { |o| o.bar }
# @example AllowComments: false (default)
# # bad
# something.do_something do |s| # some comment
# # some comment
# s.upcase # some comment
# # some comment
# end
# @example AllowComments: true
# # good - if there are comment in either position
# something.do_something do |s| # some comment
# # some comment
# s.upcase # some comment
# # some comment
# end
# @example AllowedMethods: [define_method] (default)
# # good
# define_method(:foo) { |foo| foo.bar }
# @example AllowedPatterns: [] (default)
# # bad
# something.map { |s| s.upcase }
# @example AllowedPatterns: ['map'] (default)
# # good
# something.map { |s| s.upcase }
# @example AllCops:ActiveSupportExtensionsEnabled: false (default)
# # bad
# ->(x) { x.foo }
# proc { |x| x.foo }
# Proc.new { |x| x.foo }
#
# # good
# lambda(&:foo)
# proc(&:foo)
# Proc.new(&:foo)
# @example AllCops:ActiveSupportExtensionsEnabled: true
# # good
# ->(x) { x.foo }
# proc { |x| x.foo }
# Proc.new { |x| x.foo }
#
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#140
class RuboCop::Cop::Style::SymbolProc < ::RuboCop::Cop::Base
include ::RuboCop::Cop::CommentsHelp
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::AllowedMethods
include ::RuboCop::Cop::AllowedPattern
extend ::RuboCop::Cop::AutoCorrector
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#189
def destructuring_block_argument?(argument_node); end
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#170
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#170
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#152
def proc_node?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#158
def symbol_proc?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#155
def symbol_proc_receiver?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#274
def allow_comments?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#270
def allow_if_method_has_argument?(send_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#204
def allowed_method_name?(name); end
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#217
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#247
def autocorrect_lambda_block(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#238
def autocorrect_with_args(corrector, node, args, method_name); end
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#225
def autocorrect_without_args(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#260
def begin_pos_for_replacement(node); end
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#255
def block_range_with_space(node); end
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#208
def register_offense(node, method_name, block_method_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#200
def unsafe_array_usage?(node); end
# See: https://github.com/rubocop/rubocop/issues/10864
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#196
def unsafe_hash_usage?(node); end
class << self
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#165
def autocorrect_incompatible_with; end
end
end
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#149
RuboCop::Cop::Style::SymbolProc::LAMBDA_OR_PROC = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#147
RuboCop::Cop::Style::SymbolProc::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/symbol_proc.rb#148
RuboCop::Cop::Style::SymbolProc::SUPER_TYPES = T.let(T.unsafe(nil), Array)
# Corrector to correct conditional assignment in ternary conditions.
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#499
class RuboCop::Cop::Style::TernaryCorrector
extend ::RuboCop::Cop::Style::ConditionalAssignmentHelper
extend ::RuboCop::Cop::Style::ConditionalCorrectorHelper
class << self
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#504
def correct(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#508
def move_assignment_inside_condition(corrector, node); end
private
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#522
def correction(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#535
def element_assignment?(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#539
def extract_branches(node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#552
def move_branch_inside_condition(corrector, branch, assignment); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#547
def remove_parentheses(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/conditional_assignment.rb#526
def ternary(node); end
end
end
# Checks for the presence of parentheses around ternary
# conditions. It is configurable to enforce inclusion or omission of
# parentheses using `EnforcedStyle`. Omission is only enforced when
# removing the parentheses won't cause a different behavior.
#
# `AllowSafeAssignment` option for safe assignment.
# By safe assignment we mean putting parentheses around
# an assignment to indicate "I know I'm using an assignment
# as a condition. It's not a mistake."
#
# @example EnforcedStyle: require_no_parentheses (default)
# # bad
# foo = (bar?) ? a : b
# foo = (bar.baz?) ? a : b
# foo = (bar && baz) ? a : b
#
# # good
# foo = bar? ? a : b
# foo = bar.baz? ? a : b
# foo = bar && baz ? a : b
# @example EnforcedStyle: require_parentheses
# # bad
# foo = bar? ? a : b
# foo = bar.baz? ? a : b
# foo = bar && baz ? a : b
#
# # good
# foo = (bar?) ? a : b
# foo = (bar.baz?) ? a : b
# foo = (bar && baz) ? a : b
# @example EnforcedStyle: require_parentheses_when_complex
# # bad
# foo = (bar?) ? a : b
# foo = (bar.baz?) ? a : b
# foo = bar && baz ? a : b
#
# # good
# foo = bar? ? a : b
# foo = bar.baz? ? a : b
# foo = (bar && baz) ? a : b
# @example AllowSafeAssignment: true (default)
# # good
# foo = (bar = baz) ? a : b
# @example AllowSafeAssignment: false
# # bad
# foo = (bar = baz) ? a : b
#
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#57
class RuboCop::Cop::Style::TernaryParentheses < ::RuboCop::Cop::Base
include ::RuboCop::Cop::SafeAssignment
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::SurroundingSpace
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#191
def method_name(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#69
def on_if(node); end
private
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#100
def autocorrect(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#181
def below_ternary_precedence?(child); end
# If the condition is parenthesized we recurse and check for any
# complex expressions within it.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#131
def complex_condition?(condition); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#89
def condition_as_parenthesized_one_line_pattern_matching?(condition); end
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#196
def correct_parenthesized(corrector, condition); end
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#210
def correct_unparenthesized(corrector, condition); end
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#151
def message(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#227
def node_args_need_parens?(send_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#234
def node_with_args?(node); end
# Anything that is not a variable, constant, or method/.method call
# will be counted as a complex expression.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#141
def non_complex_expression?(condition); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#145
def non_complex_send?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#113
def offense?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#85
def only_closing_parenthesis_is_last_line?(condition); end
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#214
def parenthesize_condition_arguments(corrector, send_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#169
def parenthesized?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#161
def require_parentheses?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#165
def require_parentheses_when_complex?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#177
def unparenthesized_method_call?(child); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#173
def unsafe_autocorrect?(condition); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#222
def whitespace_after?(node); end
end
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#66
RuboCop::Cop::Style::TernaryParentheses::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#67
RuboCop::Cop::Style::TernaryParentheses::MSG_COMPLEX = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#64
RuboCop::Cop::Style::TernaryParentheses::NON_COMPLEX_TYPES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/ternary_parentheses.rb#63
RuboCop::Cop::Style::TernaryParentheses::VARIABLE_TYPES = T.let(T.unsafe(nil), Set)
# Newcomers to ruby applications may write top-level methods,
# when ideally they should be organized in appropriate classes or modules.
# This cop looks for definitions of top-level methods and warns about them.
#
# However for ruby scripts it is perfectly fine to use top-level methods.
# Hence this cop is disabled by default.
#
# @example
# # bad
# def some_method
# end
#
# # bad
# def self.some_method
# end
#
# # bad
# define_method(:foo) { puts 1 }
#
# # good
# module Foo
# def some_method
# end
# end
#
# # good
# class Foo
# def self.some_method
# end
# end
#
# # good
# Struct.new do
# def some_method
# end
# end
#
# # good
# class Foo
# define_method(:foo) { puts 1 }
# end
#
# source://rubocop//lib/rubocop/cop/style/top_level_method_definition.rb#47
class RuboCop::Cop::Style::TopLevelMethodDefinition < ::RuboCop::Cop::Base
# source://rubocop//lib/rubocop/cop/style/top_level_method_definition.rb#79
def define_method_block?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/top_level_method_definition.rb#60
def on_block(node); end
# source://rubocop//lib/rubocop/cop/style/top_level_method_definition.rb#52
def on_def(node); end
# source://rubocop//lib/rubocop/cop/style/top_level_method_definition.rb#52
def on_defs(node); end
# source://rubocop//lib/rubocop/cop/style/top_level_method_definition.rb#60
def on_numblock(node); end
# source://rubocop//lib/rubocop/cop/style/top_level_method_definition.rb#52
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/top_level_method_definition.rb#70
def top_level_method_definition?(node); end
end
# source://rubocop//lib/rubocop/cop/style/top_level_method_definition.rb#48
RuboCop::Cop::Style::TopLevelMethodDefinition::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/top_level_method_definition.rb#50
RuboCop::Cop::Style::TopLevelMethodDefinition::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for trailing code after the class definition.
#
# @example
# # bad
# class Foo; def foo; end
# end
#
# # good
# class Foo
# def foo; end
# end
#
# source://rubocop//lib/rubocop/cop/style/trailing_body_on_class.rb#18
class RuboCop::Cop::Style::TrailingBodyOnClass < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::TrailingBody
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/trailing_body_on_class.rb#25
def on_class(node); end
# source://rubocop//lib/rubocop/cop/style/trailing_body_on_class.rb#25
def on_sclass(node); end
end
# source://rubocop//lib/rubocop/cop/style/trailing_body_on_class.rb#23
RuboCop::Cop::Style::TrailingBodyOnClass::MSG = T.let(T.unsafe(nil), String)
# Checks for trailing code after the method definition.
#
# NOTE: It always accepts endless method definitions that are basically on the same line.
#
# @example
# # bad
# def some_method; do_stuff
# end
#
# def f(x); b = foo
# b[c: x]
# end
#
# # good
# def some_method
# do_stuff
# end
#
# def f(x)
# b = foo
# b[c: x]
# end
#
# def endless_method = do_stuff
#
# source://rubocop//lib/rubocop/cop/style/trailing_body_on_method_definition.rb#31
class RuboCop::Cop::Style::TrailingBodyOnMethodDefinition < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::TrailingBody
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/trailing_body_on_method_definition.rb#38
def on_def(node); end
# source://rubocop//lib/rubocop/cop/style/trailing_body_on_method_definition.rb#38
def on_defs(node); end
end
# source://rubocop//lib/rubocop/cop/style/trailing_body_on_method_definition.rb#36
RuboCop::Cop::Style::TrailingBodyOnMethodDefinition::MSG = T.let(T.unsafe(nil), String)
# Checks for trailing code after the module definition.
#
# @example
# # bad
# module Foo extend self
# end
#
# # good
# module Foo
# extend self
# end
#
# source://rubocop//lib/rubocop/cop/style/trailing_body_on_module.rb#18
class RuboCop::Cop::Style::TrailingBodyOnModule < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::TrailingBody
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/trailing_body_on_module.rb#25
def on_module(node); end
end
# source://rubocop//lib/rubocop/cop/style/trailing_body_on_module.rb#23
RuboCop::Cop::Style::TrailingBodyOnModule::MSG = T.let(T.unsafe(nil), String)
# Checks for trailing comma in argument lists.
# The supported styles are:
#
# * `consistent_comma`: Requires a comma after the last argument,
# for all parenthesized method calls with arguments.
# * `comma`: Requires a comma after the last argument, but only for
# parenthesized method calls where each argument is on its own line.
# * `no_comma`: Requires that there is no comma after the last
# argument.
#
# @example EnforcedStyleForMultiline: consistent_comma
# # bad
# method(1, 2,)
#
# # good
# method(1, 2)
#
# # good
# method(
# 1, 2,
# 3,
# )
#
# # good
# method(
# 1, 2, 3,
# )
#
# # good
# method(
# 1,
# 2,
# )
# @example EnforcedStyleForMultiline: comma
# # bad
# method(1, 2,)
#
# # good
# method(1, 2)
#
# # bad
# method(
# 1, 2,
# 3,
# )
#
# # good
# method(
# 1, 2,
# 3
# )
#
# # bad
# method(
# 1, 2, 3,
# )
#
# # good
# method(
# 1, 2, 3
# )
#
# # good
# method(
# 1,
# 2,
# )
# @example EnforcedStyleForMultiline: no_comma (default)
# # bad
# method(1, 2,)
#
# # good
# method(1, 2)
#
# # good
# method(
# 1,
# 2
# )
#
# source://rubocop//lib/rubocop/cop/style/trailing_comma_in_arguments.rb#87
class RuboCop::Cop::Style::TrailingCommaInArguments < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::TrailingComma
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/trailing_comma_in_arguments.rb#95
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/trailing_comma_in_arguments.rb#95
def on_send(node); end
class << self
# source://rubocop//lib/rubocop/cop/style/trailing_comma_in_arguments.rb#91
def autocorrect_incompatible_with; end
end
end
# Checks for trailing comma in array literals.
# The configuration options are:
#
# * `consistent_comma`: Requires a comma after the
# last item of all non-empty, multiline array literals.
# * `comma`: Requires a comma after last item in an array,
# but only when each item is on its own line.
# * `no_comma`: Does not require a comma after the
# last item in an array
#
# @example EnforcedStyleForMultiline: consistent_comma
# # bad
# a = [1, 2,]
#
# # good
# a = [1, 2]
#
# # good
# a = [
# 1, 2,
# 3,
# ]
#
# # good
# a = [
# 1, 2, 3,
# ]
#
# # good
# a = [
# 1,
# 2,
# ]
# @example EnforcedStyleForMultiline: comma
# # bad
# a = [1, 2,]
#
# # good
# a = [1, 2]
#
# # bad
# a = [
# 1, 2,
# 3,
# ]
#
# # good
# a = [
# 1, 2,
# 3
# ]
#
# # bad
# a = [
# 1, 2, 3,
# ]
#
# # good
# a = [
# 1, 2, 3
# ]
#
# # good
# a = [
# 1,
# 2,
# ]
# @example EnforcedStyleForMultiline: no_comma (default)
# # bad
# a = [1, 2,]
#
# # good
# a = [
# 1,
# 2
# ]
#
# source://rubocop//lib/rubocop/cop/style/trailing_comma_in_array_literal.rb#84
class RuboCop::Cop::Style::TrailingCommaInArrayLiteral < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::TrailingComma
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/trailing_comma_in_array_literal.rb#88
def on_array(node); end
end
# Checks whether trailing commas in block arguments are
# required. Blocks with only one argument and a trailing comma require
# that comma to be present. Blocks with more than one argument never
# require a trailing comma.
#
# @example
# # bad
# add { |foo, bar,| foo + bar }
#
# # good
# add { |foo, bar| foo + bar }
#
# # good
# add { |foo,| foo }
#
# # good
# add { foo }
#
# # bad
# add do |foo, bar,|
# foo + bar
# end
#
# # good
# add do |foo, bar|
# foo + bar
# end
#
# # good
# add do |foo,|
# foo
# end
#
# # good
# add do
# foo + bar
# end
#
# source://rubocop//lib/rubocop/cop/style/trailing_comma_in_block_args.rb#62
class RuboCop::Cop::Style::TrailingCommaInBlockArgs < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/trailing_comma_in_block_args.rb#67
def on_block(node); end
private
# source://rubocop//lib/rubocop/cop/style/trailing_comma_in_block_args.rb#83
def arg_count(node); end
# source://rubocop//lib/rubocop/cop/style/trailing_comma_in_block_args.rb#95
def argument_tokens(node); end
# source://rubocop//lib/rubocop/cop/style/trailing_comma_in_block_args.rb#91
def last_comma(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trailing_comma_in_block_args.rb#87
def trailing_comma?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trailing_comma_in_block_args.rb#79
def useless_trailing_comma?(node); end
end
# source://rubocop//lib/rubocop/cop/style/trailing_comma_in_block_args.rb#65
RuboCop::Cop::Style::TrailingCommaInBlockArgs::MSG = T.let(T.unsafe(nil), String)
# Checks for trailing comma in hash literals.
# The configuration options are:
#
# * `consistent_comma`: Requires a comma after the
# last item of all non-empty, multiline hash literals.
# * `comma`: Requires a comma after the last item in a hash,
# but only when each item is on its own line.
# * `no_comma`: Does not require a comma after the
# last item in a hash
#
# @example EnforcedStyleForMultiline: consistent_comma
#
# # bad
# a = { foo: 1, bar: 2, }
#
# # good
# a = { foo: 1, bar: 2 }
#
# # good
# a = {
# foo: 1, bar: 2,
# qux: 3,
# }
#
# # good
# a = {
# foo: 1, bar: 2, qux: 3,
# }
#
# # good
# a = {
# foo: 1,
# bar: 2,
# }
# @example EnforcedStyleForMultiline: comma
#
# # bad
# a = { foo: 1, bar: 2, }
#
# # good
# a = { foo: 1, bar: 2 }
#
# # bad
# a = {
# foo: 1, bar: 2,
# qux: 3,
# }
#
# # good
# a = {
# foo: 1, bar: 2,
# qux: 3
# }
#
# # bad
# a = {
# foo: 1, bar: 2, qux: 3,
# }
#
# # good
# a = {
# foo: 1, bar: 2, qux: 3
# }
#
# # good
# a = {
# foo: 1,
# bar: 2,
# }
# @example EnforcedStyleForMultiline: no_comma (default)
#
# # bad
# a = { foo: 1, bar: 2, }
#
# # good
# a = {
# foo: 1,
# bar: 2
# }
#
# source://rubocop//lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb#87
class RuboCop::Cop::Style::TrailingCommaInHashLiteral < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::TrailingComma
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/trailing_comma_in_hash_literal.rb#91
def on_hash(node); end
end
# Checks for trailing code after the method definition.
#
# @example
# # bad
# def some_method
# do_stuff; end
#
# def do_this(x)
# baz.map { |b| b.this(x) } end
#
# def foo
# block do
# bar
# end end
#
# # good
# def some_method
# do_stuff
# end
#
# def do_this(x)
# baz.map { |b| b.this(x) }
# end
#
# def foo
# block do
# bar
# end
# end
#
# source://rubocop//lib/rubocop/cop/style/trailing_method_end_statement.rb#36
class RuboCop::Cop::Style::TrailingMethodEndStatement < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/trailing_method_end_statement.rb#41
def on_def(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trailing_method_end_statement.rb#55
def body_and_end_on_same_line?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trailing_method_end_statement.rb#51
def trailing_end?(node); end
end
# source://rubocop//lib/rubocop/cop/style/trailing_method_end_statement.rb#39
RuboCop::Cop::Style::TrailingMethodEndStatement::MSG = T.let(T.unsafe(nil), String)
# Checks for extra underscores in variable assignment.
#
# @example
# # bad
# a, b, _ = foo()
# a, b, _, = foo()
# a, _, _ = foo()
# a, _, _, = foo()
#
# # good
# a, b, = foo()
# a, = foo()
# *a, b, _ = foo()
# # => We need to know to not include 2 variables in a
# a, *b, _ = foo()
# # => The correction `a, *b, = foo()` is a syntax error
# @example AllowNamedUnderscoreVariables: true (default)
# # good
# a, b, _something = foo()
# @example AllowNamedUnderscoreVariables: false
# # bad
# a, b, _something = foo()
#
# source://rubocop//lib/rubocop/cop/style/trailing_underscore_variable.rb#31
class RuboCop::Cop::Style::TrailingUnderscoreVariable < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
include ::RuboCop::Cop::SurroundingSpace
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/trailing_underscore_variable.rb#41
def on_masgn(node); end
private
# source://rubocop//lib/rubocop/cop/style/trailing_underscore_variable.rb#92
def allow_named_underscore_variables; end
# source://rubocop//lib/rubocop/cop/style/trailing_underscore_variable.rb#125
def children_offenses(variables); end
# source://rubocop//lib/rubocop/cop/style/trailing_underscore_variable.rb#57
def find_first_offense(variables); end
# source://rubocop//lib/rubocop/cop/style/trailing_underscore_variable.rb#66
def find_first_possible_offense(variables); end
# source://rubocop//lib/rubocop/cop/style/trailing_underscore_variable.rb#108
def main_node_offense(node); end
# source://rubocop//lib/rubocop/cop/style/trailing_underscore_variable.rb#146
def range_for_parentheses(offense, left); end
# source://rubocop//lib/rubocop/cop/style/trailing_underscore_variable.rb#88
def reverse_index(collection, item); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trailing_underscore_variable.rb#80
def splat_variable_before?(first_offense, variables); end
# source://rubocop//lib/rubocop/cop/style/trailing_underscore_variable.rb#96
def unneeded_ranges(node); end
# source://rubocop//lib/rubocop/cop/style/trailing_underscore_variable.rb#133
def unused_range(node_type, mlhs_node, right); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trailing_underscore_variable.rb#129
def unused_variables_only?(offense, variables); end
end
# source://rubocop//lib/rubocop/cop/style/trailing_underscore_variable.rb#38
RuboCop::Cop::Style::TrailingUnderscoreVariable::DISALLOW = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/trailing_underscore_variable.rb#36
RuboCop::Cop::Style::TrailingUnderscoreVariable::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/trailing_underscore_variable.rb#37
RuboCop::Cop::Style::TrailingUnderscoreVariable::UNDERSCORE = T.let(T.unsafe(nil), String)
# Looks for trivial reader/writer methods, that could
# have been created with the attr_* family of functions automatically.
# `to_ary`, `to_a`, `to_c`, `to_enum`, `to_h`, `to_hash`, `to_i`, `to_int`, `to_io`,
# `to_open`, `to_path`, `to_proc`, `to_r`, `to_regexp`, `to_str`, `to_s`, and `to_sym` methods
# are allowed by default. These are customizable with `AllowedMethods` option.
#
# @example
# # bad
# def foo
# @foo
# end
#
# def bar=(val)
# @bar = val
# end
#
# def self.baz
# @baz
# end
#
# # good
# attr_reader :foo
# attr_writer :bar
#
# class << self
# attr_reader :baz
# end
# @example ExactNameMatch: true (default)
# # good
# def name
# @other_name
# end
# @example ExactNameMatch: false
# # bad
# def name
# @other_name
# end
# @example AllowPredicates: true (default)
# # good
# def foo?
# @foo
# end
# @example AllowPredicates: false
# # bad
# def foo?
# @foo
# end
#
# # good
# attr_reader :foo
# @example AllowDSLWriters: true (default)
# # good
# def on_exception(action)
# @on_exception=action
# end
# @example AllowDSLWriters: false
# # bad
# def on_exception(action)
# @on_exception=action
# end
#
# # good
# attr_writer :on_exception
# @example IgnoreClassMethods: false (default)
# # bad
# def self.foo
# @foo
# end
#
# # good
# class << self
# attr_reader :foo
# end
# @example IgnoreClassMethods: true
# # good
# def self.foo
# @foo
# end
# @example AllowedMethods: ['allowed_method']
# # good
# def allowed_method
# @foo
# end
#
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#98
class RuboCop::Cop::Style::TrivialAccessors < ::RuboCop::Cop::Base
include ::RuboCop::Cop::AllowedMethods
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#190
def looks_like_trivial_writer?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#104
def on_def(node); end
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#104
def on_defs(node); end
private
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#222
def accessor(kind, method_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#161
def allow_dsl_writers?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#157
def allow_predicates?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#195
def allowed_method_name?(node); end
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#169
def allowed_method_names; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#204
def allowed_reader?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#200
def allowed_writer?(node); end
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#142
def autocorrect(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#234
def autocorrect_class(corrector, node); end
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#226
def autocorrect_instance(corrector, node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#173
def dsl_writer?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#153
def exact_name_match?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#165
def ignore_class_methods?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#115
def in_module_or_instance_eval?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#181
def looks_like_trivial_reader?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#208
def names_match?(node); end
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#129
def on_method_def(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#248
def top_level_node?(node); end
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#214
def trivial_accessor_kind(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#177
def trivial_reader?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#185
def trivial_writer?(node); end
end
# source://rubocop//lib/rubocop/cop/style/trivial_accessors.rb#102
RuboCop::Cop::Style::TrivialAccessors::MSG = T.let(T.unsafe(nil), String)
# Looks for `unless` expressions with `else` clauses.
#
# @example
# # bad
# unless foo_bar.nil?
# # do something...
# else
# # do a different thing...
# end
#
# # good
# if foo_bar.present?
# # do something...
# else
# # do a different thing...
# end
#
# source://rubocop//lib/rubocop/cop/style/unless_else.rb#22
class RuboCop::Cop::Style::UnlessElse < ::RuboCop::Cop::Base
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/unless_else.rb#28
def on_if(node); end
# source://rubocop//lib/rubocop/cop/style/unless_else.rb#45
def range_between_condition_and_else(node, condition); end
# source://rubocop//lib/rubocop/cop/style/unless_else.rb#49
def range_between_else_and_end(node); end
end
# source://rubocop//lib/rubocop/cop/style/unless_else.rb#26
RuboCop::Cop::Style::UnlessElse::MSG = T.let(T.unsafe(nil), String)
# Checks for the use of logical operators in an `unless` condition.
# It discourages such code, as the condition becomes more difficult
# to read and understand.
#
# This cop supports two styles:
#
# - `forbid_mixed_logical_operators` (default)
# - `forbid_logical_operators`
#
# `forbid_mixed_logical_operators` style forbids the use of more than one type
# of logical operators. This makes the `unless` condition easier to read
# because either all conditions need to be met or any condition need to be met
# in order for the expression to be truthy or falsey.
#
# `forbid_logical_operators` style forbids any use of logical operator.
# This makes it even more easy to read the `unless` condition as
# there is only one condition in the expression.
#
# @example EnforcedStyle: forbid_mixed_logical_operators (default)
# # bad
# return unless a || b && c
# return unless a && b || c
# return unless a && b and c
# return unless a || b or c
# return unless a && b or c
# return unless a || b and c
#
# # good
# return unless a && b && c
# return unless a || b || c
# return unless a and b and c
# return unless a or b or c
# return unless a?
# @example EnforcedStyle: forbid_logical_operators
# # bad
# return unless a || b
# return unless a && b
# return unless a or b
# return unless a and b
#
# # good
# return unless a
# return unless a?
#
# source://rubocop//lib/rubocop/cop/style/unless_logical_operators.rb#50
class RuboCop::Cop::Style::UnlessLogicalOperators < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
# source://rubocop//lib/rubocop/cop/style/unless_logical_operators.rb#62
def and_with_or?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/unless_logical_operators.rb#67
def logical_operator?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/unless_logical_operators.rb#71
def on_if(node); end
# source://rubocop//lib/rubocop/cop/style/unless_logical_operators.rb#57
def or_with_and?(param0 = T.unsafe(nil)); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/unless_logical_operators.rb#83
def mixed_logical_operator?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/unless_logical_operators.rb#90
def mixed_precedence_and?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/unless_logical_operators.rb#97
def mixed_precedence_or?(node); end
end
# source://rubocop//lib/rubocop/cop/style/unless_logical_operators.rb#54
RuboCop::Cop::Style::UnlessLogicalOperators::FORBID_LOGICAL_OPERATORS = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/unless_logical_operators.rb#53
RuboCop::Cop::Style::UnlessLogicalOperators::FORBID_MIXED_LOGICAL_OPERATORS = T.let(T.unsafe(nil), String)
# Checks for accessing the first element of `String#unpack`
# which can be replaced with the shorter method `unpack1`.
#
# @example
#
# # bad
# 'foo'.unpack('h*').first
# 'foo'.unpack('h*')[0]
# 'foo'.unpack('h*').slice(0)
# 'foo'.unpack('h*').at(0)
#
# # good
# 'foo'.unpack1('h*')
#
# source://rubocop//lib/rubocop/cop/style/unpack_first.rb#20
class RuboCop::Cop::Style::UnpackFirst < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
extend ::RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/style/unpack_first.rb#37
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/unpack_first.rb#37
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/unpack_first.rb#30
def unpack_and_first_element?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/unpack_first.rb#53
def first_element_range(node, unpack_call); end
end
# source://rubocop//lib/rubocop/cop/style/unpack_first.rb#26
RuboCop::Cop::Style::UnpackFirst::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/unpack_first.rb#27
RuboCop::Cop::Style::UnpackFirst::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for variable interpolation (like "#@ivar").
#
# @example
# # bad
# "His name is #$name"
# /check #$pattern/
# "Let's go to the #@store"
#
# # good
# "His name is #{$name}"
# /check #{$pattern}/
# "Let's go to the #{@store}"
#
# source://rubocop//lib/rubocop/cop/style/variable_interpolation.rb#18
class RuboCop::Cop::Style::VariableInterpolation < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Interpolation
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/variable_interpolation.rb#25
def on_node_with_interpolations(node); end
private
# source://rubocop//lib/rubocop/cop/style/variable_interpolation.rb#35
def message(range); end
# source://rubocop//lib/rubocop/cop/style/variable_interpolation.rb#39
def var_nodes(nodes); end
end
# source://rubocop//lib/rubocop/cop/style/variable_interpolation.rb#22
RuboCop::Cop::Style::VariableInterpolation::MSG = T.let(T.unsafe(nil), String)
# Checks for `when;` uses in `case` expressions.
#
# @example
# # bad
# case foo
# when 1; 'baz'
# when 2; 'bar'
# end
#
# # good
# case foo
# when 1 then 'baz'
# when 2 then 'bar'
# end
#
# source://rubocop//lib/rubocop/cop/style/when_then.rb#20
class RuboCop::Cop::Style::WhenThen < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/when_then.rb#25
def on_when(node); end
end
# source://rubocop//lib/rubocop/cop/style/when_then.rb#23
RuboCop::Cop::Style::WhenThen::MSG = T.let(T.unsafe(nil), String)
# Checks for uses of `do` in multi-line `while/until` statements.
#
# @example
#
# # bad
# while x.any? do
# do_something(x.pop)
# end
#
# # good
# while x.any?
# do_something(x.pop)
# end
#
# # bad
# until x.empty? do
# do_something(x.pop)
# end
#
# # good
# until x.empty?
# do_something(x.pop)
# end
#
# source://rubocop//lib/rubocop/cop/style/while_until_do.rb#29
class RuboCop::Cop::Style::WhileUntilDo < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/while_until_do.rb#34
def on_until(node); end
# source://rubocop//lib/rubocop/cop/style/while_until_do.rb#34
def on_while(node); end
end
# source://rubocop//lib/rubocop/cop/style/while_until_do.rb#32
RuboCop::Cop::Style::WhileUntilDo::MSG = T.let(T.unsafe(nil), String)
# Checks for while and until statements that would fit on one line
# if written as a modifier while/until. The maximum line length is
# configured in the `Layout/LineLength` cop.
#
# @example
# # bad
# while x < 10
# x += 1
# end
#
# # good
# x += 1 while x < 10
#
# # bad
# until x > 10
# x += 1
# end
#
# # good
# x += 1 until x > 10
# @example
# # bad
# x += 100 while x < 500 # a long comment that makes code too long if it were a single line
#
# # good
# while x < 500 # a long comment that makes code too long if it were a single line
# x += 100
# end
#
# source://rubocop//lib/rubocop/cop/style/while_until_modifier.rb#35
class RuboCop::Cop::Style::WhileUntilModifier < ::RuboCop::Cop::Base
include ::RuboCop::Cop::Alignment
include ::RuboCop::Cop::LineLengthHelp
include ::RuboCop::Cop::StatementModifier
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/while_until_modifier.rb#41
def on_until(node); end
# source://rubocop//lib/rubocop/cop/style/while_until_modifier.rb#41
def on_while(node); end
end
# source://rubocop//lib/rubocop/cop/style/while_until_modifier.rb#39
RuboCop::Cop::Style::WhileUntilModifier::MSG = T.let(T.unsafe(nil), String)
# Checks for array literals made up of word-like
# strings, that are not using the %w() syntax.
#
# Alternatively, it can check for uses of the %w() syntax, in projects
# which do not want to include that syntax.
#
# NOTE: When using the `percent` style, %w() arrays containing a space
# will be registered as offenses.
#
# Configuration option: MinSize
# If set, arrays with fewer elements than this value will not trigger the
# cop. For example, a `MinSize` of `3` will not enforce a style on an
# array of 2 or fewer elements.
#
# @example EnforcedStyle: percent (default)
# # good
# %w[foo bar baz]
#
# # bad
# ['foo', 'bar', 'baz']
#
# # bad (contains spaces)
# %w[foo\ bar baz\ quux]
#
# # bad
# [
# ['one', 'One'],
# ['two', 'Two']
# ]
#
# # good
# [
# %w[one One],
# %w[two Two]
# ]
#
# # good (2d array containing spaces)
# [
# ['one', 'One'],
# ['two', 'Two'],
# ['forty two', 'Forty Two']
# ]
# @example EnforcedStyle: brackets
# # good
# ['foo', 'bar', 'baz']
#
# # bad
# %w[foo bar baz]
#
# # good (contains spaces)
# ['foo bar', 'baz quux']
#
# # good
# [
# ['one', 'One'],
# ['two', 'Two']
# ]
#
# # bad
# [
# %w[one One],
# %w[two Two]
# ]
#
# source://rubocop//lib/rubocop/cop/style/word_array.rb#71
class RuboCop::Cop::Style::WordArray < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ArrayMinSize
include ::RuboCop::Cop::ArraySyntax
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::PercentArray
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/word_array.rb#94
def on_array(node); end
# source://rubocop//lib/rubocop/cop/style/word_array.rb#85
def on_new_investigation; end
private
# source://rubocop//lib/rubocop/cop/style/word_array.rb#138
def build_bracketed_array(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/word_array.rb#118
def complex_content?(strings, complex_regex: T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/word_array.rb#129
def invalid_percent_array_contents?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/word_array.rb#113
def matrix_of_complex_content?(array); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/word_array.rb#107
def within_matrix_of_complex_content?(node); end
# source://rubocop//lib/rubocop/cop/style/word_array.rb#134
def word_regex; end
class << self
# Returns the value of attribute largest_brackets.
#
# source://rubocop//lib/rubocop/cop/style/word_array.rb#82
def largest_brackets; end
# Sets the attribute largest_brackets
#
# @param value the value to set the attribute largest_brackets to.
#
# source://rubocop//lib/rubocop/cop/style/word_array.rb#82
def largest_brackets=(_arg0); end
end
end
# source://rubocop//lib/rubocop/cop/style/word_array.rb#79
RuboCop::Cop::Style::WordArray::ARRAY_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/word_array.rb#78
RuboCop::Cop::Style::WordArray::PERCENT_MSG = T.let(T.unsafe(nil), String)
# Checks for the use of `YAML.load`, `YAML.safe_load`, and `YAML.parse` with
# `File.read` argument.
#
# NOTE: `YAML.safe_load_file` was introduced in Ruby 3.0.
#
# @example
#
# # bad
# YAML.load(File.read(path))
# YAML.parse(File.read(path))
#
# # good
# YAML.load_file(path)
# YAML.parse_file(path)
#
# # bad
# YAML.safe_load(File.read(path)) # Ruby 3.0 and newer
#
# # good
# YAML.safe_load_file(path) # Ruby 3.0 and newer
#
# source://rubocop//lib/rubocop/cop/style/yaml_file_read.rb#27
class RuboCop::Cop::Style::YAMLFileRead < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/yaml_file_read.rb#41
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/yaml_file_read.rb#34
def yaml_file_read?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/yaml_file_read.rb#60
def offense_range(node); end
end
# source://rubocop//lib/rubocop/cop/style/yaml_file_read.rb#30
RuboCop::Cop::Style::YAMLFileRead::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/yaml_file_read.rb#31
RuboCop::Cop::Style::YAMLFileRead::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Enforces or forbids Yoda conditions,
# i.e. comparison operations where the order of expression is reversed.
# eg. `5 == x`
#
# @example EnforcedStyle: forbid_for_all_comparison_operators (default)
# # bad
# 99 == foo
# "bar" != foo
# 42 >= foo
# 10 < bar
# 99 == CONST
#
# # good
# foo == 99
# foo == "bar"
# foo <= 42
# bar > 10
# CONST == 99
# "#{interpolation}" == foo
# /#{interpolation}/ == foo
# @example EnforcedStyle: forbid_for_equality_operators_only
# # bad
# 99 == foo
# "bar" != foo
#
# # good
# 99 >= foo
# 3 < a && a < 5
# @example EnforcedStyle: require_for_all_comparison_operators
# # bad
# foo == 99
# foo == "bar"
# foo <= 42
# bar > 10
#
# # good
# 99 == foo
# "bar" != foo
# 42 >= foo
# 10 < bar
# @example EnforcedStyle: require_for_equality_operators_only
# # bad
# 99 >= foo
# 3 < a && a < 5
#
# # good
# 99 == foo
# "bar" != foo
#
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#77
class RuboCop::Cop::Style::YodaCondition < ::RuboCop::Cop::Base
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#90
def file_constant_equal_program_name?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#94
def on_send(node); end
private
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#149
def actual_code_range(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#145
def constant_portion?(node); end
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#138
def corrected_code(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#107
def enforce_yoda?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#112
def equality_only?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#173
def interpolation?(node); end
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#134
def message(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#157
def non_equality_operator?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#161
def noncommutative_operator?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#169
def program_name?(name); end
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#153
def reverse_comparison(operator); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#165
def source_file_path_constant?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#122
def valid_yoda?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#117
def yoda_compatible_condition?(node); end
end
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#84
RuboCop::Cop::Style::YodaCondition::EQUALITY_OPERATORS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#82
RuboCop::Cop::Style::YodaCondition::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#85
RuboCop::Cop::Style::YodaCondition::NONCOMMUTATIVE_OPERATORS = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#86
RuboCop::Cop::Style::YodaCondition::PROGRAM_NAMES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#87
RuboCop::Cop::Style::YodaCondition::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Set)
# source://rubocop//lib/rubocop/cop/style/yoda_condition.rb#83
RuboCop::Cop::Style::YodaCondition::REVERSE_COMPARISON = T.let(T.unsafe(nil), Hash)
# Forbids Yoda expressions, i.e. binary operations (using `*`, `+`, `&`, `|`,
# and `^` operators) where the order of expression is reversed, eg. `1 + x`.
# This cop complements `Style/YodaCondition` cop, which has a similar purpose.
#
# This cop is disabled by default to respect user intentions such as:
#
# [source,ruby]
# ----
# config.server_port = 9000 + ENV["TEST_ENV_NUMBER"].to_i
# ----
#
# @example SupportedOperators: ['*', '+', '&', '|', '^'] (default)
# # bad
# 10 * y
# 1 + x
# 1 & z
# 1 | x
# 1 ^ x
# 1 + CONST
#
# # good
# y * 10
# x + 1
# z & 1
# x | 1
# x ^ 1
# CONST + 1
# 60 * 24
#
# source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#40
class RuboCop::Cop::Style::YodaExpression < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#47
def on_new_investigation; end
# source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#51
def on_send(node); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#73
def constant_portion?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#81
def offended_ancestor?(node); end
# source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#85
def offended_nodes; end
# source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#77
def supported_operators; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#69
def yoda_expression_constant?(lhs, rhs); end
end
# source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#43
RuboCop::Cop::Style::YodaExpression::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/yoda_expression.rb#45
RuboCop::Cop::Style::YodaExpression::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# Checks for numeric comparisons that can be replaced
# by a predicate method, such as `receiver.length == 0`,
# `receiver.length > 0`, and `receiver.length != 0`,
# `receiver.length < 1` and `receiver.size == 0` that can be
# replaced by `receiver.empty?` and `!receiver.empty?`.
#
# NOTE: `File`, `Tempfile`, and `StringIO` do not have `empty?`
# so allow `size == 0` and `size.zero?`.
#
# @example
# # bad
# [1, 2, 3].length == 0
# 0 == "foobar".length
# array.length < 1
# {a: 1, b: 2}.length != 0
# string.length > 0
# hash.size > 0
#
# # good
# [1, 2, 3].empty?
# "foobar".empty?
# array.empty?
# !{a: 1, b: 2}.empty?
# !string.empty?
# !hash.empty?
#
# source://rubocop//lib/rubocop/cop/style/zero_length_predicate.rb#37
class RuboCop::Cop::Style::ZeroLengthPredicate < ::RuboCop::Cop::Base
extend ::RuboCop::Cop::AutoCorrector
# Some collection like objects in the Ruby standard library
# implement `#size`, but not `#empty`. We ignore those to
# reduce false positives.
#
# source://rubocop//lib/rubocop/cop/style/zero_length_predicate.rb#147
def non_polymorphic_collection?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/zero_length_predicate.rb#114
def nonzero_length_comparison(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/zero_length_predicate.rb#51
def on_csend(node); end
# source://rubocop//lib/rubocop/cop/style/zero_length_predicate.rb#45
def on_send(node); end
# source://rubocop//lib/rubocop/cop/style/zero_length_predicate.rb#138
def other_length_node(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/zero_length_predicate.rb#106
def zero_length_comparison(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/zero_length_predicate.rb#130
def zero_length_node(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/style/zero_length_predicate.rb#101
def zero_length_predicate?(param0 = T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/style/zero_length_predicate.rb#85
def check_nonzero_length_comparison(node); end
# source://rubocop//lib/rubocop/cop/style/zero_length_predicate.rb#70
def check_zero_length_comparison(node); end
# source://rubocop//lib/rubocop/cop/style/zero_length_predicate.rb#58
def check_zero_length_predicate(node); end
# source://rubocop//lib/rubocop/cop/style/zero_length_predicate.rb#119
def replacement(node); end
end
# source://rubocop//lib/rubocop/cop/style/zero_length_predicate.rb#41
RuboCop::Cop::Style::ZeroLengthPredicate::NONZERO_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/style/zero_length_predicate.rb#43
RuboCop::Cop::Style::ZeroLengthPredicate::RESTRICT_ON_SEND = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/cop/style/zero_length_predicate.rb#40
RuboCop::Cop::Style::ZeroLengthPredicate::ZERO_MSG = T.let(T.unsafe(nil), String)
# Common functionality for checking and correcting surrounding whitespace.
#
# source://rubocop//lib/rubocop/cop/mixin/surrounding_space.rb#6
module RuboCop::Cop::SurroundingSpace
include ::RuboCop::Cop::RangeHelp
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/surrounding_space.rb#110
def empty_brackets?(left_bracket_token, right_bracket_token, tokens: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/mixin/surrounding_space.rb#104
def empty_offense(node, range, message, command); end
# source://rubocop//lib/rubocop/cop/mixin/surrounding_space.rb#94
def empty_offenses(node, left, right, message); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/surrounding_space.rb#68
def extra_space?(token, side); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/surrounding_space.rb#129
def no_character_between?(left_bracket_token, right_bracket_token); end
# source://rubocop//lib/rubocop/cop/mixin/surrounding_space.rb#38
def no_space_offenses(node, left_token, right_token, message, start_ok: T.unsafe(nil), end_ok: T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/surrounding_space.rb#120
def offending_empty_no_space?(config, left_token, right_token); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/surrounding_space.rb#116
def offending_empty_space?(config, left_token, right_token); end
# source://rubocop//lib/rubocop/cop/mixin/surrounding_space.rb#33
def on_new_investigation; end
# source://rubocop//lib/rubocop/cop/mixin/surrounding_space.rb#78
def reposition(src, pos, step, include_newlines: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/mixin/surrounding_space.rb#16
def side_space_range(range:, side:, include_newlines: T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/surrounding_space.rb#124
def space_between?(left_bracket_token, right_bracket_token); end
# source://rubocop//lib/rubocop/cop/mixin/surrounding_space.rb#85
def space_offense(node, token, side, message, command); end
# source://rubocop//lib/rubocop/cop/mixin/surrounding_space.rb#53
def space_offenses(node, left_token, right_token, message, start_ok: T.unsafe(nil), end_ok: T.unsafe(nil)); end
end
# source://rubocop//lib/rubocop/cop/mixin/surrounding_space.rb#9
RuboCop::Cop::SurroundingSpace::NO_SPACE_COMMAND = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/mixin/surrounding_space.rb#12
RuboCop::Cop::SurroundingSpace::SINGLE_SPACE_REGEXP = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/mixin/surrounding_space.rb#10
RuboCop::Cop::SurroundingSpace::SPACE_COMMAND = T.let(T.unsafe(nil), String)
# Classes that include this module just implement functions for working
# with symbol nodes.
#
# source://rubocop//lib/rubocop/cop/mixin/symbol_help.rb#7
module RuboCop::Cop::SymbolHelp
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/symbol_help.rb#8
def hash_key?(node); end
end
# Common functionality for checking target ruby version.
#
# source://rubocop//lib/rubocop/cop/mixin/target_ruby_version.rb#6
module RuboCop::Cop::TargetRubyVersion
# source://rubocop//lib/rubocop/cop/mixin/target_ruby_version.rb#11
def minimum_target_ruby_version(version); end
# source://rubocop//lib/rubocop/cop/mixin/target_ruby_version.rb#7
def required_minimum_ruby_version; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/target_ruby_version.rb#15
def support_target_ruby_version?(version); end
end
# A group of cops, ready to be called on duty to inspect files.
# Team is responsible for selecting only relevant cops to be sent on duty,
# as well as insuring that the needed forces are sent along with them.
#
# For performance reasons, Team will first dispatch cops & forces in two groups,
# first the ones needed for autocorrection (if any), then the rest
# (unless autocorrections happened).
#
# source://rubocop//lib/rubocop/cop/team.rb#13
class RuboCop::Cop::Team
# @return [Team] a new instance of Team
#
# source://rubocop//lib/rubocop/cop/team.rb#61
def initialize(cops, config = T.unsafe(nil), options = T.unsafe(nil)); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/team.rb#72
def autocorrect?; end
# Returns the value of attribute cops.
#
# source://rubocop//lib/rubocop/cop/team.rb#57
def cops; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/team.rb#76
def debug?; end
# Returns the value of attribute errors.
#
# source://rubocop//lib/rubocop/cop/team.rb#57
def errors; end
# source://rubocop//lib/rubocop/cop/team.rb#128
def external_dependency_checksum; end
# @deprecated
#
# source://rubocop//lib/rubocop/cop/team.rb#120
def forces; end
# source://rubocop//lib/rubocop/cop/team.rb#82
def inspect_file(processed_source); end
# @return [Commissioner::InvestigationReport]
#
# source://rubocop//lib/rubocop/cop/team.rb#91
def investigate(processed_source, offset: T.unsafe(nil), original: T.unsafe(nil)); end
# Returns the value of attribute updated_source_file.
#
# source://rubocop//lib/rubocop/cop/team.rb#57
def updated_source_file; end
# Returns the value of attribute updated_source_file.
#
# source://rubocop//lib/rubocop/cop/team.rb#57
def updated_source_file?; end
# Returns the value of attribute warnings.
#
# source://rubocop//lib/rubocop/cop/team.rb#57
def warnings; end
private
# source://rubocop//lib/rubocop/cop/team.rb#139
def autocorrect(processed_source, report, original:, offset:); end
# source://rubocop//lib/rubocop/cop/team.rb#203
def autocorrect_report(report, offset:, original:); end
# source://rubocop//lib/rubocop/cop/team.rb#158
def be_ready; end
# source://rubocop//lib/rubocop/cop/team.rb#209
def collate_corrections(report, offset:, original:); end
# source://rubocop//lib/rubocop/cop/team.rb#225
def each_corrector(report); end
# source://rubocop//lib/rubocop/cop/team.rb#277
def handle_error(error, location, cop); end
# source://rubocop//lib/rubocop/cop/team.rb#269
def handle_warning(error, location); end
# @return [Commissioner::InvestigationReport]
#
# source://rubocop//lib/rubocop/cop/team.rb#172
def investigate_partial(cops, processed_source, offset:, original:); end
# source://rubocop//lib/rubocop/cop/team.rb#252
def process_errors(file, errors); end
# source://rubocop//lib/rubocop/cop/team.rb#166
def reset; end
# @return [Array<cop>]
#
# source://rubocop//lib/rubocop/cop/team.rb#178
def roundup_relevant_cops(processed_source); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/team.rb#194
def support_target_rails_version?(cop); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/team.rb#188
def support_target_ruby_version?(cop); end
# source://rubocop//lib/rubocop/cop/team.rb#240
def suppress_clobbering; end
# source://rubocop//lib/rubocop/cop/team.rb#246
def validate_config; end
class << self
# @return [Array<Force>] needed for the given cops
#
# source://rubocop//lib/rubocop/cop/team.rb#43
def forces_for(cops); end
# @return [Team] with cops assembled from the given `cop_classes`
#
# source://rubocop//lib/rubocop/cop/team.rb#28
def mobilize(cop_classes, config, options = T.unsafe(nil)); end
# @return [Array<Cop::Base>]
#
# source://rubocop//lib/rubocop/cop/team.rb#34
def mobilize_cops(cop_classes, config, options = T.unsafe(nil)); end
# @return [Team]
#
# source://rubocop//lib/rubocop/cop/team.rb#15
def new(cop_or_classes, config, options = T.unsafe(nil)); end
end
end
# Common methods shared by TrailingBody cops
#
# source://rubocop//lib/rubocop/cop/mixin/trailing_body.rb#6
module RuboCop::Cop::TrailingBody
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/trailing_body.rb#12
def body_on_first_line?(node, body); end
# source://rubocop//lib/rubocop/cop/mixin/trailing_body.rb#16
def first_part_of(body); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/trailing_body.rb#7
def trailing_body?(node); end
end
# Common methods shared by Style/TrailingCommaInArguments and
# Style/TrailingCommaInLiteral
#
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#7
module RuboCop::Cop::TrailingComma
include ::RuboCop::Cop::ConfigurableEnforcedStyle
include ::RuboCop::Cop::RangeHelp
private
# A single argument with the closing bracket on the same line as the end
# of the argument is not considered multiline, even if the argument
# itself might span multiple lines.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#104
def allowed_multiline_argument?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#167
def any_heredoc?(items); end
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#159
def autocorrect_range(item); end
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#133
def avoid_comma(kind, comma_begin_pos, extra_info); end
# Returns true if the node has round/square/curly brackets.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#82
def brackets?(node); end
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#19
def check(node, items, kind, begin_pos, end_pos); end
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#37
def check_comma(node, kind, comma_pos); end
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#43
def check_literal(node, kind); end
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#30
def comma_offset(items, range); end
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#108
def elements(node); end
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#54
def extra_avoid_comma_info; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#171
def heredoc?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#189
def heredoc_send?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#76
def inside_comment?(range, comma_offset); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#93
def method_name_and_arguments_on_same_line?(node); end
# Returns true if the round/square/curly brackets of the given node are
# on different lines, each item within is on its own line, and the
# closing bracket is on its own line.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#89
def multiline?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#123
def no_elements_on_same_line?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#129
def on_same_line?(range1, range2); end
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#147
def put_comma(items, kind); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#65
def should_have_comma?(style, node); end
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#15
def style_parameter_name; end
end
# source://rubocop//lib/rubocop/cop/mixin/trailing_comma.rb#11
RuboCop::Cop::TrailingComma::MSG = T.let(T.unsafe(nil), String)
# Common functionality shared by Uncommunicative cops
#
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#6
module RuboCop::Cop::UncommunicativeName
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#12
def check(node, args); end
private
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#95
def allow_nums; end
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#87
def allowed_names; end
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#78
def arg_range(arg, length); end
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#45
def case_offense(node, range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#64
def ends_with_num?(name); end
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#91
def forbidden_names; end
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#83
def forbidden_offense(node, range, name); end
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#36
def issue_offenses(node, range, name); end
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#68
def length_offense(node, range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#74
def long_enough?(name); end
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#99
def min_length; end
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#53
def name_type(node); end
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#60
def num_offense(node, range); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#49
def uppercase?(name); end
end
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#7
RuboCop::Cop::UncommunicativeName::CASE_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#10
RuboCop::Cop::UncommunicativeName::FORBIDDEN_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#9
RuboCop::Cop::UncommunicativeName::LENGTH_MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/cop/mixin/uncommunicative_name.rb#8
RuboCop::Cop::UncommunicativeName::NUM_MSG = T.let(T.unsafe(nil), String)
# This autocorrects unused arguments.
#
# source://rubocop//lib/rubocop/cop/correctors/unused_arg_corrector.rb#6
class RuboCop::Cop::UnusedArgCorrector
extend ::RuboCop::Cop::RangeHelp
class << self
# source://rubocop//lib/rubocop/cop/correctors/unused_arg_corrector.rb#12
def correct(corrector, processed_source, node); end
# source://rubocop//lib/rubocop/cop/correctors/unused_arg_corrector.rb#31
def correct_for_blockarg_type(corrector, node); end
# Returns the value of attribute processed_source.
#
# source://rubocop//lib/rubocop/cop/correctors/unused_arg_corrector.rb#10
def processed_source; end
end
end
# This module contains a collection of useful utility methods.
#
# source://rubocop//lib/rubocop/cop/util.rb#7
module RuboCop::Cop::Util
include ::RuboCop::PathUtil
private
# source://rubocop//lib/rubocop/cop/util.rb#39
def add_parentheses(node, corrector); end
# source://rubocop//lib/rubocop/cop/util.rb#60
def any_descendant?(node, *types); end
# source://rubocop//lib/rubocop/cop/util.rb#75
def args_begin(node); end
# source://rubocop//lib/rubocop/cop/util.rb#87
def args_end(node); end
# source://rubocop//lib/rubocop/cop/util.rb#108
def begins_its_line?(range); end
# This is a bad API
#
# source://rubocop//lib/rubocop/cop/util.rb#17
def comment_line?(line_source); end
# @deprecated Use `ProcessedSource#line_with_comment?`, `contains_comment?` or similar
#
# source://rubocop//lib/rubocop/cop/util.rb#22
def comment_lines?(node); end
# source://rubocop//lib/rubocop/cop/util.rb#198
def compatible_external_encoding_for?(src); end
# If converting a string to Ruby string literal source code, must
# double quotes be used?
#
# source://rubocop//lib/rubocop/cop/util.rb#134
def double_quotes_required?(string); end
# source://rubocop//lib/rubocop/cop/util.rb#148
def escape_string(string); end
# Returns, for example, a bare `if` node if the given node is an `if`
# with calls chained to the end of it.
#
# source://rubocop//lib/rubocop/cop/util.rb#118
def first_part_of_call_chain(node); end
# source://rubocop//lib/rubocop/cop/util.rb#203
def include_or_equal?(source, target); end
# source://rubocop//lib/rubocop/cop/util.rb#185
def indent(node, offset: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/util.rb#165
def interpret_string_escapes(string); end
# source://rubocop//lib/rubocop/cop/util.rb#169
def line(node_or_range); end
# source://rubocop//lib/rubocop/cop/util.rb#30
def line_range(node); end
# source://rubocop//lib/rubocop/cop/util.rb#144
def needs_escaping?(string); end
# source://rubocop//lib/rubocop/cop/util.rb#91
def on_node(syms, sexp, excludes = T.unsafe(nil), &block); end
# source://rubocop//lib/rubocop/cop/util.rb#34
def parentheses?(node); end
# source://rubocop//lib/rubocop/cop/util.rb#177
def same_line?(node1, node2); end
# source://rubocop//lib/rubocop/cop/util.rb#152
def to_string_literal(string); end
# source://rubocop//lib/rubocop/cop/util.rb#191
def to_supported_styles(enforced_style); end
# source://rubocop//lib/rubocop/cop/util.rb#161
def trim_string_interpolation_escape_character(str); end
class << self
# source://rubocop//lib/rubocop/cop/util.rb#39
def add_parentheses(node, corrector); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/util.rb#60
def any_descendant?(node, *types); end
# source://rubocop//lib/rubocop/cop/util.rb#75
def args_begin(node); end
# source://rubocop//lib/rubocop/cop/util.rb#87
def args_end(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/util.rb#108
def begins_its_line?(range); end
# This is a bad API
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/util.rb#17
def comment_line?(line_source); end
# @deprecated Use `ProcessedSource#line_with_comment?`, `contains_comment?` or similar
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/util.rb#22
def comment_lines?(node); end
# If converting a string to Ruby string literal source code, must
# double quotes be used?
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/util.rb#134
def double_quotes_required?(string); end
# source://rubocop//lib/rubocop/cop/util.rb#148
def escape_string(string); end
# Returns, for example, a bare `if` node if the given node is an `if`
# with calls chained to the end of it.
#
# source://rubocop//lib/rubocop/cop/util.rb#118
def first_part_of_call_chain(node); end
# source://rubocop//lib/rubocop/cop/util.rb#185
def indent(node, offset: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/util.rb#165
def interpret_string_escapes(string); end
# source://rubocop//lib/rubocop/cop/util.rb#169
def line(node_or_range); end
# source://rubocop//lib/rubocop/cop/util.rb#30
def line_range(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/util.rb#144
def needs_escaping?(string); end
# @yield [sexp]
#
# source://rubocop//lib/rubocop/cop/util.rb#91
def on_node(syms, sexp, excludes = T.unsafe(nil), &block); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/util.rb#34
def parentheses?(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/util.rb#177
def same_line?(node1, node2); end
# source://rubocop//lib/rubocop/cop/util.rb#152
def to_string_literal(string); end
# source://rubocop//lib/rubocop/cop/util.rb#191
def to_supported_styles(enforced_style); end
# source://rubocop//lib/rubocop/cop/util.rb#161
def trim_string_interpolation_escape_character(str); end
end
end
# source://rubocop//lib/rubocop/cop/util.rb#103
RuboCop::Cop::Util::LINE_BEGINS_REGEX_CACHE = T.let(T.unsafe(nil), Hash)
# Match literal regex characters, not including anchors, character
# classes, alternatives, groups, repetitions, references, etc
#
# source://rubocop//lib/rubocop/cop/util.rb#12
RuboCop::Cop::Util::LITERAL_REGEX = T.let(T.unsafe(nil), Regexp)
# Arbitrarily chosen value, should be enough to cover
# the most nested source code in real world projects.
#
# source://rubocop//lib/rubocop/cop/util.rb#102
RuboCop::Cop::Util::MAX_LINE_BEGINS_REGEX_INDEX = T.let(T.unsafe(nil), Integer)
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#5
module RuboCop::Cop::Utils; end
# Parses {Kernel#sprintf} format strings.
#
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#7
class RuboCop::Cop::Utils::FormatString
# @return [FormatString] a new instance of FormatString
#
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#89
def initialize(string); end
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#93
def format_sequences; end
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#105
def max_digit_dollar_num; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#101
def named_interpolation?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#97
def valid?; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#117
def mixed_formats?; end
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#111
def parse; end
end
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#8
RuboCop::Cop::Utils::FormatString::DIGIT_DOLLAR = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#9
RuboCop::Cop::Utils::FormatString::FLAG = T.let(T.unsafe(nil), Regexp)
# The syntax of a format sequence is as follows.
#
# ```
# %[flags][width][.precision]type
# ```
#
# A format sequence consists of a percent sign, followed by optional
# flags, width, and precision indicators, then terminated with a field
# type character.
#
# For more complex formatting, Ruby supports a reference by name.
#
# @see https://ruby-doc.org/core-2.6.3/Kernel.html#method-i-format
#
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#43
class RuboCop::Cop::Utils::FormatString::FormatSequence
# @return [FormatSequence] a new instance of FormatSequence
#
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#46
def initialize(match); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#61
def annotated?; end
# Number of arguments required for the format sequence
#
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#70
def arity; end
# Returns the value of attribute begin_pos.
#
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#44
def begin_pos; end
# Returns the value of attribute end_pos.
#
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#44
def end_pos; end
# Returns the value of attribute flags.
#
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#44
def flags; end
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#74
def max_digit_dollar_num; end
# Returns the value of attribute name.
#
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#44
def name; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#57
def percent?; end
# Returns the value of attribute precision.
#
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#44
def precision; end
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#78
def style; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#65
def template?; end
# Returns the value of attribute type.
#
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#44
def type; end
# Returns the value of attribute width.
#
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#44
def width; end
end
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#15
RuboCop::Cop::Utils::FormatString::NAME = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#11
RuboCop::Cop::Utils::FormatString::NUMBER = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#10
RuboCop::Cop::Utils::FormatString::NUMBER_ARG = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#13
RuboCop::Cop::Utils::FormatString::PRECISION = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#18
RuboCop::Cop::Utils::FormatString::SEQUENCE = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#16
RuboCop::Cop::Utils::FormatString::TEMPLATE_NAME = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#14
RuboCop::Cop::Utils::FormatString::TYPE = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/cop/utils/format_string.rb#12
RuboCop::Cop::Utils::FormatString::WIDTH = T.let(T.unsafe(nil), Regexp)
# Helper to abstract complexity of building range pairs
# with octal escape reconstruction (needed for regexp_parser < 2.7).
#
# source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#8
class RuboCop::Cop::Utils::RegexpRanges
# @return [RegexpRanges] a new instance of RegexpRanges
#
# source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#11
def initialize(root); end
# source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#18
def compound_token; end
# source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#24
def pairs; end
# Returns the value of attribute root.
#
# source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#9
def root; end
private
# source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#78
def compose_range(expressions, current); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#90
def escaped_octal?(expr); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#94
def octal_digit?(char); end
# source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#98
def pop_octal_digits(expressions); end
# source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#44
def populate(expr); end
# source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#32
def populate_all; end
# source://rubocop//lib/rubocop/cop/utils/regexp_ranges.rb#63
def process_set(expressions, current); end
end
# This force provides a way to track local variables and scopes of Ruby.
# Cops interact with this force need to override some of the hook methods.
#
# def before_entering_scope(scope, variable_table)
# end
#
# def after_entering_scope(scope, variable_table)
# end
#
# def before_leaving_scope(scope, variable_table)
# end
#
# def after_leaving_scope(scope, variable_table)
# end
#
# def before_declaring_variable(variable, variable_table)
# end
#
# def after_declaring_variable(variable, variable_table)
# end
#
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#27
class RuboCop::Cop::VariableForce < ::RuboCop::Cop::Force
# Starting point.
#
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#79
def investigate(processed_source); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#88
def process_node(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#74
def variable_table; end
private
# source://rubocop//lib/rubocop/cop/variable_force.rb#380
def after_declaring_variable(arg); end
# source://rubocop//lib/rubocop/cop/variable_force.rb#380
def after_entering_scope(arg); end
# source://rubocop//lib/rubocop/cop/variable_force.rb#380
def after_leaving_scope(arg); end
# source://rubocop//lib/rubocop/cop/variable_force.rb#380
def before_declaring_variable(arg); end
# source://rubocop//lib/rubocop/cop/variable_force.rb#380
def before_entering_scope(arg); end
# source://rubocop//lib/rubocop/cop/variable_force.rb#380
def before_leaving_scope(arg); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#351
def descendant_reference(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#341
def each_descendant_reference(loop_node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#326
def find_variables_in_loop(loop_node); end
# This is called for each scope recursively.
#
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#97
def inspect_variables_in_scope(scope_node); end
# Mark all assignments which are referenced in the same loop
# as referenced by ignoring AST order since they would be referenced
# in next iteration.
#
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#307
def mark_assignments_as_referenced_in_loop(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#130
def node_handler_method_name(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#103
def process_children(origin_node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#243
def process_loop(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#182
def process_pattern_match_variable(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#164
def process_regexp_named_captures(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#258
def process_rescue(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#277
def process_scope(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#296
def process_send(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#146
def process_variable_assignment(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#134
def process_variable_declaration(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#231
def process_variable_multiple_assignment(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#196
def process_variable_operator_assignment(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#238
def process_variable_referencing(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#269
def process_zero_arity_super(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#190
def regexp_captured_names(node); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#363
def scanned_node?(node); end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#367
def scanned_nodes; end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#111
def skip_children!; end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#290
def twisted_nodes(node); end
end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#35
RuboCop::Cop::VariableForce::ARGUMENT_DECLARATION_TYPES = T.let(T.unsafe(nil), Array)
# This class represents each assignment of a variable.
#
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#7
class RuboCop::Cop::VariableForce::Assignment
include ::RuboCop::Cop::VariableForce::Branchable
# @return [Assignment] a new instance of Assignment
#
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#17
def initialize(node, variable); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#58
def exception_assignment?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#80
def for_assignment?; end
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#91
def meta_assignment_node; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#68
def multiple_assignment?; end
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#31
def name; end
# Returns the value of attribute node.
#
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#12
def node; end
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#86
def operator; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#62
def operator_assignment?; end
# Returns the value of attribute reassigned.
#
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#12
def reassigned; end
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#44
def reassigned!; end
# Returns the value of attribute reassigned.
#
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#12
def reassigned?; end
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#39
def reference!(node); end
# Returns the value of attribute referenced.
#
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#12
def referenced; end
# Returns the value of attribute referenced.
#
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#12
def referenced?; end
# Returns the value of attribute references.
#
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#12
def references; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#54
def regexp_named_capture?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#74
def rest_assignment?; end
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#35
def scope; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#50
def used?; end
# Returns the value of attribute variable.
#
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#12
def variable; end
private
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#140
def find_multiple_assignment_node(grandparent_node); end
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#130
def for_assignment_node; end
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#112
def multiple_assignment_node; end
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#104
def operator_assignment_node; end
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#123
def rest_assignment_node; end
end
# source://rubocop//lib/rubocop/cop/variable_force/assignment.rb#10
RuboCop::Cop::VariableForce::Assignment::MULTIPLE_LEFT_HAND_SIDE_TYPE = T.let(T.unsafe(nil), Symbol)
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#68
class RuboCop::Cop::VariableForce::AssignmentReference < ::Struct
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#69
def assignment?; end
# Returns the value of attribute node
#
# @return [Object] the current value of node
def node; end
# Sets the attribute node
#
# @param value [Object] the value to set the attribute node to.
# @return [Object] the newly set value
def node=(_); end
class << self
def [](*_arg0); end
def inspect; end
def keyword_init?; end
def members; end
def new(*_arg0); end
end
end
# Namespace for branch classes for each control structure.
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#7
module RuboCop::Cop::VariableForce::Branch
class << self
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#8
def of(target_node, scope: T.unsafe(nil)); end
end
end
# left_body && right_body
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#265
class RuboCop::Cop::VariableForce::Branch::And < ::RuboCop::Cop::VariableForce::Branch::Base
include ::RuboCop::Cop::VariableForce::Branch::LogicalOperator
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def left_body?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def right_body?; end
end
# Abstract base class for branch classes.
# A branch represents a conditional branch in a scope.
#
# @example
# def some_scope
# do_something # no branch
#
# if foo
# do_something # branch A
# do_something # branch A
# else
# do_something # branch B
# if bar
# do_something # branch C (whose parent is branch B)
# end
# end
#
# do_something # no branch
# end
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#42
class RuboCop::Cop::VariableForce::Branch::Base < ::Struct
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#121
def ==(other); end
# @raise [NotImplementedError]
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#92
def always_run?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#88
def branched?; end
# Returns the value of attribute child_node
#
# @return [Object] the current value of child_node
def child_node; end
# Sets the attribute child_node
#
# @param value [Object] the value to set the attribute child_node to.
# @return [Object] the newly set value
def child_node=(_); end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#70
def control_node; end
# @yield [_self]
# @yieldparam _self [RuboCop::Cop::VariableForce::Branch::Base] the object that the method was called on
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#80
def each_ancestor(include_self: T.unsafe(nil), &block); end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#121
def eql?(other); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#104
def exclusive_with?(other); end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#129
def hash; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#96
def may_jump_to_other_branch?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#100
def may_run_incompletely?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#74
def parent; end
# Returns the value of attribute scope
#
# @return [Object] the current value of scope
def scope; end
# Sets the attribute scope
#
# @param value [Object] the value to set the attribute scope to.
# @return [Object] the newly set value
def scope=(_); end
private
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#135
def scan_ancestors; end
class << self
def [](*_arg0); end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#43
def classes; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#56
def define_predicate(name, child_index: T.unsafe(nil)); end
# @private
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#47
def inherited(subclass); end
def inspect; end
def keyword_init?; end
def members; end
def new(*_arg0); end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#52
def type; end
end
end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#325
RuboCop::Cop::VariableForce::Branch::CLASSES_BY_TYPE = T.let(T.unsafe(nil), Hash)
# case target
# when /pattern/ # when_clause
# else
# else_body
# end
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#219
class RuboCop::Cop::VariableForce::Branch::Case < ::RuboCop::Cop::VariableForce::Branch::Base
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#224
def always_run?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def else_body?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def target?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def when_clause?; end
end
# case target
# in pattern # in_pattern
# else
# else_body
# end
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#234
class RuboCop::Cop::VariableForce::Branch::CaseMatch < ::RuboCop::Cop::VariableForce::Branch::Base
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#239
def always_run?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def else_body?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def in_pattern?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def target?; end
end
# begin
# main_body
# ensure
# ensure_body
# end
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#314
class RuboCop::Cop::VariableForce::Branch::Ensure < ::RuboCop::Cop::VariableForce::Branch::Base
include ::RuboCop::Cop::VariableForce::Branch::ExceptionHandler
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#320
def always_run?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def ensure_body?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def main_body?; end
end
# Mix-in module for exception handling control structures.
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#281
module RuboCop::Cop::VariableForce::Branch::ExceptionHandler
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#282
def may_jump_to_other_branch?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#286
def may_run_incompletely?; end
end
# for element in collection
# loop_body
# end
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#247
class RuboCop::Cop::VariableForce::Branch::For < ::RuboCop::Cop::VariableForce::Branch::Base
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#252
def always_run?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def collection?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def element?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def loop_body?; end
end
# if conditional_clause
# truthy_body
# else
# falsey_body
# end
#
# unless conditional_clause
# falsey_body
# else
# truthy_body
# end
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#166
class RuboCop::Cop::VariableForce::Branch::If < ::RuboCop::Cop::VariableForce::Branch::Base
include ::RuboCop::Cop::VariableForce::Branch::SimpleConditional
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def conditional_clause?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def falsey_body?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def truthy_body?; end
end
# Mix-in module for logical operator control structures.
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#258
module RuboCop::Cop::VariableForce::Branch::LogicalOperator
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#259
def always_run?; end
end
# left_body || right_body
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#273
class RuboCop::Cop::VariableForce::Branch::Or < ::RuboCop::Cop::VariableForce::Branch::Base
include ::RuboCop::Cop::VariableForce::Branch::LogicalOperator
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def left_body?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def right_body?; end
end
# begin
# main_body
# rescue StandardError => error # rescue_clause
# else
# else_body
# end
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#297
class RuboCop::Cop::VariableForce::Branch::Rescue < ::RuboCop::Cop::VariableForce::Branch::Base
include ::RuboCop::Cop::VariableForce::Branch::ExceptionHandler
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#304
def always_run?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def else_body?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def main_body?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def rescue_clause?; end
end
# Mix-in module for simple conditional control structures.
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#145
module RuboCop::Cop::VariableForce::Branch::SimpleConditional
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#150
def always_run?; end
# @raise [NotImplementedError]
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#146
def conditional_clause?; end
end
# until conditional_clause
# loop_body
# end
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#187
class RuboCop::Cop::VariableForce::Branch::Until < ::RuboCop::Cop::VariableForce::Branch::Base
include ::RuboCop::Cop::VariableForce::Branch::SimpleConditional
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def conditional_clause?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def loop_body?; end
end
# begin
# loop_body
# end until conditional_clause
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#207
class RuboCop::Cop::VariableForce::Branch::UntilPost < ::RuboCop::Cop::VariableForce::Branch::Base
include ::RuboCop::Cop::VariableForce::Branch::SimpleConditional
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def conditional_clause?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def loop_body?; end
end
# while conditional_clause
# loop_body
# end
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#177
class RuboCop::Cop::VariableForce::Branch::While < ::RuboCop::Cop::VariableForce::Branch::Base
include ::RuboCop::Cop::VariableForce::Branch::SimpleConditional
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def conditional_clause?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def loop_body?; end
end
# begin
# loop_body
# end while conditional_clause
#
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#197
class RuboCop::Cop::VariableForce::Branch::WhilePost < ::RuboCop::Cop::VariableForce::Branch::Base
include ::RuboCop::Cop::VariableForce::Branch::SimpleConditional
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def conditional_clause?; end
# source://rubocop//lib/rubocop/cop/variable_force/branch.rb#57
def loop_body?; end
end
# Mix-in module for classes which own a node and need branch information
# of the node. The user classes must implement #node and #scope.
#
# source://rubocop//lib/rubocop/cop/variable_force/branchable.rb#8
module RuboCop::Cop::VariableForce::Branchable
# source://rubocop//lib/rubocop/cop/variable_force/branchable.rb#9
def branch; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/branchable.rb#15
def run_exclusively_with?(other); end
end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#42
RuboCop::Cop::VariableForce::LOGICAL_OPERATOR_ASSIGNMENT_TYPES = T.let(T.unsafe(nil), Array)
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#51
RuboCop::Cop::VariableForce::LOOP_TYPES = T.let(T.unsafe(nil), Array)
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#45
RuboCop::Cop::VariableForce::MULTIPLE_ASSIGNMENT_TYPE = T.let(T.unsafe(nil), Symbol)
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#115
RuboCop::Cop::VariableForce::NODE_HANDLER_METHOD_NAMES = T.let(T.unsafe(nil), Hash)
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#43
RuboCop::Cop::VariableForce::OPERATOR_ASSIGNMENT_TYPES = T.let(T.unsafe(nil), Array)
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#30
RuboCop::Cop::VariableForce::PATTERN_MATCH_VARIABLE_TYPE = T.let(T.unsafe(nil), Symbol)
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#50
RuboCop::Cop::VariableForce::POST_CONDITION_LOOP_TYPES = T.let(T.unsafe(nil), Array)
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#29
RuboCop::Cop::VariableForce::REGEXP_NAMED_CAPTURE_TYPE = T.let(T.unsafe(nil), Symbol)
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#53
RuboCop::Cop::VariableForce::RESCUE_TYPE = T.let(T.unsafe(nil), Symbol)
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#46
RuboCop::Cop::VariableForce::REST_ASSIGNMENT_TYPE = T.let(T.unsafe(nil), Symbol)
# This class represents each reference of a variable.
#
# source://rubocop//lib/rubocop/cop/variable_force/reference.rb#7
class RuboCop::Cop::VariableForce::Reference
include ::RuboCop::Cop::VariableForce::Branchable
# @return [Reference] a new instance of Reference
#
# source://rubocop//lib/rubocop/cop/variable_force/reference.rb#16
def initialize(node, scope); end
# There's an implicit variable reference by the zero-arity `super`:
#
# def some_method(foo)
# super
# end
#
# Another case is `binding`:
#
# def some_method(foo)
# do_something(binding)
# end
#
# In these cases, the variable `foo` is not explicitly referenced,
# but it can be considered used implicitly by the `super` or `binding`.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/reference.rb#41
def explicit?; end
# Returns the value of attribute node.
#
# source://rubocop//lib/rubocop/cop/variable_force/reference.rb#14
def node; end
# Returns the value of attribute scope.
#
# source://rubocop//lib/rubocop/cop/variable_force/reference.rb#14
def scope; end
end
# source://rubocop//lib/rubocop/cop/variable_force/reference.rb#10
RuboCop::Cop::VariableForce::Reference::VARIABLE_REFERENCE_TYPES = T.let(T.unsafe(nil), Array)
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#58
RuboCop::Cop::VariableForce::SCOPE_TYPES = T.let(T.unsafe(nil), Array)
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#60
RuboCop::Cop::VariableForce::SEND_TYPE = T.let(T.unsafe(nil), Symbol)
# A Scope represents a context of local variable visibility.
# This is a place where local variables belong to.
# A scope instance holds a scope node and variable entries.
#
# source://rubocop//lib/rubocop/cop/variable_force/scope.rb#9
class RuboCop::Cop::VariableForce::Scope
# @return [Scope] a new instance of Scope
#
# source://rubocop//lib/rubocop/cop/variable_force/scope.rb#22
def initialize(node); end
# source://rubocop//lib/rubocop/cop/variable_force/scope.rb#35
def ==(other); end
# source://rubocop//lib/rubocop/cop/variable_force/scope.rb#43
def body_node; end
# @yield [node]
#
# source://rubocop//lib/rubocop/cop/variable_force/scope.rb#61
def each_node(&block); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/scope.rb#57
def include?(target_node); end
# Returns the value of attribute naked_top_level.
#
# source://rubocop//lib/rubocop/cop/variable_force/scope.rb#18
def naked_top_level; end
# Returns the value of attribute naked_top_level.
#
# source://rubocop//lib/rubocop/cop/variable_force/scope.rb#18
def naked_top_level?; end
# source://rubocop//lib/rubocop/cop/variable_force/scope.rb#39
def name; end
# Returns the value of attribute node.
#
# source://rubocop//lib/rubocop/cop/variable_force/scope.rb#18
def node; end
# Returns the value of attribute variables.
#
# source://rubocop//lib/rubocop/cop/variable_force/scope.rb#18
def variables; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/scope.rb#100
def ancestor_node?(target_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/scope.rb#90
def belong_to_inner_scope?(target_node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/scope.rb#79
def belong_to_outer_scope?(target_node); end
# source://rubocop//lib/rubocop/cop/variable_force/scope.rb#70
def scan_node(node, &block); end
end
# source://rubocop//lib/rubocop/cop/variable_force/scope.rb#10
RuboCop::Cop::VariableForce::Scope::OUTER_SCOPE_CHILD_INDICES = T.let(T.unsafe(nil), Hash)
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#57
RuboCop::Cop::VariableForce::TWISTED_SCOPE_TYPES = T.let(T.unsafe(nil), Array)
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#28
RuboCop::Cop::VariableForce::VARIABLE_ASSIGNMENT_TYPE = T.let(T.unsafe(nil), Symbol)
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#31
RuboCop::Cop::VariableForce::VARIABLE_ASSIGNMENT_TYPES = T.let(T.unsafe(nil), Array)
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#48
RuboCop::Cop::VariableForce::VARIABLE_REFERENCE_TYPE = T.let(T.unsafe(nil), Symbol)
# A Variable represents existence of a local variable.
# This holds a variable declaration node and some states of the variable.
#
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#8
class RuboCop::Cop::VariableForce::Variable
# @return [Variable] a new instance of Variable
#
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#15
def initialize(name, declaration_node, scope); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#98
def argument?; end
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#31
def assign(node); end
# Returns the value of attribute assignments.
#
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#11
def assignments; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#106
def block_argument?; end
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#78
def capture_with_block!; end
# Returns the value of attribute captured_by_block.
#
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#11
def captured_by_block; end
# Returns the value of attribute captured_by_block.
#
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#11
def captured_by_block?; end
# Returns the value of attribute declaration_node.
#
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#11
def declaration_node; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#114
def explicit_block_local_variable?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#70
def in_modifier_conditional?(assignment); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#110
def keyword_argument?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#102
def method_argument?; end
# Returns the value of attribute name.
#
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#11
def name; end
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#44
def reference!(node); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#39
def referenced?; end
# Returns the value of attribute references.
#
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#11
def references; end
# Returns the value of attribute scope.
#
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#11
def scope; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#94
def should_be_unused?; end
# This is a convenient way to check whether the variable is used
# in its entire variable lifetime.
# For more precise usage check, refer Assignment#used?.
#
# Once the variable is captured by a block, we have no idea
# when, where, and how many times the block would be invoked.
# This means we cannot track the usage of the variable.
# So we consider it's used to suppress false positive offenses.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#90
def used?; end
end
# source://rubocop//lib/rubocop/cop/variable_force/variable.rb#9
RuboCop::Cop::VariableForce::Variable::VARIABLE_DECLARATION_TYPES = T.let(T.unsafe(nil), Array)
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#62
class RuboCop::Cop::VariableForce::VariableReference < ::Struct
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#63
def assignment?; end
# Returns the value of attribute name
#
# @return [Object] the current value of name
def name; end
# Sets the attribute name
#
# @param value [Object] the value to set the attribute name to.
# @return [Object] the newly set value
def name=(_); end
class << self
def [](*_arg0); end
def inspect; end
def keyword_init?; end
def members; end
def new(*_arg0); end
end
end
# A VariableTable manages the lifetime of all scopes and local variables
# in a program.
# This holds scopes as stack structure, provides a way to add local
# variables to current scope, and find local variables by considering
# variable visibility of the current scope.
#
# source://rubocop//lib/rubocop/cop/variable_force/variable_table.rb#11
class RuboCop::Cop::VariableForce::VariableTable
# @return [VariableTable] a new instance of VariableTable
#
# source://rubocop//lib/rubocop/cop/variable_force/variable_table.rb#12
def initialize(hook_receiver = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/variable_force/variable_table.rb#113
def accessible_variables; end
# source://rubocop//lib/rubocop/cop/variable_force/variable_table.rb#56
def assign_to_variable(name, node); end
# source://rubocop//lib/rubocop/cop/variable_force/variable_table.rb#40
def current_scope; end
# source://rubocop//lib/rubocop/cop/variable_force/variable_table.rb#44
def current_scope_level; end
# source://rubocop//lib/rubocop/cop/variable_force/variable_table.rb#48
def declare_variable(name, node); end
# source://rubocop//lib/rubocop/cop/variable_force/variable_table.rb#94
def find_variable(name); end
# source://rubocop//lib/rubocop/cop/variable_force/variable_table.rb#16
def invoke_hook(hook_name, *args); end
# source://rubocop//lib/rubocop/cop/variable_force/variable_table.rb#32
def pop_scope; end
# source://rubocop//lib/rubocop/cop/variable_force/variable_table.rb#24
def push_scope(scope_node); end
# source://rubocop//lib/rubocop/cop/variable_force/variable_table.rb#68
def reference_variable(name, node); end
# source://rubocop//lib/rubocop/cop/variable_force/variable_table.rb#20
def scope_stack; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/cop/variable_force/variable_table.rb#109
def variable_exist?(name); end
private
# source://rubocop//lib/rubocop/cop/variable_force/variable_table.rb#122
def mark_variable_as_captured_by_block_if_so(variable); end
end
# @api private
#
# source://rubocop//lib/rubocop/cop/variable_force.rb#55
RuboCop::Cop::VariableForce::ZERO_ARITY_SUPER_TYPE = T.let(T.unsafe(nil), Symbol)
# Help methods for determining node visibility.
#
# source://rubocop//lib/rubocop/cop/mixin/visibility_help.rb#8
module RuboCop::Cop::VisibilityHelp
extend ::RuboCop::AST::NodePattern::Macros
# source://rubocop//lib/rubocop/cop/mixin/visibility_help.rb#57
def visibility_block?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/mixin/visibility_help.rb#62
def visibility_inline_on_def?(param0 = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/cop/mixin/visibility_help.rb#67
def visibility_inline_on_method_name?(param0 = T.unsafe(nil), method_name:); end
private
# Navigate to find the last protected method
#
# source://rubocop//lib/rubocop/cop/mixin/visibility_help.rb#48
def find_visibility_end(node); end
# source://rubocop//lib/rubocop/cop/mixin/visibility_help.rb#43
def find_visibility_start(node); end
# source://rubocop//lib/rubocop/cop/mixin/visibility_help.rb#15
def node_visibility(node); end
# source://rubocop//lib/rubocop/cop/mixin/visibility_help.rb#39
def node_visibility_from_visibility_block(node); end
# source://rubocop//lib/rubocop/cop/mixin/visibility_help.rb#21
def node_visibility_from_visibility_inline(node); end
# source://rubocop//lib/rubocop/cop/mixin/visibility_help.rb#28
def node_visibility_from_visibility_inline_on_def(node); end
# source://rubocop//lib/rubocop/cop/mixin/visibility_help.rb#33
def node_visibility_from_visibility_inline_on_method_name(node); end
end
# source://rubocop//lib/rubocop/cop/mixin/visibility_help.rb#11
RuboCop::Cop::VisibilityHelp::VISIBILITY_SCOPES = T.let(T.unsafe(nil), Set)
# This class wraps the `Parser::Source::Comment` object that represents a
# cops it contains.
#
# source://rubocop//lib/rubocop/directive_comment.rb#7
class RuboCop::DirectiveComment
# @return [DirectiveComment] a new instance of DirectiveComment
#
# source://rubocop//lib/rubocop/directive_comment.rb#32
def initialize(comment, cop_registry = T.unsafe(nil)); end
# Checks if all cops specified in this directive
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/directive_comment.rb#82
def all_cops?; end
# Returns the value of attribute comment.
#
# source://rubocop//lib/rubocop/directive_comment.rb#30
def comment; end
# Returns array of specified in this directive cop names
#
# source://rubocop//lib/rubocop/directive_comment.rb#87
def cop_names; end
# Returns the value of attribute cop_registry.
#
# source://rubocop//lib/rubocop/directive_comment.rb#30
def cop_registry; end
# Returns the value of attribute cops.
#
# source://rubocop//lib/rubocop/directive_comment.rb#30
def cops; end
# Returns array of specified in this directive department names
# when all department disabled
#
# source://rubocop//lib/rubocop/directive_comment.rb#93
def department_names; end
# source://rubocop//lib/rubocop/directive_comment.rb#107
def directive_count; end
# Checks if this directive disables cops
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/directive_comment.rb#62
def disabled?; end
# Checks if this directive disables all cops
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/directive_comment.rb#77
def disabled_all?; end
# Checks if this directive enables cops
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/directive_comment.rb#67
def enabled?; end
# Checks if this directive enables all cops
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/directive_comment.rb#72
def enabled_all?; end
# Checks if directive departments include cop
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/directive_comment.rb#98
def in_directive_department?(cop); end
# Returns line number for directive
#
# source://rubocop//lib/rubocop/directive_comment.rb#112
def line_number; end
# Checks if this directive contains all the given cop names
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/directive_comment.rb#44
def match?(cop_names); end
# Returns match captures to directive comment pattern
#
# source://rubocop//lib/rubocop/directive_comment.rb#57
def match_captures; end
# Returns the value of attribute mode.
#
# source://rubocop//lib/rubocop/directive_comment.rb#30
def mode; end
# Checks if cop department has already used in directive comment
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/directive_comment.rb#103
def overridden_by_department?(cop); end
# source://rubocop//lib/rubocop/directive_comment.rb#48
def range; end
# Checks if this directive relates to single line
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/directive_comment.rb#39
def single_line?; end
private
# source://rubocop//lib/rubocop/directive_comment.rb#133
def all_cop_names; end
# source://rubocop//lib/rubocop/directive_comment.rb#137
def cop_names_for_department(department); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/directive_comment.rb#129
def department?(name); end
# source://rubocop//lib/rubocop/directive_comment.rb#142
def exclude_lint_department_cops(cops); end
# source://rubocop//lib/rubocop/directive_comment.rb#122
def parsed_cop_names; end
# source://rubocop//lib/rubocop/directive_comment.rb#118
def splitted_cops_string; end
class << self
# source://rubocop//lib/rubocop/directive_comment.rb#26
def before_comment(line); end
end
end
# @api private
#
# source://rubocop//lib/rubocop/directive_comment.rb#19
RuboCop::DirectiveComment::COPS_PATTERN = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/directive_comment.rb#17
RuboCop::DirectiveComment::COP_NAMES_PATTERN = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/directive_comment.rb#15
RuboCop::DirectiveComment::COP_NAME_PATTERN = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/directive_comment.rb#21
RuboCop::DirectiveComment::DIRECTIVE_COMMENT_REGEXP = T.let(T.unsafe(nil), Regexp)
# @api private
#
# source://rubocop//lib/rubocop/directive_comment.rb#9
RuboCop::DirectiveComment::LINT_DEPARTMENT = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/directive_comment.rb#11
RuboCop::DirectiveComment::LINT_REDUNDANT_DIRECTIVE_COP = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/directive_comment.rb#13
RuboCop::DirectiveComment::LINT_SYNTAX_COP = T.let(T.unsafe(nil), String)
# An Error exception is different from an Offense with severity 'error'
# When this exception is raised, it means that RuboCop is unable to perform
# a requested action (probably due to misconfiguration) and must stop
# immediately, rather than carrying on
#
# source://rubocop//lib/rubocop/error.rb#8
class RuboCop::Error < ::StandardError; end
# A wrapper to display errored location of analyzed file.
#
# source://rubocop//lib/rubocop/error.rb#13
class RuboCop::ErrorWithAnalyzedFileLocation < ::RuboCop::Error
# @return [ErrorWithAnalyzedFileLocation] a new instance of ErrorWithAnalyzedFileLocation
#
# source://rubocop//lib/rubocop/error.rb#14
def initialize(cause:, node:, cop:); end
# Returns the value of attribute cause.
#
# source://rubocop//lib/rubocop/error.rb#21
def cause; end
# source://rubocop//lib/rubocop/error.rb#27
def column; end
# Returns the value of attribute cop.
#
# source://rubocop//lib/rubocop/error.rb#21
def cop; end
# source://rubocop//lib/rubocop/error.rb#23
def line; end
# source://rubocop//lib/rubocop/error.rb#31
def message; end
end
# Allows specified configuration options to have an exclude limit
# ie. a maximum value tracked that it can be used by `--auto-gen-config`.
#
# source://rubocop//lib/rubocop/cop/exclude_limit.rb#6
module RuboCop::ExcludeLimit
# Sets up a configuration option to have an exclude limit tracked.
# The parameter name given is transformed into a method name (eg. `Max`
# becomes `self.max=` and `MinDigits` becomes `self.min_digits=`).
#
# source://rubocop//lib/rubocop/cop/exclude_limit.rb#10
def exclude_limit(parameter_name, method_name: T.unsafe(nil)); end
private
# source://rubocop//lib/rubocop/cop/exclude_limit.rb#22
def transform(parameter_name); end
end
# source://rubocop//lib/rubocop/ext/comment.rb#4
module RuboCop::Ext; end
# Extensions to `Parser::Source::Comment`.
#
# source://rubocop//lib/rubocop/ext/comment.rb#6
module RuboCop::Ext::Comment
# source://rubocop//lib/rubocop/ext/comment.rb#7
def source; end
# source://rubocop//lib/rubocop/ext/comment.rb#11
def source_range; end
end
# Extensions to AST::ProcessedSource for our cached comment_config
#
# source://rubocop//lib/rubocop/ext/processed_source.rb#6
module RuboCop::Ext::ProcessedSource
# source://rubocop//lib/rubocop/ext/processed_source.rb#9
def comment_config; end
# Returns the value of attribute config.
#
# source://rubocop//lib/rubocop/ext/processed_source.rb#7
def config; end
# Sets the attribute config
#
# @param value the value to set the attribute config to.
#
# source://rubocop//lib/rubocop/ext/processed_source.rb#7
def config=(_arg0); end
# source://rubocop//lib/rubocop/ext/processed_source.rb#13
def disabled_line_ranges; end
# Returns the value of attribute registry.
#
# source://rubocop//lib/rubocop/ext/processed_source.rb#7
def registry; end
# Sets the attribute registry
#
# @param value the value to set the attribute registry to.
#
# source://rubocop//lib/rubocop/ext/processed_source.rb#7
def registry=(_arg0); end
end
# Extensions to Parser::Source::Range
#
# source://rubocop//lib/rubocop/ext/range.rb#6
module RuboCop::Ext::Range
# Adds `Range#single_line?` to parallel `Node#single_line?`
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/ext/range.rb#8
def single_line?; end
end
# Extensions to AST::RegexpNode for our cached parsed regexp info
#
# source://rubocop//lib/rubocop/ext/regexp_node.rb#6
module RuboCop::Ext::RegexpNode
# source://rubocop//lib/rubocop/ext/regexp_node.rb#18
def assign_properties(*_arg0); end
# source://rubocop//lib/rubocop/ext/regexp_node.rb#31
def each_capture(named: T.unsafe(nil)); end
# Note: we extend Regexp nodes to provide `loc` and `expression`
# see `ext/regexp_parser`.
#
# @return [Regexp::Expression::Root, nil]
#
# source://rubocop//lib/rubocop/ext/regexp_node.rb#16
def parsed_tree; end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/ext/regexp_node.rb#43
def named_capturing?(exp, event, named); end
# source://rubocop//lib/rubocop/ext/regexp_node.rb#51
def with_interpolations_blanked; end
end
# source://rubocop//lib/rubocop/ext/regexp_node.rb#7
RuboCop::Ext::RegexpNode::ANY = T.let(T.unsafe(nil), Object)
# Extensions for `regexp_parser` gem
#
# source://rubocop//lib/rubocop/ext/regexp_parser.rb#6
module RuboCop::Ext::RegexpParser; end
# source://rubocop//lib/rubocop/ext/regexp_parser.rb#20
module RuboCop::Ext::RegexpParser::Expression; end
# Add `expression` and `loc` to all `regexp_parser` nodes
#
# source://rubocop//lib/rubocop/ext/regexp_parser.rb#22
module RuboCop::Ext::RegexpParser::Expression::Base
# Shortcut to `loc.expression`
#
# source://rubocop//lib/rubocop/ext/regexp_parser.rb#26
def expression; end
# E.g.
# [a-z]{2,}
# ^^^^^^^^^ expression
# ^^^^ quantifier
# ^^^^^ body
# ^ begin
# ^ end
#
# Please open issue if you need other locations
#
# source://rubocop//lib/rubocop/ext/regexp_parser.rb#44
def loc; end
# Returns the value of attribute origin.
#
# source://rubocop//lib/rubocop/ext/regexp_parser.rb#23
def origin; end
# Sets the attribute origin
#
# @param value the value to set the attribute origin to.
#
# source://rubocop//lib/rubocop/ext/regexp_parser.rb#23
def origin=(_arg0); end
private
# source://rubocop//lib/rubocop/ext/regexp_parser.rb#50
def build_location; end
end
# Provide `CharacterSet` with `begin` and `end` locations.
#
# source://rubocop//lib/rubocop/ext/regexp_parser.rb#62
module RuboCop::Ext::RegexpParser::Expression::CharacterSet
# source://rubocop//lib/rubocop/ext/regexp_parser.rb#63
def build_location; end
end
# Source map for RegexpParser nodes
#
# source://rubocop//lib/rubocop/ext/regexp_parser.rb#8
class RuboCop::Ext::RegexpParser::Map < ::Parser::Source::Map
# @return [Map] a new instance of Map
#
# source://rubocop//lib/rubocop/ext/regexp_parser.rb#11
def initialize(expression, body:, quantifier: T.unsafe(nil), begin_l: T.unsafe(nil), end_l: T.unsafe(nil)); end
# Returns the value of attribute begin.
#
# source://rubocop//lib/rubocop/ext/regexp_parser.rb#9
def begin; end
# Returns the value of attribute body.
#
# source://rubocop//lib/rubocop/ext/regexp_parser.rb#9
def body; end
# Returns the value of attribute end.
#
# source://rubocop//lib/rubocop/ext/regexp_parser.rb#9
def end; end
# Returns the value of attribute quantifier.
#
# source://rubocop//lib/rubocop/ext/regexp_parser.rb#9
def quantifier; end
end
# This class handles loading files (a.k.a. features in Ruby) specified
# by `--require` command line option and `require` directive in the config.
#
# Normally, the given string is directly passed to `require`. If a string
# beginning with `.` is given, it is assumed to be relative to the given
# directory.
#
# If a string containing `-` is given, it will be used as is, but if we
# cannot find the file to load, we will replace `-` with `/` and try it
# again as when Bundler loads gems.
#
# @api private
#
# source://rubocop//lib/rubocop/feature_loader.rb#16
class RuboCop::FeatureLoader
# @api private
# @param config_directory_path [String]
# @param feature [String]
# @return [FeatureLoader] a new instance of FeatureLoader
#
# source://rubocop//lib/rubocop/feature_loader.rb#27
def initialize(config_directory_path:, feature:); end
# @api private
#
# source://rubocop//lib/rubocop/feature_loader.rb#32
def load; end
private
# @api private
# @return [String]
#
# source://rubocop//lib/rubocop/feature_loader.rb#55
def namespaced_feature; end
# @api private
# @return [String]
#
# source://rubocop//lib/rubocop/feature_loader.rb#60
def namespaced_target; end
# @api private
# @param [String]
# @return [String]
#
# source://rubocop//lib/rubocop/feature_loader.rb#70
def relative(feature); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/feature_loader.rb#75
def relative?; end
# @api private
# @param error [LoadError]
# @return [Boolean]
#
# source://rubocop//lib/rubocop/feature_loader.rb#81
def seems_cannot_load_such_file_error?(error); end
# @api private
# @return [String]
#
# source://rubocop//lib/rubocop/feature_loader.rb#86
def target; end
class << self
# @api private
# @param config_directory_path [String]
# @param feature [String]
#
# source://rubocop//lib/rubocop/feature_loader.rb#20
def load(config_directory_path:, feature:); end
end
end
# Common methods for finding files.
#
# @api private
#
# source://rubocop//lib/rubocop/file_finder.rb#8
module RuboCop::FileFinder
# @api private
#
# source://rubocop//lib/rubocop/file_finder.rb#13
def find_file_upwards(filename, start_dir, stop_dir = T.unsafe(nil)); end
# @api private
#
# source://rubocop//lib/rubocop/file_finder.rb#20
def find_last_file_upwards(filename, start_dir, stop_dir = T.unsafe(nil)); end
# @api private
#
# source://rubocop//lib/rubocop/file_finder.rb#26
def traverse_directories_upwards(start_dir, stop_dir = T.unsafe(nil)); end
private
# @api private
#
# source://rubocop//lib/rubocop/file_finder.rb#36
def traverse_files_upwards(filename, start_dir, stop_dir); end
class << self
# @api private
#
# source://rubocop//lib/rubocop/file_finder.rb#10
def root_level; end
# @api private
#
# source://rubocop//lib/rubocop/file_finder.rb#10
def root_level=(_arg0); end
end
end
# A wrapper around patterns array to perform optimized search.
#
# For projects with a large set of rubocop todo files, most items in `Exclude`/`Include`
# are exact file names. It is wasteful to linearly check the list of patterns over and over
# to check if the file is relevant to the cop.
#
# This class partitions an array of patterns into a set of exact match strings and the rest
# of the patterns. This way we can firstly do a cheap check in the set and then proceed via
# the costly patterns check, if needed.
#
# @api private
#
# source://rubocop//lib/rubocop/file_patterns.rb#14
class RuboCop::FilePatterns
# @api private
# @return [FilePatterns] a new instance of FilePatterns
#
# source://rubocop//lib/rubocop/file_patterns.rb#21
def initialize(patterns); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/file_patterns.rb#27
def match?(path); end
private
# @api private
#
# source://rubocop//lib/rubocop/file_patterns.rb#33
def partition_patterns(patterns); end
class << self
# @api private
#
# source://rubocop//lib/rubocop/file_patterns.rb#17
def from(patterns); end
end
end
# The bootstrap module for formatter.
#
# source://rubocop//lib/rubocop/formatter.rb#5
module RuboCop::Formatter; end
# Does not show individual offenses in the console.
#
# source://rubocop//lib/rubocop/formatter/auto_gen_config_formatter.rb#6
class RuboCop::Formatter::AutoGenConfigFormatter < ::RuboCop::Formatter::ProgressFormatter
# source://rubocop//lib/rubocop/formatter/auto_gen_config_formatter.rb#7
def finished(inspected_files); end
end
# Abstract base class for formatter, implements all public API methods.
#
# ## Creating Custom Formatter
#
# You can create a custom formatter by subclassing
# `RuboCop::Formatter::BaseFormatter` and overriding some methods
# or by implementing all the methods by duck typing.
#
# ## Using Custom Formatter in Command Line
#
# You can tell RuboCop to use your custom formatter with a combination of
# `--format` and `--require` option.
# For example, when you have defined `MyCustomFormatter` in
# `./path/to/my_custom_formatter.rb`, you would type this command:
#
# rubocop --require ./path/to/my_custom_formatter --format MyCustomFormatter
#
# Note: The path passed to `--require` is directly passed to
# `Kernel.require`.
# If your custom formatter file is not in `$LOAD_PATH`,
# you need to specify the path as relative path prefixed with `./`
# explicitly or absolute path.
#
# ## Method Invocation Order
#
# For example, when RuboCop inspects 2 files,
# the invocation order should be like this:
#
# * `#initialize`
# * `#started`
# * `#file_started`
# * `#file_finished`
# * `#file_started`
# * `#file_finished`
# * `#finished`
#
# source://rubocop//lib/rubocop/formatter/base_formatter.rb#41
class RuboCop::Formatter::BaseFormatter
# @api public
# @param output [IO] `$stdout` or opened file
# @return [BaseFormatter] a new instance of BaseFormatter
#
# source://rubocop//lib/rubocop/formatter/base_formatter.rb#63
def initialize(output, options = T.unsafe(nil)); end
# Invoked at the end of inspecting each files.
#
# @api public
# @param file [String] the file path
# @param offenses [Array(RuboCop::Cop::Offense)] all detected offenses for the file
# @return [void]
# @see RuboCop::Cop::Offense
#
# source://rubocop//lib/rubocop/formatter/base_formatter.rb#104
def file_finished(file, offenses); end
# Invoked at the beginning of inspecting each files.
#
# @api public
# @param file [String] the file path
# @param options [Hash] file specific information, currently this is always empty.
# @return [void]
#
# source://rubocop//lib/rubocop/formatter/base_formatter.rb#89
def file_started(file, options); end
# Invoked after all files are inspected or interrupted by user.
#
# @api public
# @param inspected_files [Array(String)] the inspected file paths.
# This would be same as `target_files` passed to `#started`
# unless RuboCop is interrupted by user.
# @return [void]
#
# source://rubocop//lib/rubocop/formatter/base_formatter.rb#116
def finished(inspected_files); end
# @api public
# @return [Hash]
#
# source://rubocop//lib/rubocop/formatter/base_formatter.rb#57
def options; end
# @api public
# @return [IO] the IO object passed to `#initialize`
# @see #initialize
#
# source://rubocop//lib/rubocop/formatter/base_formatter.rb#50
def output; end
# Invoked once before any files are inspected.
#
# @api public
# @param target_files [Array(String)] all target file paths to be inspected
# @return [void]
#
# source://rubocop//lib/rubocop/formatter/base_formatter.rb#76
def started(target_files); end
end
# This formatter formats report data in clang style.
# The precise location of the problem is shown together with the
# relevant source code.
#
# source://rubocop//lib/rubocop/formatter/clang_style_formatter.rb#8
class RuboCop::Formatter::ClangStyleFormatter < ::RuboCop::Formatter::SimpleTextFormatter
# source://rubocop//lib/rubocop/formatter/clang_style_formatter.rb#11
def report_file(file, offenses); end
private
# source://rubocop//lib/rubocop/formatter/clang_style_formatter.rb#47
def report_highlighted_area(highlighted_area); end
# source://rubocop//lib/rubocop/formatter/clang_style_formatter.rb#37
def report_line(location); end
# source://rubocop//lib/rubocop/formatter/clang_style_formatter.rb#17
def report_offense(file, offense); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/formatter/clang_style_formatter.rb#33
def valid_line?(offense); end
end
# source://rubocop//lib/rubocop/formatter/clang_style_formatter.rb#9
RuboCop::Formatter::ClangStyleFormatter::ELLIPSES = T.let(T.unsafe(nil), String)
# This mix-in module provides string coloring methods for terminals.
# It automatically disables coloring if coloring is disabled in the process
# globally or the formatter's output is not a terminal.
#
# source://rubocop//lib/rubocop/formatter/colorizable.rb#8
module RuboCop::Formatter::Colorizable
# source://rubocop//lib/rubocop/formatter/colorizable.rb#35
def black(string); end
# source://rubocop//lib/rubocop/formatter/colorizable.rb#35
def blue(string); end
# source://rubocop//lib/rubocop/formatter/colorizable.rb#21
def colorize(string, *args); end
# source://rubocop//lib/rubocop/formatter/colorizable.rb#35
def cyan(string); end
# source://rubocop//lib/rubocop/formatter/colorizable.rb#35
def green(string); end
# source://rubocop//lib/rubocop/formatter/colorizable.rb#35
def magenta(string); end
# source://rubocop//lib/rubocop/formatter/colorizable.rb#9
def rainbow; end
# source://rubocop//lib/rubocop/formatter/colorizable.rb#35
def red(string); end
# source://rubocop//lib/rubocop/formatter/colorizable.rb#35
def white(string); end
# source://rubocop//lib/rubocop/formatter/colorizable.rb#35
def yellow(string); end
end
# This formatter displays a YAML configuration file where all cops that
# detected any offenses are configured to not detect the offense.
#
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#7
class RuboCop::Formatter::DisabledConfigFormatter < ::RuboCop::Formatter::BaseFormatter
include ::RuboCop::PathUtil
# @return [DisabledConfigFormatter] a new instance of DisabledConfigFormatter
#
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#27
def initialize(output, options = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#40
def file_finished(file, offenses); end
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#33
def file_started(_file, options); end
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#48
def finished(_inspected_files); end
private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#69
def auto_gen_enforced_style?; end
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#73
def command; end
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#165
def cop_config_params(default_cfg, cfg); end
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#185
def default_config(cop_name); end
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#229
def excludes(offending_files, cop_name, parent); end
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#200
def filtered_config(cfg); end
# Returns true if the given arr include the given elm or if any of the
# given arr is a regexp that matches the given elm.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#277
def include_or_match?(arr, elm); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#250
def merge_mode_for_exclude?(cfg); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#271
def no_exclude_limit?; end
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#102
def output_cop(cop_name, offense_count); end
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#137
def output_cop_comments(output_buffer, cfg, cop_name, offense_count); end
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#189
def output_cop_config(output_buffer, cfg, cop_name); end
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#172
def output_cop_param_comments(output_buffer, params, default_cfg); end
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#219
def output_exclude_list(output_buffer, offending_files, cop_name); end
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#254
def output_exclude_path(output_buffer, exclude_path, parent); end
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#208
def output_offending_files(output_buffer, cfg, cop_name); end
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#96
def output_offenses; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#267
def safe_autocorrect?(config); end
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#116
def set_max(cfg, cop_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#125
def should_set_max?(cop_name); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#65
def show_offense_counts?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#61
def show_timestamp?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#157
def supports_safe_autocorrect?(cop_class, default_cfg); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#161
def supports_unsafe_autocorrect?(cop_class, default_cfg); end
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#92
def timestamp; end
class << self
# Returns the value of attribute config_to_allow_offenses.
#
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#24
def config_to_allow_offenses; end
# Sets the attribute config_to_allow_offenses
#
# @param value the value to set the attribute config_to_allow_offenses to.
#
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#24
def config_to_allow_offenses=(_arg0); end
# Returns the value of attribute detected_styles.
#
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#24
def detected_styles; end
# Sets the attribute detected_styles
#
# @param value the value to set the attribute detected_styles to.
#
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#24
def detected_styles=(_arg0); end
end
end
# source://rubocop//lib/rubocop/formatter/disabled_config_formatter.rb#10
RuboCop::Formatter::DisabledConfigFormatter::HEADING = T.let(T.unsafe(nil), String)
# This formatter displays the report data in format that's
# easy to process in the Emacs text editor.
# The output is machine-parsable.
#
# source://rubocop//lib/rubocop/formatter/emacs_style_formatter.rb#8
class RuboCop::Formatter::EmacsStyleFormatter < ::RuboCop::Formatter::BaseFormatter
# source://rubocop//lib/rubocop/formatter/emacs_style_formatter.rb#9
def file_finished(file, offenses); end
private
# source://rubocop//lib/rubocop/formatter/emacs_style_formatter.rb#24
def message(offense); end
end
# This formatter displays just a list of the files with offenses in them,
# separated by newlines. The output is machine-parsable.
#
# Here's the format:
#
# /some/file
# /some/other/file
#
# source://rubocop//lib/rubocop/formatter/file_list_formatter.rb#12
class RuboCop::Formatter::FileListFormatter < ::RuboCop::Formatter::BaseFormatter
# source://rubocop//lib/rubocop/formatter/file_list_formatter.rb#13
def file_finished(file, offenses); end
end
# This is a collection of formatters. A FormatterSet can hold multiple
# formatter instances and provides transparent formatter API methods
# which invoke same method of each formatters.
#
# source://rubocop//lib/rubocop/formatter/formatter_set.rb#10
class RuboCop::Formatter::FormatterSet < ::Array
# @return [FormatterSet] a new instance of FormatterSet
#
# source://rubocop//lib/rubocop/formatter/formatter_set.rb#40
def initialize(options = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/formatter/formatter_set.rb#56
def add_formatter(formatter_type, output_path = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/formatter/formatter_set.rb#68
def close_output_files; end
# source://rubocop//lib/rubocop/formatter/formatter_set.rb#51
def file_finished(file, offenses); end
# source://rubocop//lib/rubocop/formatter/formatter_set.rb#45
def file_started(file, options); end
# source://rubocop//lib/rubocop/formatter/formatter_set.rb#35
def finished(*args); end
# source://rubocop//lib/rubocop/formatter/formatter_set.rb#35
def started(*args); end
private
# source://rubocop//lib/rubocop/formatter/formatter_set.rb#87
def builtin_formatter_class(specified_key); end
# source://rubocop//lib/rubocop/formatter/formatter_set.rb#105
def custom_formatter_class(specified_class_name); end
# source://rubocop//lib/rubocop/formatter/formatter_set.rb#76
def formatter_class(formatter_type); end
end
# source://rubocop//lib/rubocop/formatter/formatter_set.rb#11
RuboCop::Formatter::FormatterSet::BUILTIN_FORMATTERS_FOR_KEYS = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/formatter/formatter_set.rb#30
RuboCop::Formatter::FormatterSet::BUILTIN_FORMATTER_NAMES = T.let(T.unsafe(nil), Array)
# source://rubocop//lib/rubocop/formatter/formatter_set.rb#32
RuboCop::Formatter::FormatterSet::FORMATTER_APIS = T.let(T.unsafe(nil), Array)
# This formatter displays a progress bar and shows details of offenses as
# soon as they are detected.
# This is inspired by the Fuubar formatter for RSpec by Jeff Kreeftmeijer.
# https://github.com/jeffkreeftmeijer/fuubar
#
# source://rubocop//lib/rubocop/formatter/fuubar_style_formatter.rb#11
class RuboCop::Formatter::FuubarStyleFormatter < ::RuboCop::Formatter::ClangStyleFormatter
# @return [FuubarStyleFormatter] a new instance of FuubarStyleFormatter
#
# source://rubocop//lib/rubocop/formatter/fuubar_style_formatter.rb#14
def initialize(*output); end
# source://rubocop//lib/rubocop/formatter/fuubar_style_formatter.rb#51
def count_stats(offenses); end
# source://rubocop//lib/rubocop/formatter/fuubar_style_formatter.rb#40
def file_finished(file, offenses); end
# source://rubocop//lib/rubocop/formatter/fuubar_style_formatter.rb#71
def progressbar_color; end
# source://rubocop//lib/rubocop/formatter/fuubar_style_formatter.rb#20
def started(target_files); end
# source://rubocop//lib/rubocop/formatter/fuubar_style_formatter.rb#61
def with_color; end
end
# source://rubocop//lib/rubocop/formatter/fuubar_style_formatter.rb#12
RuboCop::Formatter::FuubarStyleFormatter::RESET_SEQUENCE = T.let(T.unsafe(nil), String)
# This formatter formats report data as GitHub Workflow commands resulting
# in GitHub check annotations when run within GitHub Actions.
#
# source://rubocop//lib/rubocop/formatter/github_actions_formatter.rb#7
class RuboCop::Formatter::GitHubActionsFormatter < ::RuboCop::Formatter::BaseFormatter
# source://rubocop//lib/rubocop/formatter/github_actions_formatter.rb#14
def file_finished(file, offenses); end
# source://rubocop//lib/rubocop/formatter/github_actions_formatter.rb#18
def finished(_inspected_files); end
# source://rubocop//lib/rubocop/formatter/github_actions_formatter.rb#10
def started(_target_files); end
private
# source://rubocop//lib/rubocop/formatter/github_actions_formatter.rb#29
def github_escape(string); end
# source://rubocop//lib/rubocop/formatter/github_actions_formatter.rb#41
def github_severity(offense); end
# source://rubocop//lib/rubocop/formatter/github_actions_formatter.rb#33
def minimum_severity_to_fail; end
# source://rubocop//lib/rubocop/formatter/github_actions_formatter.rb#45
def report_offense(file, offense); end
end
# source://rubocop//lib/rubocop/formatter/github_actions_formatter.rb#8
RuboCop::Formatter::GitHubActionsFormatter::ESCAPE_MAP = T.let(T.unsafe(nil), Hash)
# This formatter saves the output as an html file.
#
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#9
class RuboCop::Formatter::HTMLFormatter < ::RuboCop::Formatter::BaseFormatter
# @return [HTMLFormatter] a new instance of HTMLFormatter
#
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#29
def initialize(output, options = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#39
def file_finished(file, offenses); end
# Returns the value of attribute files.
#
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#27
def files; end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#44
def finished(inspected_files); end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#50
def render_html; end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#35
def started(target_files); end
# Returns the value of attribute summary.
#
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#27
def summary; end
end
# This class provides helper methods used in the ERB CSS template.
#
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#137
class RuboCop::Formatter::HTMLFormatter::CSSContext
# Make Kernel#binding public.
#
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#148
def binding; end
end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#138
RuboCop::Formatter::HTMLFormatter::CSSContext::SEVERITY_COLORS = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#12
RuboCop::Formatter::HTMLFormatter::CSS_PATH = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#14
class RuboCop::Formatter::HTMLFormatter::Color < ::Struct
# Returns the value of attribute alpha
#
# @return [Object] the current value of alpha
def alpha; end
# Sets the attribute alpha
#
# @param value [Object] the value to set the attribute alpha to.
# @return [Object] the newly set value
def alpha=(_); end
# Returns the value of attribute blue
#
# @return [Object] the current value of blue
def blue; end
# Sets the attribute blue
#
# @param value [Object] the value to set the attribute blue to.
# @return [Object] the newly set value
def blue=(_); end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#19
def fade_out(amount); end
# Returns the value of attribute green
#
# @return [Object] the current value of green
def green; end
# Sets the attribute green
#
# @param value [Object] the value to set the attribute green to.
# @return [Object] the newly set value
def green=(_); end
# Returns the value of attribute red
#
# @return [Object] the current value of red
def red; end
# Sets the attribute red
#
# @param value [Object] the value to set the attribute red to.
# @return [Object] the newly set value
def red=(_); end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#15
def to_s; end
class << self
def [](*_arg0); end
def inspect; end
def keyword_init?; end
def members; end
def new(*_arg0); end
end
end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#10
RuboCop::Formatter::HTMLFormatter::ELLIPSES = T.let(T.unsafe(nil), String)
# This class provides helper methods used in the ERB template.
#
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#63
class RuboCop::Formatter::HTMLFormatter::ERBContext
include ::RuboCop::PathUtil
include ::RuboCop::Formatter::TextUtil
# @return [ERBContext] a new instance of ERBContext
#
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#71
def initialize(files, summary); end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#118
def base64_encoded_logo_image; end
# Make Kernel#binding public.
#
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#78
def binding; end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#83
def decorated_message(offense); end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#114
def escape(string); end
# Returns the value of attribute files.
#
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#69
def files; end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#94
def highlight_source_tag(offense); end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#87
def highlighted_source_line(offense); end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#110
def possible_ellipses(location); end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#126
def render_css; end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#105
def source_after_highlight(offense); end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#100
def source_before_highlight(offense); end
# Returns the value of attribute summary.
#
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#69
def summary; end
end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#67
RuboCop::Formatter::HTMLFormatter::ERBContext::LOGO_IMAGE_PATH = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#25
class RuboCop::Formatter::HTMLFormatter::FileOffenses < ::Struct
# Returns the value of attribute offenses
#
# @return [Object] the current value of offenses
def offenses; end
# Sets the attribute offenses
#
# @param value [Object] the value to set the attribute offenses to.
# @return [Object] the newly set value
def offenses=(_); end
# Returns the value of attribute path
#
# @return [Object] the current value of path
def path; end
# Sets the attribute path
#
# @param value [Object] the value to set the attribute path to.
# @return [Object] the newly set value
def path=(_); end
class << self
def [](*_arg0); end
def inspect; end
def keyword_init?; end
def members; end
def new(*_arg0); end
end
end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#24
class RuboCop::Formatter::HTMLFormatter::Summary < ::Struct
# Returns the value of attribute inspected_files
#
# @return [Object] the current value of inspected_files
def inspected_files; end
# Sets the attribute inspected_files
#
# @param value [Object] the value to set the attribute inspected_files to.
# @return [Object] the newly set value
def inspected_files=(_); end
# Returns the value of attribute offense_count
#
# @return [Object] the current value of offense_count
def offense_count; end
# Sets the attribute offense_count
#
# @param value [Object] the value to set the attribute offense_count to.
# @return [Object] the newly set value
def offense_count=(_); end
# Returns the value of attribute target_files
#
# @return [Object] the current value of target_files
def target_files; end
# Sets the attribute target_files
#
# @param value [Object] the value to set the attribute target_files to.
# @return [Object] the newly set value
def target_files=(_); end
class << self
def [](*_arg0); end
def inspect; end
def keyword_init?; end
def members; end
def new(*_arg0); end
end
end
# source://rubocop//lib/rubocop/formatter/html_formatter.rb#11
RuboCop::Formatter::HTMLFormatter::TEMPLATE_PATH = T.let(T.unsafe(nil), String)
# This formatter formats the report data in JSON format.
#
# source://rubocop//lib/rubocop/formatter/json_formatter.rb#8
class RuboCop::Formatter::JSONFormatter < ::RuboCop::Formatter::BaseFormatter
include ::RuboCop::PathUtil
# @return [JSONFormatter] a new instance of JSONFormatter
#
# source://rubocop//lib/rubocop/formatter/json_formatter.rb#13
def initialize(output, options = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/formatter/json_formatter.rb#22
def file_finished(file, offenses); end
# source://rubocop//lib/rubocop/formatter/json_formatter.rb#27
def finished(inspected_files); end
# source://rubocop//lib/rubocop/formatter/json_formatter.rb#42
def hash_for_file(file, offenses); end
# TODO: Consider better solution for Offense#real_column.
# The minimum value of `start_column: real_column` is 1.
# So, the minimum value of `last_column` should be 1.
# And non-zero value of `last_column` should be used as is.
#
# source://rubocop//lib/rubocop/formatter/json_formatter.rb#64
def hash_for_location(offense); end
# source://rubocop//lib/rubocop/formatter/json_formatter.rb#49
def hash_for_offense(offense); end
# source://rubocop//lib/rubocop/formatter/json_formatter.rb#32
def metadata_hash; end
# Returns the value of attribute output_hash.
#
# source://rubocop//lib/rubocop/formatter/json_formatter.rb#11
def output_hash; end
# source://rubocop//lib/rubocop/formatter/json_formatter.rb#18
def started(target_files); end
end
# This formatter formats the report data in JUnit format.
#
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#15
class RuboCop::Formatter::JUnitFormatter < ::RuboCop::Formatter::BaseFormatter
# @return [JUnitFormatter] a new instance of JUnitFormatter
#
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#24
def initialize(output, options = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#32
def file_finished(file, offenses); end
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#51
def finished(_inspected_files); end
private
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#106
def add_failure_to(testcase, offenses, cop_name); end
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#85
def add_testcase_element_to_testsuite_element(file, target_offenses, cop); end
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#94
def classname_attribute_value(file); end
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#81
def offenses_for_cop(all_offenses, cop); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#77
def relevant_for_output?(options, target_offenses); end
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#101
def reset_count; end
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#118
def xml_escape(string); end
end
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#16
RuboCop::Formatter::JUnitFormatter::ESCAPE_MAP = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#132
class RuboCop::Formatter::JUnitFormatter::FailureElement
# @return [FailureElement] a new instance of FailureElement
#
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#135
def initialize(type:, message:, text:); end
# Returns the value of attribute message.
#
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#133
def message; end
# Returns the value of attribute text.
#
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#133
def text; end
# Returns the value of attribute type.
#
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#133
def type; end
end
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#122
class RuboCop::Formatter::JUnitFormatter::TestCaseElement
# @return [TestCaseElement] a new instance of TestCaseElement
#
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#125
def initialize(classname:, name:); end
# Returns the value of attribute classname.
#
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#123
def classname; end
# Returns the value of attribute failures.
#
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#123
def failures; end
# Returns the value of attribute name.
#
# source://rubocop//lib/rubocop/formatter/junit_formatter.rb#123
def name; end
end
# This formatter displays the report data in markdown
#
# source://rubocop//lib/rubocop/formatter/markdown_formatter.rb#6
class RuboCop::Formatter::MarkdownFormatter < ::RuboCop::Formatter::BaseFormatter
include ::RuboCop::Formatter::TextUtil
include ::RuboCop::PathUtil
# @return [MarkdownFormatter] a new instance of MarkdownFormatter
#
# source://rubocop//lib/rubocop/formatter/markdown_formatter.rb#11
def initialize(output, options = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/formatter/markdown_formatter.rb#21
def file_finished(file, offenses); end
# Returns the value of attribute files.
#
# source://rubocop//lib/rubocop/formatter/markdown_formatter.rb#9
def files; end
# source://rubocop//lib/rubocop/formatter/markdown_formatter.rb#26
def finished(inspected_files); end
# source://rubocop//lib/rubocop/formatter/markdown_formatter.rb#17
def started(target_files); end
# Returns the value of attribute summary.
#
# source://rubocop//lib/rubocop/formatter/markdown_formatter.rb#9
def summary; end
private
# source://rubocop//lib/rubocop/formatter/markdown_formatter.rb#73
def possible_ellipses(location); end
# source://rubocop//lib/rubocop/formatter/markdown_formatter.rb#33
def render_markdown; end
# source://rubocop//lib/rubocop/formatter/markdown_formatter.rb#67
def write_code(offense); end
# source://rubocop//lib/rubocop/formatter/markdown_formatter.rb#61
def write_context(offense); end
# source://rubocop//lib/rubocop/formatter/markdown_formatter.rb#42
def write_file_messages; end
# source://rubocop//lib/rubocop/formatter/markdown_formatter.rb#54
def write_heading(file); end
end
# This formatter displays the list of offended cops with a count of how
# many offenses of their kind were found. Ordered by desc offense count
#
# Here's the format:
#
# 26 LineLength
# 3 OneLineConditional
# --
# 29 Total in 5 files
#
# source://rubocop//lib/rubocop/formatter/offense_count_formatter.rb#16
class RuboCop::Formatter::OffenseCountFormatter < ::RuboCop::Formatter::BaseFormatter
# source://rubocop//lib/rubocop/formatter/offense_count_formatter.rb#81
def cop_information(cop_name); end
# source://rubocop//lib/rubocop/formatter/offense_count_formatter.rb#42
def file_finished(_file, offenses); end
# source://rubocop//lib/rubocop/formatter/offense_count_formatter.rb#51
def finished(_inspected_files); end
# Returns the value of attribute offense_counts.
#
# source://rubocop//lib/rubocop/formatter/offense_count_formatter.rb#17
def offense_counts; end
# source://rubocop//lib/rubocop/formatter/offense_count_formatter.rb#73
def ordered_offense_counts(offense_counts); end
# source://rubocop//lib/rubocop/formatter/offense_count_formatter.rb#56
def report_summary(offense_counts, offending_files_count); end
# source://rubocop//lib/rubocop/formatter/offense_count_formatter.rb#19
def started(target_files); end
# source://rubocop//lib/rubocop/formatter/offense_count_formatter.rb#77
def total_offense_count(offense_counts); end
end
# This formatter prints a PACDOT per every file to be analyzed.
# Pacman will "eat" one PACDOT per file when no offense is detected.
# Otherwise it will print a Ghost.
# This is inspired by the Pacman formatter for RSpec by Carlos Rojas.
# https://github.com/go-labs/rspec_pacman_formatter
#
# source://rubocop//lib/rubocop/formatter/pacman_formatter.rb#10
class RuboCop::Formatter::PacmanFormatter < ::RuboCop::Formatter::ClangStyleFormatter
include ::RuboCop::Formatter::TextUtil
# @return [PacmanFormatter] a new instance of PacmanFormatter
#
# source://rubocop//lib/rubocop/formatter/pacman_formatter.rb#19
def initialize(output, options = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/formatter/pacman_formatter.rb#50
def cols; end
# source://rubocop//lib/rubocop/formatter/pacman_formatter.rb#37
def file_finished(file, offenses); end
# source://rubocop//lib/rubocop/formatter/pacman_formatter.rb#33
def file_started(_file, _options); end
# source://rubocop//lib/rubocop/formatter/pacman_formatter.rb#43
def next_step(offenses); end
# source://rubocop//lib/rubocop/formatter/pacman_formatter.rb#64
def pacdots(number); end
# Returns the value of attribute progress_line.
#
# source://rubocop//lib/rubocop/formatter/pacman_formatter.rb#12
def progress_line; end
# Sets the attribute progress_line
#
# @param value the value to set the attribute progress_line to.
#
# source://rubocop//lib/rubocop/formatter/pacman_formatter.rb#12
def progress_line=(_arg0); end
# source://rubocop//lib/rubocop/formatter/pacman_formatter.rb#26
def started(target_files); end
# source://rubocop//lib/rubocop/formatter/pacman_formatter.rb#68
def step(character); end
# source://rubocop//lib/rubocop/formatter/pacman_formatter.rb#57
def update_progress_line; end
end
# source://rubocop//lib/rubocop/formatter/pacman_formatter.rb#14
RuboCop::Formatter::PacmanFormatter::FALLBACK_TERMINAL_WIDTH = T.let(T.unsafe(nil), Integer)
# source://rubocop//lib/rubocop/formatter/pacman_formatter.rb#15
RuboCop::Formatter::PacmanFormatter::GHOST = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/formatter/pacman_formatter.rb#17
RuboCop::Formatter::PacmanFormatter::PACDOT = T.let(T.unsafe(nil), Rainbow::NullPresenter)
# source://rubocop//lib/rubocop/formatter/pacman_formatter.rb#16
RuboCop::Formatter::PacmanFormatter::PACMAN = T.let(T.unsafe(nil), Rainbow::NullPresenter)
# This formatter display dots for files with no offenses and
# letters for files with problems in the them. In the end it
# appends the regular report data in the clang style format.
#
# source://rubocop//lib/rubocop/formatter/progress_formatter.rb#8
class RuboCop::Formatter::ProgressFormatter < ::RuboCop::Formatter::ClangStyleFormatter
include ::RuboCop::Formatter::TextUtil
# @return [ProgressFormatter] a new instance of ProgressFormatter
#
# source://rubocop//lib/rubocop/formatter/progress_formatter.rb#13
def initialize(output, options = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/formatter/progress_formatter.rb#24
def file_finished(file, offenses); end
# source://rubocop//lib/rubocop/formatter/progress_formatter.rb#33
def finished(inspected_files); end
# source://rubocop//lib/rubocop/formatter/progress_formatter.rb#50
def report_file_as_mark(offenses); end
# source://rubocop//lib/rubocop/formatter/progress_formatter.rb#18
def started(target_files); end
end
# source://rubocop//lib/rubocop/formatter/progress_formatter.rb#11
RuboCop::Formatter::ProgressFormatter::DOT = T.let(T.unsafe(nil), String)
# If no offenses are found, no output is displayed.
# Otherwise, SimpleTextFormatter's output is displayed.
#
# source://rubocop//lib/rubocop/formatter/quiet_formatter.rb#7
class RuboCop::Formatter::QuietFormatter < ::RuboCop::Formatter::SimpleTextFormatter
# source://rubocop//lib/rubocop/formatter/quiet_formatter.rb#8
def report_summary(file_count, offense_count, correction_count, correctable_count); end
end
# A basic formatter that displays only files with offenses.
# Offenses are displayed at compact form - just the
# location of the problem and the associated message.
#
# source://rubocop//lib/rubocop/formatter/simple_text_formatter.rb#10
class RuboCop::Formatter::SimpleTextFormatter < ::RuboCop::Formatter::BaseFormatter
include ::RuboCop::Formatter::Colorizable
include ::RuboCop::PathUtil
# source://rubocop//lib/rubocop/formatter/simple_text_formatter.rb#29
def file_finished(file, offenses); end
# source://rubocop//lib/rubocop/formatter/simple_text_formatter.rb#36
def finished(inspected_files); end
# source://rubocop//lib/rubocop/formatter/simple_text_formatter.rb#43
def report_file(file, offenses); end
# source://rubocop//lib/rubocop/formatter/simple_text_formatter.rb#57
def report_summary(file_count, offense_count, correction_count, correctable_count); end
# source://rubocop//lib/rubocop/formatter/simple_text_formatter.rb#23
def started(_target_files); end
private
# source://rubocop//lib/rubocop/formatter/simple_text_formatter.rb#85
def annotate_message(msg); end
# source://rubocop//lib/rubocop/formatter/simple_text_formatter.rb#80
def colored_severity_code(offense); end
# source://rubocop//lib/rubocop/formatter/simple_text_formatter.rb#73
def count_stats(offenses); end
# source://rubocop//lib/rubocop/formatter/simple_text_formatter.rb#89
def message(offense); end
end
# source://rubocop//lib/rubocop/formatter/simple_text_formatter.rb#14
RuboCop::Formatter::SimpleTextFormatter::COLOR_FOR_SEVERITY = T.let(T.unsafe(nil), Hash)
# A helper class for building the report summary text.
#
# source://rubocop//lib/rubocop/formatter/simple_text_formatter.rb#105
class RuboCop::Formatter::SimpleTextFormatter::Report
include ::RuboCop::Formatter::Colorizable
include ::RuboCop::Formatter::TextUtil
# @return [Report] a new instance of Report
#
# source://rubocop//lib/rubocop/formatter/simple_text_formatter.rb#110
def initialize(file_count, offense_count, correction_count, correctable_count, rainbow, safe_autocorrect: T.unsafe(nil)); end
# source://rubocop//lib/rubocop/formatter/simple_text_formatter.rb#123
def summary; end
private
# source://rubocop//lib/rubocop/formatter/simple_text_formatter.rb#160
def correctable; end
# source://rubocop//lib/rubocop/formatter/simple_text_formatter.rb#153
def corrections; end
# source://rubocop//lib/rubocop/formatter/simple_text_formatter.rb#142
def files; end
# source://rubocop//lib/rubocop/formatter/simple_text_formatter.rb#146
def offenses; end
# Returns the value of attribute rainbow.
#
# source://rubocop//lib/rubocop/formatter/simple_text_formatter.rb#140
def rainbow; end
end
# This formatter formats report data using the Test Anything Protocol.
# TAP allows for to communicate tests results in a language agnostics way.
#
# source://rubocop//lib/rubocop/formatter/tap_formatter.rb#7
class RuboCop::Formatter::TapFormatter < ::RuboCop::Formatter::ClangStyleFormatter
# source://rubocop//lib/rubocop/formatter/tap_formatter.rb#14
def file_finished(file, offenses); end
# source://rubocop//lib/rubocop/formatter/tap_formatter.rb#8
def started(target_files); end
private
# source://rubocop//lib/rubocop/formatter/tap_formatter.rb#62
def annotate_message(msg); end
# source://rubocop//lib/rubocop/formatter/tap_formatter.rb#66
def message(offense); end
# source://rubocop//lib/rubocop/formatter/tap_formatter.rb#39
def report_highlighted_area(highlighted_area); end
# source://rubocop//lib/rubocop/formatter/tap_formatter.rb#29
def report_line(location); end
# source://rubocop//lib/rubocop/formatter/tap_formatter.rb#46
def report_offense(file, offense); end
end
# Common logic for UI texts.
#
# source://rubocop//lib/rubocop/formatter/text_util.rb#6
module RuboCop::Formatter::TextUtil
private
# source://rubocop//lib/rubocop/formatter/text_util.rb#9
def pluralize(number, thing, options = T.unsafe(nil)); end
class << self
# source://rubocop//lib/rubocop/formatter/text_util.rb#9
def pluralize(number, thing, options = T.unsafe(nil)); end
end
end
# This formatter displays the list of offensive files, sorted by number of
# offenses with the worst offenders first.
#
# Here's the format:
#
# 26 this/file/is/really/bad.rb
# 3 just/ok.rb
# --
# 29 Total in 2 files
#
# source://rubocop//lib/rubocop/formatter/worst_offenders_formatter.rb#16
class RuboCop::Formatter::WorstOffendersFormatter < ::RuboCop::Formatter::BaseFormatter
# source://rubocop//lib/rubocop/formatter/worst_offenders_formatter.rb#24
def file_finished(file, offenses); end
# source://rubocop//lib/rubocop/formatter/worst_offenders_formatter.rb#31
def finished(_inspected_files); end
# Returns the value of attribute offense_counts.
#
# source://rubocop//lib/rubocop/formatter/worst_offenders_formatter.rb#17
def offense_counts; end
# source://rubocop//lib/rubocop/formatter/worst_offenders_formatter.rb#55
def ordered_offense_counts(offense_counts); end
# source://rubocop//lib/rubocop/formatter/worst_offenders_formatter.rb#36
def report_summary(offense_counts); end
# source://rubocop//lib/rubocop/formatter/worst_offenders_formatter.rb#19
def started(target_files); end
# source://rubocop//lib/rubocop/formatter/worst_offenders_formatter.rb#59
def total_offense_count(offense_counts); end
end
# source://rubocop//lib/rubocop/options.rb#8
class RuboCop::IncorrectCopNameError < ::StandardError; end
# The RuboCop's built-in LSP module.
#
# source://rubocop//lib/rubocop/lsp.rb#5
module RuboCop::LSP
private
# Disable LSP.
#
# @return [void]
#
# source://rubocop//lib/rubocop/lsp.rb#25
def disable(&block); end
# Enable LSP.
#
# @return [void]
#
# source://rubocop//lib/rubocop/lsp.rb#18
def enable; end
# Returns true when LSP is enabled, false when disabled.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/lsp.rb#11
def enabled?; end
class << self
# Disable LSP.
#
# @return [void]
#
# source://rubocop//lib/rubocop/lsp.rb#25
def disable(&block); end
# Enable LSP.
#
# @return [void]
#
# source://rubocop//lib/rubocop/lsp.rb#18
def enable; end
# Returns true when LSP is enabled, false when disabled.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/lsp.rb#11
def enabled?; end
end
end
# Encapsulation of a lockfile for use when checking for gems.
# Does not actually resolve gems, just parses the lockfile.
#
# @api private
#
# source://rubocop//lib/rubocop/lockfile.rb#15
class RuboCop::Lockfile
# @api private
# @param lockfile_path [String, Pathname, nil]
# @return [Lockfile] a new instance of Lockfile
#
# source://rubocop//lib/rubocop/lockfile.rb#17
def initialize(lockfile_path = T.unsafe(nil)); end
# Gems that the bundle directly depends on.
#
# @api private
# @return [Array<Bundler::Dependency>, nil]
#
# source://rubocop//lib/rubocop/lockfile.rb#29
def dependencies; end
# Returns the locked versions of gems from this lockfile.
#
# @api private
# @param include_transitive_dependencies: [Boolean] When false, only direct dependencies
# are returned, i.e. those listed explicitly in the `Gemfile`.
#
# source://rubocop//lib/rubocop/lockfile.rb#49
def gem_versions(include_transitive_dependencies: T.unsafe(nil)); end
# All activated gems, including transitive dependencies.
#
# @api private
# @return [Array<Bundler::Dependency>, nil]
#
# source://rubocop//lib/rubocop/lockfile.rb#37
def gems; end
# Whether this lockfile includes the named gem, directly or indirectly.
#
# @api private
# @param name [String]
# @return [Boolean]
#
# source://rubocop//lib/rubocop/lockfile.rb#65
def includes_gem?(name); end
private
# @api private
# @return [Bundler::LockfileParser, nil]
#
# source://rubocop//lib/rubocop/lockfile.rb#72
def parser; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/lockfile.rb#85
def use_bundler_lock_parser?; end
end
# Parse different formats of magic comments.
#
# @abstract parent of three different magic comment handlers
#
# source://rubocop//lib/rubocop/magic_comment.rb#7
class RuboCop::MagicComment
# @return [MagicComment] a new instance of MagicComment
#
# source://rubocop//lib/rubocop/magic_comment.rb#32
def initialize(comment); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/magic_comment.rb#36
def any?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/magic_comment.rb#104
def encoding_specified?; end
# Expose the `frozen_string_literal` value coerced to a boolean if possible.
#
# @return [Boolean] if value is `true` or `false`
# @return [nil] if frozen_string_literal comment isn't found
# @return [String] if comment is found but isn't true or false
#
# source://rubocop//lib/rubocop/magic_comment.rb#86
def frozen_string_literal; end
# Does the magic comment enable the frozen string literal feature.
#
# Test whether the frozen string literal value is `true`. Cannot
# just return `frozen_string_literal` since an invalid magic comment
# `'yes'` does not actually enable the feature
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/magic_comment.rb#55
def frozen_string_literal?; end
# Was a magic comment for the frozen string literal found?
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/magic_comment.rb#70
def frozen_string_literal_specified?; end
# Expose the `shareable_constant_value` value coerced to a boolean if possible.
#
# @return [String] for shareable_constant_value config
#
# source://rubocop//lib/rubocop/magic_comment.rb#100
def shareable_constant_value; end
# Was a shareable_constant_value specified?
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/magic_comment.rb#77
def shareable_constant_value_specified?; end
# source://rubocop//lib/rubocop/magic_comment.rb#115
def typed; end
# Was the Sorbet `typed` sigil specified?
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/magic_comment.rb#111
def typed_specified?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/magic_comment.rb#43
def valid?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/magic_comment.rb#59
def valid_literal_value?; end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/magic_comment.rb#63
def valid_shareable_constant_value?; end
private
# Match the entire comment string with a pattern and take the first capture.
#
# @param pattern [Regexp]
# @return [String] if pattern matched
# @return [nil] otherwise
#
# source://rubocop//lib/rubocop/magic_comment.rb#131
def extract(pattern); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/magic_comment.rb#121
def specified?(value); end
class << self
# Detect magic comment format and pass it to the appropriate wrapper.
#
# @param comment [String]
# @return [RuboCop::MagicComment]
#
# source://rubocop//lib/rubocop/magic_comment.rb#23
def parse(comment); end
end
end
# Parent to Vim and Emacs magic comment handling.
#
# @abstract
#
# source://rubocop//lib/rubocop/magic_comment.rb#138
class RuboCop::MagicComment::EditorComment < ::RuboCop::MagicComment
# source://rubocop//lib/rubocop/magic_comment.rb#139
def encoding; end
# Rewrite the comment without a given token type
#
# source://rubocop//lib/rubocop/magic_comment.rb#144
def without(type); end
private
# Find a token starting with the provided keyword and extract its value.
#
# @param keyword [String]
# @return [String] extracted value if it is found
# @return [nil] otherwise
#
# source://rubocop//lib/rubocop/magic_comment.rb#159
def match(keyword); end
# Individual tokens composing an editor specific comment string.
#
# @return [Array<String>]
#
# source://rubocop//lib/rubocop/magic_comment.rb#174
def tokens; end
end
# Wrapper for Emacs style magic comments.
#
# @example Emacs style comment
# comment = RuboCop::MagicComment.parse(
# '# -*- encoding: ASCII-8BIT -*-'
# )
#
# comment.encoding # => 'ascii-8bit'
# @see https://www.gnu.org/software/emacs/manual/html_node/emacs/Specify-Coding.html
# @see https://github.com/ruby/ruby/blob/3f306dc/parse.y#L6873-L6892 Emacs handling in parse.y
#
# source://rubocop//lib/rubocop/magic_comment.rb#190
class RuboCop::MagicComment::EmacsComment < ::RuboCop::MagicComment::EditorComment
private
# source://rubocop//lib/rubocop/magic_comment.rb#198
def extract_frozen_string_literal; end
# source://rubocop//lib/rubocop/magic_comment.rb#202
def extract_shareable_constant_value; end
# Emacs comments cannot specify Sorbet typechecking behavior.
#
# source://rubocop//lib/rubocop/magic_comment.rb#207
def extract_typed; end
end
# source://rubocop//lib/rubocop/magic_comment.rb#192
RuboCop::MagicComment::EmacsComment::FORMAT = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/magic_comment.rb#194
RuboCop::MagicComment::EmacsComment::OPERATOR = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/magic_comment.rb#191
RuboCop::MagicComment::EmacsComment::REGEXP = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/magic_comment.rb#193
RuboCop::MagicComment::EmacsComment::SEPARATOR = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/magic_comment.rb#11
RuboCop::MagicComment::KEYWORDS = T.let(T.unsafe(nil), Hash)
# Wrapper for regular magic comments not bound to an editor.
#
# Simple comments can only specify one setting per comment.
#
# @example frozen string literal comments
# comment1 = RuboCop::MagicComment.parse('# frozen_string_literal: true')
# comment1.frozen_string_literal # => true
# comment1.encoding # => nil
# @example encoding comments
# comment2 = RuboCop::MagicComment.parse('# encoding: utf-8')
# comment2.frozen_string_literal # => nil
# comment2.encoding # => 'utf-8'
#
# source://rubocop//lib/rubocop/magic_comment.rb#261
class RuboCop::MagicComment::SimpleComment < ::RuboCop::MagicComment
# Match `encoding` or `coding`
#
# source://rubocop//lib/rubocop/magic_comment.rb#265
def encoding; end
# Rewrite the comment without a given token type
#
# source://rubocop//lib/rubocop/magic_comment.rb#270
def without(type); end
private
# Extract `frozen_string_literal`.
#
# The `frozen_string_literal` magic comment only works if it
# is the only text in the comment.
#
# Case-insensitive and dashes/underscores are acceptable.
#
# @see https://github.com/ruby/ruby/blob/78b95b4/parse.y#L7134-L7138
#
# source://rubocop//lib/rubocop/magic_comment.rb#287
def extract_frozen_string_literal; end
# source://rubocop//lib/rubocop/magic_comment.rb#291
def extract_shareable_constant_value; end
# source://rubocop//lib/rubocop/magic_comment.rb#295
def extract_typed; end
end
# source://rubocop//lib/rubocop/magic_comment.rb#262
RuboCop::MagicComment::SimpleComment::FSTRING_LITERAL_COMMENT = T.let(T.unsafe(nil), String)
# IRB's pattern for matching magic comment tokens.
#
# @see https://github.com/ruby/ruby/blob/b4a55c1/lib/irb/magic-file.rb#L5
#
# source://rubocop//lib/rubocop/magic_comment.rb#10
RuboCop::MagicComment::TOKEN = T.let(T.unsafe(nil), String)
# Wrapper for Vim style magic comments.
#
# @example Vim style comment
# comment = RuboCop::MagicComment.parse(
# '# vim: filetype=ruby, fileencoding=ascii-8bit'
# )
#
# comment.encoding # => 'ascii-8bit'
#
# source://rubocop//lib/rubocop/magic_comment.rb#218
class RuboCop::MagicComment::VimComment < ::RuboCop::MagicComment::EditorComment
# For some reason the fileencoding keyword only works if there
# is at least one other token included in the string. For example
#
# # works
# # vim: foo=bar, fileencoding=ascii-8bit
#
# # does nothing
# # vim: foo=bar, fileencoding=ascii-8bit
#
# source://rubocop//lib/rubocop/magic_comment.rb#234
def encoding; end
# Vim comments cannot specify Sorbet typechecking behavior.
#
# source://rubocop//lib/rubocop/magic_comment.rb#245
def extract_typed; end
# Vim comments cannot specify frozen string literal behavior.
#
# source://rubocop//lib/rubocop/magic_comment.rb#239
def frozen_string_literal; end
# Vim comments cannot specify shareable constant values behavior.
#
# source://rubocop//lib/rubocop/magic_comment.rb#242
def shareable_constant_value; end
end
# source://rubocop//lib/rubocop/magic_comment.rb#220
RuboCop::MagicComment::VimComment::FORMAT = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/magic_comment.rb#223
RuboCop::MagicComment::VimComment::KEYWORDS = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/magic_comment.rb#222
RuboCop::MagicComment::VimComment::OPERATOR = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/magic_comment.rb#219
RuboCop::MagicComment::VimComment::REGEXP = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/magic_comment.rb#221
RuboCop::MagicComment::VimComment::SEPARATOR = T.let(T.unsafe(nil), String)
# Common functionality for finding names that are similar to a given name.
#
# @api private
#
# source://rubocop//lib/rubocop/name_similarity.rb#6
module RuboCop::NameSimilarity
private
# @api private
#
# source://rubocop//lib/rubocop/name_similarity.rb#9
def find_similar_name(target_name, names); end
# @api private
#
# source://rubocop//lib/rubocop/name_similarity.rb#15
def find_similar_names(target_name, names); end
class << self
# @api private
#
# source://rubocop//lib/rubocop/name_similarity.rb#9
def find_similar_name(target_name, names); end
# @api private
#
# source://rubocop//lib/rubocop/name_similarity.rb#15
def find_similar_names(target_name, names); end
end
end
# source://rubocop//lib/rubocop/ast_aliases.rb#5
RuboCop::NodePattern = RuboCop::AST::NodePattern
# source://rubocop//lib/rubocop/options.rb#10
class RuboCop::OptionArgumentError < ::StandardError; end
# This class handles command line options.
#
# @api private
#
# source://rubocop//lib/rubocop/options.rb#14
class RuboCop::Options
# @api private
# @return [Options] a new instance of Options
#
# source://rubocop//lib/rubocop/options.rb#22
def initialize; end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#27
def parse(command_line_args); end
private
# @api private
#
# source://rubocop//lib/rubocop/options.rb#229
def add_additional_modes(opts); end
# the autocorrect command-line arguments map to the autocorrect @options values like so:
# :fix_layout :autocorrect :safe_autocorrect :autocorrect_all
# -x, --fix-layout true true - -
# -a, --auto-correct - true true -
# --safe-auto-correct - true true -
# -A, --auto-correct-all - true - true
#
# @api private
#
# source://rubocop//lib/rubocop/options.rb#140
def add_autocorrection_options(opts); end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#205
def add_cache_options(opts); end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#73
def add_check_options(opts); end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#163
def add_config_generation_options(opts); end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#181
def add_cop_selection_csv_option(option, opts); end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#241
def add_general_options(opts); end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#212
def add_lsp_option(opts); end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#105
def add_output_options(opts); end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#253
def add_profile_options(opts); end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#218
def add_server_options(opts); end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#196
def add_severity_option(opts); end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#53
def define_options; end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#263
def handle_deprecated_option(old_option, new_option); end
# Finds the option in `args` starting with -- and converts it to a symbol,
# e.g. [..., '--autocorrect', ...] to :autocorrect.
#
# @api private
#
# source://rubocop//lib/rubocop/options.rb#297
def long_opt_symbol(args); end
# Sets a value in the @options hash, based on the given long option and its
# value, in addition to calling the block if a block is given.
#
# @api private
#
# source://rubocop//lib/rubocop/options.rb#286
def option(opts, *args); end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#268
def rainbow; end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#302
def require_feature(file); end
# Creates a section of options in order to separate them visually when
# using `--help`.
#
# @api private
#
# source://rubocop//lib/rubocop/options.rb#278
def section(opts, heading, &_block); end
end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#20
RuboCop::Options::DEFAULT_MAXIMUM_EXCLUSION_ITEMS = T.let(T.unsafe(nil), Integer)
# @api private
#
# source://rubocop//lib/rubocop/options.rb#19
RuboCop::Options::EXITING_OPTIONS = T.let(T.unsafe(nil), Array)
# @api private
#
# source://rubocop//lib/rubocop/options.rb#15
RuboCop::Options::E_STDIN_NO_PATH = T.let(T.unsafe(nil), String)
# This module contains help texts for command line options.
#
# @api private
#
# source://rubocop//lib/rubocop/options.rb#498
module RuboCop::OptionsHelp; end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#500
RuboCop::OptionsHelp::FORMATTER_OPTION_LIST = T.let(T.unsafe(nil), Array)
# @api private
#
# source://rubocop//lib/rubocop/options.rb#499
RuboCop::OptionsHelp::MAX_EXCL = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/options.rb#502
RuboCop::OptionsHelp::TEXT = T.let(T.unsafe(nil), Hash)
# Validates option arguments and the options' compatibility with each other.
#
# @api private
#
# source://rubocop//lib/rubocop/options.rb#312
class RuboCop::OptionsValidator
# @api private
# @return [OptionsValidator] a new instance of OptionsValidator
#
# source://rubocop//lib/rubocop/options.rb#350
def initialize(options); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/options.rb#472
def boolean_or_empty_cache?; end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#442
def disable_parallel_when_invalid_option_combo; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/options.rb#468
def except_syntax?; end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#476
def incompatible_options; end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#455
def invalid_arguments_for_parallel; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/options.rb#463
def only_includes_redundant_disable?; end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#382
def validate_auto_gen_config; end
# @api private
# @raise [OptionArgumentError]
#
# source://rubocop//lib/rubocop/options.rb#428
def validate_autocorrect; end
# @api private
# @raise [OptionArgumentError]
#
# source://rubocop//lib/rubocop/options.rb#488
def validate_cache_enabled_for_cache_root; end
# @api private
# @raise [OptionArgumentError]
#
# source://rubocop//lib/rubocop/options.rb#359
def validate_compatibility; end
# @api private
#
# source://rubocop//lib/rubocop/options.rb#354
def validate_cop_options; end
# @api private
# @raise [OptionArgumentError]
#
# source://rubocop//lib/rubocop/options.rb#403
def validate_display_only_correctable_and_autocorrect; end
# @api private
# @raise [OptionArgumentError]
#
# source://rubocop//lib/rubocop/options.rb#395
def validate_display_only_failed; end
# @api private
# @raise [OptionArgumentError]
#
# source://rubocop//lib/rubocop/options.rb#412
def validate_display_only_failed_and_display_only_correctable; end
# @api private
# @raise [OptionParser::MissingArgument]
#
# source://rubocop//lib/rubocop/options.rb#480
def validate_exclude_limit_option; end
# @api private
# @raise [OptionArgumentError]
#
# source://rubocop//lib/rubocop/options.rb#421
def validate_lsp_and_editor_mode; end
class << self
# Cop name validation must be done later than option parsing, so it's not
# called from within Options.
#
# @api private
#
# source://rubocop//lib/rubocop/options.rb#319
def validate_cop_list(names); end
private
# @api private
#
# source://rubocop//lib/rubocop/options.rb#336
def format_message_from(name, cop_names); end
end
end
# Common methods and behaviors for dealing with paths.
#
# source://rubocop//lib/rubocop/path_util.rb#5
module RuboCop::PathUtil
private
# Returns true for an absolute Unix or Windows path.
#
# source://rubocop//lib/rubocop/path_util.rb#76
def absolute?(path); end
# Returns true for a glob
#
# source://rubocop//lib/rubocop/path_util.rb#81
def glob?(path); end
# source://rubocop//lib/rubocop/path_util.rb#111
def hidden_dir?(path); end
# source://rubocop//lib/rubocop/path_util.rb#94
def hidden_file?(path); end
# source://rubocop//lib/rubocop/path_util.rb#85
def hidden_file_in_not_hidden_dir?(pattern, path); end
# source://rubocop//lib/rubocop/path_util.rb#48
def match_path?(pattern, path); end
# Loose check to reduce memory allocations
#
# source://rubocop//lib/rubocop/path_util.rb#101
def maybe_hidden_file?(path); end
# source://rubocop//lib/rubocop/path_util.rb#13
def relative_path(path, base_dir = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/path_util.rb#34
def smart_path(path); end
class << self
# Returns true for an absolute Unix or Windows path.
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/path_util.rb#76
def absolute?(path); end
# Returns true for a glob
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/path_util.rb#81
def glob?(path); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/path_util.rb#111
def hidden_dir?(path); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/path_util.rb#94
def hidden_file?(path); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/path_util.rb#85
def hidden_file_in_not_hidden_dir?(pattern, path); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/path_util.rb#48
def match_path?(pattern, path); end
# Loose check to reduce memory allocations
#
# @return [Boolean]
#
# source://rubocop//lib/rubocop/path_util.rb#101
def maybe_hidden_file?(path); end
# source://rubocop//lib/rubocop/path_util.rb#13
def relative_path(path, base_dir = T.unsafe(nil)); end
# Returns the value of attribute relative_paths_cache.
#
# source://rubocop//lib/rubocop/path_util.rb#7
def relative_paths_cache; end
# Sets the attribute relative_paths_cache
#
# @param value the value to set the attribute relative_paths_cache to.
#
# source://rubocop//lib/rubocop/path_util.rb#7
def relative_paths_cache=(_arg0); end
# source://rubocop//lib/rubocop/path_util.rb#34
def smart_path(path); end
end
end
# source://rubocop//lib/rubocop/path_util.rb#98
RuboCop::PathUtil::HIDDEN_FILE_PATTERN = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/path_util.rb#31
RuboCop::PathUtil::SMART_PATH_CACHE = T.let(T.unsafe(nil), Hash)
# This module provides information on the platform that RuboCop is being run
# on.
#
# source://rubocop//lib/rubocop/platform.rb#6
module RuboCop::Platform
class << self
# @return [Boolean]
#
# source://rubocop//lib/rubocop/platform.rb#7
def windows?; end
end
end
# source://rubocop//lib/rubocop/ast_aliases.rb#6
RuboCop::ProcessedSource = RuboCop::AST::ProcessedSource
# Common methods and behaviors for dealing with remote config files.
#
# @api private
#
# source://rubocop//lib/rubocop/remote_config.rb#9
class RuboCop::RemoteConfig
# @api private
# @return [RemoteConfig] a new instance of RemoteConfig
#
# source://rubocop//lib/rubocop/remote_config.rb#14
def initialize(url, base_dir); end
# @api private
#
# source://rubocop//lib/rubocop/remote_config.rb#23
def file; end
# @api private
#
# source://rubocop//lib/rubocop/remote_config.rb#36
def inherit_from_remote(file, path); end
# @api private
#
# source://rubocop//lib/rubocop/remote_config.rb#10
def uri; end
private
# @api private
#
# source://rubocop//lib/rubocop/remote_config.rb#99
def cache_name_from_uri; end
# @api private
#
# source://rubocop//lib/rubocop/remote_config.rb#82
def cache_path; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/remote_config.rb#86
def cache_path_exists?; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/remote_config.rb#90
def cache_path_expired?; end
# @api private
#
# source://rubocop//lib/rubocop/remote_config.rb#105
def cloned_url; end
# @api private
# @yield [request]
#
# source://rubocop//lib/rubocop/remote_config.rb#57
def generate_request(uri); end
# @api private
#
# source://rubocop//lib/rubocop/remote_config.rb#66
def handle_response(response, limit, &block); end
# @api private
# @raise [ArgumentError]
#
# source://rubocop//lib/rubocop/remote_config.rb#44
def request(uri = T.unsafe(nil), limit = T.unsafe(nil), &block); end
end
# @api private
#
# source://rubocop//lib/rubocop/remote_config.rb#12
RuboCop::RemoteConfig::CACHE_LIFETIME = T.let(T.unsafe(nil), Integer)
# Provides functionality for caching RuboCop runs.
#
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#11
class RuboCop::ResultCache
# @api private
# @return [ResultCache] a new instance of ResultCache
#
# source://rubocop//lib/rubocop/result_cache.rb#87
def initialize(file, team, options, config_store, cache_root = T.unsafe(nil)); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/result_cache.rb#100
def debug?; end
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#108
def load; end
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#85
def path; end
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#113
def save(offenses); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/result_cache.rb#104
def valid?; end
private
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/result_cache.rb#146
def any_symlink?(path); end
# We combine team and options into a single "context" checksum to avoid
# making file names that are too long for some filesystems to handle.
# This context is for anything that's not (1) the RuboCop executable
# checksum or (2) the inspected file checksum.
#
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#229
def context_checksum(team, options); end
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#189
def digest(path); end
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#157
def file_checksum(file, config_store); end
# Return a hash of the options given at invocation, minus the ones that have
# no effect on which offenses and disabled line ranges are found, and thus
# don't affect caching.
#
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#220
def relevant_options_digest(options); end
# The checksum of the RuboCop program running the inspection.
#
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#174
def rubocop_checksum; end
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#200
def rubocop_extra_features; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/result_cache.rb#142
def symlink_protection_triggered?(path); end
class << self
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/result_cache.rb#81
def allow_symlinks_in_cache_location?(config_store); end
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#75
def cache_root(config_store); end
# Remove old files so that the cache doesn't grow too big. When the
# threshold MaxFilesInCache has been exceeded, the oldest 50% of all the
# files in the cache are removed. The reason for removing so much is that
# cleaning should be done relatively seldom, since there is a slight risk
# that some other RuboCop process was just about to read the file, when
# there's parallel execution and the cache is shared.
#
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#28
def cleanup(config_store, verbose, cache_root = T.unsafe(nil)); end
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#170
def inhibit_cleanup; end
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#170
def inhibit_cleanup=(_arg0); end
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#42
def rubocop_required_features; end
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#42
def rubocop_required_features=(_arg0); end
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#170
def source_checksum; end
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#170
def source_checksum=(_arg0); end
private
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#65
def remove_files(files, dirs, remove_count); end
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#52
def remove_oldest_files(files, dirs, cache_root, verbose); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/result_cache.rb#48
def requires_file_removal?(file_count, config_store); end
end
end
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#16
RuboCop::ResultCache::DL_EXTENSIONS = T.let(T.unsafe(nil), Array)
# @api private
#
# source://rubocop//lib/rubocop/result_cache.rb#12
RuboCop::ResultCache::NON_CHANGING = T.let(T.unsafe(nil), Array)
# This class handles the processing of files, which includes dealing with
# formatters and letting cops inspect the files.
#
# source://rubocop//lib/rubocop/runner.rb#8
class RuboCop::Runner
# @return [Runner] a new instance of Runner
#
# source://rubocop//lib/rubocop/runner.rb#63
def initialize(options, config_store); end
# Sets the attribute aborting
#
# @param value the value to set the attribute aborting to.
#
# source://rubocop//lib/rubocop/runner.rb#61
def aborting=(_arg0); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/runner.rb#87
def aborting?; end
# Returns the value of attribute errors.
#
# source://rubocop//lib/rubocop/runner.rb#60
def errors; end
# source://rubocop//lib/rubocop/runner.rb#71
def run(paths); end
# Returns the value of attribute warnings.
#
# source://rubocop//lib/rubocop/runner.rb#60
def warnings; end
private
# source://rubocop//lib/rubocop/runner.rb#200
def add_redundant_disables(file, offenses, source); end
# source://rubocop//lib/rubocop/runner.rb#174
def cached_result(file, team); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/runner.rb#254
def cached_run?; end
# Check whether a run created source identical to a previous run, which
# means that we definitely have an infinite loop.
#
# source://rubocop//lib/rubocop/runner.rb#332
def check_for_infinite_loop(processed_source, offenses_by_iteration); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/runner.rb#226
def check_for_redundant_disables?(source); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/runner.rb#434
def considered_failure?(offense); end
# source://rubocop//lib/rubocop/runner.rb#471
def default_config(cop_name); end
# source://rubocop//lib/rubocop/runner.rb#276
def do_inspection_loop(file); end
# source://rubocop//lib/rubocop/runner.rb#137
def each_inspected_file(files); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/runner.rb#240
def except_redundant_cop_disable_directive?; end
# source://rubocop//lib/rubocop/runner.rb#361
def extract_ruby_sources(processed_source); end
# source://rubocop//lib/rubocop/runner.rb#249
def file_finished(file, offenses); end
# source://rubocop//lib/rubocop/runner.rb#178
def file_offense_cache(file); end
# source://rubocop//lib/rubocop/runner.rb#166
def file_offenses(file); end
# source://rubocop//lib/rubocop/runner.rb#244
def file_started(file); end
# source://rubocop//lib/rubocop/runner.rb#414
def filter_cop_classes(cop_classes, config); end
# source://rubocop//lib/rubocop/runner.rb#108
def find_target_files(paths); end
# source://rubocop//lib/rubocop/runner.rb#425
def formatter_set; end
# source://rubocop//lib/rubocop/runner.rb#486
def get_processed_source(file); end
# source://rubocop//lib/rubocop/runner.rb#346
def inspect_file(processed_source, team = T.unsafe(nil)); end
# source://rubocop//lib/rubocop/runner.rb#119
def inspect_files(files); end
# source://rubocop//lib/rubocop/runner.rb#307
def iterate_until_no_changes(source, offenses_by_iteration); end
# source://rubocop//lib/rubocop/runner.rb#152
def list_files(paths); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/runner.rb#467
def mark_as_safe_by_config?(config); end
# source://rubocop//lib/rubocop/runner.rb#475
def minimum_severity_to_fail; end
# source://rubocop//lib/rubocop/runner.rb#375
def mobilize_team(processed_source); end
# source://rubocop//lib/rubocop/runner.rb#380
def mobilized_cop_classes(config); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/runner.rb#443
def offense_displayed?(offense); end
# source://rubocop//lib/rubocop/runner.rb#455
def offenses_to_report(offenses); end
# source://rubocop//lib/rubocop/runner.rb#156
def process_file(file); end
# source://rubocop//lib/rubocop/runner.rb#404
def qualify_option_cop_names; end
# @yield [cop]
#
# source://rubocop//lib/rubocop/runner.rb#232
def redundant_cop_disable_directive(file); end
# source://rubocop//lib/rubocop/runner.rb#266
def save_in_cache(cache, offenses); end
# A Cop::Team instance is stateful and may change when inspecting.
# The "standby" team for a given config is an initialized but
# otherwise dormant team that can be used for config- and option-
# level caching in ResultCache.
#
# source://rubocop//lib/rubocop/runner.rb#514
def standby_team(config); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/runner.rb#421
def style_guide_cops_only?(config); end
# @return [Boolean]
#
# source://rubocop//lib/rubocop/runner.rb#459
def supports_safe_autocorrect?(offense); end
# @yield [team]
#
# source://rubocop//lib/rubocop/runner.rb#215
def team_for_redundant_disables(file, offenses, source); end
# Warms up the RuboCop cache by forking a suitable number of RuboCop
# instances that each inspects its allotted group of files.
#
# source://rubocop//lib/rubocop/runner.rb#95
def warm_cache(target_files); end
class << self
# @return [Array<#call>]
#
# source://rubocop//lib/rubocop/runner.rb#33
def ruby_extractors; end
private
# @return [#call]
#
# source://rubocop//lib/rubocop/runner.rb#40
def default_ruby_extractor; end
end
end
# An exception indicating that the inspection loop got stuck correcting
# offenses back and forth.
#
# source://rubocop//lib/rubocop/runner.rb#11
class RuboCop::Runner::InfiniteCorrectionLoop < ::StandardError
# @return [InfiniteCorrectionLoop] a new instance of InfiniteCorrectionLoop
#
# source://rubocop//lib/rubocop/runner.rb#14
def initialize(path, offenses_by_iteration, loop_start: T.unsafe(nil)); end
# Returns the value of attribute offenses.
#
# source://rubocop//lib/rubocop/runner.rb#12
def offenses; end
end
# @api private
#
# source://rubocop//lib/rubocop/runner.rb#53
RuboCop::Runner::MAX_ITERATIONS = T.let(T.unsafe(nil), Integer)
# @api private
#
# source://rubocop//lib/rubocop/runner.rb#56
RuboCop::Runner::REDUNDANT_COP_DISABLE_DIRECTIVE_RULES = T.let(T.unsafe(nil), Array)
# Take a string with embedded escapes, and convert the escapes as the Ruby
# interpreter would when reading a double-quoted string literal.
# For example, "\\n" will be converted to "\n".
#
# source://rubocop//lib/rubocop/string_interpreter.rb#7
class RuboCop::StringInterpreter
class << self
# source://rubocop//lib/rubocop/string_interpreter.rb#24
def interpret(string); end
private
# source://rubocop//lib/rubocop/string_interpreter.rb#51
def interpret_hex(escape); end
# source://rubocop//lib/rubocop/string_interpreter.rb#55
def interpret_octal(escape); end
# source://rubocop//lib/rubocop/string_interpreter.rb#33
def interpret_string_escape(escape); end
# source://rubocop//lib/rubocop/string_interpreter.rb#43
def interpret_unicode(escape); end
end
end
# source://rubocop//lib/rubocop/string_interpreter.rb#8
RuboCop::StringInterpreter::STRING_ESCAPES = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/string_interpreter.rb#12
RuboCop::StringInterpreter::STRING_ESCAPE_REGEX = T.let(T.unsafe(nil), Regexp)
# This class finds target files to inspect by scanning the directory tree and picking ruby files.
#
# @api private
#
# source://rubocop//lib/rubocop/target_finder.rb#6
class RuboCop::TargetFinder
# @api private
# @return [TargetFinder] a new instance of TargetFinder
#
# source://rubocop//lib/rubocop/target_finder.rb#9
def initialize(config_store, options = T.unsafe(nil)); end
# Generate a list of target files by expanding globbing patterns (if any). If args is empty,
# recursively find all Ruby source files under the current directory
#
# @api private
# @return [Array] array of file paths
#
# source://rubocop//lib/rubocop/target_finder.rb#17
def find(args, mode); end
# Search for files recursively starting at the given base directory using the given flags that
# determine how the match is made. Excluded files will be removed later by the caller, but as an
# optimization find_files removes the top level directories that are excluded in configuration
# in the normal way (dir/**/*).
#
# @api private
#
# source://rubocop//lib/rubocop/target_finder.rb#58
def find_files(base_dir, flags); end
# Finds all Ruby source files under the current or other supplied directory. A Ruby source file
# is defined as a file with the `.rb` extension or a file with no extension that has a ruby
# shebang line as its first line.
# It is possible to specify includes and excludes using the config file, so you can include
# other Ruby files like Rakefiles and gemspecs.
#
# @api private
# @param base_dir Root directory under which to search for
# ruby source files
# @return [Array] Array of filenames
#
# source://rubocop//lib/rubocop/target_finder.rb#41
def target_files_in_dir(base_dir = T.unsafe(nil)); end
private
# @api private
#
# source://rubocop//lib/rubocop/target_finder.rb#120
def all_cops_include; end
# @api private
#
# source://rubocop//lib/rubocop/target_finder.rb#106
def combined_exclude_glob_patterns(base_dir); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/target_finder.rb#172
def configured_include?(file); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/target_finder.rb#208
def debug?; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/target_finder.rb#212
def fail_fast?; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/target_finder.rb#200
def force_exclusion?; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/target_finder.rb#204
def ignore_parent_exclusion?; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/target_finder.rb#145
def included_file?(file); end
# @api private
#
# source://rubocop//lib/rubocop/target_finder.rb#191
def order; end
# @api private
#
# source://rubocop//lib/rubocop/target_finder.rb#124
def process_explicit_path(path, mode); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/target_finder.rb#176
def ruby_executable?(file); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/target_finder.rb#157
def ruby_extension?(file); end
# @api private
#
# source://rubocop//lib/rubocop/target_finder.rb#161
def ruby_extensions; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/target_finder.rb#149
def ruby_file?(file); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/target_finder.rb#168
def ruby_filename?(file); end
# @api private
#
# source://rubocop//lib/rubocop/target_finder.rb#113
def ruby_filenames; end
# @api private
#
# source://rubocop//lib/rubocop/target_finder.rb#187
def ruby_interpreters(file); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/target_finder.rb#153
def stdin?; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/target_finder.rb#98
def symlink_excluded_or_infinite_loop?(base_dir, current_dir, exclude_pattern, flags); end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/target_finder.rb#73
def to_inspect?(file, hidden_files, base_dir_config); end
# @api private
#
# source://rubocop//lib/rubocop/target_finder.rb#82
def wanted_dir_patterns(base_dir, exclude_pattern, flags); end
# @api private
#
# source://rubocop//lib/rubocop/target_finder.rb#134
def without_excluded(files); end
end
# @api private
#
# source://rubocop//lib/rubocop/target_finder.rb#7
RuboCop::TargetFinder::HIDDEN_PATH_SUBSTRING = T.let(T.unsafe(nil), String)
# The kind of Ruby that code inspected by RuboCop is written in.
#
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#6
class RuboCop::TargetRuby
# @api private
# @return [TargetRuby] a new instance of TargetRuby
#
# source://rubocop//lib/rubocop/target_ruby.rb#258
def initialize(config); end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#274
def rubocop_version_with_support; end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#262
def source; end
# @api private
# @return [Boolean]
#
# source://rubocop//lib/rubocop/target_ruby.rb#270
def supported?; end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#266
def version; end
class << self
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#244
def supported_versions; end
end
end
# The lock file of Bundler may identify the target ruby version.
#
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#191
class RuboCop::TargetRuby::BundlerLockFile < ::RuboCop::TargetRuby::Source
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#192
def name; end
private
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#225
def bundler_lock_file_path; end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#198
def find_version; end
end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#8
RuboCop::TargetRuby::DEFAULT_VERSION = T.let(T.unsafe(nil), Float)
# If all else fails, a default version will be picked.
#
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#232
class RuboCop::TargetRuby::Default < ::RuboCop::TargetRuby::Source
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#233
def name; end
private
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#239
def find_version; end
end
# The target ruby version may be found in a .gemspec file.
#
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#53
class RuboCop::TargetRuby::GemspecFile < ::RuboCop::TargetRuby::Source
extend ::RuboCop::AST::NodePattern::Macros
# source://rubocop//lib/rubocop/target_ruby.rb#62
def gem_requirement_versions(param0 = T.unsafe(nil)); end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#68
def name; end
# source://rubocop//lib/rubocop/target_ruby.rb#57
def required_ruby_version(param0); end
private
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#123
def find_minimal_known_ruby(right_hand_side); end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#74
def find_version; end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#84
def gemspec_filepath; end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#119
def version_from_array(array); end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#98
def version_from_gemspec_file(file); end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#107
def version_from_right_hand_side(right_hand_side); end
end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#7
RuboCop::TargetRuby::KNOWN_RUBIES = T.let(T.unsafe(nil), Array)
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#10
RuboCop::TargetRuby::OBSOLETE_RUBIES = T.let(T.unsafe(nil), Hash)
# The target ruby version may be configured in RuboCop's config.
#
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#39
class RuboCop::TargetRuby::RuboCopConfig < ::RuboCop::TargetRuby::Source
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#40
def name; end
private
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#46
def find_version; end
end
# The target ruby version may be found in a .ruby-version file.
#
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#137
class RuboCop::TargetRuby::RubyVersionFile < ::RuboCop::TargetRuby::Source
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#141
def name; end
private
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#147
def filename; end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#155
def find_version; end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#151
def pattern; end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#162
def version_file; end
end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#138
RuboCop::TargetRuby::RubyVersionFile::RUBY_VERSION_FILENAME = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#139
RuboCop::TargetRuby::RubyVersionFile::RUBY_VERSION_PATTERN = T.let(T.unsafe(nil), Regexp)
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#248
RuboCop::TargetRuby::SOURCES = T.let(T.unsafe(nil), Array)
# A place where information about a target ruby version is found.
#
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#24
class RuboCop::TargetRuby::Source
# @api private
# @return [Source] a new instance of Source
#
# source://rubocop//lib/rubocop/target_ruby.rb#27
def initialize(config); end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#25
def name; end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#32
def to_s; end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#25
def version; end
end
# The target ruby version may be found in a .tool-versions file, in a line
# starting with `ruby`.
#
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#170
class RuboCop::TargetRuby::ToolVersionsFile < ::RuboCop::TargetRuby::RubyVersionFile
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#174
def name; end
private
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#180
def filename; end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#184
def pattern; end
end
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#171
RuboCop::TargetRuby::ToolVersionsFile::TOOL_VERSIONS_FILENAME = T.let(T.unsafe(nil), String)
# @api private
#
# source://rubocop//lib/rubocop/target_ruby.rb#172
RuboCop::TargetRuby::ToolVersionsFile::TOOL_VERSIONS_PATTERN = T.let(T.unsafe(nil), Regexp)
# source://rubocop//lib/rubocop/ast_aliases.rb#7
RuboCop::Token = RuboCop::AST::Token
# This module contains a collection of useful utility methods.
#
# source://rubocop//lib/rubocop/util.rb#5
module RuboCop::Util
class << self
# source://rubocop//lib/rubocop/util.rb#6
def silence_warnings; end
end
end
# source://rubocop//lib/rubocop/error.rb#10
class RuboCop::ValidationError < ::RuboCop::Error; end
# This module holds the RuboCop version information.
#
# source://rubocop//lib/rubocop/version.rb#5
module RuboCop::Version
class << self
# @api private
#
# source://rubocop//lib/rubocop/version.rb#99
def config_for_pwd(env); end
# @api private
#
# source://rubocop//lib/rubocop/version.rb#129
def document_version; end
# @api private
#
# source://rubocop//lib/rubocop/version.rb#66
def extension_versions(env); end
# Returns feature version in one of two ways:
#
# * Find by RuboCop core version style (e.g. rubocop-performance, rubocop-rspec)
# * Find by `bundle gem` version style (e.g. rubocop-rake)
#
# @api private
#
# source://rubocop//lib/rubocop/version.rb#113
def feature_version(feature); end
# @api private
#
# source://rubocop//lib/rubocop/version.rb#51
def parser_version; end
# @api private
#
# source://rubocop//lib/rubocop/version.rb#134
def server_mode; end
# @api private
#
# source://rubocop//lib/rubocop/version.rb#90
def target_ruby_version(env); end
# @api private
#
# source://rubocop//lib/rubocop/version.rb#46
def verbose(env: T.unsafe(nil)); end
# NOTE: Marked as private but used by gems like standard.
#
# @api private
#
# source://rubocop//lib/rubocop/version.rb#23
def version(debug: T.unsafe(nil), env: T.unsafe(nil)); end
end
end
# source://rubocop//lib/rubocop/version.rb#13
RuboCop::Version::CANONICAL_FEATURE_NAMES = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/version.rb#17
RuboCop::Version::EXTENSION_PATH_NAMES = T.let(T.unsafe(nil), Hash)
# source://rubocop//lib/rubocop/version.rb#8
RuboCop::Version::MSG = T.let(T.unsafe(nil), String)
# source://rubocop//lib/rubocop/version.rb#6
RuboCop::Version::STRING = T.let(T.unsafe(nil), String)
# A Warning exception is different from an Offense with severity 'warning'
# When a Warning is raised, this means that RuboCop was unable to perform a
# requested operation (such as inspecting or correcting a source file) due to
# user error
# For example, a configuration value in .rubocop.yml might be malformed
#
# source://rubocop//lib/rubocop/warning.rb#9
class RuboCop::Warning < ::StandardError; end
# Find duplicated keys from YAML.
#
# @api private
#
# source://rubocop//lib/rubocop/yaml_duplication_checker.rb#6
module RuboCop::YAMLDuplicationChecker
class << self
# @api private
#
# source://rubocop//lib/rubocop/yaml_duplication_checker.rb#7
def check(yaml_string, filename, &on_duplicated); end
end
end
# @api private
#
# source://rubocop//lib/rubocop/yaml_duplication_checker.rb#14
class RuboCop::YAMLDuplicationChecker::DuplicationCheckHandler < ::Psych::TreeBuilder
# @api private
# @return [DuplicationCheckHandler] a new instance of DuplicationCheckHandler
#
# source://rubocop//lib/rubocop/yaml_duplication_checker.rb#15
def initialize(&block); end
# @api private
#
# source://rubocop//lib/rubocop/yaml_duplication_checker.rb#20
def end_mapping; end
end
# Extensions to the core String class
#
# source://rubocop//lib/rubocop/core_ext/string.rb#4
class String
include ::Comparable
end