如何在Ruby CLI程序中设置选项卡自动完成(用于目录)?

时间:2014-08-05 20:41:36

标签: ruby bash readline command-line-interface thor

关于我尝试做的事情的背景:

我一直在教自己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:我已浏览过FileUtilsFileIO等等。

BackticksOpen4:对ls等命令有意义,但对目录不确定。

总结:

Haven找不到任何一个能给我带来帮助的答案。我觉得我的问题的答案要么比我意识到的要复杂得多,要么我所有的阅读都让我遗漏了一些在我的鼻子底下的东西。我希望它是后者,但如果它真的明显地显而易见,请保持温和:D

有什么建议吗?

0 个答案:

没有答案
相关问题