class Mysh::SmartSource
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/mysh/sources/smart_auto_complete.rb, line 10 def initialize(options) @prefix = options[:prefix] @auto_source = MiniReadline::AutoFileSource.new(options) @quote_source = MiniReadline::QuotedFileFolderSource.new(options) @active_source = nil end
Public Instance Methods
next()
click to toggle source
Get the next string for auto-complete
# File lib/mysh/sources/smart_auto_complete.rb, line 30 def next @active_source ? @active_source.next : @str end
rebuild(str)
click to toggle source
Construct a new data list for auto-complete
# File lib/mysh/sources/smart_auto_complete.rb, line 18 def rebuild(str) if /(?<=\s|^)\$[a-z][a-z0-9_]*\z/ =~ str sym = $MATCH[1..-1].to_sym @active_source = nil return @str = $PREMATCH + MNV[sym] if MNV.key?(sym) end @active_source = (@prefix || str[0]) == '=' ? @quote_source : @auto_source @active_source.rebuild(str) end