class MiniReadline::AutoFileSource
A flexible file source for shell emulation.
Constants
- EXTRACT
The regex for extraction of the root and pivot.
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/auto_file_source.rb, line 10 def initialize(_options) #Do nothing here! end
Public Instance Methods
backslash?()
click to toggle source
Does this file name use backslashes?
# File lib/mini_readline/read_line/edit/auto_complete/auto_file_source.rb, line 63 def backslash? if @pivot.end_with?("\\") true elsif @pivot.end_with?("/") false elsif @pivot["\\"] true elsif @pivot["/"] false else MiniTerm.windows? end end
dress_down(name)
click to toggle source
Prepare the file name for internal use. Endemic Code Smells :reek: UtilityFunction
# File lib/mini_readline/read_line/edit/auto_complete/auto_file_source.rb, line 39 def dress_down(name) name.gsub("\\", "/").gsub('"', '') end
dress_up(name)
click to toggle source
Prepare the file name for external use. Endemic Code Smells :reek: UtilityFunction
# File lib/mini_readline/read_line/edit/auto_complete/auto_file_source.rb, line 46 def dress_up(name) dress_up_quotes(dress_up_slashes(name)) end
dress_up_quotes(name)
click to toggle source
Dress up in quotes if needed. Endemic Code Smells :reek: UtilityFunction
# File lib/mini_readline/read_line/edit/auto_complete/auto_file_source.rb, line 58 def dress_up_quotes(name) name[' '] ? "\"#{name}\"" : name end
dress_up_slashes(name)
click to toggle source
Dress up slashes and backslashes.
# File lib/mini_readline/read_line/edit/auto_complete/auto_file_source.rb, line 51 def dress_up_slashes(name) backslash? ? name.gsub("/", "\\") : name end
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/auto_file_source.rb, line 27 def extract_root_pivot(str) @root, @pivot = EXTRACT =~ str ? [$PREMATCH, $MATCH] : [str, ""] end
next()
click to toggle source
Get the next string for auto-complete
# File lib/mini_readline/read_line/edit/auto_complete/auto_file_source.rb, line 32 def next @root + dress_up(@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/auto_file_source.rb, line 15 def rebuild(str) extract_root_pivot(str) list = Dir.glob(dress_down(@pivot) + '*') @cycler = list.empty? ? nil : list.cycle end