Skip to Content Skip to Search
Methods
B
N

Class Public methods

new(initial_indexes, old_columns, new_columns = old_columns)

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

build(original_row)

# 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