Class: Ea::Qea::Models::EaTaggedValue
- Inherits:
-
BaseModel
- Object
- Lutaml::Model::Serializable
- BaseModel
- Ea::Qea::Models::EaTaggedValue
- Defined in:
- lib/ea/qea/models/ea_tagged_value.rb
Overview
EA Tagged Value model
Represents tagged values (custom metadata) attached to UML elements in the t_taggedvalue table.
Constant Summary collapse
- COLUMN_MAP =
{ "PropertyID" => :property_id, "ElementID" => :element_id, "BaseClass" => :base_class, "TagValue" => :tag_value, }.freeze
Class Method Summary collapse
- .column_map ⇒ Object
-
.primary_key_column ⇒ Symbol
Primary key column name.
-
.table_name ⇒ String
Database table name.
Instance Method Summary collapse
-
#parsed_notes ⇒ String?
Parse notes from TagValue field.
-
#parsed_value ⇒ String?
Parse tag value from TagValue field.
-
#tag_name ⇒ String?
Parse tag name from TagValue field.
Methods inherited from BaseModel
from_db_row, #primary_key, #sort_position
Class Method Details
.column_map ⇒ Object
45 46 47 |
# File 'lib/ea/qea/models/ea_tagged_value.rb', line 45 def self.column_map COLUMN_MAP end |
.primary_key_column ⇒ Symbol
Returns Primary key column name.
28 29 30 |
# File 'lib/ea/qea/models/ea_tagged_value.rb', line 28 def self.primary_key_column :property_id end |
.table_name ⇒ String
Returns Database table name.
33 34 35 |
# File 'lib/ea/qea/models/ea_tagged_value.rb', line 33 def self.table_name "t_taggedvalue" end |
Instance Method Details
#parsed_notes ⇒ String?
Parse notes from TagValue field
Extract ea_notes if present in TagValue
88 89 90 91 92 93 94 95 |
# File 'lib/ea/qea/models/ea_tagged_value.rb', line 88 def parsed_notes # rubocop:disable Metrics/CyclomaticComplexity return notes if notes && !notes.empty? return nil unless tag_value&.include?("$ea_notes=") # Extract ea_notes value parts = tag_value.split("$ea_notes=", 2) parts[1]&.strip if parts.length > 1 end |
#parsed_value ⇒ String?
Parse tag value from TagValue field
TagValue format: "tagName|value$ea_notes=description"
68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
# File 'lib/ea/qea/models/ea_tagged_value.rb', line 68 def parsed_value return nil unless tag_value # Check if there's a pipe separator return nil unless tag_value.include?("|") # Split on pipe first parts = tag_value.split("|", 2) return nil if parts.length < 2 # Get the value part (before $) value_part = parts[1].split("$", 2)[0] value_part&.strip end |
#tag_name ⇒ String?
Parse tag name from TagValue field
TagValue format: "tagName|value$ea_notes=description" or "tagName$ea_notes=description"
55 56 57 58 59 60 61 |
# File 'lib/ea/qea/models/ea_tagged_value.rb', line 55 def tag_name return nil unless tag_value # Split on | or $ to get the tag name parts = tag_value.split(/[|$]/, 2) parts[0]&.strip end |