1. 自動注釈プログラム xmpfilter とは?
Ruby で、スクリプトに注釈として、実行結果を載せたい場合、xmpfilter を使う。
xmpfilter を知ったきっかけは、Rubyの初心者にたいして「これは読むべき」だと思うコードを教えてください。.. - 人力検索はてな のコメントを読んだこと。
僕の例だとxmpfilterという超強力な自動注釈プログラムに惹かれ、内部を解析しました。
2. xmpfilter のインストールと実行
eigenclass - xmpfilter によると、
xmpfilter は rcodetools に含まれている。As of 0.4.0, xmpfilter has been included in rcodetools.
eigenclass - rcodetools に従い、コマンドラインから 、rcodetools をインストール。
gem install rcodetools
これにより、コマンドラインから、xmpfilter を実行できるようになる。
xmpfilter ファイル名
3. Code annotation
ブログにソースコードを載せるとき、実行結果や、変数の動きも含めたい場合がある。
例えば、次のようなコードを test.rb というファイル名で保存したとする。
出力させたい変数の右に # => と書く。
10.times do |i| i # => end a = [1,2,3,4,5] a.map{|i| i*2} # => puts "ほげ" puts a
コマンドラインから、以下を実行すると、
xmpfilter test.rb
次の出力が得られる。
10.times do |i| i # => 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 end a = [1,2,3,4,5] a.map{|i| i*2} # => [2, 4, 6, 8, 10] puts "ほげ" puts a # >> ほげ # >> 1 # >> 2 # >> 3 # >> 4 # >> 5
4. Meadow (Emacs) での利用
gem でインストールすると、Ruby をインストールしたディレクトリの中に、
- C:\ruby\lib\ruby\gems\1.8\gems\rcodetools-0.7.0.0\rcodetools.el
が存在する。これを C:\meadow\site-lisp に入れ、.emacs に
(require 'rcodetools)
を記述した。
これにより、Ruby のスクリプト上で、
M-x xmp
とすると、xmpfilter を適用した結果が表示される。 また、
M-x comment-dwim (M-;)
でコメントを入力することができて便利。
追記 (2009.12.27) : Dropbox に Emacs のライブラリを置いたのに伴い、rcodetools.el も Dropbox に置くことにした。
0コメント:
コメントを投稿