Mac Automator (OS 10.7) nie czyta Ruby 1.9.3?
Mam kod Ruby w pliku .rb, który próbuję uruchomić z Automatorem w przeciwieństwie do wiersza poleceń. Oto przykład kodu (nazwa pliku to „filelines_revise.rb”):
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
Po uruchomieniu tego kodu za pomocą polecenia linii poleceń „ruby /Desktop/filelines_revise/filelines_revise.rb” kod działa poprawnie. Znajduje oryginalny plik .txt, odczytuje każdy wiersz, zmienia plik zgodnie z dyktatem kodu, a następnie tworzy nowy plik ze zmienionymi wierszami.
Kiedy próbuję umieścić to w Automatorze jako Workflow lub App, umieściłem Run Flow Script w moim przepływie, używając / bin / bash z wejściem Pass: do stdin, a następnie polecenie „ruby / Desktop / filelines_revise / filelines_revise. rb ”. Gdy idę uruchomić skrypt, pojawia się komunikat o błędzie:
Desktop / filelines_revise / filelines_revise.rb: 18 błąd składniowy, nieoczekiwany „.”, Oczekujący Kend
Linia 18 to 2. gsub ".gsub (/ ES /,", strona wschodnia ")" wymieniona w powyższym kodzie.
Czy to możliwe, że Automator nie używa mojego Ruby 1.9.3 tak, jak robi to wiersz poleceń? Może powinienem o tym mówić inaczej? Z góry dziękuję.