Module: AdminSuite::UI::FieldRendererRegistry

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

Class Method Summary collapse

Class Method Details

.default_handlerObject

Fallback for unregistered field types: a plain text input. Keeps the registry total so callers never need a secondary rendering path.



17
18
19
20
21
22
# File 'lib/admin_suite/ui/field_renderer_registry.rb', line 17

def default_handler
  @default_handler ||= ->(_view, f, field, _resource, field_class) {
    f.text_field(field.name, class: field_class, placeholder: field.placeholder,
                 readonly: field.readonly)
  }
end

.handlersObject



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

def handlers
  @handlers ||= {}
end

.register(type, &block) ⇒ Object



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

def register(type, &block)
  handlers[type.to_sym] = block
end

.render(type, view:, f:, field:, resource:, field_class:) ⇒ Object



24
25
26
27
# File 'lib/admin_suite/ui/field_renderer_registry.rb', line 24

def render(type, view:, f:, field:, resource:, field_class:)
  handler = handlers[type.to_sym] || default_handler
  handler.call(view, f, field, resource, field_class)
end