sheng 0.3.3 → 0.3.4

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: 63a24d66e7840b1484e35b59cef14b2343c4c72c
4
- data.tar.gz: d018cdd42fe8481dd09c52e460e075321134fd63
3
+ metadata.gz: 20f74c4e33aa2c6d02047cba5d9939aae549a4d6
4
+ data.tar.gz: 9e5f6b49e52c00e894d799fb9e000d7fb070efad
5
5
  SHA512:
6
- metadata.gz: 31b343498e1d77cb4e4ab3f810d31f77c5917e84848187c6280cb6b0d0b64cdc4c7791a6e554d0ef4112e8fd159ecf1f30f6096317980be838c82cd6e0575210
7
- data.tar.gz: 0d02e299fd774556ee3c81f03eaa2dfc3535bdb52eb041fd0ae736291572db040611fc61ec9e9f08e619c2aaef287f02ff1a239dbde0747cd9733e51d77f016a
6
+ metadata.gz: 98a4c1d780fb682610f7745dee718bad9b9d2ada521e8ac92f62b86e36ade25cc87f125a47fc2e701228d997b06d6d468eceda32e77d08a6554ddb9026f7875c
7
+ data.tar.gz: 4540354d8578d52ca6d26a9f4b186ec1eeaa051c74857ec13b189bb642673cf554d88c8f95b88f2c08efd55d8df73783c718e732ab700934b72d5ea07c2a1b33
data/lib/sheng/block.rb CHANGED
@@ -16,11 +16,11 @@ module Sheng
16
16
 
17
17
  def extract_mergefields(fragment)
18
18
  if fragment.name == "fldSimple"
19
- return [MergeField.new(fragment)]
19
+ return [MergeField.from_element(fragment)].compact
20
20
  end
21
21
  fragment.xpath(".//#{mergefield_element_path}|.//#{new_mergefield_element_path}").map do |field_simple|
22
22
  unless field_simple.at('.//w:checkBox')
23
- MergeField.new(field_simple)
23
+ MergeField.from_element(field_simple)
24
24
  end
25
25
  end.compact
26
26
  end
data/lib/sheng/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Sheng
2
- VERSION = "0.3.3"
2
+ VERSION = "0.3.4"
3
3
  end
@@ -0,0 +1,77 @@
1
+ <w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
2
+ <w:p>
3
+ <w:r>
4
+ <w:fldChar w:fldCharType="begin"/>
5
+ </w:r>
6
+ <w:r>
7
+ <w:instrText xml:space="preserve">MERGEFIELD start:castles \* MERGEFORMAT </w:instrText>
8
+ </w:r>
9
+ <w:r>
10
+ <w:fldChar w:fldCharType="separate"/>
11
+ </w:r>
12
+ <w:r>
13
+ <w:t>«start:castles»</w:t>
14
+ </w:r>
15
+ <w:r>
16
+ <w:fldChar w:fldCharType="end"/>
17
+ </w:r>
18
+ </w:p>
19
+ <w:p>
20
+ <w:r>
21
+ <w:fldChar w:fldCharType="begin"/>
22
+ </w:r>
23
+ <w:r>
24
+ <w:instrText xml:space="preserve">MERGEFIELD color \* MERGEFORMAT </w:instrText>
25
+ </w:r>
26
+ <w:r>
27
+ <w:fldChar w:fldCharType="separate"/>
28
+ </w:r>
29
+ <w:r>
30
+ <w:t>«color»</w:t>
31
+ </w:r>
32
+ <w:r>
33
+ <w:fldChar w:fldCharType="end"/>
34
+ </w:r>
35
+ </w:p>
36
+ <w:p>
37
+ <w:r>
38
+ <w:fldChar w:fldCharType="begin"/>
39
+ </w:r>
40
+ <w:r>
41
+ <w:instrText xml:space="preserve">PAGE \* MERGEFORMAT </w:instrText>
42
+ </w:r>
43
+ <w:r>
44
+ <w:fldChar w:fldCharType="separate"/>
45
+ </w:r>
46
+ <w:r>
47
+ <w:t>1</w:t>
48
+ </w:r>
49
+ <w:r>
50
+ <w:fldChar w:fldCharType="end"/>
51
+ </w:r>
52
+ </w:p>
53
+ <w:p>
54
+ <w:fldSimple w:instr=" PAGE \* MERGEFORMAT ">
55
+ <w:r>
56
+ <w:t>1</w:t>
57
+ </w:r>
58
+ </w:fldSimple>
59
+ </w:p>
60
+ <w:p>
61
+ <w:r>
62
+ <w:fldChar w:fldCharType="begin"/>
63
+ </w:r>
64
+ <w:r>
65
+ <w:instrText xml:space="preserve">MERGEFIELD end:castles \* MERGEFORMAT </w:instrText>
66
+ </w:r>
67
+ <w:r>
68
+ <w:fldChar w:fldCharType="separate"/>
69
+ </w:r>
70
+ <w:r>
71
+ <w:t>«end:castles»</w:t>
72
+ </w:r>
73
+ <w:r>
74
+ <w:fldChar w:fldCharType="end"/>
75
+ </w:r>
76
+ </w:p>
77
+ </w:document>
@@ -0,0 +1,60 @@
1
+ <w:document xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
2
+ <w:p>
3
+ <w:r>
4
+ <w:t>browns</w:t>
5
+ </w:r>
6
+ </w:p>
7
+ <w:p>
8
+ <w:r>
9
+ <w:fldChar w:fldCharType="begin"/>
10
+ </w:r>
11
+ <w:r>
12
+ <w:instrText xml:space="preserve">PAGE \* MERGEFORMAT </w:instrText>
13
+ </w:r>
14
+ <w:r>
15
+ <w:fldChar w:fldCharType="separate"/>
16
+ </w:r>
17
+ <w:r>
18
+ <w:t>1</w:t>
19
+ </w:r>
20
+ <w:r>
21
+ <w:fldChar w:fldCharType="end"/>
22
+ </w:r>
23
+ </w:p>
24
+ <w:p>
25
+ <w:fldSimple w:instr=" PAGE \* MERGEFORMAT ">
26
+ <w:r>
27
+ <w:t>1</w:t>
28
+ </w:r>
29
+ </w:fldSimple>
30
+ </w:p>
31
+ <w:p>
32
+ <w:r>
33
+ <w:t>totally rad</w:t>
34
+ </w:r>
35
+ </w:p>
36
+ <w:p>
37
+ <w:r>
38
+ <w:fldChar w:fldCharType="begin"/>
39
+ </w:r>
40
+ <w:r>
41
+ <w:instrText xml:space="preserve">PAGE \* MERGEFORMAT </w:instrText>
42
+ </w:r>
43
+ <w:r>
44
+ <w:fldChar w:fldCharType="separate"/>
45
+ </w:r>
46
+ <w:r>
47
+ <w:t>1</w:t>
48
+ </w:r>
49
+ <w:r>
50
+ <w:fldChar w:fldCharType="end"/>
51
+ </w:r>
52
+ </w:p>
53
+ <w:p>
54
+ <w:fldSimple w:instr=" PAGE \* MERGEFORMAT ">
55
+ <w:r>
56
+ <w:t>1</w:t>
57
+ </w:r>
58
+ </w:fldSimple>
59
+ </w:p>
60
+ </w:document>
@@ -175,6 +175,23 @@ describe Sheng::Sequence do
175
175
  expect(subject.xml_document).to be_equivalent_to xml_fragment('output/sequence/embedded_sequence')
