埋め込み Rakefile
rake が、あるファイルの、うめこまれた Rakefile を解釈する、みたいな機能をもってると便利だよなぁ
rake -f foo.user.js publish
とかできるようになるとうれしい。
と、まで書いたところで、Rakefile ってただの ruby スクリプトだから工夫したらできるよなと思ってやってみた。
ようは user.js でもあり ruby でもあるコードをかけばいい
// ; <<EOF # Embed Rakefile
// ==UserScript==
// @name Vox Editing with WYSIWYG or HTML alternately
// @namespace http://lowreal.net/
// @include http://www.vox.com/compose*
// ==/UserScript==
ここに JS コード
/*
EOF
# ↑ ここまでヒアドキュメント
# ここに Ruby コード。
# ただし */ は書けないので正規表現リテラルかくときは注意しないといけない
desc "upload to userscripts.org"
task :release do
foo...bar....
end
# ↓ JS のコメントアウトをとじる
# */Ruby では // はコメントではなく正規表現リテラル。ヒアドキュメントで JS コードをスキップさせてる。
もちろん、このままだと DRY じゃなくてダサいので、rubygems とかに userscripts.org を操作するライブラリをあげて (rubyforge みたいな)、それを使うようにたらよさそう。(require "userjs/raketasks" みたいな)
でもこれ壮絶にキモいからやめたほうがいい…… (正気にもどった)
Rakefile にする必要も別にない。なにがやりたかったんだろう……