Class: RuboCop::Cop::Style::RegexpLiteral
- Defined in:
- lib/rubocop/cop/style/regexp_literal.rb
Overview
This cop checks for regexp literals and reports offenses based on how many escaped slashes there are in the regexp and on the value of the configuration parameter MaxSlashes.
Constant Summary
Constants included from Util
Util::ASGN_NODES, Util::EQUALS_ASGN_NODES, Util::OPERATOR_METHODS, Util::PROC_NEW_NODE, Util::SHORTHAND_ASGN_NODES
Class Attribute Summary collapse
-
.slash_count ⇒ Object
Returns the value of attribute slash_count.
Attributes inherited from Cop
#config, #corrections, #offenses, #processed_source
Instance Method Summary collapse
Methods inherited from Cop
#add_offense, all, #autocorrect?, #config_to_allow_offenses, #config_to_allow_offenses=, #cop_config, cop_name, #cop_name, cop_type, #debug?, #display_cop_names?, #exclude_file?, #include_file?, inherited, #initialize, #join_force?, lint?, #message, non_rails, qualified_cop_name, rails?, #relevant_file?, #support_autocorrect?
Methods included from IgnoredNode
#ignore_node, #ignored_node?, #part_of_ignored_node?
Methods included from Util
block_length, command?, comment_line?, const_name, first_part_of_call_chain, lambda?, lambda_or_proc?, line_range, numeric_range_size, on_node, operator?, parentheses?, proc?, range_with_surrounding_space, source_range, strip_quotes
Methods included from PathUtil
Constructor Details
This class inherits a constructor from RuboCop::Cop::Cop
Class Attribute Details
.slash_count ⇒ Object
Returns the value of attribute slash_count.
11 12 13 |
# File 'lib/rubocop/cop/style/regexp_literal.rb', line 11 def slash_count @slash_count end |
Instance Method Details
#on_regexp(node) ⇒ Object
14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/rubocop/cop/style/regexp_literal.rb', line 14 def on_regexp(node) string_parts = node.children.select { |child| child.type == :str } total_string = string_parts.map { |s| s.loc.expression.source }.join slashes = total_string.count('/') delimiter_start = node.loc.begin.source[0] if delimiter_start == '/' if slashes > max_slashes add_offense(node, :expression, ('')) end elsif slashes <= max_slashes add_offense(node, :expression, ('only ')) end configure_max(delimiter_start, slashes) if @options[:auto_gen_config] end |