123456789_123456789_123456789_123456789_123456789_

Class: ActiveModel::IndexedRow::Remapper

Relationships & Source Files
Inherits: Object
Defined in: activemodel/lib/active_model/indexed_row.rb

Class Method Summary

Instance Method Summary

Constructor Details

.new(initial_indexes, old_columns, new_columns = old_columns) ⇒ Remapper

[ GitHub ]

  
# File 'activemodel/lib/active_model/indexed_row.rb', line 103

def initialize(initial_indexes, old_columns, new_columns = old_columns)
  @initial_indexes = initial_indexes

  # Handle duplicate keys
  pairs = new_columns.zip(old_columns).to_h
  new_columns = pairs.keys
  old_columns = pairs.values

  @new_indexes = IndexedRow.build_indexes(new_columns)
  @indexes_to_extract = old_columns.map { |column| @initial_indexes.fetch(column) }
end

Instance Method Details

#build(original_row)

[ GitHub ]

  
# File 'activemodel/lib/active_model/indexed_row.rb', line 115

def build(original_row)
  IndexedRow.new(@new_indexes, original_row.row.values_at(*@indexes_to_extract).freeze)
end