Class: ActiveRecord::StatementCache::BindMap

Inherits:
Object
  • Object
show all
Defined in:
lib/active_record/statement_cache.rb

Overview

:nodoc:

Instance Method Summary collapse

Constructor Details

#initialize(bound_attributes) ⇒ BindMap

Returns a new instance of BindMap.



114
115
116
117
118
119
120
121
122
123
# File 'lib/active_record/statement_cache.rb', line 114

def initialize(bound_attributes)
  @indexes = []
  @bound_attributes = bound_attributes

  bound_attributes.each_with_index do |attr, i|
    if ActiveModel::Attribute === attr && Substitute === attr.value
      @indexes << i
    end
  end
end

Instance Method Details

#bind(values) ⇒ Object



125
126
127
128
129
# File 'lib/active_record/statement_cache.rb', line 125

def bind(values)
  bas = @bound_attributes.dup
  @indexes.each_with_index { |offset, i| bas[offset] = bas[offset].with_cast_value(values[i]) }
  bas
end