class ArrayTransform::Operations::RemoveColumn

Attributes

column_header[R]
data[R]

Public Class Methods

new( column_header: nil, column_index: nil, data: ) click to toggle source
# File lib/array_transform/operations/remove_column.rb, line 6
def initialize(
  column_header: nil,
  column_index: nil,
  data:
)
  @column_header = column_header
  @column_index = column_index
  @data = data
end

Public Instance Methods

call() click to toggle source
# File lib/array_transform/operations/remove_column.rb, line 18
def call
  validate!
  remove_column
end

Private Instance Methods

column_header_index() click to toggle source
# File lib/array_transform/operations/remove_column.rb, line 31
def column_header_index
  data[0] && data[0].index(column_header)
end
column_index() click to toggle source
# File lib/array_transform/operations/remove_column.rb, line 27
def column_index
  @column_index ||= column_header_index
end
remove_column() click to toggle source
# File lib/array_transform/operations/remove_column.rb, line 35
def remove_column
  column_index && data.each do |row|
    row.delete_at(column_index)
  end
end
validate!() click to toggle source
# File lib/array_transform/operations/remove_column.rb, line 41
def validate!
  if @column_index && @column_header
    raise(ArgumentError, "can only specify one of :column_index or :column_header")
  end
end