archimate 2.0.1 → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/archimate.gemspec +2 -1
  3. data/lib/archimate/color.rb +2 -2
  4. data/lib/archimate/data_model/any_attribute.rb +4 -10
  5. data/lib/archimate/data_model/any_element.rb +9 -17
  6. data/lib/archimate/data_model/bounds.rb +6 -6
  7. data/lib/archimate/data_model/color.rb +6 -6
  8. data/lib/archimate/data_model/comparison.rb +101 -5
  9. data/lib/archimate/data_model/concern.rb +5 -13
  10. data/lib/archimate/data_model/connection.rb +39 -48
  11. data/lib/archimate/data_model/connector_type.rb +1 -0
  12. data/lib/archimate/data_model/diagram.rb +27 -42
  13. data/lib/archimate/data_model/diagram_type.rb +1 -0
  14. data/lib/archimate/data_model/element.rb +14 -35
  15. data/lib/archimate/data_model/elements.rb +681 -0
  16. data/lib/archimate/data_model/font.rb +8 -8
  17. data/lib/archimate/data_model/lang_string.rb +10 -36
  18. data/lib/archimate/data_model/layer.rb +4 -5
  19. data/lib/archimate/data_model/layers.rb +45 -49
  20. data/lib/archimate/data_model/location.rb +6 -6
  21. data/lib/archimate/data_model/metadata.rb +2 -6
  22. data/lib/archimate/data_model/model.rb +50 -62
  23. data/lib/archimate/data_model/modeling_note.rb +3 -8
  24. data/lib/archimate/data_model/organization.rb +18 -27
  25. data/lib/archimate/data_model/property.rb +9 -8
  26. data/lib/archimate/data_model/property_definition.rb +15 -21
  27. data/lib/archimate/data_model/referenceable.rb +14 -9
  28. data/lib/archimate/data_model/referenceable_list.rb +82 -0
  29. data/lib/archimate/data_model/relationship.rb +41 -152
  30. data/lib/archimate/data_model/relationship_references.rb +29 -0
  31. data/lib/archimate/data_model/relationships.rb +214 -0
  32. data/lib/archimate/data_model/schema_info.rb +6 -12
  33. data/lib/archimate/data_model/style.rb +14 -25
  34. data/lib/archimate/data_model/view_node.rb +38 -66
  35. data/lib/archimate/data_model/viewpoint.rb +23 -38
  36. data/lib/archimate/data_model/viewpoint_type.rb +347 -387
  37. data/lib/archimate/data_model.rb +7 -6
  38. data/lib/archimate/derived_relations.rb +106 -31
  39. data/lib/archimate/export/cypher.rb +0 -18
  40. data/lib/archimate/export/jsonl.rb +16 -45
  41. data/lib/archimate/export/n_quads.rb +1 -24
  42. data/lib/archimate/file_formats/archi_file_reader.rb +2 -1
  43. data/lib/archimate/file_formats/model_exchange_file_writer_21.rb +9 -1
  44. data/lib/archimate/file_formats/sax/archi/archi_handler_factory.rb +2 -2
  45. data/lib/archimate/file_formats/sax/archi/connection.rb +2 -1
  46. data/lib/archimate/file_formats/sax/archi/element.rb +7 -5
  47. data/lib/archimate/file_formats/sax/archi/relationship.rb +1 -1
  48. data/lib/archimate/file_formats/sax/model_exchange_file/connection.rb +2 -1
  49. data/lib/archimate/file_formats/sax/model_exchange_file/element.rb +1 -1
  50. data/lib/archimate/file_formats/sax/model_exchange_file/relationship.rb +1 -1
  51. data/lib/archimate/file_formats/sax/model_exchange_file/view_node.rb +0 -1
  52. data/lib/archimate/file_formats/serializer/archi/relationship.rb +1 -1
  53. data/lib/archimate/lint/duplicate_entities.rb +46 -42
  54. data/lib/archimate/svg/archimate.css +12 -2
  55. data/lib/archimate/svg/entity/base_entity.rb +6 -29
  56. data/lib/archimate/svg/entity/location.rb +1 -0
  57. data/lib/archimate/svg/entity_factory.rb +3 -3
  58. data/lib/archimate/svg/point.rb +3 -3
  59. data/lib/archimate/svg/svg_template.svg.erb +5 -5
  60. data/lib/archimate/version.rb +2 -1
  61. metadata +20 -6
  62. data/TODOs.org +0 -505
  63. data/lib/archimate/data_model/differentiable.rb +0 -142
  64. data/lib/archimate/data_model/element_type.rb +0 -89
  65. data/lib/archimate/data_model/relationship_type.rb +0 -45
@@ -69,6 +69,11 @@ table.properties>caption {
69
69
  stroke: #999;
70
70
  }
71
71
 
