Sha256: 930519fe38ce4c479ccdc47819204df0ac3103f19475ffa026454d1c663ba8ca

Contents?: true

Size: 846 Bytes

Versions: 1

Compression:

Stored size: 846 Bytes

Contents

module DataGrid
  module Controller
    extend ActiveSupport::Concern

    def prepare_grid(&block)
      # Build logic object
      data_grid = DataGrid::DataGridLogic.new(:params => params)
      block.call(data_grid)

      # Restore state
      if data_grid.state_saver and DataGrid.state_saver_method
        require "data_grid/#{DataGrid.state_saver_method}_state_saver"
        self.restore_state(data_grid)
      end

      # Get and save data from params
      data_grid.get_params_from_request
      self.save_state(data_grid) if data_grid.state_saver

      # Export on demand
      if data_grid.export_enabled and params["export_#{data_grid.name}"]
        require "data_grid/#{params["export_#{data_grid.name}"]}_exporter"
        self.export(data_grid, data_grid.export_filename)
      end
      
      data_grid
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
data_grid-0.0.2 lib/data_grid/controller.rb