🖥

Ruby | pinspect メソッドの戻り値を変えると pry での表示も変わる

2023/08/26に公開

Stringクラスのinspectを上書きした例

[12] pry(main)> class String
[12] pry(main)*   def inspect
[12] pry(main)*     :overwrite
[12] pry(main)*   end
[12] pry(main)* end

どんな文字列で終わっても overwrite が表示されるようになった。

[13] pry(main)> "a"
=> overwrite
[14] pry(main)> "b"
=> overwrite
[15] pry(main)> "c"
=> overwrite

追記

これは pry が表示に p を使っているからっぽい。
( p メソッドは inspect メソッドの結果を出力するメソッド )

素のRubyで試した例。

class String
  def inspect
    :overwrite
  end
end

p "a" # overwrite
pp "a" # overwrite
puts "a" # a

環境

  • pry (0.11.3)
  • ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17]

参考

チャットメンバー募集

何か質問、悩み事、相談などあればLINEオープンチャットもご利用ください。

https://line.me/ti/g2/eEPltQ6Tzh3pYAZV8JXKZqc7PJ6L0rpm573dcQ

Twitter

https://twitter.com/YumaInaura

公開日時

2018-06-03

Discussion