metanorma-utils 1.2.6 → 1.2.9

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: a30a7e21f3ab7141f041bb44033a0524f059783e58a59ed52d967d3fff7afbb4
4
- data.tar.gz: e16183e549cb876c845c91b05c26862e6a02c3ab856bef6009aa1215830d997b
3
+ metadata.gz: 2d2ac1711efc0b167d21909878face2dd4787e79d9aa5141d58908c1a8904056
4
+ data.tar.gz: e632e154726172f7ce1d09b0450d9b0ad70274936070336e01d05baff77e21ad
5
5
  SHA512:
6
- metadata.gz: '0339ae03479662e9614f7dc81d05dc5ed6190305e5874bcdde14fad2022248808488960217ecd16c49ad7a538fde46aaf87297dde6d81b3775be37891c738246'
7
- data.tar.gz: 88c72c000dbef43b82d021b3c58157a13877cefcde662abed8a3a7967683654eae621dbf3c9eee3867ea8aed061252f2562f074168d721f7bd6f7b2b638458dc
6
+ metadata.gz: cc3c1a6c0482904f4bc9a5b94a1c8ac42e4da45961c7fc6bb4ccbe527ef51cda959707f4f4906ed6042cf30e9c1407eec071c04aa57b551a0c38a86a791a3c46
7
+ data.tar.gz: dc015326b8d670cddc54488b452f48c7cf922a3677520d579798c8b56497957e3d934222f3f065a4600ea7bc0dc860ae6a8fd3fd5b443f38f482a5e84a8ce6ed
@@ -10,23 +10,6 @@ on:
10
10
 
11
11
  jobs:
12
12
  rake:
13
- name: Test on Ruby ${{ matrix.ruby }} ${{ matrix.os }}
14
- runs-on: ${{ matrix.os }}
15
- continue-on-error: ${{ matrix.experimental }}
16
- strategy:
17
- fail-fast: false
18
- matrix:
19
- ruby: [ '3.0', '2.7', '2.6', '2.5' ]
20
- os: [ ubuntu-latest, windows-latest, macos-latest ]
21
- experimental: [ false ]
22
- steps:
23
- - uses: actions/checkout@v2
24
- with:
25
- submodules: true
26
-
27
- - uses: ruby/setup-ruby@v1
28
- with:
29
- ruby-version: ${{ matrix.ruby }}
30
- bundler-cache: true
31
-
32
- - run: bundle exec rake
13
+ uses: metanorma/metanorma-build-scripts/.github/workflows/generic-rake.yml@main
14
+ secrets:
15
+ pat_token: ${{ secrets.METANORMA_CI_PAT_TOKEN }}
data/lib/utils/image.rb CHANGED
@@ -115,8 +115,10 @@ module Metanorma
115
115
  svg.xpath("//m:style", "m" => SVG_NS).each do |s|
116
116
  c = s.children.to_xml
117
117
  ids.each do |i|
