Create or append to array in Ruby
RubyArraysRuby Problem Overview
foo ||= []
foo << :element
Feels a little clunky. Is there a more idiomatic way?
Ruby Solutions
Solution 1 - Ruby
(foo ||= []) << :element
But meh. Is it really so onerous to keep it readable?
Solution 2 - Ruby
You can always use the push method on any array too. I like it better.
(a ||= []).push(:element)
Solution 3 - Ruby
You also could benefit from the Kernel#Array, like:
# foo = nil
foo = Array(foo).push(:element)
# => [:element]
which has the benefit of flattening a potential Array, like:
# foo = [1]
foo = Array(foo).push(:element)
# => [1, :element]
Solution 4 - Ruby
Also a little more verbose for readability and without a condition:
foo = Array(foo) << :element