Class: ActiveAdmin::BatchedExport::ExportMacroResolver

Inherits:
Object
  • Object
show all
Defined in:
lib/activeadmin/batched_export/export_macro_resolver.rb

Constant Summary collapse

MAX_MACROS =
50

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(row:, columns:, resource:, resource_settings:, registry:) ⇒ ExportMacroResolver

Returns a new instance of ExportMacroResolver.



18
19
20
21
22
23
24
25
# File 'lib/activeadmin/batched_export/export_macro_resolver.rb', line 18

def initialize(row:, columns:, resource:, resource_settings:, registry:)
  @row = row.dup
  @columns = columns
  @resource = resource
  @resource_settings = resource_settings || {}
  @registry = registry
  @resource_macros = normalize_macro_map(@resource_settings[:macros] || @resource_settings["macros"])
end

Class Method Details

.apply(row:, columns:, resource:, resource_settings:, registry:) ⇒ Object



8
9
10
11
12
13
14
15
16
# File 'lib/activeadmin/batched_export/export_macro_resolver.rb', line 8

def self.apply(row:, columns:, resource:, resource_settings:, registry:)
  new(
    row: row,
    columns: columns,
    resource: resource,
    resource_settings: resource_settings,
    registry: registry
  ).apply
end

Instance Method Details

#applyObject



27
28
29
30
31
32
33
34
35
# File 'lib/activeadmin/batched_export/export_macro_resolver.rb', line 27

def apply
  @columns.each_with_index do |column, index|
    macro = macro_for(column)
    next if macro.nil?

    @row[index] = macro.call(@row[index], @resource, column)
  end
  @row
end