class RuboCop::Cop::Style::BlockComments

This cop looks for uses of block comments (=begin…=end).

def autocorrect(comment)

def autocorrect(comment)
  eq_begin, eq_end, contents = parts(comment)
  lambda do |corrector|
    corrector.remove(eq_begin)
    unless contents.length.zero?
      corrector.replace(contents,
                        contents.source
                          .gsub(/\A/, '# ')
                          .gsub(/\n\n/, "\n#\n")
                          .gsub(/\n(?=[^#])/, "\n# "))
    end
    corrector.remove(eq_end)
  end
end

def investigate(processed_source)

def investigate(processed_source)
  processed_source.comments.each do |comment|
    add_offense(comment, :expression) if comment.document?
  end
end

def parts(comment)

def parts(comment)
  expr = comment.loc.expression
  eq_begin = expr.resize(BEGIN_LENGTH)
  eq_end = range_between(expr.end_pos - END_LENGTH, expr.end_pos)
  contents = range_between(eq_begin.end_pos, eq_end.begin_pos)
  [eq_begin, eq_end, contents]
end