Ruby - File.read() メソッドの説明をAPIドキュメントで調べたい


Rubyの仕組みを初歩から勉強中の者です。

<http://docs.ruby-lang.org/ja/2.1.0/class/File.html>

この中からreadメソッドを調べる場合はどうしたらいいですか？

特異メソッドというのはありますが、特異じゃないメソッドはどこにありますか？




`read`は[`File`クラス](http://docs.ruby-
lang.org/ja/2.1.0/class/File.html)のものではありません。`read`は[`IO`クラス](http://docs.ruby-
lang.org/ja/2.1.0/class/IO.html)から継承して引き継がれているメソッドなので、[`File`クラス](http://docs.ruby-
lang.org/ja/2.1.0/class/File.html)ではなく[`IO`クラス](http://docs.ruby-
lang.org/ja/2.1.0/class/IO.html)のページを探してください。

**追記** : ご存知でしたらすみません。

[`IO`クラス](http://docs.ruby-
lang.org/ja/2.1.0/class/IO.html)のページを見ると、`read`の項目が二つあることに気づかれると思います。これらは名前は同じですが、別のメソッドです。

Rubyには`read`が二種類あります。[特異メソッドの`read`](http://docs.ruby-
lang.org/ja/2.1.0/method/IO/s/read.html)と[インスタンスメソッドの`read`](http://docs.ruby-
lang.org/ja/2.1.0/method/IO/i/read.html)です。二者を区別するため、前者を[`IO.read`](http://docs.ruby-
lang.org/ja/2.1.0/method/IO/s/read.html)、後者を[`IO#read`](http://docs.ruby-
lang.org/ja/2.1.0/method/IO/i/read.html)という風に書き分ける慣習があります。

[`IO.read`](http://docs.ruby-
lang.org/ja/2.1.0/method/IO/s/read.html)の方は、ファイル名を渡すとその場で内容をまるごと読み込むものです。  
`text = IO.read("hogehoge.txt")` のように使います。  
ややこしいことに、`File`は`IO`を継承しているので、`text =
File.read("hogehoge.txt")`と書いても問題なく動きます。(おそらくこれがmirukaさんのもともと調べたかったことだと思います)

[`IO#read`](http://docs.ruby-
lang.org/ja/2.1.0/method/IO/i/read.html)の方は、すでに開いたファイルの内容を読み込むものです。  
`open('hogehoge.txt') {|f| text = f.read }` のように使います。  
(詳細なオプションは割愛します)

参考: [なぜ File.read() でなくて IO.read()
なのか?](http://d.hatena.ne.jp/kwatch/20080924/1222268571)

