Кажется, только Object.to_a
устарела, удаляя значение по умолчанию to_a
и заставляя каждый класс определять свой собственный (например, Hash.to_a
).
self.to_a #=> -:1: warning: default `to_a' will be obsolete
"hello".to_a #=> ["hello"]
Time.new.to_a #=> [39, 54, 8, 9, 4, 2003, 3, 99, true, "CDT"]
h = { "c" => 300, "a" => 100, "d" => 400, "c" => 300 }
h.to_a #=> [["a", 100], ["c", 300], ["d", 400]]
Если ваш аргумент является экземпляром Object
, попробуйте:
Hash.new(obj).to_a
@ Даниэль [комментарий к Оливье]: Дело в том, что я не знаю, что это за аргумент. Если это уже массив, я хочу оставить его, в противном случае создать массив из одного элемента.
Если это так, попробуйте:
obj = [obj] if !obj.is_a?(Array)