Class: Lutaml::Qea::Models::EaTaggedValue
- Inherits:
-
BaseModel
- Object
- Model::Serializable
- BaseModel
- Lutaml::Qea::Models::EaTaggedValue
- Defined in:
- lib/lutaml/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.
Class Method Summary collapse
-
.from_db_row(row) ⇒ EaTaggedValue?
Create from database row.
-
.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
Class Method Details
.from_db_row(row) ⇒ EaTaggedValue?
Create from database row
43 44 45 46 47 48 49 50 51 52 53 |
# File 'lib/lutaml/qea/models/ea_tagged_value.rb', line 43 def self.from_db_row(row) return nil if row.nil? new( property_id: row["PropertyID"], element_id: row["ElementID"], base_class: row["BaseClass"], tag_value: row["TagValue"], notes: row["Notes"], ) end |
.primary_key_column ⇒ Symbol
Returns Primary key column name.
30 31 32 |
# File 'lib/lutaml/qea/models/ea_tagged_value.rb', line 30 def self.primary_key_column :property_id end |
.table_name ⇒ String
Returns Database table name.
35 36 37 |
# File 'lib/lutaml/qea/models/ea_tagged_value.rb', line 35 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
94 95 96 97 98 99 100 101 |
# File 'lib/lutaml/qea/models/ea_tagged_value.rb', line 94 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”
74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# File 'lib/lutaml/qea/models/ea_tagged_value.rb', line 74 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”
61 62 63 64 65 66 67 |
# File 'lib/lutaml/qea/models/ea_tagged_value.rb', line 61 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 |