Class: Textbringer::OverwriteAction

Inherits:
UndoableAction show all
Defined in:
lib/textbringer/modes/overwrite_mode.rb

Instance Attribute Summary

Attributes inherited from UndoableAction

#location, #version

Instance Method Summary collapse

Constructor Details

#initialize(buffer, location, inserted_string, deleted_string) ⇒ OverwriteAction

Returns a new instance of OverwriteAction.



53
54
55
56
57
58
# File 'lib/textbringer/modes/overwrite_mode.rb', line 53

def initialize(buffer, location, inserted_string, deleted_string)
  super(buffer, location)
  @inserted_string = inserted_string
  @deleted_string = deleted_string
  @copied = false
end

Instance Method Details

#merge(inserted_string, deleted_string) ⇒ Object



73
74
75
76
77
78
79
80
81
# File 'lib/textbringer/modes/overwrite_mode.rb', line 73

def merge(inserted_string, deleted_string)
  unless @copied
    @inserted_string = @inserted_string.dup
    @deleted_string = @deleted_string.dup
    @copied = true
  end
  @inserted_string.concat(inserted_string)
  @deleted_string.concat(deleted_string)
end

#redoObject



67
68
69
70
71
# File 'lib/textbringer/modes/overwrite_mode.rb', line 67

def redo
  @buffer.goto_char(@location)
  @buffer.delete_region(@location, @location + @deleted_string.bytesize)
  @buffer.insert(@inserted_string)
end

#undoObject



60
61
62
63
64
65
# File 'lib/textbringer/modes/overwrite_mode.rb', line 60

def undo
  @buffer.goto_char(@location)
  @buffer.delete_region(@location, @location + @inserted_string.bytesize)
  @buffer.insert(@deleted_string)
  @buffer.goto_char(@location)
end