Class: Ea::Sources::Qea::TaggedValueBuilder
- Inherits:
-
Object
- Object
- Ea::Sources::Qea::TaggedValueBuilder
- Defined in:
- lib/ea/sources/qea/tagged_value_builder.rb
Overview
Builds Ea::Model::TaggedValue instances from EA's t_objectproperties (and t_attributetags for attribute-level tagged values). Each row is one key/value pair; we keep the optional stereotype scope if EA recorded one.
Instance Attribute Summary collapse
-
#database ⇒ Object
readonly
Returns the value of attribute database.
Instance Method Summary collapse
- #build_from_row(row, owner_guid) ⇒ Object
- #for_attribute(attribute_row) ⇒ Object
- #for_object(ea_guid) ⇒ Object
-
#initialize(database) ⇒ TaggedValueBuilder
constructor
A new instance of TaggedValueBuilder.
Constructor Details
#initialize(database) ⇒ TaggedValueBuilder
Returns a new instance of TaggedValueBuilder.
13 14 15 |
# File 'lib/ea/sources/qea/tagged_value_builder.rb', line 13 def initialize(database) @database = database end |
Instance Attribute Details
#database ⇒ Object (readonly)
Returns the value of attribute database.
11 12 13 |
# File 'lib/ea/sources/qea/tagged_value_builder.rb', line 11 def database @database end |
Instance Method Details
#build_from_row(row, owner_guid) ⇒ Object
29 30 31 32 33 34 35 |
# File 'lib/ea/sources/qea/tagged_value_builder.rb', line 29 def build_from_row(row, owner_guid) Ea::Model::TaggedValue.new( id: IdNormalizer.synthetic("tv", owner_guid, row.property&.gsub(/\W+/, "_")), key: row.property, value: row.value ) end |
#for_attribute(attribute_row) ⇒ Object
22 23 24 25 26 27 |
# File 'lib/ea/sources/qea/tagged_value_builder.rb', line 22 def for_attribute(attribute_row) return [] unless attribute_row.respond_to?(:ea_guid) rows = database.tagged_values_for_element(attribute_row.ea_guid) || [] rows.map { |row| build_from_row(row, attribute_row.ea_guid) } end |
#for_object(ea_guid) ⇒ Object
17 18 19 20 |
# File 'lib/ea/sources/qea/tagged_value_builder.rb', line 17 def for_object(ea_guid) rows = database.tagged_values_for_element(ea_guid) || [] rows.map { |row| build_from_row(row, ea_guid) } end |