class RuboCop::Cop::Style::BlockComments


# of comments…
# Multiple lines
# good
=end
of comments…
Multiple lines
=begin
# bad
@example
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 eq_end_part(comment, expr)

def eq_end_part(comment, expr)
  if comment.text.chomp == comment.text
    range_between(expr.end_pos - END_LENGTH - 1, expr.end_pos - 2)
  else
    range_between(expr.end_pos - END_LENGTH, expr.end_pos)
  end
end

def investigate(processed_source)

def investigate(processed_source)
  processed_source.each_comment do |comment|
    next unless comment.document?
    add_offense(comment)
  end
end

def parts(comment)

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