…あたりまえと言えば、あたりまえなのですが…
以前記事を書いたshow-sourceはメソッド以外にも、クラスを見にくこともできます。
pry上で次のようなクラスを定義したとします。
class Hoge def initialize(val) val.to_s end def method_missing(name, *args, &blk) 42 end end
ここで、show-sourceでクラス名を指定してあげると…
show-source Hoge From: (pry) @ line 1: Class name: Hoge Number of lines: 8 class Hoge def initialize(val) val.to_s end def method_missing(name, *args, &blk) 42 end end
といった感じで実装を見ることができます。
モンキーパッチの大元を見に行くことも可能です。
わざわざモンキーパッチである旨まで書いてくれます。親切ですね
show-source String From: /Users/shuzo_kino/.rbenv/versions/2.1.5/lib/ruby/gems/2.1.0/gems/awesome_print-1.6.1/lib/awesome_print/core_ext/string .rb @ line 6: Class name: String Number of monkeypatches: 3. Use the `-a` option to display all available monkeypatches Number of lines: 26 class String # # ANSI color codes: # \e => escape # 30 => color base # 1 => bright # 0 => normal # # For HTML coloring we use <kbd> tag instead of <span> to require monospace # font. Note that beloved <tt> has been removed from HTML5. # %w(gray red green yellow blue purple cyan white).zip( %w(black darkred darkgreen brown navy darkmagenta darkcyan slategray)).each_with_index do |(color, shade), i| define_method color do |*html| html[0] ? %Q|<kbd style="color:#{color}">#{self}</kbd>| : "\e[1;#{30+i}m#{self}\e[0m" end #:以下略
また、指示通り
show-source String -a
とやってあげると、他の適用もとを含んだ一覧(今回は合計三つ)を表示してくれます。