module Recursive
  class ::Array
    def flatten_recursively
      self.each_with_object([]) do |item, flattened|
        item.is_a?(Array) ? flattened += item.flatten_recursively : flattened.push item
      end
    end
  end
end