11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/annotate_rb/model_annotator/single_file_annotation_remover.rb', line 11
def call(file_name, options = Options.from({}))
return false unless File.exist?(file_name)
old_content = File.read(file_name)
parser_klass = FileToParserMapper.map(file_name)
begin
parsed_file = FileParser::ParsedFile.new(old_content, "", parser_klass, options).parse
rescue FileParser::AnnotationFinder::MalformedAnnotation => e
warn "Unable to process #{file_name}: #{e.message}"
warn "\t" + e.backtrace.join("\n\t") if @options[:trace]
return false
end
return false if !parsed_file.has_annotations?
return false if parsed_file.has_skip_string?
updated_file_content = old_content.sub(parsed_file.annotations_with_whitespace, "")
File.open(file_name, "wb") { |f| f.puts updated_file_content }
true
end
|