0

コマンドラインではなく Automator で実行しようとしている .rb ファイルにいくつかの Ruby コードがあります。以下はコードのサンプルです (ファイル名は「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

コマンドラインコマンド「ruby /Desktop/filelines_revise/filelines_revise.rb」を使用してこのコードを実行すると、コードは正常に実行されます。元の .txt ファイルを見つけ、各行を読み取り、コードの指示に従ってファイルを変更し、改訂された行を含む新しいファイルを作成します。

これをワークフローまたはアプリとして Automator に入れようとすると、Run Shell Script をフローに入れ、/bin/bash を Pass 入力: to stdin で使用し、コマンド「ruby /Desktop/filelines_revise/filelines_revise. rb」。スクリプトを実行しようとすると、次のエラーが表示されます。

Desktop/filelines_revise/filelines_revise.rb:18 構文エラー、予期しない '.'、Kend を期待

18行目は上記コードの2番目の.gsub「.gsub(/ES/,",east side")」です。

コマンド ラインのように Automator が Ruby 1.9.3 を使用していない可能性はありますか? おそらく私はこれについて別の方法で行くべきですか?前もって感謝します。

4

1 に答える 1