我有这个ruby脚本,允许我输入pdf文件的名称,然后在文件夹中查找该文件并将其打开。除了我必须对我的输入非常准确。例如:
Enter the name of the pdf file you would like to open.
> Survival Manual
如果文件的名称与我输入的完全相同,上面一行会打开这本书,但我们只想输入
> Survival
它不会打开它。所以我有以下代码:
docs = Dir.entries("/Documents") #=> ["Survival Manual.pdf", "Military Manual.pdf"]
input = gets.chomp #=> "Survival"
select_doc = docs.grep(Regexp.new(input)) #=> ["Survival Manual.pdf"]
system("open", "/Documents/#{select_doc[0]}")
最后一行最后打开pdf。这段代码似乎很复杂,我知道它可以做得更好,如果有的话,有什么我想念的吗?我可以使用更好的方法吗?经过多次尝试重构这段代码后,似乎只会变得更糟。 Ruby是一门伟大的语言,我希望能够做正确的事情,也许那些刚接触ruby的人(像我一样)可以从中获取一些东西。提前谢谢。
答案 0 :(得分:2)
input = gets.chomp.delete '/'
system('open', Dir["Documents/#{input}*.pdf"].first)