def [](index_or_column)
      case index_or_column
      when Integer
        super
      when String, Symbol
        map { |h| h[index_or_column.to_s] }
      else
        fail ArgumentError,
             'Expected integer or string/symbol index' \
             ", got #{index_or_column.class}"
      end
    end
def [](index_or_column)
      case index_or_column
      when Integer
        super
      when String, Symbol
        map { |h| h[index_or_column.to_s] }
      else
        fail ArgumentError,
             'Expected integer or string/symbol index' \
             ", got #{index_or_column.class}"
      end
    end
Allows access to one column or row.

 @overload [](index)
   Returns one row from a DataTable.

   @param index [Integer] Row number
   @return [Hash] Row as a hash

 @overload [](column_name)
   Returns one column from a DataTable.

   @param column_name [String] Name of column
   @return [Array] Column as an array of all values in it