ea 0.6.25 → 0.6.27

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 0fe5321961e025ce620783fa1be509f625365fc393311fe8fc4a0c170899ff7e
4
- data.tar.gz: 2dd5a3649f1c9bd54ca33196fd576f91bd68b18fd12f2fa9330145b0976a5e00
3
+ metadata.gz: 87b351667d7dc67e44be0352d005c0c06355be968b18dcf359ce7a3cf6a68e4f
4
+ data.tar.gz: 3a0f0868f7d7365ae17e3325fae1de7298d2683e61e7a8ca4be1febd4e6126bc
5
5
  SHA512:
6
- metadata.gz: d00d849291956bbc80a48a62fa0650513b54bd7fff17cf813e0d0c494cdd3834f8fe3922937ad044739c4a06535f094cdf6920239ea193569f2a1855ba1510d7
7
- data.tar.gz: c889a7475f9cff8287d3ffd59dad000cae3ed7a215fe2ef279aab7b1ffe20e696de672134a244062967d22e95ba974696e0e1d8b25526b5239797f2baaf0ac58
6
+ metadata.gz: 6a8eb52cd341a1363ab9436b5c5ec3ba628a0f15c575ca108f3aea4e0d67d496f68ecbb3c2ea6406a96c0023f448bb408bd7616164fa372e9363c3567c685993
7
+ data.tar.gz: e685e2e88013ff81821438148b9fa5d3b38037200466903ec4771fa718b62c838c43a488b8ffffd58f1aec1f497781d67d6f84a2292224f76e4a2ac05f1aeb05
@@ -408,6 +408,22 @@ module Ea
408
408
  [bend[0], target_y]]
409
409
  elsif intermediate.any?
410
410
  points = [source_point, *intermediate, target_point]
411
+ # Generalizations with the parent ABOVE keep their stored
412
+ # interior bends verbatim but re-dock the endpoints onto
413
+ # the box edges AT THE ADJACENT BEND's x (hand-verified:
414
+ # stored (542,975)(541,807)(543,807)(486,757) draws as
415
+ # (541,975)(541,807)(543,807)(543,757) — only the two
416
+ # endpoints move; the stale final x is replaced by the
417
+ # last bend's trunk x).
418
+ if connector.connector_type == "Generalization"
419
+ src_b = bounds_from_rect(source_placement)
420
+ tgt_b = bounds_from_rect(target_placement)
421
+ if tgt_b.y + tgt_b.height <= src_b.y
422
+ points[0] = [points[1][0].clamp(src_b.x, src_b.x + src_b.width), src_b.y]
423
+ points[-1] = [points[-2][0].clamp(tgt_b.x, tgt_b.x + tgt_b.width),
424
+ tgt_b.y + tgt_b.height]
425
+ end
426
+ end
411
427
  elsif source_port || target_port
412
428
  # Exact ports are known — the SX/SY bend heuristics in
413
429
  # sx_sy_ex_ey_waypoints would double-apply the offsets.
@@ -5,10 +5,13 @@ module Ea
5
5
  module EaEmitter
6
6
  module Element
7
7
  # Emits the horizontal divider path between header and
8
- # attribute compartments.
8
+ # attribute compartments. EA draws the divider from the box
9
+ # left edge to one pixel INSIDE the right edge (corpus-
10
+ # verified: right end = box_right - 1 in 190 of 237
11
+ # identity-matched dividers).
9
12
  class DividerRenderer
10
13
  def self.render(bounds, y:, stroke:, stroke_width:)
11
- %(<g style="stroke-width:#{stroke_width};stroke-linecap:round;stroke-linejoin:bevel; fill:#000000;fill-opacity:0.00; stroke:#{stroke}; stroke-opacity:1.00">\n <path d="M #{Canvas.coord(bounds.x)} #{Canvas.coord(y)} L #{Canvas.coord(bounds.x + bounds.width)} #{Canvas.coord(y)}" shape-rendering="auto"/>\n</g>)
14
+ %(<g style="stroke-width:#{stroke_width};stroke-linecap:round;stroke-linejoin:bevel; fill:#000000;fill-opacity:0.00; stroke:#{stroke}; stroke-opacity:1.00">\n <path d="M #{Canvas.coord(bounds.x)} #{Canvas.coord(y)} L #{Canvas.coord(bounds.x + bounds.width - 1)} #{Canvas.coord(y)}" shape-rendering="auto"/>\n</g>)
12
15
  end
13
16
  end
14
17
  end
data/lib/ea/version.rb CHANGED
@@ -4,5 +4,5 @@ module Ea
4
4
  # Gem release version. Extracted to its own file so the
5
5
  # `gem-release` tool's `gem bump` can find and update it via the
6
6
  # standard `lib/<gem>/version.rb` convention.
7
- VERSION = "0.6.25"
7
+ VERSION = "0.6.27"
8
8
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ea
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.25
4
+ version: 0.6.27
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-10-02 00:00:00.000000000 Z
11
+ date: 2026-10-03 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: lutaml-model