2006-10-07
■ [ruby] Ruby勉強会@関西-12
行ってきた。
- 「すごいリファレンスマニュアル(仮題)」by 青木峰郎さん
- なんで「改善」でなく「全面刷新」なのか?というと、「デカいことやった方が面白いから」だそうな。アツイ。
- 「about nadoka」by 西山和広さん
- nadokaのbotってこんな簡単に作れるのか。NadokaWiki
- 「小波ゼミ卒研ネタから」by ゼミ生のみなさん
- 難しかったです(><)しかし他人の卒論なんて分からないもんかも。
- Ruby 初級者向けレッスン第9回「Rubyで学ぼうテスト駆動開発」
- 隣の方とペアプログラミングした。こんなに真面目にテスト書いたのは初めてかも知れんw
■ [vim] RRSV
RRSEのVim版が実装できそう。
obj.kind_of?(Array)
というコードの'd'あたりにカーソルを合わせると、メソッド名が"kind_of?"でレシーバが"obj"であることを表示する、というところ まではできた。
function s:FindBeginning(src, start)
let p = a:start
while strpart(a:src, p, 1) =~ "\\w"
let p = p - 1
endwhile
return p
endfunction
function s:GetReceiver(src, beg)
let p = a:beg - 1
while strpart(a:src, p, 1) =~ "[A-Za-z0-9_@:]"
let p = p - 1
endwhile
return strpart(a:src, p+1, (a:beg-p-1))
endfunction
function s:GetMethodName(src, start)
let beg = s:FindBeginning(a:src, a:start)
let receiver = ""
if strpart(a:src, beg, 1) == "."
let receiver = s:GetReceiver(a:src, beg)
endif
let method = matchstr(a:src, "\\w*\[!?]\\?", beg+1)
return receiver . "の" . method
endfunction
function RRSV()
let s = getline(line("."))
echo "`" . s:GetMethodName(s,col(".")-1) . "'"
endfunction
set updatetime=600
autocmd CursorHold *.vim call RRSV()
メソッド情報のデータベースはRRSEのをそのまま使わせてもらう予定。
[ツッコミを入れる]