渡された引数(単一のオブジェクトまたはコレクション)を配列に変換する必要があります。引数が何であるかわかりません。すでに配列である場合はそのままにし、そうでない場合は1要素の配列を作成します。両方を許可しmethod(:objs => obj)
、method(:objs => [obj1, obj2])
これが最善の方法のようです (Array#to_a は self を返します):
arg = arg.to_a
しかし、Rubyのドキュメントにはこう書いてあるObject#to_a
すぐに時代遅れになる便利な代替品はありますか?
これより簡潔なものはありますか?
arg = arg.respond_to?(:to_a) ? arg.to_a : [arg]
ベストアンサー1
方法を使用するカーネル#配列:
Array([1,2,3]) #=> [1, 2, 3]
Array(123) #=> [123]
はい、最初はクラスのように見えるかもしれませんが、これは実際には大文字で始まるメソッドです。