class RuboCop::Cop::Style::BlockComments
Looks for uses of block comments (=begin…=end).
@example
# bad =begin Multiple lines of comments... =end # good # Multiple lines # of comments...
Constants
- BEGIN_LENGTH
- END_LENGTH
- MSG
Public Instance Methods
on_new_investigation()
click to toggle source
# File lib/rubocop/cop/style/block_comments.rb, line 27 def on_new_investigation processed_source.comments.each do |comment| next unless comment.document? add_offense(comment) do |corrector| eq_begin, eq_end, contents = parts(comment) corrector.remove(eq_begin) unless contents.empty? corrector.replace( contents, contents.source.gsub(/\A/, '# ').gsub("\n\n", "\n#\n").gsub(/\n(?=[^#])/, "\n# ") ) end corrector.remove(eq_end) end end end
Private Instance Methods
eq_end_part(comment, expr)
click to toggle source
# File lib/rubocop/cop/style/block_comments.rb, line 56 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
parts(comment)
click to toggle source
# File lib/rubocop/cop/style/block_comments.rb, line 48 def parts(comment) expr = comment.source_range 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