class TextEditor::Command::Backspace

Public Instance Methods

run(*) click to toggle source
   # File lib/text_editor/command/backspace.rb
 4 def run(*)
 5   if column.zero? && line.nonzero?
 6     content = buffer.line(line.pred)
 7     new_column = content.size
 8     content << buffer.line(line)
 9 
10     new_buffer = buffer.replace_line(line.pred, content)
11     new_buffer = new_buffer.delete_line(line)
12 
13     new_cursor = cursor.move(line.pred, new_column)
14   elsif column.nonzero?
15     new_buffer = buffer.delete_char(line, column.pred)
16     new_cursor = cursor.left
17   else
18     new_buffer = buffer
19     new_cursor = cursor
20   end
21 
22   window.update(new_buffer, new_cursor)
23 end