Class: MiniReadline::AutoManager

Inherits:
Object
  • Object
show all
Defined in:
lib/mini_readline/read_line/edit/auto_complete/auto_manager.rb

Overview

The controller for auto-complete.

Instance Method Summary collapse

Constructor Details

#initialize(&block) ⇒ AutoManager

Create a new auto-complete manager.



10
11
12
13
# File 'lib/mini_readline/read_line/edit/auto_complete/auto_manager.rb', line 10

def initialize(&block)
  @_block = block
  @active = nil
end

Instance Method Details

#next(buffer) ⇒ Object

Get the next buffer string



16
17
18
19
20
21
22
23
24
25
26
# File 'lib/mini_readline/read_line/edit/auto_complete/auto_manager.rb', line 16

def next(buffer)
  unless @active && @old_buffer == buffer
    @active = source.rebuild(buffer)
  end

  if @active
    @old_buffer = source.next
  else
    @old_buffer = nil
  end
end

#sourceObject

Get the data source



29
30
31
# File 'lib/mini_readline/read_line/edit/auto_complete/auto_manager.rb', line 29

def source
  @_source ||= @_block.call
end