72
+ .archimate-location-background {
73
+ fill: #f9b77a;
74
+ stroke: #ae8055;
75
+ }
76
+
72
77
  .archimate-strategy-background {
73
78
  fill: #eddfac;
74
79
  stroke: #44423b;
@@ -181,7 +186,7 @@ table.properties>caption {
181
186
  }
182
187
 
183
188
  .archimate-assignment-relationship {
184
- marker-end: url(#archimate-dot-marker);
189
+ marker-end: url(#archimate-filled-arrow);
185
190
  marker-start: url(#archimate-dot-marker);
186
191
  }
187
192
 
@@ -215,7 +220,12 @@ table.properties>caption {
215
220
  marker-end: url(#archimate-hollow-arrow);
216
221
  }
217
222
 
218
- /*.archimate-influence-relationship, .archimate-association-relationship {
223
+ .archimate-influence-relationship {
224
+ marker-end: url(#archimate-open-arrow);
225
+ stroke-dasharray: 5, 3;
226
+ }
227
+
228
+ /*, .archimate-association-relationship {
219
229
  }
220
230
  */
221
231
  .archimate-triggering-relationship {
@@ -17,49 +17,26 @@ module Archimate
17
17
  @text_bounds = child.bounds.reduced_by(2)
18
18
  @bounds_offset = bounds_offset
19
19
  @entity = @child.element || @child
20
- @background_class = layer_background_class
20
+ @background_class = @child&.element&.layer&.background_class
21
21
  @text_align = nil
22
22
  @badge = nil
23
23
  end
24
24
 
25
- def layer_background_class
26
- case child.element&.layer
27
- when "Strategy", DataModel::Layers::Strategy
28
- "archimate-strategy-background"
29
- when "Business", DataModel::Layers::Business
30
- "archimate-business-background"
31
- when "Application", DataModel::Layers::Application
32
- "archimate-application-background"
33
- when "Technology", DataModel::Layers::Technology
34
- "archimate-infrastructure-background"
35
- when "Physical", DataModel::Layers::Physical
36
- "archimate-physical-background"
37
- when "Motivation", DataModel::Layers::Motivation
38
- "archimate-motivation-background"
39
- when "Implementation and Migration", DataModel::Layers::Implementation_and_migration
40
- "archimate-implementation-background"
41
- when "Connectors", DataModel::Layers::Connectors
42
- "archimate-connectors-background"
43
- else
44
- puts "Unexpected layer #{child.element&.layer.inspect}" if child.element&.layer
45
- end
46
- end
47
-
48
25
  def to_svg(xml)
49
- optional_link(xml) {
26
+ optional_link(xml) do
50
27
  xml.g(group_attrs) do
51
28
  xml.title { xml.text @entity.name } unless @entity.name.nil? || @entity.name.empty?
52
- xml.desc { xml.text(@entity.documentation.to_s) } if @entity.documentation && !@entity.documentation.empty?
29
+ xml.desc { xml.text(@entity.documentation.to_s) } unless @entity.documentation&.empty?
53
30
  entity_shape(xml, child.bounds)
54
31
  entity_badge(xml)
55
32
  entity_label(xml)
56
33
  child.nodes.each { |c| Svg::EntityFactory.make_entity(c, child.bounds).to_svg(xml) }
57
34
  end
58
- }
35
+ end
59
36
  end
60
37
 
61
- def optional_link(xml, &block)
62
- block.call
38
+ def optional_link(_xml)
39
+ yield
63
40
  end
64
41
 
65
42
  def entity_label(xml)
@@ -7,6 +7,7 @@ module Archimate
7
7
  def initialize(child, bounds_offset)
8
8
  super
9
9
  @badge = "#archimate-location-badge"
10
+ @background_class = "archimate-location-background"
10
11
  end
11
12
  end
12
13
  end
@@ -5,10 +5,10 @@ module Archimate
5
5
  module EntityFactory
6
6
  def make_entity(child, bounds_offset)
7
7
  entity = child.element || child
8
- klass_name = "Archimate::Svg::Entity::#{entity.type.sub('archimate:', '')}"
9
- klass = Object.const_get(klass_name)
8
+ klass_name = entity.type.sub('archimate:', '')
9
+ klass = Archimate::Svg::Entity.const_get(klass_name)
10
10
  klass.new(child, bounds_offset)
11
- rescue
11
+ rescue NameError
12
12
  puts "Unsupported entity type #{klass_name}"
13
13
  end
14
14
  module_function :make_entity
@@ -3,10 +3,10 @@
3
3
  module Archimate
4
4
  module Svg
5
5
  Point = Struct.new(:x, :y) do
6
- def -(pt)
6
+ def -(other)
7
7
  Math.sqrt(
8
- ((pt.x - x) ** 2) +
9
- ((pt.y - y) ** 2)
8
+ ((other.x - x)**2) +
9
+ ((other.y - y)**2)
10
10
  )
11
11
  end
12
12
  end
@@ -143,13 +143,13 @@
143
143
  </symbol>
144
144
 
145
145
  <!-- Line Markers -->
146
- <marker id="archimate-dot-marker" viewBox="0 0 10 10" refX="4" refY="4" markerUnits="strokeWidth" markerWidth="8" markerHeight="8">
146
+ <marker id="archimate-dot-marker" viewBox="0 0 10 10" refX="0" refY="4" markerUnits="strokeWidth" markerWidth="10" markerHeight="10">
147
147
  <circle cx="4" cy="4" r="3" fill="black" stroke="black" />
148
148
  </marker>
149
149
  <marker id="archimate-used-by-arrow" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="8" orient="auto">
150
150
  <path d="M 1 1 L 9 5 L 1 9" fill="none" stroke="black" style="fill:none;stroke:black;"/>
151
151
  </marker>
152
- <marker id="archimate-open-arrow" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="8" orient="auto">
152
+ <marker id="archimate-open-arrow" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="8" markerHeight="8" orient="auto" stroke="black" fill="none">
153
153
  <path d="M 1 1 L 9 5 L 1 9" fill="none" stroke="black"/>
154
154
  </marker>
155
155
  <marker id="archimate-filled-arrow" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="12" markerHeight="12" orient="auto">
@@ -158,11 +158,11 @@
158
158
  <marker id="archimate-hollow-arrow" viewBox="0 0 10 10" refX="9" refY="5" markerUnits="strokeWidth" markerWidth="12" markerHeight="12" orient="auto">
159
159
  <polygon points="1,1 9,5 1,9" fill="white" stroke="black"/>
160
160
  </marker>
161
- <marker id="archimate-filled-diamond" viewBox="0 0 10 10" refX="1" refY="5" markerUnits="strokeWidth" markerWidth="12" markerHeight="12" orient="auto">
161
+ <marker id="archimate-filled-diamond" viewBox="0 0 10 10" refX="1" refY="5" markerUnits="strokeWidth" markerWidth="24" markerHeight="24" orient="auto">
162
162
  <polygon points="5,2.5 9,5 5,7.5 1,5" fill="black" stroke="black"/>
163
163
  </marker>
164
- <marker id="archimate-hollow-diamond" viewBox="0 0 10 10" refX="1" refY="5" markerUnits="strokeWidth" markerWidth="13" markerHeight="13" orient="auto">
165
- <polygon points="5,2.5 9,5 5,7.5 1,5" fill="white" stroke="black"/>
164
+ <marker id="archimate-hollow-diamond" viewBox="0 0 25 25" refX="1" refY="12" markerUnits="strokeWidth" markerWidth="24" markerHeight="24" orient="auto">
165
+ <polygon points="12.5,6.25 22.5,12.5 12.5,18.75 2.5,12.5" fill="white" stroke="black"/>
166
166
  </marker>
167
167
  </defs>
168
168
  <g id="archimate-diagram"></g>
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  module Archimate
3
- VERSION = "2.0.1"
4
+ VERSION = "2.0.2"
4
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: archimate
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mark Morga
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-10-25 00:00:00.000000000 Z
11
+ date: 2017-11-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -374,6 +374,20 @@ dependencies:
374
374
  - - ">="
375
375
  - !ruby/object:Gem::Version
376
376
  version: '0'
377
+ - !ruby/object:Gem::Dependency
378
+ name: rubocop
379
+ requirement: !ruby/object:Gem::Requirement
380
+ requirements:
381
+ - - ">="
382
+ - !ruby/object:Gem::Version
383
+ version: '0'
384
+ type: :development
385
+ prerelease: false
386
+ version_requirements: !ruby/object:Gem::Requirement
387
+ requirements:
388
+ - - ">="
389
+ - !ruby/object:Gem::Version
390
+ version: '0'
377
391
  description: A collection of tools for working with ArchiMate files from Archi
378
392
  email:
379
393
  - markmorga@gmail.com
@@ -397,7 +411,6 @@ files:
397
411
  - LICENSE
398
412
  - README.md
399
413
  - Rakefile
400
- - TODOs.org
401
414
  - archimate.gemspec
402
415
  - bin/archimate
403
416
  - bin/console
@@ -429,9 +442,8 @@ files:
429
442
  - lib/archimate/data_model/connector_type.rb
430
443
  - lib/archimate/data_model/diagram.rb
431
444
  - lib/archimate/data_model/diagram_type.rb
432
- - lib/archimate/data_model/differentiable.rb
433
445
  - lib/archimate/data_model/element.rb
434
- - lib/archimate/data_model/element_type.rb
446
+ - lib/archimate/data_model/elements.rb
435
447
  - lib/archimate/data_model/font.rb
436
448
  - lib/archimate/data_model/lang_string.rb
437
449
  - lib/archimate/data_model/layer.rb
@@ -445,8 +457,10 @@ files:
445
457
  - lib/archimate/data_model/property.rb
446
458
  - lib/archimate/data_model/property_definition.rb
447
459
  - lib/archimate/data_model/referenceable.rb
460
+ - lib/archimate/data_model/referenceable_list.rb
448
461
  - lib/archimate/data_model/relationship.rb
449
- - lib/archimate/data_model/relationship_type.rb
462
+ - lib/archimate/data_model/relationship_references.rb
463
+ - lib/archimate/data_model/relationships.rb
450
464
  - lib/archimate/data_model/schema_info.rb
451
465
  - lib/archimate/data_model/style.rb
452
466
  - lib/archimate/data_model/view_node.rb