Class: Arel::Transformer::RemoveActiveRecordInfo

Inherits:
Object
  • Object
show all
Defined in:
lib/arel/transformer/remove_active_record_info.rb

Class Method Summary collapse

Class Method Details

.call(arel, next_middleware) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/arel/transformer/remove_active_record_info.rb', line 5

def call(arel, next_middleware)
  tree = Arel.enhance(arel)

  tree.query(class: Arel::Table).each do |node|
    node['type_caster'].remove
  end

  tree.query(class: Arel::Nodes::BindParam).each do |node|
    node.replace(
      cast_for_database(node.object.value.value_for_database),
    )
  end

  next_middleware.call tree.object
end