xmpfilter凄い!
xmpfilterの紹介御礼 - http://rubikitch.com/に移転しましたでxmpfilterの紹介御礼とあったので、
そもそもxmpfilterって何さ?って思って
Vim+xmpfilterでirbいらずのRuby試行錯誤開発 - ナレッジエースで解説されている通りインストール
sudo gem install rcodetools
なんかインストのメッセージに
gem install fastriもした方が良いよって出たので
sudo gem install fastri
も実行。
そしてREADME.vimに書いてあった内容をvimrcに追記。
下の様な感じ。
let g:RCT_toggle_binding="<C-X><C-t>" " use ^X^T to go test <=> implementation let g:rct_completion_use_fri = 1 " 0 by default (disabled) let g:rct_completion_info_max_len = 20 " " plain annotations map <silent> <F10> !xmpfilter -a<cr> nmap <silent> <F10> V<F10> imap <silent> <F10> <ESC><F10>a " Test::Unit assertions; use -s to generate RSpec expectations instead map <silent> <S-F10> !xmpfilter -u<cr> nmap <silent> <S-F10> V<S-F10> imap <silent> <S-F10> <ESC><S-F10>a " Annotate the full buffer " I actually prefer ggVG to %; it's a sort of poor man's visual bell nmap <silent> <F11> mzggVG!xmpfilter -a<cr>'z imap <silent> <F11> <ESC><F11> " assertions nmap <silent> <S-F11> mzggVG!xmpfilter -u<cr>'z imap <silent> <S-F11> <ESC><S-F11>a " Add # => markers vmap <silent> <F12> !xmpfilter -m<cr> nmap <silent> <F12> V<F12> imap <silent> <F12> <ESC><F12>a " Remove # => markers vmap <silent> <S-F12> ms:call RemoveRubyEval()<CR> nmap <silent> <S-F12> V<S-F12> imap <silent> <S-F12> <ESC><S-F12>a function! RemoveRubyEval() range let begv = a:firstline let endv = a:lastline normal Hmt set lz execute ":" . begv . "," . endv . 's/\s*# \(=>\|!!\).*$//e' normal 'tzt`s set nolz redraw endfunction
F-12で#=>をつけてくれてF10で今の行でxmpfilter実行、F11で全体を実行。
便利ですねー。
そして自動のテスト作成ツールの方もREADME.jaに書いてあった。
== Test::Unit assert 文生成
すでにできあがっているプログラムのテストスクリプトを書くのは面倒ですね。
def test_insertion
@o.insert "bar"
@o.insert "baz"
@o.size # =>
@o.last # =>
@o.first # =>
@o.complex_computation # =>
@o.last(2) # =>
endxmpfilter(-u オプション)が手間を軽減してくれます。
def test_insertion
@o.insert "bar"
@o.insert "baz"
assert_equal(2, @o.size)
assert_equal("baz", @o.last)
assert_equal("bar", @o.first)
assert_in_delta(3.14159265358979, @o.complex_computation, 0.0001)
assert_equal(["baz", "bar"], @o.last(2))
end
何この便利ツール。
素敵すぎるですよ。