Module: ActiveadminTableFooter::IndexAsTableExtension

Defined in:
lib/activeadmin_table_footer/index_as_table_extension.rb

Overview

IndexAsTable#build constructs its own table_options hash and does not pass unknown options through. We wrap the user block so the TableFor instance receives @footer_data_proc before columns are evaluated.

Instance Method Summary collapse

Instance Method Details

#build(page_presenter, collection) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/activeadmin_table_footer/index_as_table_extension.rb', line 8

def build(page_presenter, collection)
  footer_proc = page_presenter[:footer_data]

  if footer_proc && page_presenter.block
    original_block = page_presenter.block
    wrapped = lambda do |table|
      table.instance_variable_set(:@footer_data_proc, footer_proc)
      instance_exec(table, &original_block)
    end
    page_presenter.instance_variable_set(:@block, wrapped)
  end

  super
end