118
- c = c.gsub(%r[##{i}\b], sprintf("#%s_%09d", i, idx))
119
- .gsub(%r(\[id\s*=\s*['"]?#{i}['"]?\]), sprintf("[id='%s_%09d']", i, idx))
118
+ c = c.gsub(%r[##{i}\b],
119
+ sprintf("#%<id>s_%<idx>09d", id: i, idx: idx))
120
+ .gsub(%r(\[id\s*=\s*['"]?#{i}['"]?\]),
121
+ sprintf("[id='%<id>s_%<idx>09d']", id: i, idx: idx))
120
122
  end
121
123
  s.children = c
122
124
  end
data/lib/utils/log.rb CHANGED
@@ -29,7 +29,7 @@ module Metanorma
29
29
  (!node.respond_to?(:level) || node.level.positive?) &&
30
30
  (!node.respond_to?(:context) || node.context != :section)
31
31
  node = node.parent
32
- return "Section: #{node.title}" if node&.respond_to?(:context) &&
32
+ return "Section: #{node.title}" if node.respond_to?(:context) &&
33
33
  node&.context == :section
34
34
  end
35
35
  "??"
@@ -50,13 +50,19 @@ module Metanorma
50
50
  @log.each_key do |key|
51
51
  f.puts "\n\n== #{key}\n\n"
52
52
  @log[key].sort_by { |a| a[:location] }.each do |n|
53
- loc = n[:location] ? "(#{n[:location]}): " : ""
54
- f.puts "#{loc}#{n[:message]}"
55
- n[:context]&.split(/\n/)&.first(5)&.each { |l| f.puts "\t#{l}" }
53
+ write1(f, n)
56
54
  end
57
55
  end
58
56
  end
59
57
  end
58
+
59
+ def write1(file, entry)
60
+ loc = entry[:location] ? "(#{entry[:location]}): " : ""
61
+ file.puts "#{loc}#{entry[:message]}"
62
+ entry[:context]&.split(/\n/)&.first(5)&.each do |l|
63
+ file.puts "\t#{l}"
64
+ end
65
+ end
60
66
  end
61
67
  end
62
68
  end
data/lib/utils/main.rb CHANGED
@@ -50,9 +50,13 @@ module Metanorma
50
50
 
51
51
  # TODO needs internationalisation
52
52
  def smartformat(text)
53
- text.gsub(/ --? /, "&#8201;&#8212;&#8201;")
54
- .gsub(/--/, "&#8212;").smart_format.gsub(/</, "&lt;")
55
- .gsub(/>/, "&gt;")
53
+ HTMLEntities.new.encode(
54
+ HTMLEntities.new.decode(
55
+ text.gsub(/ --? /, "&#8201;&#8212;&#8201;")
56
+ .gsub(/--/, "&#8212;"),
57
+ )
58
+ .smart_format, :basic
59
+ )
56
60
  end
57
61
 
58
62
  def endash_date(elem)
@@ -68,10 +72,8 @@ module Metanorma
68
72
  def set_nested_value(hash, keys, new_val)
69
73
  key = keys[0]
70
74
  if keys.length == 1
71
- hash[key] = if hash[key].is_a?(Array)
72
- (hash[key] << new_val)
73
- else
74
- hash[key].nil? ? new_val : [hash[key], new_val]
75
+ hash[key] = if hash[key].is_a?(Array) then (hash[key] << new_val)
76
+ else hash[key].nil? ? new_val : [hash[key], new_val]
75
77
  end
76
78
  elsif hash[key].is_a?(Array)
77
79
  hash[key][-1] = {} if !hash[key].empty? && hash[key][-1].nil?
@@ -118,6 +120,26 @@ module Metanorma
118
120
  end
119
121
  end
120
122
 
123
+ def default_script(lang)
124
+ case lang
125
+ when "ar", "fa" then "Arab"
126
+ when "ur" then "Aran"
127
+ when "ru", "bg" then "Cyrl"
128
+ when "hi" then "Deva"
129
+ when "el" then "Grek"
130
+ when "zh" then "Hans"
131
+ when "ko" then "Kore"
132
+ when "he" then "Hebr"
133
+ when "ja" then "Jpan"
134
+ else
135
+ "Latn"
136
+ end
137
+ end
138
+
139
+ def rtl_script?(script)
140
+ %w(Arab Aran Hebr).include? script
141
+ end
142
+
121
143
  # not currently used
122
144
  def flatten_rawtext_lines(node, result)
123
145
  node.lines.each do |x|
data/lib/utils/version.rb CHANGED
@@ -1,5 +1,5 @@
1
1
  module Metanorma
2
2
  module Utils
3
- VERSION = "1.2.6".freeze
3
+ VERSION = "1.2.9".freeze
4
4
  end
5
5
  end
@@ -24,25 +24,25 @@ Gem::Specification.new do |spec|
24
24
  spec.test_files = `git ls-files -- {spec}/*`.split("\n")
25
25
  spec.required_ruby_version = Gem::Requirement.new(">= 2.5.0")
26
26
 
27
- spec.add_dependency "asciidoctor", "~> 2.0.0"
27
+ spec.add_dependency "asciidoctor", ">= 2"
28
28
  spec.add_dependency "concurrent-ruby"
29
+ spec.add_dependency "htmlentities", "~> 4.3.4"
29
30
  spec.add_dependency "marcel", "~> 1.0.0"
30
31
  spec.add_dependency "mime-types"
31
- spec.add_dependency "nokogiri", "~> 1.11"
32
+ spec.add_dependency "nokogiri", ">= 1.11"
32
33
  spec.add_dependency "sterile", "~> 1.0.14"
33
34
  spec.add_dependency "uuidtools"
34
- spec.add_dependency "htmlentities", "~> 4.3.4"
35
35
 
36
- spec.add_development_dependency "byebug"
36
+ spec.add_development_dependency "debug"
37
37
  spec.add_development_dependency "equivalent-xml", "~> 0.6"
38
38
  spec.add_development_dependency "guard", "~> 2.14"
39
39
  spec.add_development_dependency "guard-rspec", "~> 4.7"
40
- spec.add_development_dependency "metanorma-standoc", "~> 1.10"
40
+ spec.add_development_dependency "metanorma-standoc", "~> 2.0"
41
41
  spec.add_development_dependency "rake", "~> 13.0"
42
42
  spec.add_development_dependency "rspec", "~> 3.6"
43
43
  spec.add_development_dependency "rubocop", "~> 1.5.2"
44
44
  spec.add_development_dependency "simplecov", "~> 0.15"
45
45
  spec.add_development_dependency "timecop", "~> 0.9"
46
- spec.add_development_dependency "vcr", "~> 5.0.0"
46
+ spec.add_development_dependency "vcr", "~> 6.1.0"
47
47
  spec.add_development_dependency "webmock"
48
48
  end
data/spec/utils_spec.rb CHANGED
@@ -7,8 +7,10 @@ RSpec.describe Metanorma::Utils do
7
7
  end
8
8
 
9
9
  it "capitalises" do
10
- expect(Metanorma::Utils.strict_capitalize_phrase("ABC def gHI")).to eq "ABC Def GHI"
11
- expect(Metanorma::Utils.strict_capitalize_first("aBC def gHI")).to eq "ABC def gHI"
10
+ expect(Metanorma::Utils.strict_capitalize_phrase("ABC def gHI"))
11
+ .to eq "ABC Def GHI"
12
+ expect(Metanorma::Utils.strict_capitalize_first("aBC def gHI"))
13
+ .to eq "ABC def gHI"
12
14
  end
13
15
 
14
16
  it "converts OS-specific external path" do
@@ -29,12 +31,13 @@ RSpec.describe Metanorma::Utils do
29
31
  end
30
32
 
31
33
  it "sets metanorma IDs if not provided" do
34
+ uuid = /^_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/
32
35
  expect(Metanorma::Utils.anchor_or_uuid)
33
- .to match (/^_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/)
36
+ .to match (uuid)
34
37
  expect(Metanorma::Utils.anchor_or_uuid(Dummy.new(nil)))
35
- .to match (/^_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/)
38
+ .to match (uuid)
36
39
  expect(Metanorma::Utils.anchor_or_uuid(Dummy.new("")))
37
- .to match (/^_[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/)
40
+ .to match (uuid)
38
41
  expect(Metanorma::Utils.anchor_or_uuid(Dummy.new("A"))).to eq "A"
39
42
  end
40
43
 
@@ -55,7 +58,7 @@ RSpec.describe Metanorma::Utils do
55
58
 
56
59
  it "applies smart formatting" do
57
60
  expect(Metanorma::Utils.smartformat("A - B A -- B A--B '80s '80' <A>"))
58
- .to eq "A&#8201;&#8212;&#8201;B A&#8201;&#8212;&#8201;B A&#8212;B ’80s ‘80’ &lt;A&gt;"
61
+ .to eq "A — B A — B AB ’80s ‘80’ &lt;A&gt;"
59
62
  end
60
63
 
61
64
  it "applies en-dash normalisation" do
@@ -98,6 +101,14 @@ RSpec.describe Metanorma::Utils do
98
101
  OUTPUT
99
102
  end
100
103
 
104
+ it "maps languages to scripts" do
105
+ expect(Metanorma::Utils.default_script("hi")).to eq "Deva"
106
+ expect(Metanorma::Utils.rtl_script?(Metanorma::Utils.default_script("el")))
107
+ .to eq false
108
+ expect(Metanorma::Utils.rtl_script?(Metanorma::Utils.default_script("fa")))
109
+ .to eq true
110
+ end
111
+
101
112
  it "rewrites SVGs" do
102
113
  FileUtils.cp("spec/fixtures/action_schemaexpg1.svg",
103
114
  "action_schemaexpg1.svg")
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: metanorma-utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.6
4
+ version: 1.2.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-09-27 00:00:00.000000000 Z
11
+ date: 2022-05-11 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: asciidoctor
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: 2.0.0
19
+ version: '2'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
- version: 2.0.0
26
+ version: '2'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: concurrent-ruby
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -38,6 +38,20 @@ dependencies:
38
38
  - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: htmlentities
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - "~>"
46
+ - !ruby/object:Gem::Version
47
+ version: 4.3.4
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - "~>"
53
+ - !ruby/object:Gem::Version
54
+ version: 4.3.4
41
55
  - !ruby/object:Gem::Dependency
42
56
  name: marcel
43
57
  requirement: !ruby/object:Gem::Requirement
@@ -70,14 +84,14 @@ dependencies:
70
84
  name: nokogiri
71
85
  requirement: !ruby/object:Gem::Requirement
72
86
  requirements:
73
- - - "~>"
87
+ - - ">="
74
88
  - !ruby/object:Gem::Version
75
89
  version: '1.11'
76
90
  type: :runtime
77
91
  prerelease: false
78
92
  version_requirements: !ruby/object:Gem::Requirement
79
93
  requirements:
80
- - - "~>"
94
+ - - ">="
81
95
  - !ruby/object:Gem::Version
82
96
  version: '1.11'
83
97
  - !ruby/object:Gem::Dependency
@@ -109,21 +123,7 @@ dependencies:
109
123
  - !ruby/object:Gem::Version
110
124
  version: '0'
111
125
  - !ruby/object:Gem::Dependency
112
- name: htmlentities
113
- requirement: !ruby/object:Gem::Requirement
114
- requirements:
115
- - - "~>"
116
- - !ruby/object:Gem::Version
117
- version: 4.3.4
118
- type: :runtime
119
- prerelease: false
120
- version_requirements: !ruby/object:Gem::Requirement
121
- requirements:
122
- - - "~>"
123
- - !ruby/object:Gem::Version
124
- version: 4.3.4
125
- - !ruby/object:Gem::Dependency
126
- name: byebug
126
+ name: debug
127
127
  requirement: !ruby/object:Gem::Requirement
128
128
  requirements:
129
129
  - - ">="
@@ -184,14 +184,14 @@ dependencies:
184
184
  requirements:
185
185
  - - "~>"
186
186
  - !ruby/object:Gem::Version
187
- version: '1.10'
187
+ version: '2.0'
188
188
  type: :development
189
189
  prerelease: false
190
190
  version_requirements: !ruby/object:Gem::Requirement
191
191
  requirements:
192
192
  - - "~>"
193
193
  - !ruby/object:Gem::Version
194
- version: '1.10'
194
+ version: '2.0'
195
195
  - !ruby/object:Gem::Dependency
196
196
  name: rake
197
197
  requirement: !ruby/object:Gem::Requirement
@@ -268,14 +268,14 @@ dependencies:
268
268
  requirements:
269
269
  - - "~>"
270
270
  - !ruby/object:Gem::Version
271
- version: 5.0.0
271
+ version: 6.1.0
272
272
  type: :development
273
273
  prerelease: false
274
274
  version_requirements: !ruby/object:Gem::Requirement
275
275
  requirements:
276
276
  - - "~>"
277
277
  - !ruby/object:Gem::Version
278
- version: 5.0.0
278
+ version: 6.1.0
279
279
  - !ruby/object:Gem::Dependency
280
280
  name: webmock
281
281
  requirement: !ruby/object:Gem::Requirement
@@ -339,7 +339,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
339
339
  - !ruby/object:Gem::Version
340
340
  version: '0'
341
341
  requirements: []
342
- rubygems_version: 3.1.4
342
+ rubygems_version: 3.3.9
343
343
  signing_key:
344
344
  specification_version: 4
345
345
  summary: metanorma-utils