PIYO - Tech & Life -

テキスト欄に書いたRubyのコードをAutomatorで評価する

Ruby Automator

昨日つぶやいたこれについてです。

元記事はタイトルだとなんのことかわかりにくいのですが、それでもブックマークが900以上ついているのがすごい。

<img src=“https://capture.heartrails.com/150x130/shadow?http://d.hatena.ne.jp/r_kurain/20130219/1361270262" alt=“Mac を使っているなら必ず使うべき2つの機能 “Automator” と “サービス” - kurainの壺” style=“border:none;float:left;margin:0 .5em .5em 0;” />Mac を使っているなら必ず使うべき2つの機能 “Automator” と “サービス” - kurainの壺<img src=“https://b.hatena.ne.jp/entry/image/http://d.hatena.ne.jp/r_kurain/20130219/1361270262" alt=“はてなブックマーク - Mac を使っているなら必ず使うべき2つの機能 “Automator” と “サービス” - kurainの壺” title=“はてなブックマーク - Mac を使っているなら必ず使うべき2つの機能 “Automator” と “サービス” - kurainの壺” style=“border:none” />

何やってるかっていうと

1.Rubyのコードを書いて選択 1.Automatorで作ったサービスを起動する 1.サービスではrubyにテキストを渡す 1.さっき選択していたテキストがRubyのコードとして実行される 1.結果で置き換える

便利っぽい使いどころ

連番を振る

さっきのキャプチャでもあるようにちょっとした連番を振るのに便利でした。こんなやつ。

 1.
 2.
 3.
...
10.

これでいけます。

(1..10).each {|i| printf "%2d.\n", i}

計算する

普通の四則演算とかも便利かも。

p 1+2-3*4+5-6*7
# -46

こんな感じで改行ありの数値列の合計を求めたいときとか。(ちなみにこのランダム数値列は5.times { printf "%d\n", rand(1000) }で出したものです)

50
186
860
600
787

データを少しいじって配列化したあと合計をとればいけます。

p [
50,
186,
860,
600,
787
].inject(:+)
# 2483

置換する

これはエディターでやればいいんだった…

他にも便利なケースがあったら知りたい。