Class: RuboCop::Cop::Style::StringLiteralsInInterpolation

Inherits:
Base
  • Object
show all
Extended by:
AutoCorrector
Includes:
ConfigurableEnforcedStyle, RuboCop::Cop::StringHelp, RuboCop::Cop::StringLiteralsHelp
Defined in:
lib/rubocop/cop/style/string_literals_in_interpolation.rb

Overview

Checks that quotes inside string, symbol, and regexp interpolations match the configured preference.

Examples:

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'}/

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"}/

Instance Method Summary collapse

Methods included from AutoCorrector

support_autocorrect?

Methods included from RuboCop::Cop::StringHelp

#on_str

Methods included from ConfigurableEnforcedStyle

#alternative_style, #alternative_styles, #ambiguous_style_detected, #correct_style_detected, #detected_style, #detected_style=, #no_acceptable_style!, #no_acceptable_style?, #opposite_style_detected, #style, #style_configured?, #style_detected, #style_parameter_name, #supported_styles, #unexpected_style_detected

Instance Method Details

#autocorrect(corrector, node) ⇒ Object



48
49
50
# File 'lib/rubocop/cop/style/string_literals_in_interpolation.rb', line 48

def autocorrect(corrector, node)
  StringLiteralCorrector.correct(corrector, node, style)
end

#on_regexp(node) ⇒ Object

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.



55
# File 'lib/rubocop/cop/style/string_literals_in_interpolation.rb', line 55

def on_regexp(node); end