class ActsAsTable::Mapper::PrimaryKey

ActsAsTable mapper object for an instance of the {ActsAsTable::PrimaryKey} class.

Public Class Methods

new(row_model, column_model_by_key, record_model, position_or_key, method_name = 'id', &block) click to toggle source

Returns a new ActsAsTable mapper object an instance of the {ActsAsTable::PrimaryKey} class.

@param [ActsAsTable::RowModel] row_model @param [Hash<Symbol, ActsAsTable::ColumnModel>] column_model_by_key @param [ActsAsTable::RecordModel] record_model @param [Integer, Symbol, nil] position_or_key @param [#to_s] method_name @yieldparam [ActsAsTable::Mapper::PrimaryKey] primary_key @yieldreturn [void] @return [ActsAsTable::Mapper::PrimaryKey]

Calls superclass method ActsAsTable::Mapper::Base::new
# File lib/acts_as_table/mapper.rb, line 231
def initialize(row_model, column_model_by_key, record_model, position_or_key, method_name = 'id', &block)
  @row_model, @column_model_by_key, @record_model = row_model, column_model_by_key, record_model

  @record_model.primary_keys.build(method_name: method_name) do |primary_key|
    primary_key.column_model = position_or_key.is_a?(::Symbol) ? @column_model_by_key[position_or_key] : @row_model.column_models[position_or_key - 1]
  end

  super(&block)
end