Automator で Javascript
Automator でワークフローを開いたら"JavaScript を実行"というアクションが追加されていた。
Yosemite になって Javascript for Automation が追加されたんだから当然のことではあるが。
早速、"JavaScript を実行"のアクションを選択してみたら、以下のようなスクリプトが表示された。
function run(input, parameters) { // Your script goes here return input; }
input が関数の引数にも return のパラメータにも出てくるというのがよく分からない?
とりあえず"JavaScript を実行する"アクションに以下のような script を書いた。
function run() { return( "Hello World!" ); }
これに続けて"結果を表示"アクションを配置し、ワークフローを実行してみた。
{"Hello World!"}
LotoNumbers の生成
"JavaScript を実行"のスクリプトを以下のように書き換える。
function run(){ function loto( n, c ){ var numbers = []; function lotoGen(){ return ("00" + Math.ceil( Math.random()*c )).substr(-2) } for( numbers.push( lotoGen() ); numbers.length < n; ){ if( numbers.indexOf( a = lotoGen() )) numbers.push( a ) ; }; return numbers; } var result = []; result.push( "[miniLoto:" + loto( 5,31 ).sort().toString() + "]" ); result.push( "[Loto6:" + loto( 6,43 ).sort().toString() + "]" ); result.push( "[Loto7:" + loto( 7,37 ).sort().toString() + "]" ); return result.toString(); }
これに続けて"結果を表示"アクションを配置し、ワークフローを実行した結果。
[miniLoto:07,13,17,24,29],[Loto6:01,13,18,22,37,41],[Loto7:01,03,12,18,26,35,37]
"\n" で改行しないので…