Я пытаюсь понять скрипт, представленный на этом сайте :
#!/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
?Я также знаю basic %
операции со строками , например %w
, но что здесь делает труба?