無名クラス

ある機能に関してブランチを分けて実装している際、

別ブランチで作成しているクラスのインスタンスが今のブランチで実装しているメソッドを使えるか試したいことがありました。

別ブランチをpullして持ってこようかと思いましたが、
コンソール上で無名クラスを作って必要最低限のメソッドを実装してあげれば簡単に試せることを知りました!!

 

具体例

無名クラスを作り、そのインスタンスを生成する

[1] pry(main)> zip = Class.new do
[1] pry(main)* def url
[1] pry(main)* 'tmp/path/to/hoge.zip'
[1] pry(main)* end
[1] pry(main)* def filename
[1] pry(main)* 'hoge.zip'
[1] pry(main)* end
[1] pry(main)* end
=> #<Class:0x00007f948c61bae8>
[2] pry(main)>z = zip.new
=> #<#<Class:0x00007f948c61bae8>:0x00007f948c5a3390>

 

こうすることで、別ブランチで実装しているクラスのインスタンスを呼びたい部分で、代わりに無名クラスのインスタンスを渡してあげればささっと処理がうまく動くか確かめることができました!

 

このクラスが何なのか気になり確かめてみたらClassクラスでした。

[4] pry(main)> zip.class
=> Class

 

 

 

参考リンク

docs.ruby-lang.org

docs.ruby-lang.org

secret-garden.hatenablog.com