Class: Coradoc::AsciiDoc::Serializer::ElementRegistry
- Inherits:
-
Object
- Object
- Coradoc::AsciiDoc::Serializer::ElementRegistry
- Defined in:
- lib/coradoc/asciidoc/serializer/element_registry.rb
Overview
Registry for mapping Coradoc model classes to their AsciiDoc serializers.
Thin layer over ‘Coradoc::Dispatch.strict`: each public method delegates to a single Dispatch instance so the dispatch mechanism (storage, miss-handling, override semantics) lives in one place. Adoc-specific concerns (the ArgumentError wording on miss, the `registered_models` name) stay here.
Constant Summary collapse
- DISPATCH =
Coradoc::Dispatch.strict
Class Method Summary collapse
- .clear! ⇒ Object
- .get(model_class) ⇒ Object
- .lookup(model_class) ⇒ Object
- .override(model_class, serializer_class) ⇒ Object
- .register(model_class, serializer_class) ⇒ Object
- .registered?(model_class) ⇒ Boolean
- .registered_models ⇒ Object
- .unregister(model_class) ⇒ Object
Class Method Details
.clear! ⇒ Object
58 59 60 |
# File 'lib/coradoc/asciidoc/serializer/element_registry.rb', line 58 def clear! DISPATCH.clear! end |
.get(model_class) ⇒ Object
36 37 38 |
# File 'lib/coradoc/asciidoc/serializer/element_registry.rb', line 36 def get(model_class) DISPATCH.lookup(model_class) end |
.lookup(model_class) ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'lib/coradoc/asciidoc/serializer/element_registry.rb', line 40 def lookup(model_class) serializer_class = DISPATCH.lookup(model_class) return serializer_class if serializer_class raise ArgumentError, "No serializer registered for #{model_class.name}. " \ 'Please register a serializer in ElementRegistry, or the serializer ' \ 'may not have been loaded yet (check Registrations.load_all!)' end |
.override(model_class, serializer_class) ⇒ Object
28 29 30 |
# File 'lib/coradoc/asciidoc/serializer/element_registry.rb', line 28 def override(model_class, serializer_class) DISPATCH.override(model_class, serializer_class) end |
.register(model_class, serializer_class) ⇒ Object
24 25 26 |
# File 'lib/coradoc/asciidoc/serializer/element_registry.rb', line 24 def register(model_class, serializer_class) DISPATCH.register(model_class, serializer_class) end |
.registered?(model_class) ⇒ Boolean
54 55 56 |
# File 'lib/coradoc/asciidoc/serializer/element_registry.rb', line 54 def registered?(model_class) DISPATCH.registered?(model_class) end |
.registered_models ⇒ Object
50 51 52 |
# File 'lib/coradoc/asciidoc/serializer/element_registry.rb', line 50 def registered_models DISPATCH.registered_keys end |
.unregister(model_class) ⇒ Object
32 33 34 |
# File 'lib/coradoc/asciidoc/serializer/element_registry.rb', line 32 def unregister(model_class) DISPATCH.unregister(model_class) end |