Method: CSV::Table#by_col_or_row

Defined in:
lib/csv/table.rb

#by_col_or_rowObject

:call-seq:

table.by_col_or_row -> table_dup

Returns a duplicate of self, in mixed mode (see Mixed Mode):

source = "Name,Value\nfoo,0\nbar,1\nbaz,2\n"
table = CSV.parse(source, headers: true).by_col!
table.mode # => :col
dup_table = table.by_col_or_row
dup_table.mode # => :col_or_row
dup_table.equal?(table) # => false # It's a dup

This may be used to chain method calls without changing the mode (but also will affect performance and memory usage):

dup_table.by_col_or_row['Name']

Also note that changes to the duplicate table will not affect the original.



280
281
282
# File 'lib/csv/table.rb', line 280

def by_col_or_row
  self.class.new(@table.dup).by_col_or_row!
end