关于我尝试做的事情的背景:
我一直在教自己Ruby
,作为测试项目,我创建了一个.csv
转换器。它在所有方面都运行良好,但我所坚持的是允许用户轻松选择要导入的文件。现在我使用以下代码提示输入文件路径:
def find_original_path
puts "\nWhere is the file that you would like to convert?"
print ">> "
@original_path = gets.chomp
if File.exists?(@original_path)
# Verify that file is a .csv
check_original_type()
else
puts "\nSorry, that file doesn't seem to exist."
# Ask for a new path to file
find_original_path()
end
end
我想做的事情:
这样可行,但需要用户知道.csv
的完全路径。我更喜欢的是允许用户使用bash
样式自动完成来查找其文件。键入~/
应该从用户的主目录开始,然后按tab
两次应该列出所有可用的文件夹/文件,依此类推。
我发现了什么:
Readline
:我的理解是此模块仅适用于预设列表。
Thor
:非常棒的模块,但似乎只适用于提供深层argument
功能(例如git
命令)。
Shoes (and variants)
:显然green_shoes
有一个简单的方法可以做到这一点,但我还没有想要在这个工具上加GUI
。
Ruby's Std-lib
:我已浏览过FileUtils
,File
,IO
等等。
Backticks
和Open4
:对ls
等命令有意义,但对目录不确定。
总结:
Haven找不到任何一个能给我带来帮助的答案。我觉得我的问题的答案要么比我意识到的要复杂得多,要么我所有的阅读都让我遗漏了一些在我的鼻子底下的东西。我希望它是后者,但如果它真的明显地显而易见,请保持温和:D
有什么建议吗?