Class: Lutaml::UmlRepository::Presenters::EnumPresenter
- Inherits:
-
ElementPresenter
- Object
- ElementPresenter
- Lutaml::UmlRepository::Presenters::EnumPresenter
- Defined in:
- lib/lutaml/uml_repository/presenters/enum_presenter.rb
Overview
Presenter for UML Enumeration elements.
Formats enumeration information including literal values.
Instance Attribute Summary
Attributes inherited from ElementPresenter
#context, #element, #repository
Instance Method Summary collapse
-
#initialize(element, repository = nil, context = nil) ⇒ EnumPresenter
constructor
A new instance of EnumPresenter.
-
#to_hash ⇒ Object
rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity.
- #to_table_row ⇒ Object
-
#to_text ⇒ Object
rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity.
Constructor Details
#initialize(element, repository = nil, context = nil) ⇒ EnumPresenter
Returns a new instance of EnumPresenter.
13 14 15 |
# File 'lib/lutaml/uml_repository/presenters/enum_presenter.rb', line 13 def initialize(element, repository = nil, context = nil) super end |
Instance Method Details
#to_hash ⇒ Object
rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity
55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
# File 'lib/lutaml/uml_repository/presenters/enum_presenter.rb', line 55 def to_hash # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity data = { type: "Enumeration", name: element.name, value_count: element.values ? element.values.size : 0, } data[:xmi_id] = element.xmi_id if element.respond_to?(:xmi_id) && element.xmi_id data[:stereotype] = element.stereotype if element.respond_to?(:stereotype) && element.stereotype data[:visibility] = element.visibility if element.respond_to?(:visibility) && element.visibility if element.values && !element.values.empty? data[:values] = element.values.map do |v| v.respond_to?(:name) ? v.name : v.to_s end end data end |
#to_table_row ⇒ Object
46 47 48 49 50 51 52 53 |
# File 'lib/lutaml/uml_repository/presenters/enum_presenter.rb', line 46 def to_table_row value_count = element.values ? element.values.size : 0 { type: "Enumeration", name: element.name || "(unnamed)", details: "#{value_count} literal value(s)", } end |
#to_text ⇒ Object
rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
# File 'lib/lutaml/uml_repository/presenters/enum_presenter.rb', line 17 def to_text # rubocop:disable Metrics/AbcSize,Metrics/CyclomaticComplexity,Metrics/MethodLength,Metrics/PerceivedComplexity lines = [] lines << "Enumeration: #{element.name}" lines << ("=" * 50) lines << "" lines << "Name: #{element.name}" if element.respond_to?(:xmi_id) && element.xmi_id lines << "XMI ID: #{element.xmi_id}" end if element.respond_to?(:stereotype) && element.stereotype lines << "Stereotype: #{element.stereotype}" end if element.respond_to?(:visibility) && element.visibility lines << "Visibility: #{element.visibility}" end lines << "" if element.values && !element.values.empty? lines << "Literal Values (#{element.values.size}):" element.each_value do |value| lines << " - #{value.name || value.to_s}" end else lines << "Literal Values: (none)" end lines.join("\n") end |