Class: ActiveAdmin::BatchedExport::ExportMacroCatalog

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

Defined Under Namespace

Classes: UnknownMacroError

Class Method Summary collapse

Class Method Details

.fetch(name, registry: nil) ⇒ Object



19
20
21
22
23
# File 'lib/activeadmin/batched_export/export_macro_catalog.rb', line 19

def self.fetch(name, registry: nil)
  key = name.to_sym
  target = registry || global_registry
  target[key] || built_ins[key] || raise(UnknownMacroError, "unknown export macro: #{name}")
end

.global_registryObject



32
33
34
# File 'lib/activeadmin/batched_export/export_macro_catalog.rb', line 32

def self.global_registry
  @global_registry ||= {}
end

.register(name, callable, registry: nil) ⇒ Object

Raises:

  • (ArgumentError)


11
12
13
14
15
16
17
# File 'lib/activeadmin/batched_export/export_macro_catalog.rb', line 11

def self.register(name, callable, registry: nil)
  key = name.to_sym
  raise ArgumentError, "macro must respond to :call" unless callable.respond_to?(:call)

  target = registry || global_registry
  target[key] = callable
end

.resolve(name, registry: nil) ⇒ Object



25
26
27
28
29
30
# File 'lib/activeadmin/batched_export/export_macro_catalog.rb', line 25

def self.resolve(name, registry: nil)
  macro = name
  return macro if macro.respond_to?(:call)

  fetch(macro, registry: registry)
end