けいじゅ@いしつかです.
trunkにリリースしました.
irb --inspect pp
で pp を使うようになります. あと, おまけで, yaml と marshal もつけて
あります(^^;;;
使い方.
* コマンドライン
% irb --inspect [raw|p|pp|yaml|marshal|...]
または, ブロック指定で
% irb -r yaml --inspect "{|v| YAML.dump(v)}"
* 実行中での変更
irb(main):001:0> conf.inspect_mode = :yaml
* .irbrc でデフォルトの振る舞いを変える
IRB.conf[:INSPECT_MODE] = [:raw|:p|:pp|:yaml|:marshal|...]
* ユーザー定義モード
IRB::INSPECTORS.def_inspector(mode_names, init_proc, &inspect_block)
例)
.irbrcで
IRB::INSPECTORS.def_inspector([:test]){|v| v.to_s*2}
とし,
% irb --inspect test
で実行する.
こんな感じになりました.
In [ruby-dev:38707] the message: "[ruby-dev:38707] Re: [feature:trunk] let irb use pretty_inspect if possible", on Jun/24 01:08(JST)
Yusuke ENDOH writes:
>遠藤です。
>
>2009/06/24 0:25 に 石塚圭樹<
keiju@...> さんは書きました:
>> 実はすでにこちらでも作っていて, --inspect pp 以外にもブロックが指定で
>> きて:
>>
>> irb -r yaml --inspect "{|v| YAML.dump(v)}"
>>
>> なんて指定もできるようにしました.
>
>おおすばらしい。
>
>
>> pp(pretty_print)はともかく, オブジェクトに対する直接のメソッドは将来的
>> にもあまり出てきそうもない気がします.
>
>確かにそうですね。
>
>
>> あと, コマンド引数に関してですが, ppを非常に良く使うんだったら, .irbrc
>> に
>>
>> IRB.conf[:INSPECT_MODE] = :pp
>>
>> としていただければコマンド引数で渡す必要はなくなりますので, 短いのにあ
>> まりこだわらなくても良いのではないかと思いますが?
>
>個人的には設定は極力しない派なので、短い方が嬉しいなーとは思います。が、
>irb がカスタマイズを推奨している雰囲気は感じ取っていますのでそれでいいと
>思います。
>
>「設定はしたくないけど pp は使いたい、余計な表示はしてほしくない」という
>私のようにわがままな人は
>
> irb(main):001:0> pp obj; nil
>
>としてくれ、ということで。今でも ary.each {|x| ...; p x } とかするときは
>最後に ; nil などをつけることが多いですしね。
>
>--
>Yusuke ENDOH <
mame@...>
>
>
__
---------------------------------------------------->> 石塚 圭樹 <<---
---------------------------------->> e-mail:
keiju@... <<---