Module: Archimate::DataModel::Referenceable
- Included in:
- Connection, Diagram, Element, Organization, PropertyDefinition, ReferenceableList, Relationship, ViewNode, Viewpoint
- Defined in:
- lib/archimate/data_model/referenceable.rb
Overview
Something that can be referenced by another entity.
Instance Method Summary collapse
- #add_reference(referencer) ⇒ Object
- #destroy ⇒ Object
- #model ⇒ Object
- #references ⇒ Object
- #remove_reference(referencer) ⇒ Object
- #replace_item_with(item, replacement) ⇒ Object
- #replace_with(other) ⇒ Object
Instance Method Details
#add_reference(referencer) ⇒ Object
7 8 9 |
# File 'lib/archimate/data_model/referenceable.rb', line 7 def add_reference(referencer) references << referencer unless references.include?(referencer) end |
#destroy ⇒ Object
23 24 25 26 |
# File 'lib/archimate/data_model/referenceable.rb', line 23 def destroy references.each { |ref| ref.remove_reference(self) } to_h.values.select { |v| v.is_a?(Referenceable) }.each { |ref| ref.remove_reference(self) } end |
#model ⇒ Object
19 20 21 |
# File 'lib/archimate/data_model/referenceable.rb', line 19 def model references.find { |ref| ref.is_a?(Model) } end |
#references ⇒ Object
15 16 17 |
# File 'lib/archimate/data_model/referenceable.rb', line 15 def references @referenceable_set ||= [] end |
#remove_reference(referencer) ⇒ Object
11 12 13 |
# File 'lib/archimate/data_model/referenceable.rb', line 11 def remove_reference(referencer) references.delete(referencer) end |
#replace_item_with(item, replacement) ⇒ Object
35 36 37 38 |
# File 'lib/archimate/data_model/referenceable.rb', line 35 def replace_item_with(item, replacement) # default not doing anything # puts Archimate::Color.uncolor(" Referenceable(#{cls_name(self)}).replace_item_with item: #{item} replacement: #{replacement}") end |
#replace_with(other) ⇒ Object
28 29 30 31 32 33 |
# File 'lib/archimate/data_model/referenceable.rb', line 28 def replace_with(other) references.dup.each do |ref| ref.replace_item_with(self, other) remove_reference(ref) end end |