Class: Textbringer::InsertAction

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

Instance Attribute Summary collapse

Attributes inherited from UndoableAction

#location, #version

Instance Method Summary collapse

Constructor Details

#initialize(buffer, location, string) ⇒ InsertAction

Returns a new instance of InsertAction.



1840
1841
1842
1843
1844
# File 'lib/textbringer/buffer.rb', line 1840

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

Instance Attribute Details

#stringObject (readonly)

Returns the value of attribute string.



1838
1839
1840
# File 'lib/textbringer/buffer.rb', line 1838

def string
  @string
end

Instance Method Details

#merge(s) ⇒ Object



1856
1857
1858
1859
1860
1861
1862
# File 'lib/textbringer/buffer.rb', line 1856

def merge(s)
  unless @copied
    @string = @string.dup
    @copied = true
  end
  @string.concat(s)
end

#redoObject



1851
1852
1853
1854
# File 'lib/textbringer/buffer.rb', line 1851

def redo
  @buffer.goto_char(@location)
  @buffer.insert(@string)
end

#undoObject



1846
1847
1848
1849
# File 'lib/textbringer/buffer.rb', line 1846

def undo
  @buffer.goto_char(@location)
  @buffer.delete_region(@location, @location + @string.bytesize)
end