176
176
  end
177
177
  end
178
+
179
+ context "with non-mergefield fields in the repeating block" do
180
+ let(:fragment) { xml_fragment('input/sequence/sequence_with_misleading_fields') }
181
+ let(:element) { fragment.xpath("//w:fldChar[contains(@w:fldCharType, 'begin')]").first }
182
+
183
+ it "ignores the non-mergefields fldchars" do
184
+ dataset = Sheng::DataSet.new({
185
+ :castles => [
186
+ { :color => 'browns' },
187
+ { :color => 'totally rad' }
188
+ ]
189
+ })
190
+
191
+ subject.interpolate(dataset)
192
+ expect(subject.xml_document).to be_equivalent_to xml_fragment('output/sequence/sequence_with_misleading_fields')
193
+ end
194
+ end
178
195
  end
179
196
 
180
197
  describe '#new' do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sheng
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.3
4
+ version: 0.3.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ravi Gadad
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-05-20 00:00:00.000000000 Z
12
+ date: 2015-05-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -208,6 +208,7 @@ files:
208
208
  - spec/fixtures/xml_fragments/input/sequence/overridden_iterator_array_sequence.xml
209
209
  - spec/fixtures/xml_fragments/input/sequence/sequence.xml
210
210
  - spec/fixtures/xml_fragments/input/sequence/sequence_in_table.xml
211
+ - spec/fixtures/xml_fragments/input/sequence/sequence_with_misleading_fields.xml
211
212
  - spec/fixtures/xml_fragments/input/sequence/sequence_with_section_formatting.xml
212
213
  - spec/fixtures/xml_fragments/input/sequence/series_with_commas.xml
213
214
  - spec/fixtures/xml_fragments/output/check_box/check_box.xml
@@ -234,6 +235,7 @@ files:
234
235
  - spec/fixtures/xml_fragments/output/sequence/overridden_iterator_array_sequence.xml
235
236
  - spec/fixtures/xml_fragments/output/sequence/sequence.xml
236
237
  - spec/fixtures/xml_fragments/output/sequence/sequence_in_table.xml
238
+ - spec/fixtures/xml_fragments/output/sequence/sequence_with_misleading_fields.xml
237
239
  - spec/fixtures/xml_fragments/output/sequence/sequence_with_section_formatting.xml
238
240
  - spec/fixtures/xml_fragments/output/sequence/series_with_commas.xml
239
241
  - spec/fixtures/xml_fragments/output/sequence/series_with_commas_two_items.xml
@@ -313,6 +315,7 @@ test_files:
313
315
  - spec/fixtures/xml_fragments/input/sequence/overridden_iterator_array_sequence.xml
314
316
  - spec/fixtures/xml_fragments/input/sequence/sequence.xml
315
317
  - spec/fixtures/xml_fragments/input/sequence/sequence_in_table.xml
318
+ - spec/fixtures/xml_fragments/input/sequence/sequence_with_misleading_fields.xml
316
319
  - spec/fixtures/xml_fragments/input/sequence/sequence_with_section_formatting.xml
317
320
  - spec/fixtures/xml_fragments/input/sequence/series_with_commas.xml
318
321
  - spec/fixtures/xml_fragments/output/check_box/check_box.xml
@@ -339,6 +342,7 @@ test_files:
339
342
  - spec/fixtures/xml_fragments/output/sequence/overridden_iterator_array_sequence.xml
340
343
  - spec/fixtures/xml_fragments/output/sequence/sequence.xml
341
344
  - spec/fixtures/xml_fragments/output/sequence/sequence_in_table.xml
345
+ - spec/fixtures/xml_fragments/output/sequence/sequence_with_misleading_fields.xml
342
346
  - spec/fixtures/xml_fragments/output/sequence/sequence_with_section_formatting.xml
343
347
  - spec/fixtures/xml_fragments/output/sequence/series_with_commas.xml
344
348
  - spec/fixtures/xml_fragments/output/sequence/series_with_commas_two_items.xml