class ArrayTransform::Operations::CopyColumn
Attributes
column_header[R]
data[R]
new_column_header[R]
Public Class Methods
new( column_header: nil, column_index: nil, data:, new_column_header: nil )
click to toggle source
# File lib/array_transform/operations/copy_column.rb, line 6 def initialize( column_header: nil, column_index: nil, data:, new_column_header: nil ) @column_header = column_header @column_index = column_index @data = data @new_column_header = new_column_header end
Public Instance Methods
call()
click to toggle source
# File lib/array_transform/operations/copy_column.rb, line 20 def call validate! copy_column end
Private Instance Methods
column_header_index()
click to toggle source
# File lib/array_transform/operations/copy_column.rb, line 33 def column_header_index data[0] && data[0].index(column_header) end
column_index()
click to toggle source
# File lib/array_transform/operations/copy_column.rb, line 29 def column_index @column_index ||= column_header_index end
copy_column()
click to toggle source
# File lib/array_transform/operations/copy_column.rb, line 37 def copy_column column_index && data.each do |row| row << row[column_index] end new_column_header && data[0][-1] = new_column_header end
validate!()
click to toggle source
# File lib/array_transform/operations/copy_column.rb, line 44 def validate! if @column_index && @column_header raise(ArgumentError, "can only specify one of :column_index or :column_header") end end