プログラミングRuby第2版言語編第4章

サブタイトルがコンテナ・ブロック・イテレータの通りこの3点に関することが書かれていた。
コンテナ(コレクション)は配列とハッシュがあるよという話。ハッシュはキーでソートが出来ないとか。
ブロックとイテレータというのはワンセットで考えても良いほど(たぶん)なんだけど別の例が「トランザクションブロック」の項目に挙げられていて、どんなのかというと

ファイルをオープンし、ファイルの中身を処理し、処理を終えたら確実にファイルをクローズするようにしたいというケース

らしい。あるメソッドにブロック(中身の処理)を渡し、ファイルをオープン、ブロックにファイルを渡し処理、ファイルを閉じる、てな感じで確実にオープンのあとクローズできる。
ブロックは引数として渡すことも出来る。メソッドの最後の引数に &hoge みたいに &(アンパサンドというらしい)を付けているとコードブロックを Procクラスのオブジェクトとして代入する。メソッド内ではアンパサンドを付けずに普通に hoge みたいに使う。呼び出すときは hoge.call。そのブロックが定義されたときに参照している変数などのスコープ情報がそのまま使える。クロージャ的な使い方が出来るらしい。
正直ありがたみがよく分かってない部分もあるけど、少なくともブロックに慣れないとRubyのメソッドを読むときなどに苦労しそうなのは確か。