Module: AdminSuite::UI::ShowFormatterRegistry

Defined in:
lib/admin_suite/ui/show_formatter_registry.rb

Class Method Summary collapse

Class Method Details

.class_handlersObject



7
8
9
# File 'lib/admin_suite/ui/show_formatter_registry.rb', line 7

def class_handlers
  @class_handlers ||= {}
end

.default_handlerObject



11
12
13
# File 'lib/admin_suite/ui/show_formatter_registry.rb', line 11

def default_handler
  @default_handler
end

.format(value, view:, record:, field_name:) ⇒ Object



23
24
25
26
27
28
29
# File 'lib/admin_suite/ui/show_formatter_registry.rb', line 23

def format(value, view:, record:, field_name:)
  handler = class_handlers.find { |klass, _| value.is_a?(klass) }&.last
  handler ||= default_handler
  return nil unless handler

  handler.call(value, view, record, field_name)
end

.register_class(klass, &block) ⇒ Object



15
16
17
# File 'lib/admin_suite/ui/show_formatter_registry.rb', line 15

def register_class(klass, &block)
  class_handlers[klass] = block
end

.register_default(&block) ⇒ Object



19
20
21
# File 'lib/admin_suite/ui/show_formatter_registry.rb', line 19

def register_default(&block)
  @default_handler = block
end