Ruby2.1のリリース

Ruby2.1は2013年12月にリリースされ、リリースから半年が経過した執筆時点(2014年7月)における最新版は2.1.2です。

Ruby2.1の紹介に先立ってまず覚えておいて欲しいのは、2.1からバージョニングの法則が変更されたことです。 Ruby2.0においては、「2.0.0-p0」「2.0.0-p451」のように、バージョン表記のあとにパッチ数が付与されていました。2.1からはこれを廃止して「2.1.0」「2.1.1」...と上がっていくようになります。

さて、今回の記事ではRuby2.1で追加された新機能や新構文を紹介していきます。具体的なラインナップは以下の通りです。

  • Array#to_h: Hash[array] の糖衣構文
  • 有理数と複素数のsuffixリテラル
  • Exception#cause: 先祖の例外を記憶する
  • Module#refine + using: 範囲を限定したクラスの拡張

なお2.0で導入され2.1で改良された「キーワード引数」については 3/3 Ruby2.0の新機能キーワード引数の紹介と、2.1での改良点 を参照してください。

Array#to_h

まずはライトなArray#to_hから紹介します。

前回の記事 pryを使ってRailsアプリケーションをデバッグする Ruby All About の復習がてら、pry REPL内からドキュメントを見てみましょう(以降のページでは省略しますが、新機能にかぎらず知らない機能の手触りを確かめる時にpryを使うと便利です)。

[[key, value], [key, value]...]という形の配列を元に{key => value, key => value...}というHashが作成されます。要素が1個でも配列は二重にする必要があるので注意してください。

実はRuby2.0以前でも以下のように書けば同じことは出来たのですが、to_hの方が意図が明確で可読性が高くなったのではないかと思います。

次のページでは有理数と複素数のsuffixリテラル、Exception#causeを扱います。