class RDocRuboCop::RDoc

Attributes

ruby_snippets[R]
text[R]

Public Class Methods

new(text) click to toggle source
# File lib/rdoc_rubocop/rdoc.rb, line 9
def initialize(text)
  @text = text

  @ruby_snippets = []
  @parsed = false
end

Public Instance Methods

apply() click to toggle source
# File lib/rdoc_rubocop/rdoc.rb, line 21
def apply
  lines = text_lines

  @ruby_snippets.reverse_each do |ruby_snippet|
    next unless ruby_snippet.corrected_text_with_indent

    index = ruby_snippet.lineno[0] - 1
    number_of_lines = ruby_snippet.number_of_lines
    lines[index, number_of_lines] = ruby_snippet.corrected_text_with_indent
  end

  lines.join
end

Private Instance Methods

parse() click to toggle source
# File lib/rdoc_rubocop/rdoc.rb, line 37
def parse
  @ruby_snippets = []
  ruby_snippet = RubySnippet.new
  is_in_call_seq = false

  lines = text_lines.map.with_index { |line, i| Line.new(1 + i, line) }
  lines.each do |line|
    if line.blank?
      ruby_snippet.append(line) if !ruby_snippet.empty?
    elsif line.indent.length > 0
      ruby_snippet.append(line) if !is_in_call_seq
    elsif line.str.match?(/^call-seq:/)
      is_in_call_seq = true
      ruby_snippet = RubySnippet.new
    else
      is_in_call_seq = false

      if !ruby_snippet.empty?
        @ruby_snippets << ruby_snippet.tap(&:trim!)
        ruby_snippet = RubySnippet.new
      end
    end
  end
  @ruby_snippets << ruby_snippet.tap(&:trim!) if !ruby_snippet.empty?

  @parsed = true
end
text_lines() click to toggle source
# File lib/rdoc_rubocop/rdoc.rb, line 65
def text_lines
  @text_lines ||= @text.lines
end