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
# 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