RLiveSearch
http://gorou.zapto.org:3555/
プロトタイプができあがったので暫定的にgorou.zapto.orgにhttp鯖を建ててみた。Rubyのmedhodとかが検索できる。JavaScriptオンなWinIEとFirefox(Firefoxだと見栄えしょぼいけど)で確認済み。なにこれどういうもん?つーのは実際に使ってみてください、っていうのもアレなんで軽く説明。
livesearchてのはgoogle suggestみたいなxmlhttpを用いてインクリメンタルに検索を行い結果を動的に表示するような検索の事を云う、らしい。仕組みはスゲー単純でただ単にどっかのcgiなんかに検索クエリー投げてその結果をJavaScriptでどっかに表示するだけ。
つーんでruby + webrickを使って実装してみたのがRLiveSeach。apacheから呼び出すrubyは起動コストがかかりレスポンスが遅いのでwebrickでhttp鯖建てて使ってる。livesearchは検索速度が命だからね。検索部ではrefeの辞書のmethodの部分をコンバータ通してsqliteのDBに入れた物を使用。だいたい2600行。で検索キーワードを適当にlike検索して結果を返すだけ。
http://gorou.zapto.org:3555/ruby_search/?s=h%23e
こんなんね。でそれにjavascriptつかったインターフェイスくっつけて完成。超簡単。RLiveSearchの使い方はa#eとかs#sとかke#pとかin#to とかそういうのを入力フォームに入れてみれば何となく解ると思う。object名#method名みたいな感じで。refeっぽく短縮入力も可能で、array#eachだったらar#eaで望む結果が得られる。またarray#とかやることでarrayオブジェクトのmethod一覧が得られる。limit 25してるから全部は引っかからないけど。#を入れないで入力するとmethodの中から検索。
んで複数にヒットすると一覧がずらーって出ると思うんだけど、マウスクリックでその内容を表示。onfocusでも取得してるんでマウスが嫌な人はtab移動とかでも内容が出るはず。
で、軽く(つっても10時間ぐらいかかったけど)プロトタイプを作ってみて。これが結構便利で、いろんなもんに応用できそうな感じ。今のままだとインターフェイスはショボいしいまいち使い勝手良くないしcss適当だからレイアウト乱れるしで問題山積みだけどpq。