ruby-trunk-changes r35489 - r35491

今日はキーワード引数の splat 渡しという新しい文法が追加されています。

nobu:r35489 2012-04-29 06:12:05 +0900

キーワード引数に Hash を展開して渡す新しい文法を導入しています。メソッド定義側で引数を受けとるほうは既に **keywords で残りのキーワード引数をすべて Hash として受け取る記法がありますが、呼び出すほうで Hash からキーワード引数として渡すことができるようになりました。 [ruby-core:44591] [Feature #6353]

def m(key1: 1, key2: 2)
  p [key1, key2]
end
a = { :key2 => 42 }
m(key1: 41, **a)  # => [41, 42]

こんな感じで使えます。なおこの時 "**" つきで渡されるオブジェクトは to_hash メソッドを呼んで Hash に暗黙の変換をしようとしますので、to_hash が定義されていないオブジェクトを渡すと TypeError が発生します。

svn:r35490 2012-04-29 06:12:10 +0900

version.h の日付更新。

tenderlove:r35491 2012-04-29 07:24:01 +0900

Psych のテストに "null" をパースした時のテストが追加されています。