こういう記事上がっていて実際不便だったので、書きなおした。
Ddp.p でメソッドの定義場所パッとわかるの本当に便利だな
— Satoshi SUZUKI (@studio3104) 2014, 12月 16
スタジオさんも使ってくれてるみたいでありがたい。
こういうスクリプト書いたら
require "ddp" class TestModule def piyo # ... end end dp %w[100 101 102] dp test: 1000 dp TestModule.method(:instance_method) dp TestModule.instance_method(:piyo)
こういう感じで出るよ
$ ruby -Ilib test.rb Array < Object < BasicObject { included_modules: Enumerable Kernel inspect: ["100", "101", "102"] source_location: There is no source_location. } Hash < Object < BasicObject { included_modules: Enumerable Kernel inspect: {:test=>1000} source_location: There is no source_location. } Method < Object < BasicObject { included_modules: Kernel inspect: #<Method: Class(Module)#instance_method> source_location: This is C method. } UnboundMethod < Object < BasicObject { included_modules: Kernel inspect: #<UnboundMethod: TestModule#piyo> source_location: ["test.rb", 4] }
機能は多分ほぼ変わってないけど、コードはめっちゃ変わった。
機能で変わったの、複数のオブジェクトに対応くらいではないか。
inspectは、PPを使ってやろうとしたけど、インデントがめんどくさかったのでやめた。プルリクお待ちしております。
https://github.com/hisaichi5518/ruby-ddp
https://rubygems.org/gems/ddp