Class: FileAnnotate::Annotator
- Inherits:
-
Object
- Object
- FileAnnotate::Annotator
- Defined in:
- lib/file_annotate/annotator.rb
Overview
負責對檔案內容進行註解的處理
Class Method Summary collapse
- .annotate_all ⇒ Object
- .annotated?(lines, file) ⇒ Boolean
- .annotation_text(file) ⇒ Object
- .each_rb_file(&block) ⇒ Object
- .insert_annotation!(lines, file) ⇒ Object
- .remove_all ⇒ Object
- .remove_annotation!(lines, file) ⇒ Object
Class Method Details
.annotate_all ⇒ Object
6 7 8 9 10 11 12 13 14 |
# File 'lib/file_annotate/annotator.rb', line 6 def self.annotate_all each_rb_file do |file| lines = File.readlines(file) next if annotated?(lines, file) insert_annotation!(lines, file) File.write(file, lines.join) end end |
.annotated?(lines, file) ⇒ Boolean
31 32 33 |
# File 'lib/file_annotate/annotator.rb', line 31 def self.annotated?(lines, file) lines.first&.strip == annotation_text(file) end |
.annotation_text(file) ⇒ Object
27 28 29 |
# File 'lib/file_annotate/annotator.rb', line 27 def self.annotation_text(file) "# #{file}" end |
.each_rb_file(&block) ⇒ Object
23 24 25 |
# File 'lib/file_annotate/annotator.rb', line 23 def self.each_rb_file(&block) Dir.glob("**/*.rb").each(&block) end |
.insert_annotation!(lines, file) ⇒ Object
35 36 37 |
# File 'lib/file_annotate/annotator.rb', line 35 def self.insert_annotation!(lines, file) lines.unshift("#{annotation_text(file)}\n") end |
.remove_all ⇒ Object
16 17 18 19 20 21 |
# File 'lib/file_annotate/annotator.rb', line 16 def self.remove_all each_rb_file do |file| lines = File.readlines(file) File.write(file, lines.join) if remove_annotation!(lines, file) end end |
.remove_annotation!(lines, file) ⇒ Object
39 40 41 42 43 44 45 46 |
# File 'lib/file_annotate/annotator.rb', line 39 def self.remove_annotation!(lines, file) if annotated?(lines, file) lines.delete_at(0) true else false end end |