diagrammatron 0.6.0 → 0.6.1

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: 6d1116130a55f28418c67f0522150a80ab39e275e0a473518052758a3b6959c7
4
- data.tar.gz: 16447cd371aa60d1834356d7f712356400e2ae649124fa46ee6cef683072bc86
3
+ metadata.gz: ec55e1ae9f1ad84dd5ee189215011bb6e84fde797d229d7c2965294c4330004a
4
+ data.tar.gz: bf3c4dd72c1ba1d60d978309a00bfeef09c8e6b55ab449d56b1d6bd9ee48af31
5
5
  SHA512:
6
- metadata.gz: 07c0d08e9244fcb9f05910a0513c9efe33e2dab58fa3860d7b168d06e53c8fbda3261aeca58258ec5e00f48568495cec99f5106bedefabe5d04ba59e7b80eaff
7
- data.tar.gz: fbe5b2147cb128c398bdae0ca4e3afc681683947601d0f2b0034dfa26b253cc26be3328c3c526dcc17ef00f2024e9870dd345f048f093e194ec1b56c1c76f4eb
6
+ metadata.gz: b2afa0026ce65f039d1db74bffe5f9dd3d6e85ce8879760d66c44260fac26b5a6f2876af3135ef3ad5086f898f505d9da2834a742531a0645cf9b28952b97136
7
+ data.tar.gz: eb2f854603ca55a6d1bb14c73e7bc55ab319bacb894fe605cb1264a0fd1a2b1494e5a4abf8987a307a1088f1b7b7da67cbd8b4e5fec0fde7a0e3e31fe43a1f7d
data/LICENSE.txt CHANGED
@@ -1,4 +1,4 @@
1
- Copyright (c) 2021-2023 Ismo Kärkkäinen
1
+ Copyright (c) 2021-2024 Ismo Kärkkäinen
2
2
 
3
3
  The Universal Permissive License (UPL), Version 1.0
4
4
 
@@ -153,6 +153,7 @@ def segment(x0, y0, x1, y1)
153
153
  Segment.new(vert, cc, range, 0, [false, false], 0)
154
154
  end
155
155
 
156
+ # side_index is 0 up, 1 right, 2 down, 3 left.
156
157
  Connection = Struct.new(:node_index, :side_index)
157
158
 
158
159
  $paths = {}
@@ -576,6 +577,7 @@ def place_edges(work)
576
577
  $insignificant = 0.1 / (splits.values.max + 1)
577
578
  splits = nil
578
579
 
580
+ # Ordering of segments in gaps between nodes.
579
581
  gaps = {
580
582
  false => {},
581
583
  true => {}
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  # frozen_string_literal: true
3
3
 
4
- # Copyright © 2021-2023 Ismo Kärkkäinen
4
+ # Copyright © 2021-2024 Ismo Kärkkäinen
5
5
  # Licensed under Universal Permissive License. See LICENSE.txt.
6
6
 
7
7
  require_relative '../lib/common'
@@ -9,12 +9,27 @@ require 'optparse'
9
9
  require 'set'
10
10
 
11
11
 
12
+ def horizontal(work)
13
+ count = {}
14
+ work[:nodes].each_index do |k|
15
+ node = work[:nodes][k]
16
+ c = count.fetch(node[:yo], 0)
17
+ node[:xo] = c
18
+ node[:yo] = 0 unless node.key?(:yo)
19
+ node[:sid] = 0
20
+ count[node[:yo]] = c + 1
21
+ end
22
+ end
23
+
12
24
  def vertical(work)
25
+ count = {}
13
26
  work[:nodes].each_index do |k|
14
27
  node = work[:nodes][k]
15
- node[:xo] = 0
16
- node[:yo] = k
28
+ c = count.fetch(node[:xo], 0)
29
+ node[:xo] = 0 unless node.key?(:xo)
30
+ node[:yo] = c
17
31
  node[:sid] = 0
32
+ count[node[:xo]] = c + 1
18
33
  end
19
34
  end
20
35
 
@@ -269,7 +284,8 @@ end
269
284
 
270
285
  $algorithms = {
271
286
  'pathlength' => method(:pathlength2coordinates),
272
- 'vertical' => method(:vertical)
287
+ 'vertical' => method(:vertical),
288
+ 'horizontal' => method(:horizontal)
273
289
  }
274
290
 
275
291
  def work_copy(src, quiet)
@@ -296,6 +312,11 @@ def work_copy(src, quiet)
296
312
  nodes.each_index do |k|
297
313
  work[:nodes].push({ idx: k })
298
314
  node = nodes[k]
315
+ # Retain xo, yo if present.
316
+ %i[xo yo].each do |s|
317
+ sk = s.to_s
318
+ work[:nodes].last[s] = node[sk] if node.key?(sk)
319
+ end
299
320
  label = node['label']
300
321
  if label2idx.key?(label) && edge_nodes.member?(label)
301
322
  aargh "Edge-referred label used twice: #{label}"
@@ -361,7 +382,7 @@ def main
361
382
  opts.on('-h', '--help', 'Print this help and exit.') do
362
383
  $stdout.puts opts
363
384
  $stdout.puts %(
364
- Algorithm names are: #{$algorithms.keys.sort.join(' ')}
385
+ Algorithm names are: #{$algorithms.keys.sort!.join(' ')}
365
386
 
366
387
  Input YAML file schema is returned by:
367
388
  diagrammatron-schema #{input_schema}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: diagrammatron
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.6.0
4
+ version: 0.6.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ismo Kärkkäinen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-28 00:00:00.000000000 Z
11
+ date: 2024-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json_schemer