Module: AdminSuite::RendererRegistry
- Defined in:
- lib/admin_suite/renderer_registry.rb
Overview
Maps panel render: keys to Renderer classes.
Two independent stores, so a host following the deprecation advice printed for a legacy renderer (or simply overriding a built-in) actually takes effect:
register/lookup— explicit registrations: a host initializer (or a spec) callingRendererRegistry.register(:key, SomeClass).register_default/lookup_default— the gem's own boot-time registrations (the four built-ins, their two aliases, and the four deprecated Gleania renderers — seelib/admin_suite.rb).
AdminSuite::BaseHelper#render_custom_section checks lookup, then a
host Admin::Renderers::<Key>Renderer class, then lookup_default —
explicit beats host-class beats gem-default. See that method for the
full precedence chain (legacy config.custom_renderers procs come
first, ahead of all of this).
Class Method Summary collapse
-
.lookup(key) ⇒ Class?
The explicit registration for
key, if any. -
.lookup_default(key) ⇒ Class?
The gem-default registration for
key, if any. -
.register(key, klass) ⇒ Object
Explicit registration (host apps, initializers, specs).
-
.register_default(key, klass) ⇒ Object
Gem boot-time registration.
-
.registered ⇒ Array<Symbol>
Every key known to either store (explicit ∪ default).
-
.unregister(key) ⇒ Object
Test-support only.
Class Method Details
.lookup(key) ⇒ Class?
Returns the explicit registration for key, if any.
41 42 43 |
# File 'lib/admin_suite/renderer_registry.rb', line 41 def lookup(key) @registry[key.to_sym] end |
.lookup_default(key) ⇒ Class?
Returns the gem-default registration for key, if any.
46 47 48 |
# File 'lib/admin_suite/renderer_registry.rb', line 46 def lookup_default(key) @defaults[key.to_sym] end |
.register(key, klass) ⇒ Object
Explicit registration (host apps, initializers, specs). Takes
precedence over everything but a legacy config.custom_renderers
proc.
29 30 31 |
# File 'lib/admin_suite/renderer_registry.rb', line 29 def register(key, klass) @registry[key.to_sym] = klass end |
.register_default(key, klass) ⇒ Object
Gem boot-time registration. Only consulted after a host's own
explicit registration and its Admin::Renderers::<Key>Renderer
class have both been checked and found nothing.
36 37 38 |
# File 'lib/admin_suite/renderer_registry.rb', line 36 def register_default(key, klass) @defaults[key.to_sym] = klass end |
.registered ⇒ Array<Symbol>
Every key known to either store (explicit ∪ default).
53 54 55 |
# File 'lib/admin_suite/renderer_registry.rb', line 53 def registered (@defaults.keys | @registry.keys) end |
.unregister(key) ⇒ Object
Test-support only. Removes a single explicit registration.
There is intentionally no bulk reset!, and this never touches the
default store: AdminSuite's own built-in renderers register
themselves as defaults at require time, once, for the life of the
process. Specs that register scratch/probe renderers via register
should call unregister for exactly the key(s) they added, in a
teardown.
65 66 67 |
# File 'lib/admin_suite/renderer_registry.rb', line 65 def unregister(key) @registry.delete(key.to_sym) end |