isodoc 2.5.6 → 2.5.8

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7c7354811120c945f0a478b34503c89e841a49a8cffc6655e0be43f5b565ad35
4
- data.tar.gz: 0f9dae634d16cbf5521eb048cbf4ff6de3d2e9d48d2284322183f598df7fc19b
3
+ metadata.gz: 69483536ae8b9bb773ddbb3e3d38660784c9e01ad1eb810ecfc045b721bcd3c3
4
+ data.tar.gz: 43212277b0d8b7fec3551bf234ff31288eaf2f1fe63e494ed82ab7438d3a8c3c
5
5
  SHA512:
6
- metadata.gz: 98e9b5625dfe9ab222ba00b03b02216e9f3ee00affa6e655c58be6acbeedb8bb05663b7d6832fbc94a76a8da02bc732a9f1b2c309532e968089990b1f50fe6ba
7
- data.tar.gz: 756d64e9edbf24c6ba0ae909421e0a7c0a7f916fff8b5f6622d5792c9952728f05c8d2854888a559d3c6b36aa4a54d394ce7cfeded705fc168c0293240ea04b9
6
+ metadata.gz: 230b47645cebcda1c1d56df140a8a1aced48807e0188270bbc25034c91ea3b612cbd004000bef00a7e81ca0de57b63463665d5679cb5de3ef14ed264ed971f46
7
+ data.tar.gz: 50f2cf4ca7215a501b9999601aec898b4c4006f468ceba9481b9ad5d7820481650dd21ddb68da3fe632571e4bde708a5d1877598b20ba484ceff72c768672247
@@ -30,33 +30,38 @@ module IsoDoc
30
30
 
31
31
  docxml.xpath("//td | //th").each do |d|
32
32
  d.traverse do |n|
33
- next unless n.text?
34
-
35
- n.replace(HTMLEntities.new.encode(
36
- break_up_long_strings(n.text),
37
- ))
33
+ n.text? or next
34
+ ret = break_up_long_str(n.text)
35
+ n.content = ret
38
36
  end
39
37
  end
40
38
  end
41
39
 
42
- def break_up_long_strings(text)
43
- return text if /^\s*$/.match?(text)
40
+ LONGSTR_THRESHOLD = 10
41
+ LONGSTR_NOPUNCT = 2
44
42
 
43
+ def break_up_long_str(text)
44
+ /^\s*$/.match?(text) and return text
45
45
  text.split(/(?=\s)/).map do |w|
46
- if /^\s*$/.match(text) || (w.size < 30) then w
46
+ if /^\s*$/.match(text) || (w.size < LONGSTR_THRESHOLD) then w
47
47
  else
48
- w.scan(/.{,30}/).map do |w1|
49
- w1.size < 30 ? w1 : break_up_long_strings1(w1)
48
+ w.scan(/.{,#{LONGSTR_THRESHOLD}}/o).map.with_index do |w1, i|
49
+ w1.size < LONGSTR_THRESHOLD ? w1 : break_up_long_str1(w1, i + 1)
50
50
  end.join
51
51
  end
52
52
  end.join
53
53
  end
54
54
 
55
- def break_up_long_strings1(text)
56
- s = text.split(%r{(?<=[,.?+;/=])})
57
- if s.size == 1 then "#{text} "
55
+ # break on punct every LONGSTRING_THRESHOLD chars
56
+ # break regardless every LONGSTRING_THRESHOLD * LONGSTR_NOPUNCT
57
+ def break_up_long_str1(text, iteration)
58
+ s = text.split(%r{(?<=[,.?+;/=(\[])})
59
+ if s.size == 1
60
+ (iteration % LONGSTR_NOPUNCT).zero? and
61
+ text += "\u200b"
62
+ text
58
63
  else
59
- s[-1] = " #{s[-1]}"
64
+ s[-1] = "\u200b#{s[-1]}"
60
65
  s.join
61
66
  end
62
67
  end
@@ -73,9 +73,8 @@ module IsoDoc
73
73
 
74
74
  def dt_parse(dterm, term)
75
75
  if dterm.elements.empty?
76
- # term.p **attr_code(class: note? ? "Note" : nil) do |p|
77
76
  term.p do |p|
78
- p << dterm.text
77
+ dterm.children.each { |n| parse(n, p) }
79
78
  end
80
79
  else
81
80
  dterm.children.each { |n| parse(n, term) }
@@ -102,8 +102,6 @@ module IsoDoc
102
102
  end
103
103
  end
104
104
 
105
- def table_long_strings_cleanup(docxml); end
106
-
107
105
  def table_attrs(node)
108
106
  ret = super
109
107
  node.at(ns("./colgroup")) and ret[:style] += "table-layout:fixed;"
@@ -1,3 +1,3 @@
1
1
  module IsoDoc
2
- VERSION = "2.5.6".freeze
2
+ VERSION = "2.5.8".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: isodoc
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.5.6
4
+ version: 2.5.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-06-05 00:00:00.000000000 Z
11
+ date: 2023-07-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: html2doc