sablon 0.0.14 → 0.0.15

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: a9f30b8c71f8068b669af374a708a63039162acc
4
- data.tar.gz: 8919f43c274ae3658713f1e22cb1b74592dfe303
3
+ metadata.gz: 5c89f16491fe648434fab084af48d3d0892cfe60
4
+ data.tar.gz: 3676259e88c5f7a1b9daa6e1deddc1f01d5f2d43
5
5
  SHA512:
6
- metadata.gz: 3c415aeaf878d091a3e76d582df066418749b55939974e1fc42847b38ab7fcefe8f7133e58e2e3dc6f8cafdafc3473998f9f9b27d6105c80d452c882ac1c066e
7
- data.tar.gz: 3f5cc76c24c67ec9eb359110fbb96d2bed070ba8dfc3eacb10a5c27d33ed3c75f9778ecf283efc30521b65ef74352da6d21ca06780dc60fd7b35ca65474adb31
6
+ metadata.gz: e16c0f9ff697f9ec35a724c5787c9e68070dd7be4b30f290cd14d8a3952d072c4b173acbe2a6f03c82933d5ef230c18d47cfe777e383477bab489992fe431ee8
7
+ data.tar.gz: d9b4409319a19998fc719d00319676ba1cd5e409d04e42471d7b20704ef4597f848d63a59f09249bd893a17fff52b02d0f21d3b5f52e2dde753b95f1c9638e6a
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- sablon (0.0.14)
4
+ sablon (0.0.15)
5
5
  nokogiri (>= 1.6.0)
6
6
  redcarpet (>= 3.2)
7
7
  rubyzip (>= 1.1)
@@ -10,11 +10,11 @@ GEM
10
10
  remote: https://rubygems.org/
11
11
  specs:
12
12
  mini_portile (0.6.2)
13
- minitest (5.5.1)
13
+ minitest (5.7.0)
14
14
  nokogiri (1.6.6.2)
15
15
  mini_portile (~> 0.6.0)
16
16
  rake (10.4.2)
17
- redcarpet (3.2.2)
17
+ redcarpet (3.3.2)
18
18
  rubyzip (1.1.7)
19
19
  xml-simple (1.1.5)
20
20
 
@@ -27,3 +27,6 @@ DEPENDENCIES
27
27
  rake (~> 10.0)
28
28
  sablon!
29
29
  xml-simple
30
+
31
+ BUNDLED WITH
32
+ 1.10.6
@@ -3,6 +3,11 @@ module Sablon
3
3
  class MailMerge
4
4
  class MergeField
5
5
  KEY_PATTERN = /^\s*MERGEFIELD\s+([^ ]+)\s+\\\*\s+MERGEFORMAT\s*$/
6
+
7
+ def valid?
8
+ expression
9
+ end
10
+
6
11
  def expression
7
12
  $1 if @raw_expression =~ KEY_PATTERN
8
13
  end
@@ -22,6 +27,10 @@ module Sablon
22
27
  @raw_expression = @nodes.flat_map {|n| n.search(".//w:instrText").map(&:content) }.join
23
28
  end
24
29
 
30
+ def valid?
31
+ separate_node && expression
32
+ end
33
+
25
34
  def replace(content)
26
35
  replace_field_display(pattern_node, content)
27
36
  (@nodes - [pattern_node]).each(&:remove)
@@ -65,7 +74,7 @@ module Sablon
65
74
  elsif node.name == "fldChar" && node["w:fldCharType"] == "begin"
66
75
  field = build_complex_field(node)
67
76
  end
68
- fields << field if field && field.expression
77
+ fields << field if field && field.valid?
69
78
  end
70
79
  fields
71
80
  end
@@ -1,3 +1,3 @@
1
1
  module Sablon
2
- VERSION = "0.0.14"
2
+ VERSION = "0.0.15"
3
3
  end
@@ -119,6 +119,33 @@ xml
119
119
  end
120
120
  end
121
121
 
122
+ class InvalidFldCharTest < Sablon::TestCase
123
+ include SharedBehavior
124
+
125
+ def test_is_ignored
126
+ assert_equal [], fields.map(&:class)
127
+ end
128
+
129
+ private
130
+ def xml
131
+ xml = <<-xml.strip
132
+ <w:p><w:r w:rsidR="00BE47B1" w:rsidRPr="00BE47B1">
133
+ <w:rPr><w:b/></w:rPr>
134
+ <w:fldChar w:fldCharType="begin"/>
135
+ </w:r>
136
+ <w:r w:rsidR="00BE47B1" w:rsidRPr="00BE47B1">
137
+ <w:rPr><w:b/></w:rPr>
138
+ <w:instrText xml:space="preserve"> MERGEFIELD =last_name \\* MERGEFORMAT </w:instrText>
139
+ </w:r>
140
+ <w:r w:rsidR="00BE47B1" w:rsidRPr="00BE47B1">
141
+ <w:rPr><w:b/></w:rPr>
142
+ <w:fldChar w:fldCharType="end"/>
143
+ </w:r></w:p>
144
+ xml
145
+ wrap(xml)
146
+ end
147
+ end
148
+
122
149
  class NonSablonFieldTest < Sablon::TestCase
123
150
  include SharedBehavior
124
151
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sablon
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.14
4
+ version: 0.0.15
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yves Senn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2015-04-15 00:00:00.000000000 Z
11
+ date: 2015-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri