class RuboCop::Cop::Style::BlockComments
This cop looks for uses of block comments (=begin…=end).
Constants
- BEGIN_LENGTH
- END_LENGTH
- MSG
Public Instance Methods
investigate(processed_source)
click to toggle source
# File lib/rubocop/cop/style/block_comments.rb, line 12 def investigate(processed_source) processed_source.comments.each do |comment| add_offense(comment, :expression) if comment.document? end end
Private Instance Methods
autocorrect(comment)
click to toggle source
# File lib/rubocop/cop/style/block_comments.rb, line 20 def autocorrect(comment) eq_begin, eq_end, contents = parts(comment) lambda do |corrector| corrector.remove(eq_begin) # rubocop:disable Style/ZeroLengthPredicate unless contents.length == 0 corrector.replace(contents, contents.source .gsub(/\A/, '# ') .gsub(/\n\n/, "\n#\n") .gsub(/\n(?=[^\z#])/, "\n# ")) end # rubocop:enable Style/ZeroLengthPredicate corrector.remove(eq_end) end end
parts(comment)
click to toggle source
# File lib/rubocop/cop/style/block_comments.rb, line 38 def parts(comment) expr = comment.loc.expression eq_begin = expr.resize(BEGIN_LENGTH) eq_end = Parser::Source::Range.new(expr.source_buffer, expr.end_pos - END_LENGTH, expr.end_pos) contents = Parser::Source::Range.new(expr.source_buffer, eq_begin.end_pos, eq_end.begin_pos) [eq_begin, eq_end, contents] end