Ruby has the Array.flatten method which flattens any arbitrary multi-level nested array like so:

array = [2, 3, [1, 6, [6, [7, 4, 0]], 9, 1], [4, 6, 3], 1]
array.flatten
=> [2, 3, 1, 6, 6, 7, 4, 0, 9, 1, 4, 6, 3, 1]

Here’s one way of implementing flatten in Ruby.

def flatten(array)
  array.reduce([]) do |result, item| 
    if item.kind_of? Array
      result + flatten(item)
    else
      result << item
    end
  end
end

test_cases = [
  [ 1, 1, 1, 1, 1, 1, 1, 1 ],
  [[3,4,[],5],5],
  [:apple, :banana, [1,[]], 'brocolli'],
  [],
  [[1,2,[3]],4],
  [1,2,3,"banana",[1,2,3],[]]
]

test_cases.each_with_index do |test, index|
  if test.flatten == flatten(test)
    puts "Test ##{index} passed :)"
  else
    puts "Test ##{index} failed :("
  end
end