class RuboCop::Cop::Naming::HeredocDelimiterNaming
EOS
SELECT * FROM foo
<<-EOS
# bad
END
SELECT * FROM foo
<<-END
# bad
SQL
SELECT * FROM foo
<<-SQL
# good
@example
forbidden listing additional delimiters.
By default it disallows ‘END` and `EO*`, and can be configured through
This cop checks that your heredocs are using meaningful delimiters.
def forbidden_delimiters
def forbidden_delimiters cop_config['ForbiddenDelimiters'] || [] end
def meaningful_delimiters?(node)
def meaningful_delimiters?(node) delimiters = delimiter_string(node) return false unless /\w/.match?(delimiters) forbidden_delimiters.none? do |forbidden_delimiter| Regexp.new(forbidden_delimiter).match?(delimiters) end end
def on_heredoc(node)
def on_heredoc(node) return if meaningful_delimiters?(node) add_offense(node.loc.heredoc_end) end