Что означает оператор знак процента + вертикальная черта в Ruby, как в «% |»?

Я пытаюсь понять скрипт, представленный на этом сайте :

#!/usr/bin/env ruby

require ENV['TM_SUPPORT_PATH'] + '/lib/escape.rb'

def terminal_script_filepath
  %|tell application "Terminal"
      activate
      do script "jsc -i #{e_as(e_sh(ENV['TM_FILEPATH']))}"
    end tell|
end

open("|osascript", "w") { |io| io << terminal_script_filepath }

Самое главное, та часть, где функция terminal_script_filepath начинается с:

%| …
… |

… и где он «разбирается» в:

{ |io| io << terminal_script_filepath }

Какие концепции Ruby здесь используются?

Я знаю, что open () с конвейером помогает мне передавать ввод в STDIN процесса, но как входные данные попадают из terminal_script_filepath в io ? Я также знаю базовые % операции со строками , например % w , но что здесь делает труба?

8
задан slhck 2 November 2011 в 12:22
поделиться