Я хотел бы расширить массив Ruby (который может содержать несколько подмассивов) в другой массив массивов, как в следующих примерах:
Пример 1: [:foo, :bar]
[
[:foo, :bar]
]
Пример 2: [:foo, :bar, [:ki, :ku]]
[
[:foo, :bar, :ki],
[:foo, :bar, :ku]
]
Пример 3: [:foo, :bar, :baz, [:a, :i, :u, :e, :o], :qux]
[
[:foo, :bar, :baz, :a, :qux],
[:foo, :bar, :baz, :i, :qux],
[:foo, :bar, :baz, :u, :qux],
[:foo, :bar, :baz, :e, :qux],
[:foo, :bar, :baz, :o, :qux]
]
Пример 4: [:foo, :bar, :baz, [:a, :i, :u, :e, :o], [1, 2], :qux]
[
[:foo, :bar, :baz, :a, 1, :qux],
[:foo, :bar, :baz, :i, 1, :qux],
[:foo, :bar, :baz, :u, 1, :qux],
[:foo, :bar, :baz, :e, 1, :qux],
[:foo, :bar, :baz, :o, 1, :qux],
[:foo, :bar, :baz, :a, 2, :qux],
[:foo, :bar, :baz, :i, 2, :qux],
[:foo, :bar, :baz, :u, 2, :qux],
[:foo, :bar, :baz, :e, 2, :qux],
[:foo, :bar, :baz, :o, 2, :qux]
]
Пример 5: [:foo, [[], :c], :bar]
[
[:foo, [], :bar],
[:foo, :c, :bar]
]
Пример 6: [:foo, [[:a, :b], :c], :bar]
[
[:foo, [:a, :b], :bar],
[:foo, :c, :bar]
]
Примечание. Расширяются только вложенные массивы. Вот почему в примерах 5 и 6 вложенные массивы не раскрываются.
Большое спасибо за любые предложения или кусок кода.