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