Class: Lutaml::UmlRepository::Presenters::PresenterFactory
- Inherits:
-
Object
- Object
- Lutaml::UmlRepository::Presenters::PresenterFactory
- Defined in:
- lib/lutaml/uml_repository/presenters/presenter_factory.rb
Overview
Factory for creating appropriate presenter for UML elements.
Uses a registry pattern to map element classes to presenter classes. Automatically selects the correct presenter based on element type.
Class Method Summary collapse
-
.create(element, repository = nil, context = nil) ⇒ ElementPresenter
Create appropriate presenter for the given element.
-
.presenters ⇒ Hash
Get all registered presenters.
-
.register(element_class, presenter_class) ⇒ Object
Register a presenter class for an element class.
Class Method Details
.create(element, repository = nil, context = nil) ⇒ ElementPresenter
Create appropriate presenter for the given element.
28 29 30 31 |
# File 'lib/lutaml/uml_repository/presenters/presenter_factory.rb', line 28 def create(element, repository = nil, context = nil) presenter_class = find_presenter_class(element) presenter_class.new(element, repository, context) end |
.presenters ⇒ Hash
Get all registered presenters.
44 45 46 |
# File 'lib/lutaml/uml_repository/presenters/presenter_factory.rb', line 44 def presenters @presenters end |
.register(element_class, presenter_class) ⇒ Object
Register a presenter class for an element class.
37 38 39 |
# File 'lib/lutaml/uml_repository/presenters/presenter_factory.rb', line 37 def register(element_class, presenter_class) @presenters[element_class] = presenter_class end |