docx_templater 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/docx/newline_replacer.rb +52 -0
- metadata +5 -24
- checksums.yaml.gz.sig +0 -0
- data.tar.gz.sig +0 -0
- metadata.gz.sig +0 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b43a06deeb1c7fc85db078e94dbbc6cf011b21f9
|
4
|
+
data.tar.gz: c858a7009aa1db27f3172b1db7e47dc1dc76289f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5c205caac126aa5734f2b4680d2ea60103ca32c4c06781efe06929763f6a0f23857dbae5b61b22c56aa72611922cfbefbc5009e5ce84ac5c19dae34d400774cc
|
7
|
+
data.tar.gz: 1d2b0ae7333262e32963bac061f7a2471c0034eeb72a649cbef5fef33e6ff933028dea001ec7c053cd270d9356bb7b9fc580707c6b3961274eb48c4528702be1
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module Docx
|
2
|
+
class NewlineReplacer
|
3
|
+
def initialize(doc)
|
4
|
+
@doc = doc
|
5
|
+
end
|
6
|
+
|
7
|
+
def replace
|
8
|
+
walk(doc.root)
|
9
|
+
end
|
10
|
+
|
11
|
+
private
|
12
|
+
attr_reader :doc
|
13
|
+
|
14
|
+
def walk(node)
|
15
|
+
node.children.each do |child|
|
16
|
+
replace_text_node_or_continue_walking(node, child)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
def replace_text_node_or_continue_walking(node, child)
|
21
|
+
if child.node_type == :text
|
22
|
+
replace_text_node(node, child)
|
23
|
+
else
|
24
|
+
walk(child)
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def replace_text_node(parent, node)
|
29
|
+
list_of_new_nodes(node).reverse.each do |new_node|
|
30
|
+
parent.insert_after(node, new_node)
|
31
|
+
end
|
32
|
+
node.remove
|
33
|
+
end
|
34
|
+
|
35
|
+
def line_break_node
|
36
|
+
br = REXML::Element.new('w:br')
|
37
|
+
end
|
38
|
+
|
39
|
+
def list_of_new_nodes(node)
|
40
|
+
node.to_s.split("\n")
|
41
|
+
.map{|str| str_to_text_node(str)}
|
42
|
+
.flat_map{ |txt| [txt, line_break_node] }[0..-2]
|
43
|
+
end
|
44
|
+
|
45
|
+
def str_to_text_node(str)
|
46
|
+
respect_whitespace = true
|
47
|
+
parent = nil
|
48
|
+
raw_text = true
|
49
|
+
REXML::Text.new(str, respect_whitespace, parent, raw_text)
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
metadata
CHANGED
@@ -1,35 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: docx_templater
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Paul Smith
|
8
8
|
- Michael Ries
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
|
-
cert_chain:
|
12
|
-
- |
|
13
|
-
-----BEGIN CERTIFICATE-----
|
14
|
-
MIIDMDCCAhigAwIBAgIBADANBgkqhkiG9w0BAQUFADA+MRAwDgYDVQQDDAdtaWNo
|
15
|
-
YWVsMRUwEwYKCZImiZPyLGQBGRYFcmllc2QxEzARBgoJkiaJk/IsZAEZFgNjb20w
|
16
|
-
HhcNMTMwMjA0MjM1MzMwWhcNMTQwMjA0MjM1MzMwWjA+MRAwDgYDVQQDDAdtaWNo
|
17
|
-
YWVsMRUwEwYKCZImiZPyLGQBGRYFcmllc2QxEzARBgoJkiaJk/IsZAEZFgNjb20w
|
18
|
-
ggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDFsVFKtZEYbY29KZTqudSh
|
19
|
-
lACK/+uIuIabCr3r2QTNgCrJutM+uSCXQBgO+yMb/Z2qPmW99FHwB4G0vBn7sJS5
|
20
|
-
4JjfaLTiplTUa6YHs2g5N8XRmzJvVK5woXhxSQOjZ3GIBtBhDHqTiGBvVKjyx4Kk
|
21
|
-
za6b3J2PfKkAxanaRgqnKerQ0CfIfdg8EBbO0SGhDYuDAn2gRD4T8Eqb9rWkW2RJ
|
22
|
-
ddg5pAejNni4dMhNexqbnxjLjQW06DQ2sXeNcZ2FtMy6ffqbLVZDFYLJ5eyWxTrq
|
23
|
-
P31tkHcB32HmP1f3VWW1gZ/xf9WH/hAvF5yB96Nbx670NVZd/yAJ+1xcUWtaKWl/
|
24
|
-
AgMBAAGjOTA3MAkGA1UdEwQCMAAwHQYDVR0OBBYEFGm8h9myjQDSVKZpu2t2ok49
|
25
|
-
e6utMAsGA1UdDwQEAwIEsDANBgkqhkiG9w0BAQUFAAOCAQEAIXeXWgmWJQUohHgR
|
26
|
-
51Y5wKFR6I2AIbhn6WlhRqSNRt7y3/y1wTq8JSb30Mys12XWGbpPyw5DXDtd7lMW
|
27
|
-
gtQ5dQ9AwKHv5a4YrEQ58DAup8NrbL/LPnK+fZl1PVprcOOYKe/KW7wyzvVI07tn
|
28
|
-
dBtr3mifmnE1goVcm1lR2oWi/O8XIGDNLZTRpuqKM7Tla/OXBKHvELcs+gK6jlwE
|
29
|
-
cEsfL281Yatwf7NyKwuhlnRFBKk6BETA5mCtpkV1/8qfya/aFNnvt8NcQ5YQYAME
|
30
|
-
vrPQMiMiGzuc0M1gLGdEtyiKW8J0zoHYI+bsx2kpijE4YWQrGHRUVCoFRfR6c5Nd
|
31
|
-
ZppDpQ==
|
32
|
-
-----END CERTIFICATE-----
|
11
|
+
cert_chain: []
|
33
12
|
date: 2012-08-03 00:00:00.000000000 Z
|
34
13
|
dependencies:
|
35
14
|
- !ruby/object:Gem::Dependency
|
@@ -98,10 +77,12 @@ files:
|
|
98
77
|
- lib/docx_templater.rb
|
99
78
|
- lib/docx/argument_combiner.rb
|
100
79
|
- lib/docx/document_replacer.rb
|
80
|
+
- lib/docx/newline_replacer.rb
|
101
81
|
- lib/docx/nodes_to_fix.rb
|
102
82
|
- lib/docx/placeholder_observer.rb
|
103
83
|
homepage: http://rubygems.org/gems/docx_templater
|
104
|
-
licenses:
|
84
|
+
licenses:
|
85
|
+
- MIT
|
105
86
|
metadata: {}
|
106
87
|
post_install_message:
|
107
88
|
rdoc_options: []
|
checksums.yaml.gz.sig
DELETED
Binary file
|
data.tar.gz.sig
DELETED
Binary file
|
metadata.gz.sig
DELETED