class RDocRuboCop::Lang::Base::SourceFile
Attributes
filename[R]
source[R]
Public Class Methods
build(filename)
click to toggle source
# File lib/rdoc_rubocop/lang/base/source_file.rb, line 10 def self.build(filename) klass = case filename when /\.c\z/ then Lang::C::SourceFile when /\.rb\z/ then Lang::Ruby::SourceFile end return unless klass source = File.open(filename, "r").read klass.new(source, filename) end
new(source, filename)
click to toggle source
# File lib/rdoc_rubocop/lang/base/source_file.rb, line 23 def initialize(source, filename) @source = source @filename = filename reset end
Public Instance Methods
comments()
click to toggle source
# File lib/rdoc_rubocop/lang/base/source_file.rb, line 37 def comments @comments ||= begin comment_extractor = comment_extractor_class.new(self) comment_extractor.extract comment_extractor.comments end end
correct()
click to toggle source
# File lib/rdoc_rubocop/lang/base/source_file.rb, line 56 def correct corrector = corrector_class.new(self) corrector.correct @source = corrector.corrected_source end
correct!()
click to toggle source
def comment_extractor_class
CommentExtractor
end
# File lib/rdoc_rubocop/lang/base/source_file.rb, line 50 def correct! correct save if changed? reset end
source_code_file_paths()
click to toggle source
# File lib/rdoc_rubocop/lang/base/source_file.rb, line 30 def source_code_file_paths @source_code_file_paths ||= comments. flat_map(&:source_codes). map { |source_code| source_code.build_file_path(@filename) } end
Private Instance Methods
changed?()
click to toggle source
# File lib/rdoc_rubocop/lang/base/source_file.rb, line 84 def changed? compute_digest(@source) != @checksum end
compute_digest(str)
click to toggle source
# File lib/rdoc_rubocop/lang/base/source_file.rb, line 74 def compute_digest(str) Digest::MD5.hexdigest(str) end
reset()
click to toggle source
def corrector_class
Corrector
end
# File lib/rdoc_rubocop/lang/base/source_file.rb, line 69 def reset @checksum = compute_digest(@source) @source_code_file_paths = nil end
save()
click to toggle source
# File lib/rdoc_rubocop/lang/base/source_file.rb, line 78 def save File.open(@filename, "w") do |f| f.puts @source end end