Class: Lutaml::UmlRepository::Presenters::ClassPresenter
- Inherits:
-
ElementPresenter
- Object
- ElementPresenter
- Lutaml::UmlRepository::Presenters::ClassPresenter
- Defined in:
- lib/lutaml/uml_repository/presenters/class_presenter.rb
Overview
Presenter for UML Class elements.
Formats class information for different output types: text, table rows, and structured data.
Instance Attribute Summary
Attributes inherited from ElementPresenter
#context, #element, #repository
Instance Method Summary collapse
-
#to_hash ⇒ Hash
Generate structured hash.
-
#to_table_row ⇒ Hash
Generate table row data.
-
#to_text ⇒ String
Generate detailed text view.
Methods inherited from ElementPresenter
Constructor Details
This class inherits a constructor from Lutaml::UmlRepository::Presenters::ElementPresenter
Instance Method Details
#to_hash ⇒ Hash
Generate structured hash.
45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/lutaml/uml_repository/presenters/class_presenter.rb', line 45 def to_hash # rubocop:disable Metrics/AbcSize data = { type: "Class", name: element.name, is_abstract: !!element.is_abstract, } data[:xmi_id] = element.xmi_id if element.xmi_id if element.stereotype data[:stereotype] = element.stereotype end data end |
#to_table_row ⇒ Hash
Generate table row data.
34 35 36 37 38 39 40 |
# File 'lib/lutaml/uml_repository/presenters/class_presenter.rb', line 34 def to_table_row { type: "Class", name: element.name || "(unnamed)", details: stereotype_display, } end |
#to_text ⇒ String
Generate detailed text view.
17 18 19 20 21 22 23 24 25 26 27 28 29 |
# File 'lib/lutaml/uml_repository/presenters/class_presenter.rb', line 17 def to_text # rubocop:disable Metrics/AbcSize,Metrics/MethodLength lines = [] lines << "Class: #{element.name}" lines << ("=" * 50) lines << "" lines << "Name: #{element.name}" lines << "XMI ID: #{element.xmi_id}" if element.xmi_id lines << "Stereotype: #{element.stereotype}" if element.stereotype lines << "Abstract: #{element.is_abstract}" lines.join("\n") end |