Как передать переменные из скрипта ruby ​​в приложение automator? - PullRequest
1 голос
/ 16 августа 2011

Итак, у меня есть скрипт в ruby, который, очевидно, использует переменные. Часть скрипта открывает приложение и запускает рабочий процесс автоматизатора. В моем скрипте ruby ​​есть некоторые переменные, которые мне нужны для работы. Возможно ли это в любом случае?

Ответы [ 2 ]

0 голосов
/ 13 ноября 2011

Можете ли вы: a) выполнить программу командной строки из Ruby b) сохранить рабочий процесс Automator как приложение

Если это так, вы сможете выполнить команду open, например open test.app --args someArg.Или вы можете использовать команду automator, например echo "someArg" | automator -i - test.app

Обратите внимание, что весь скрипт Automator будет запускаться один раз для каждого аргумента - попробуйте использовать «Speak Text» в качестве первого элемента, чтобы проверить это.

Чтобы работать со всеми параметрами за один раз, вам нужно на самом деле передать только один, а затем разделить его, например, open test.app --args "one|two|three|four", затем что-то вроде

on run input
    set myArray to my theSplit(input as string, "|")
    set a to item 1 of myArray
    set b to item 2 of myArray
    set c to item 3 of myArray
    set d to item 4 of myArray
    display dialog "c is " & c

        --do stuff
    return str
end run

on theSplit(theString, theDelimiter)
    -- save delimiters to restore old settings
    set oldDelimiters to AppleScript's text item delimiters
    -- set delimiters to delimiter to be used
    set AppleScript's text item delimiters to theDelimiter
    -- create the array
    --set theArray to every text item of theString
    set theArray to text items of theString
    --display dialog theArray as string
    -- restore the old setting
    set AppleScript's text item delimiters to oldDelimiters
    -- return the result
    return theArray
end theSplit

Однако AppleScript только работаетесли это не первое действие.Если вам это нужно в качестве первого действия, которое вы, вероятно, делаете, сначала вставьте скрипт запуска оболочки, который просто передает аргументы:

for f
do
  echo “$f"
done
0 голосов
/ 16 августа 2011

Да, можно передать параметры в скрипт ruby. Вот хороший учебник:

http://ruby.about.com/od/rubyfeatures/a/argv.htm

...