class RuboCop::Cop::Naming::HeredocDelimiterCase
sql
SELECT * FROM foo
<<-sql
# good
SQL
SELECT * FROM foo
<<-SQL
# bad
@example EnforcedStyle: lowercase
SQL
SELECT * FROM foo
<<-SQL
# good
sql
SELECT * FROM foo
<<-sql
# bad
@example EnforcedStyle: uppercase (default)
By default it is configured to enforce uppercase heredocs.
Checks that your heredocs are using the configured case.
def correct_case_delimiters?(node)
def correct_case_delimiters?(node) delimiter_string(node) == correct_delimiters(delimiter_string(node)) end
def correct_delimiters(source)
def correct_delimiters(source) if style == :uppercase source.upcase else source.downcase end end
def message(_node)
def message(_node) format(MSG, style: style) end
def on_heredoc(node)
def on_heredoc(node) return if correct_case_delimiters?(node) add_offense(node.loc.heredoc_end) do |corrector| expr = node.source_range corrector.replace(expr, correct_delimiters(expr.source)) corrector.replace(node.loc.heredoc_end, correct_delimiters(delimiter_string(expr))) end end