我在.rb文件中有一些Ruby代碼,我嘗試使用Automator運行而不是命令行。下面是代碼的樣本(文件名是「filelines_revise.rb」):Mac Automator(OS 10.7)不能讀取Ruby 1.9.3?
lines = IO.readlines('filelines_before_CAP.txt').map do |line|
array = line.split.each { |i| i.capitalize! }
if array.include?("Ws")
array.delete("Ws")
array[-1,0] = "Ws"
end
if array.include?("Es")
array.delete("Es")
array[-1,0] = "Es"
end
array_2 = array.join(" ")
array_2.gsub(/ Ws /, ", west side")
.gsub(/ ES /, ", east side")
end
File.open('filelines_after_CAP.txt', 'w') do |file|
file.puts lines
end
當我使用命令行命令「紅寶石/Desktop/filelines_revise/filelines_revise.rb」運行此代碼和代碼運行正常。它會找到原始的.txt文件,讀取每行,按代碼指示更改文件,然後使用修改後的行創建一個新文件。
當我嘗試將它作爲工作流或應用程序放入Automator時,我將Run Shell Script放到我的流中,使用/ bin/bash和Pass輸入:to stdin,然後命令「ruby/Desktop/filelines_revise/filelines_revise.rb」。當我去運行該腳本,我得到一個錯誤閱讀:
桌面/ filelines_revise/filelines_revise.rb:「」 18語法錯誤,意外,預計DMOZ目錄
第18行是第二.gsub」 .gsub (/ ES /,「,東側」)「。
是否有可能Automator不使用我的Ruby 1.9.3作爲命令行呢?也許我應該對此有不同的看法?提前致謝。
「第18行是第二個.gsub'.gsub(/ ES /,」,east side「)'列在上面的代碼中,如果你把它關閉(把它放在與第一行相同的行上gsub)能解決它嗎? – matt 2013-05-02 17:43:58
@matt它修復了我運行服務時,但不是應用程序。一旦我做了,它告訴我它找不到該文件。我將與一個服務,但將離開,因爲我寧願有一天的應用程序。 – jmitchell1009 2013-05-03 10:47:30