ごっつ基本的なMozRepl
id:omochist:20061020:1161334958のブクマコメントより
2006年10月21日 lurker ruby mozreplモジュールが欲しい
うん,俺も欲しい.
モジュール化を考える前に
まずは使い方を知らないとどうしようもないわけで.簡単な使い方は,使って覚えるのが一番.
cd
MozReplで言うところのcd,lsの方法.
まずcdから.
repl> repl.enter(screen) [object Screen]
enterで,入る感じ.上の階層に戻るときは,
repl> repl.back()
で戻れる.
ls
次にls.
とりあえずオブジェクトの中身をゴソッと表示するときはlook()という関数を使う.
repl> repl.look() this.item=[object] this._content=[probably array, length 2] this.utf_str=+; this.getInterface=[function] (色々略)
こんな感じに,とりあえずごそっと出てくる.=[object]ってついているヤツは,そのまんまオブジェクトってことで,その中にenterで入れる.=[function]ってついてるのもそのまんまで,関数.
カッコを付けずにコマンドを叩くと関数の実装が表示されて,カッコを付けて叩くとその関数が実行される.その他は変数.
親切なのか不親切なのかわからないls
ゴソッと全部表示するんじゃなくて,特定のものだけ表示するときはsearch()を使う.
repl> repl.search(/app/i) gen_loggify_wrapper GM_deepWrappersEnabled appendFiltersForContentType appCore goQuitApplication canQuitApplication XPCNativeWrapper
このように,正規表現でマッチした関数なり何なりが表示される.ただ,それがオブジェクトなのか関数なのか変数なのかってのは,わからない.う〜ん不親切.
だから,そういうときは,とりあえず入ってみるのも一興.
repl> repl.enter(XPCNativeWrapper) function XPCNativeWrapper() { [native code] }
「なぁんだ関数だったのか」.しかし落とし穴もあって,
repl> repl.enter(title) ?a repl> repl.back() @data:application/x-javascript,repl.back()%0D:1 !!! ReferenceError: repl is not defined
このように誤って(この場合わざとって感が否めないけれど)変数なんかに入っちゃうと,もう出る術が見つからない.
pwd
whereAmIという関数があって,そのまんまだけど自分が今何処にいるのかを尋ねる.んだけど,正直不親切.
repl> repl.enter(BookmarksToolbar) [object Object] repl> repl.whereAmI() [object Object]
どうしろと.
変数とか
一度変数とかを定義してしまうと,Firefoxを再起動するまでそいつは死にません.MozReplだけ切って上げ直しても,死にません.しぶてェ野郎だぜ.