docx_templater 0.2.0 → 0.2.1

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
  SHA1:
3
- metadata.gz: efdfa9bf0b9f3f9b8a839b56285c729d8446230d
4
- data.tar.gz: 63bc8a8a664adb5509451bd4f690b70681c2bf54
3
+ metadata.gz: b43a06deeb1c7fc85db078e94dbbc6cf011b21f9
4
+ data.tar.gz: c858a7009aa1db27f3172b1db7e47dc1dc76289f
5
5
  SHA512:
6
- metadata.gz: ef3e7e1aff9c4beaef794f52718dd976079d4da493b60281d88dc483fb8d750ea81db07add5209665fbedb0078601a373067b24888f26dec16786b6e8f1bf22a
7
- data.tar.gz: 2cb665bd5b4878dce85a6b4e1bb3825469ec84c61785f1309fbe8a700020edc4944ec1d94cfb65c0f71e1f1447e5a04e2dcbe85db1b4d9d3da5a5113de728c5f
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.0
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
@@ -1,3 +0,0 @@
1
- �r-��\�E�������2
2
- ���I��������,,bյ�*.���*7Ө�E�m�kyΔP��B����_ ]K,h���p���8��5*J9�
3
- ��-<G0���B�U�$}I�7g�Zz�<������PAF�@�7�6+�(⢖����#���U����sJ�8�n���3��V���d��׭`^�`b6m�e��#����C������_��|y'ʅ���z�+:x{�_�*� S���T�l(�lծ���s���