archimate 2.0.1 → 2.0.2

Sign up to get free protection for your applications and to get access to all the features.
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