class MiniReadline::ArraySource
An array as the source for auto-complete.
Public Class Methods
new(options)
click to toggle source
Create a new file/folder auto-data source. NOP
# File lib/mini_readline/read_line/edit/auto_complete/array_source.rb, line 10 def initialize(options) @options = options end
Public Instance Methods
extract_root_pivot(str)
click to toggle source
Parse the string into the two basic components.
# File lib/mini_readline/read_line/edit/auto_complete/array_source.rb, line 24 def extract_root_pivot(str) @root, @pivot = /\S+$/ =~ str ? [$PREMATCH, $MATCH] : [str, ""] end
get_array()
click to toggle source
Get the array of data from either an array or a block.
# File lib/mini_readline/read_line/edit/auto_complete/array_source.rb, line 29 def get_array if (src = @options[:array_src]).is_a?(Proc) src.call else src || [] end end
next()
click to toggle source
Get the next string for auto-complete
# File lib/mini_readline/read_line/edit/auto_complete/array_source.rb, line 38 def next @root + @cycler.next end
rebuild(str)
click to toggle source
Construct a new data list for auto-complete
# File lib/mini_readline/read_line/edit/auto_complete/array_source.rb, line 15 def rebuild(str) extract_root_pivot(str) list = (get_array.select {|entry| entry.start_with?(@pivot)}).sort @cycler = list.empty? ? nil : list.cycle end