lm_docstache 3.0.2 → 3.0.3
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 +4 -4
- data/CHANGELOG.md +8 -1
- data/lib/lm_docstache/document.rb +4 -0
- data/lib/lm_docstache/hide_custom_tags.rb +8 -8
- data/lib/lm_docstache/version.rb +1 -1
- data/spec/integration_spec.rb +26 -0
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 233db6459ecd3c23c9d566659730ce1e4f2fcfb11b0ad4054dd83631375587ec
|
4
|
+
data.tar.gz: 344689f276e851c835b550f6197cc11dc2c698842b57efc29fc981fbb0026238
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 342e46c6da0b34131af9cabd468fcae78e1dd272a8e08f4b395abfa2343f51b592d88ada3885c0c7db13d1ef89b66df30f49ff7237c1fba6f61356d5130e3e52
|
7
|
+
data.tar.gz: 03f3a44bf4a93b5d066cb141fabb9a2d6317940f9705213183ece98cdc2861bb41e7a0d12f399b80d4f6217f92be72bf96ca62a91ddbc790d9ccb57f4bf8d25c
|
data/CHANGELOG.md
CHANGED
@@ -1,12 +1,19 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
+
## 3.0.3
|
4
|
+
|
5
|
+
### Bugfix
|
6
|
+
|
7
|
+
* Hide custom tags arguments was pushing blocks tags to end of paragraph. There are cases this approach
|
8
|
+
doesn't work. I changed to be an ordered replacement when we match hide tags.
|
9
|
+
* Avoid to merge Tab tags on fix errors methods. This was causing unexpected document changes.
|
10
|
+
|
3
11
|
## 3.0.2
|
4
12
|
|
5
13
|
### Bugfix
|
6
14
|
|
7
15
|
* Fix replacing tags related to hidden custom tags regexp formats. E.g. tab characters.
|
8
16
|
|
9
|
-
|
10
17
|
## 3.0.1
|
11
18
|
|
12
19
|
### Bugfix
|
@@ -138,6 +138,10 @@ module LMDocstache
|
|
138
138
|
previous_text_node = previous_run_node.at_css('w|t')
|
139
139
|
current_text_node = run_node.at_css('w|t')
|
140
140
|
|
141
|
+
# avoid to merge blocks with tabs
|
142
|
+
next if run_node.at_css('w|tab')
|
143
|
+
next if previous_run_node.at_css('w|tab')
|
144
|
+
|
141
145
|
next if style_html != previous_style_html
|
142
146
|
next if current_text_node.nil? || previous_text_node.nil?
|
143
147
|
|
@@ -30,15 +30,15 @@ module LMDocstache
|
|
30
30
|
while run_node = run_nodes.shift
|
31
31
|
next unless run_node.at_css('w|t')
|
32
32
|
next unless run_node.text =~ full_pattern
|
33
|
-
|
34
|
-
|
35
|
-
tag_contents = split_tag_content(remainder_run_node.text, full_pattern)
|
33
|
+
tag_contents = split_tag_content(run_node.text, full_pattern)
|
34
|
+
replacement_nodes = []
|
36
35
|
tag_contents[:content_list].each_with_index do |content, idx|
|
36
|
+
remainder_run_node = run_node.clone
|
37
37
|
replace_content(remainder_run_node, content)
|
38
38
|
matched_tag = tag_contents[:matched_tags][idx]
|
39
|
-
|
39
|
+
replacement_nodes << remainder_run_node
|
40
40
|
if matched_tag
|
41
|
-
run_node_with_match =
|
41
|
+
run_node_with_match = run_node.clone
|
42
42
|
replace_style(run_node_with_match)
|
43
43
|
matched_content = matched_tag
|
44
44
|
if value
|
@@ -47,11 +47,11 @@ module LMDocstache
|
|
47
47
|
value.to_s
|
48
48
|
end
|
49
49
|
replace_content(run_node_with_match, matched_content)
|
50
|
-
|
50
|
+
replacement_nodes << run_node_with_match
|
51
51
|
end
|
52
|
-
paragraph << Nokogiri::XML::NodeSet.new(document, nodes_list)
|
53
|
-
remainder_run_node = remainder_run_node.clone
|
54
52
|
end
|
53
|
+
run_node.add_next_sibling(Nokogiri::XML::NodeSet.new(document, replacement_nodes))
|
54
|
+
run_node.unlink
|
55
55
|
end
|
56
56
|
end
|
57
57
|
end
|
data/lib/lm_docstache/version.rb
CHANGED
data/spec/integration_spec.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'spec_helper'
|
2
|
+
require 'securerandom'
|
2
3
|
require 'active_support/core_ext/object/blank.rb'
|
3
4
|
|
4
5
|
module LMDocstache
|
@@ -139,5 +140,30 @@ describe 'integration test', integration: true do
|
|
139
140
|
expect(output).to include('<w:t xml:space="preserve">Test Multiple text in the same line </w:t>')
|
140
141
|
end
|
141
142
|
end
|
143
|
+
|
144
|
+
context "yoooo" do
|
145
|
+
let(:input_file) { "#{base_path}/multi_o.docx" }
|
146
|
+
let(:render_options) {
|
147
|
+
{
|
148
|
+
special_variable_replacements: { "(date|sig|sigfirm|text|check|initial|initials)\\|(req|noreq)\\|(.+?)" => false }.freeze,
|
149
|
+
hide_custom_tags: ['(?:sig|sigfirm|date|check|text|initial)\|(?:req|noreq)\|.+?']
|
150
|
+
}
|
151
|
+
}
|
152
|
+
let(:document) { LMDocstache::Document.new(input_file) }
|
153
|
+
|
154
|
+
it 'should have content replacement aligned with hide custom tags' do
|
155
|
+
doc = document
|
156
|
+
doc.fix_errors
|
157
|
+
new_file_path = "#{Time.now.to_i}-#{SecureRandom.uuid}.docx"
|
158
|
+
n = doc.render_file(new_file_path, { 'full_name' => 'fred document01' }, render_options)
|
159
|
+
noko = doc.render_xml({ 'full_name' => 'fred document01' }, render_options)
|
160
|
+
output = noko['word/document.xml'].to_xml
|
161
|
+
#puts output
|
162
|
+
#doc.render_file(new_file_path, { 'full_name' => 'fred document01' }, render_options)
|
163
|
+
#noko = doc.render_xml({ 'full_name' => 'fred document01' }, render_options)
|
164
|
+
#output = noko['word/document.xml'].to_xml
|
165
|
+
#puts output
|
166
|
+
end
|
167
|
+
end
|
142
168
|
end
|
143
169
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: lm_docstache
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Roey Chasman
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2021-04-
|
15
|
+
date: 2021-04-27 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: nokogiri
|