metanorma-utils 1.10.1 → 1.10.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: fe2af0c9b9521b3ae1953545fb434d08e45d028dd93c02fa509a8251e14e1c8e
4
- data.tar.gz: c551aa4d4c08dba83273ce0be945a171cfbbdc4a9a2c02fd09044b3c97a8b317
3
+ metadata.gz: 9f44541a6cf6b2c8a2ddb65412981c68516f37ebacda4bc7c1cec364c46a4530
4
+ data.tar.gz: e775ca9ed734be1acdbd7e6275143fe61f43e4403510eb768e552d89cfc084e2
5
5
  SHA512:
6
- metadata.gz: f6a23dde225425211a6ac35bb0e9b718189f0bc071eeef526a36ecebd3f8572f78addf7b93c4390374511642c360b6543e88e98e459ea1bb76849d077e008730
7
- data.tar.gz: b537b6828491a4cc6f495c462e0c0810a8b1fcd61effb326232980f07325fe70e2ddc6b9f3c09d60b1f8c6af250c38e21064617acd294f8fa3542e141d647f40
6
+ metadata.gz: b38ccf0cf8e92485d94d6af2389d32f2cc6fa9582167ee96d0a3a2388b8e4336cad2df1f9257bb97430a71ab1d4a030291b05a078e246bdab63d1d7e6061f3e3
7
+ data.tar.gz: 43a6945199cdc8f8303e97ebcce4e6c3508e517745247bbf362b7c334ed3e600223e3fd6cd0a8a98e06723d3efe158721f6ff4945c91a5ec3b965247c1a62e79
data/lib/utils/log.rb CHANGED
@@ -3,12 +3,17 @@ require "htmlentities"
3
3
  module Metanorma
4
4
  module Utils
5
5
  class Log
6
- attr_writer :xml
6
+ attr_writer :xml, :suppress_log
7
7
 
8
8
  def initialize
9
9
  @log = {}
10
10
  @c = HTMLEntities.new
11
11
  @mapid = {}
12
+ @suppress_log = { severity: 4, category: [] }
13
+ end
14
+
15
+ def to_ncname(tag)
16
+ ::Metanorma::Utils.to_ncname(tag)
12
17
  end
13
18
 
14
19
  def save_to(filename, dir = nil)
@@ -21,7 +26,7 @@ module Metanorma
21
26
 
22
27
  # severity: 0: abort; 1: serious; 2: not serious; 3: info only
23
28
  def add(category, loc, msg, severity: 2, display: true)
24
- @novalid and return
29
+ @novalid || suppress_log?(category, severity, msg) and return
25
30
  @log[category] ||= []
26
31
  item = create_entry(loc, msg, severity)
27
32
  @log[category] << item
@@ -38,6 +43,12 @@ module Metanorma
38
43
  end
39
44
  end
40
45
 
46
+ def suppress_log?(category, severity, msg)
47
+ category == "Relaton" && /^Fetching /.match?(msg) ||
48
+ @suppress_log[:severity] <= severity ||
49
+ @suppress_log[:category].include?(category)
50
+ end
51
+
41
52
  def suppress_display?(category, _loc, _msg, display)
42
53
  ["Metanorma XML Syntax", "Relaton"].include?(category) ||
43
54
  !display
@@ -127,9 +138,28 @@ module Metanorma
127
138
  .severity3 { font-style: italic; color: grey; }
128
139
  </style>
129
140
  </head><body><h1>#{file} errors</h1>
141
+ <ul>#{log_index}</ul>
130
142
  HTML
131
143
  end
132
144
 
145
+ def log_index
146
+ @log.each_with_object([]) do |(k, v), m|
147
+ m << <<~HTML
148
+ <li><p><b><a href="##{to_ncname(k)}">#{k}</a></b>: #{index_severities(v)}</p></li>
149
+ HTML
150
+ end.join("\n")
151
+ end
152
+
153
+ def index_severities(entries)
154
+ s = entries.each_with_object({}) do |e, m|
155
+ m[e[:severity]] ||= 0
156
+ m[e[:severity]] += 1
157
+ end.compact
158
+ s.keys.sort.map do |k|
159
+ "Severity #{k}: <b>#{s[k]}</b> errors"
160
+ end.join("; ")
161
+ end
162
+
133
163
  def write(file = nil)
134
164
  (!file && @filename) or save_to(file || "metanorma", nil)
135
165
  File.open(@filename, "w:UTF-8") do |f|
@@ -141,7 +171,7 @@ module Metanorma
141
171
 
142
172
  def write_key(file, key)
143
173
  file.puts <<~HTML
144
- <h2>#{key}</h2>\n<table border="1">
174
+ <h2 id="#{to_ncname(key)}">#{key}</h2>\n<table border="1">
145
175
  <thead><th width="5%">Line</th><th width="20%">ID</th>
146
176
  <th width="30%">Message</th><th width="40%">Context</th><th width="5%">Severity</th></thead>
147
177
  <tbody>
data/lib/utils/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Utils
3
- VERSION = "1.10.1".freeze
3
+ VERSION = "1.10.2".freeze
4
4
  end
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.10.1
4
+ version: 1.10.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-08-22 00:00:00.000000000 Z
11
+ date: 2024-09-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asciidoctor