るびまRubyist Hotlinks - インタビュイーの好きなメソッド・嫌いなメソッドまとめ


『Rubyist Magazine』、略して『るびま』には、著名なRubyistにインタビューを行う「Rubyist Hotlinks」という企画があります。インタビューでは「好きなメソッド、嫌いなメソッドはなんですか？」質問が毎回されます。

今回は皆さんの答えをまとめてみました。メソッドには[Ruby 2.2.0リファレンスマニュアル](http://docs.ruby-lang.org/ja/2.2.0/doc/)へのリンクをつけてあります。

※Ruby 2.2.0に合わせてレシーバを変えています。例：`Object#instance_eval`ではなく`BasicObject#instance_eval`

| No. | インタビューイ | 好きなメソッド | 嫌いなメソッド |
|---|---|---|---|
| [第1回] | まつもとゆきひろさん | [Kernel.#eval] | [Kernel.#eval] |
| [第2回] | 前田修吾さん | [Enumerable#collect] | [String#gsub!] |
| [第3回] | かずひこさん | [Object#===] | [Kernel.#eval] |
| [第4回] | ただただしさん | みんなだいたい好き | [String#scan] |
| [第5回] | 増井俊之さん | [Array#each]、[Enumerable#collect]、yield | 特になし |
| [第6回]、[第7回] | 江渡浩一郎さん | [BasicObject#method_missing]、Enumerable | 特になし |
| [第8回] | 田中哲さん | [Regexp#to_s] | ブロック付きメソッドの中でのretry[^1] |
| [第9回] | 中田伸悦さん | yycompile[^2] | 特になし |
| [第10回] | わたなべひろふみさん | [Kernel.#p] | [Object#initialize]、[Mutex#synchronize] |
| [第11回]、[第12回] | 後藤謙太郎さん | [Kernel.#p] | [Object#inspect]　[^3] |
| [第11回]、[第12回] | 後藤裕蔵さん | [Enumerable#inject] | 特になし |
| [第13回] | 関将俊さん | [Enumerable#inject] | 特になし |
| [第14回] | 角谷信太郎さん | [Object#extend]、[Module#const_get] | Test::Unit::Assertions#assert_equal[^4] |
| [第15回] | artonさん | [Object#send] | 自分の理解できないもの |
| [第16回] | essaさん | [Enumerable#collect] | 特になし |
| [第17回] | 青木峰郎さん | [String#slice(regexp, n)][String#slice][^5] | [Enumerable#find_all] |
| [第18回] | 立石孝彰さん | [Enumerable#inject] | [Kernel.#eval] |
| [第19回] | 伊尾木将之さん | [Array#each]、[String#next] | [String#+] |
| [第20回] | 石塚圭樹さん | [Module#module_eval] | Array#nitems[^6] |
| [第21回] | 原信一郎さん | [Enumerable#map] | [Enumerable#inject] |
| [第22回] | nariさん | [GC#enable] | [GC#disable] |
| [第23回] | yharaさん | Enumerable | 特になし |
| [第24回] | okkezさん | [Enumerable#map] | [Kernel.#set_trace_func] |
| [第25回] | 加藤勇也さん | [BasicObject#instance_eval] | [BasicObject#instance_eval] |
| [第26回] | cuzicさん | [Module#class_eval] | [Kernel.#p] |
| [第27回] | 小波秀雄さん | [Enumerable#map] | [Kernel.#printf] |
| [第28回] | Yuguiさん | [BasicObject#instance_eval] | Math.sin![^7] |
| [第29回] | 松田明さん | 言及なし | 言及なし |
| [第30回] | 遠藤侑介さん | [Array#pack]、[String#unpack] | [Module#define_method] |
| [第31回] | 樽家昌也さん | [Thread.new] | ObjectSpace |
| [第32回] | 卜部昌平さん | [Enumerable#lazy] | 特になし |
| [第33回]、[第34回] | 大場光一郎さん | do | 特になし |
| [第33回]、[第34回] | 大場寧子さん | [Enumerable#map] | [Object#nil?] |


[Array#each]:http://docs.ruby-lang.org/ja/2.2.0/method/Array/i/each.html
[Array#pack]:http://docs.ruby-lang.org/ja/2.2.0/method/Array/i/pack.html
[BasicObject#instance_eval]:http://docs.ruby-lang.org/ja/2.2.0/method/BasicObject/i/instance_eval.html
[BasicObject#method_missing]:http://docs.ruby-lang.org/ja/2.2.0/method/BasicObject/i/method_missing.html
[Enumerable#collect]:http://docs.ruby-lang.org/ja/2.2.0/method/Enumerable/i/collect.html
[Enumerable#find_all]:http://docs.ruby-lang.org/ja/2.2.0/method/Enumerable/i/find_all.html
[Enumerable#inject]:http://docs.ruby-lang.org/ja/2.2.0/method/Enumerable/i/inject.html
[Enumerable#lazy]:http://docs.ruby-lang.org/ja/2.2.0/method/Enumerable/i/lazy.html
[Enumerable#map]:http://docs.ruby-lang.org/ja/2.2.0/method/Enumerable/i/collect.html
[GC#disable]:http://docs.ruby-lang.org/ja/2.2.0/method/GC/s/disable.html
[GC#enable]:http://docs.ruby-lang.org/ja/2.2.0/method/GC/s/enable.html
[Kernel.#eval]:http://docs.ruby-lang.org/ja/2.2.0/method/Kernel/m/eval.html
[Kernel.#p]:http://docs.ruby-lang.org/ja/2.2.0/method/Kernel/m/p.html
[Kernel.#printf]:http://docs.ruby-lang.org/ja/2.2.0/method/Kernel/m/printf.html
[Kernel.#set_trace_func]:http://doc.okkez.net/2.2.0/view/method/Kernel/m/set_trace_func
[Module#class_eval]:http://docs.ruby-lang.org/ja/2.2.0/method/Module/i/class_eval.html
[Module#const_get]:http://docs.ruby-lang.org/ja/2.2.0/method/Module/i/const_get.html
[Module#define_method]:http://docs.ruby-lang.org/ja/2.2.0/method/Module/i/define_method.html
[Module#module_eval]:http://docs.ruby-lang.org/ja/2.2.0/method/Module/i/class_eval.html
[Mutex#synchronize]:http://docs.ruby-lang.org/ja/2.2.0/method/Mutex/i/synchronize.html
[Object#===]:http://docs.ruby-lang.org/ja/2.2.0/method/Object/i/=3d=3d=3d.html
[Object#extend]:http://docs.ruby-lang.org/ja/2.2.0/method/Object/i/extend.html
[Object#initialize]:http://docs.ruby-lang.org/ja/2.2.0/method/Object/i/initialize.html
[Object#inspect]:http://docs.ruby-lang.org/ja/2.2.0/method/Object/i/inspect.html
[Object#nil?]:http://docs.ruby-lang.org/ja/2.2.0/method/Object/i/nil=3f.html
[Object#send]:http://docs.ruby-lang.org/ja/2.2.0/method/Object/i/send.html
[Regexp#to_s]:http://docs.ruby-lang.org/ja/2.2.0/method/Regexp/i/to_s.html
[String#+]:http://docs.ruby-lang.org/ja/2.2.0/method/String/i/=2b.html
[String#gsub!]:http://docs.ruby-lang.org/ja/2.2.0/method/String/i/gsub=21.html
[String#next]:http://docs.ruby-lang.org/ja/2.2.0/method/String/i/next.html
[String#scan]:http://docs.ruby-lang.org/ja/2.2.0/method/String/i/scan.html
[String#slice]:http://docs.ruby-lang.org/ja/2.2.0/method/String/i/=5b=5d.html
[String#unpack]:http://docs.ruby-lang.org/ja/2.2.0/method/String/i/unpack.html
[Thread.new]:http://docs.ruby-lang.org/ja/2.2.0/method/Thread/s/new.html

[第1回]:http://magazine.rubyist.net/?0001-Hotlinks
[第2回]:http://magazine.rubyist.net/?0002-Hotlinks
[第3回]:http://magazine.rubyist.net/?0003-Hotlinks
[第4回]:http://magazine.rubyist.net/?0004-Hotlinks
[第5回]:http://magazine.rubyist.net/?0005-Hotlinks
[第6回]:http://magazine.rubyist.net/?0006-Hotlinks
[第7回]:http://magazine.rubyist.net/?0007-Hotlinks
[第8回]:http://magazine.rubyist.net/?0008-Hotlinks
[第9回]:http://magazine.rubyist.net/?0009-Hotlinks
[第10回]:http://magazine.rubyist.net/?0010-Hotlinks
[第11回]:http://magazine.rubyist.net/?0011-Hotlinks
[第12回]:http://magazine.rubyist.net/?0012-Hotlinks
[第13回]:http://magazine.rubyist.net/?0013-Hotlinks
[第14回]:http://magazine.rubyist.net/?0014-Hotlinks
[第15回]:http://magazine.rubyist.net/?0015-Hotlinks
[第16回]:http://magazine.rubyist.net/?0016-Hotlinks
[第17回]:http://magazine.rubyist.net/?0017-Hotlinks
[第18回]:http://magazine.rubyist.net/?0018-Hotlinks
[第19回]:http://magazine.rubyist.net/?0020-Hotlinks
[第20回]:http://magazine.rubyist.net/?0021-Hotlinks
[第21回]:http://magazine.rubyist.net/?0023-Hotlinks
[第22回]:http://magazine.rubyist.net/?0028-Hotlinks
[第23回]:http://magazine.rubyist.net/?0029-Hotlinks
[第24回]:http://magazine.rubyist.net/?0030-Hotlinks
[第25回]:http://magazine.rubyist.net/?0031-Hotlinks
[第26回]:http://magazine.rubyist.net/?0032-Hotlinks
[第27回]:http://magazine.rubyist.net/?0034-Hotlinks
[第28回]:http://magazine.rubyist.net/?0035-Hotlinks
[第29回]:http://magazine.rubyist.net/?0037-Hotlinks
[第30回]:http://magazine.rubyist.net/?0038-Hotlinks
[第31回]:http://magazine.rubyist.net/?0041-Hotlinks
[第32回]:http://magazine.rubyist.net/?0042-Hotlinks
[第33回]:http://magazine.rubyist.net/?0044-Hotlinks
[第34回]:http://magazine.rubyist.net/?0045-Hotlinks

[^1]: Ruby 1.9で廃止。今は`begin`と`end`の中でのみ使える。
[^2]: MRIの関数
[^3]: これをデバッグする作業が嫌い
[^4]: テスティングフレームワーク周りはゴタゴタしていたのでRuby 2.2.0のリファレンス・マニュアルにこのメソッドはない。参考: [Rubyのテスティングフレームワークの歴史（2014年版） - ククログ(2014-11-06)](http://www.clear-code.com/blog/2014/11/6.html)
[^5]: 引数も重要
[^6]: Ruby 1.9で廃止。nilではない要素の数を返す。`ary.count{|e| !e.nil? }`と同じ。
[^7]: 昔はあったらしいが見つからなかった。[CMath.#sin!](http://docs.ruby-lang.org/ja/2.2.0/method/CMath/m/sin=21.html)なら今でもある。