Class: Doing::Note
Overview
This class describes an item note.
Instance Method Summary collapse
-
#add(note, replace: false) ⇒ Object
Add note contents, optionally replacing existing note.
-
#compress ⇒ Array
Remove blank lines and comments (#).
- #compress! ⇒ Object
-
#equal?(other) ⇒ Boolean
Test if a note is equal (compare string representations).
-
#initialize(note = []) ⇒ Note
constructor
Initializes a new note.
-
#strip_lines ⇒ Array
Remove leading/trailing whitespace for every line of note.
- #strip_lines! ⇒ Object
-
#to_s ⇒ Object
Note as multi-line string.
Methods inherited from Array
#highlight_tags, #log_tags, #nested_hash, #tags_to_array, #to_tags, #to_tags!
Constructor Details
#initialize(note = []) ⇒ Note
Initializes a new note
15 16 17 18 19 |
# File 'lib/doing/note.rb', line 15 def initialize(note = []) super() add(note) if note end |
Instance Method Details
#add(note, replace: false) ⇒ Object
Add note contents, optionally replacing existing note
29 30 31 32 33 34 35 36 |
# File 'lib/doing/note.rb', line 29 def add(note, replace: false) clear if replace if note.is_a?(String) append_string(note) elsif note.is_a?(Array) append(note) end end |
#compress ⇒ Array
Remove blank lines and comments (#)
43 44 45 |
# File 'lib/doing/note.rb', line 43 def compress delete_if { |l| l =~ /^\s*$/ || l =~ /^#/ } end |
#compress! ⇒ Object
47 48 49 |
# File 'lib/doing/note.rb', line 47 def compress! replace compress end |
#equal?(other) ⇒ Boolean
Test if a note is equal (compare string representations)
83 84 85 86 87 |
# File 'lib/doing/note.rb', line 83 def equal?(other) return false unless other.is_a?(Note) to_s == other.to_s end |
#strip_lines ⇒ Array
Remove leading/trailing whitespace for every line of note
57 58 59 |
# File 'lib/doing/note.rb', line 57 def strip_lines map(&:strip) end |
#strip_lines! ⇒ Object
61 62 63 |
# File 'lib/doing/note.rb', line 61 def strip_lines! replace strip_lines end |
#to_s ⇒ Object
Note as multi-line string
67 68 69 |
# File 'lib/doing/note.rb', line 67 def to_s compress.strip_lines.map { |l| "\t\t#{l}" }.join("\n") end |