slaw 4.0.0 → 4.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +4 -0
- data/lib/slaw/grammars/za/act.treetop +5 -2
- data/lib/slaw/grammars/za/act_nodes.rb +7 -5
- data/lib/slaw/grammars/za/act_text.xsl +7 -0
- data/lib/slaw/version.rb +1 -1
- data/spec/generator_spec.rb +18 -6
- data/spec/za/act_block_spec.rb +95 -1
- 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: a7b2b24c5c8bd91ce9c0a852f6bec6c81e3719830d65f9e0691044b303d019b7
|
4
|
+
data.tar.gz: cf91c1517334866b6a9f8c62baed484c8ef8a35c10d0c3e1fc42ae104382e37c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9e123803b17d5ad1c4d6530daad110715312f83f83901bbc0bac859af3dee15a4345964a9e4b0fd83795c7ff4595d69ed58afab8bc333b2650c2d77316e4dfd7
|
7
|
+
data.tar.gz: da86501ff2f5854d3433ac8a9c87613dd534ce2581206eb99984d2deeec2655da32980905bbf44bdc66723c17f03e13aff488b11f45d0672c5712968fcc9e12b
|
data/README.md
CHANGED
@@ -29,16 +29,19 @@ module Slaw
|
|
29
29
|
|
30
30
|
rule preface
|
31
31
|
!'PREAMBLE'
|
32
|
+
!'BODY'
|
32
33
|
('PREFACE'i space? eol)?
|
33
|
-
statements:(!'PREAMBLE' preface_statement)* <Preface>
|
34
|
+
statements:(!'PREAMBLE' !'BODY' preface_statement)* <Preface>
|
34
35
|
end
|
35
36
|
|
36
37
|
rule preamble
|
38
|
+
!'BODY'
|
37
39
|
'PREAMBLE'i space? eol
|
38
|
-
statements:preamble_statement* <Preamble>
|
40
|
+
statements:(!'BODY' preamble_statement)* <Preamble>
|
39
41
|
end
|
40
42
|
|
41
43
|
rule body
|
44
|
+
('BODY' space? eol)?
|
42
45
|
children:(chapter / part / section / subsection / generic_container)+ <Body>
|
43
46
|
end
|
44
47
|
|
@@ -79,9 +79,10 @@ module Slaw
|
|
79
79
|
|
80
80
|
class Preface < Treetop::Runtime::SyntaxNode
|
81
81
|
def to_xml(b, *args)
|
82
|
-
|
82
|
+
stmts = statements.elements
|
83
|
+
if !stmts.empty?
|
83
84
|
b.preface { |b|
|
84
|
-
|
85
|
+
stmts.each { |element|
|
85
86
|
for e in element.elements
|
86
87
|
e.to_xml(b, "") if e.respond_to? :to_xml
|
87
88
|
end
|
@@ -119,10 +120,11 @@ module Slaw
|
|
119
120
|
|
120
121
|
class Preamble < Treetop::Runtime::SyntaxNode
|
121
122
|
def to_xml(b, *args)
|
122
|
-
|
123
|
+
stmts = statements.elements
|
124
|
+
if !stmts.empty?
|
123
125
|
b.preamble { |b|
|
124
|
-
|
125
|
-
e.to_xml(b, "")
|
126
|
+
stmts.each { |e|
|
127
|
+
e.preamble_statement.to_xml(b, "")
|
126
128
|
}
|
127
129
|
}
|
128
130
|
end
|
@@ -55,6 +55,13 @@
|
|
55
55
|
<xsl:apply-templates />
|
56
56
|
</xsl:template>
|
57
57
|
|
58
|
+
<xsl:template match="a:body">
|
59
|
+
<xsl:text>BODY</xsl:text>
|
60
|
+
<xsl:text> </xsl:text>
|
61
|
+
|
62
|
+
<xsl:apply-templates />
|
63
|
+
</xsl:template>
|
64
|
+
|
58
65
|
<xsl:template match="a:part">
|
59
66
|
<xsl:text>Part </xsl:text>
|
60
67
|
<xsl:value-of select="a:num" />
|
data/lib/slaw/version.rb
CHANGED
data/spec/generator_spec.rb
CHANGED
@@ -72,7 +72,9 @@ XML
|
|
72
72
|
))
|
73
73
|
|
74
74
|
text = subject.text_from_act(doc)
|
75
|
-
text.should == '
|
75
|
+
text.should == 'BODY
|
76
|
+
|
77
|
+
1. Section
|
76
78
|
|
77
79
|
\Chapter 2 ignored
|
78
80
|
|
@@ -136,7 +138,9 @@ XML
|
|
136
138
|
))
|
137
139
|
|
138
140
|
text = subject.text_from_act(doc)
|
139
|
-
text.should == '
|
141
|
+
text.should == 'BODY
|
142
|
+
|
143
|
+
1. Section
|
140
144
|
|
141
145
|
\(2) A special meeting [[ foo ]]:
|
142
146
|
|
@@ -162,7 +166,9 @@ XML
|
|
162
166
|
))
|
163
167
|
|
164
168
|
text = subject.text_from_act(doc)
|
165
|
-
text.should == '
|
169
|
+
text.should == 'BODY
|
170
|
+
|
171
|
+
1.
|
166
172
|
|
167
173
|
[[ foo ]]
|
168
174
|
|
@@ -183,7 +189,9 @@ XML
|
|
183
189
|
))
|
184
190
|
|
185
191
|
text = subject.text_from_act(doc)
|
186
|
-
text.should == '
|
192
|
+
text.should == 'BODY
|
193
|
+
|
194
|
+
1.
|
187
195
|
|
188
196
|
Hello [there](/za/act/123) friend.
|
189
197
|
|
@@ -210,7 +218,9 @@ XML
|
|
210
218
|
))
|
211
219
|
|
212
220
|
text = subject.text_from_act(doc)
|
213
|
-
text.should == '
|
221
|
+
text.should == 'BODY
|
222
|
+
|
223
|
+
1.
|
214
224
|
|
215
225
|
{|
|
216
226
|
|-
|
@@ -239,7 +249,9 @@ Subject to approval in terms of this By-Law.
|
|
239
249
|
EOS
|
240
250
|
)
|
241
251
|
s = subject.text_from_act(doc)
|
242
|
-
s.should == '
|
252
|
+
s.should == 'BODY
|
253
|
+
|
254
|
+
1. Something
|
243
255
|
|
244
256
|
SCHEDULE - First Schedule [[remark]]
|
245
257
|
Subheading [[another]]
|
data/spec/za/act_block_spec.rb
CHANGED
@@ -140,6 +140,33 @@ EOS
|
|
140
140
|
</content>
|
141
141
|
</paragraph>
|
142
142
|
</section>
|
143
|
+
</body>'
|
144
|
+
end
|
145
|
+
|
146
|
+
it 'should understand a body marker' do
|
147
|
+
node = parse :body, <<EOS
|
148
|
+
BODY
|
149
|
+
|
150
|
+
Some content before the section
|
151
|
+
|
152
|
+
1. Section
|
153
|
+
Hello there
|
154
|
+
EOS
|
155
|
+
to_xml(node).should == '<body>
|
156
|
+
<paragraph id="paragraph0">
|
157
|
+
<content>
|
158
|
+
<p>Some content before the section</p>
|
159
|
+
</content>
|
160
|
+
</paragraph>
|
161
|
+
<section id="section-1">
|
162
|
+
<num>1.</num>
|
163
|
+
<heading>Section</heading>
|
164
|
+
<paragraph id="section-1.paragraph0">
|
165
|
+
<content>
|
166
|
+
<p>Hello there</p>
|
167
|
+
</content>
|
168
|
+
</paragraph>
|
169
|
+
</section>
|
143
170
|
</body>'
|
144
171
|
end
|
145
172
|
end
|
@@ -1137,7 +1164,7 @@ EOS
|
|
1137
1164
|
</preamble>'
|
1138
1165
|
end
|
1139
1166
|
|
1140
|
-
it 'should support
|
1167
|
+
it 'should support explicit preface and preamble' do
|
1141
1168
|
node = parse :act, <<EOS
|
1142
1169
|
PREFACE
|
1143
1170
|
this is in the preface
|
@@ -1156,6 +1183,33 @@ EOS
|
|
1156
1183
|
<p>this is in the preamble</p>
|
1157
1184
|
</preamble>'
|
1158
1185
|
end
|
1186
|
+
|
1187
|
+
it 'should obey a BODY marker' do
|
1188
|
+
node = parse :act, <<EOS
|
1189
|
+
PREFACE
|
1190
|
+
this is in the preface
|
1191
|
+
|
1192
|
+
PREAMBLE
|
1193
|
+
this is in the preamble
|
1194
|
+
|
1195
|
+
BODY
|
1196
|
+
this is in the body
|
1197
|
+
EOS
|
1198
|
+
|
1199
|
+
to_xml(node.preface).should == '<preface>
|
1200
|
+
<p>this is in the preface</p>
|
1201
|
+
</preface>'
|
1202
|
+
to_xml(node.preamble).should == '<preamble>
|
1203
|
+
<p>this is in the preamble</p>
|
1204
|
+
</preamble>'
|
1205
|
+
to_xml(node.body).should == '<body>
|
1206
|
+
<paragraph id="paragraph0">
|
1207
|
+
<content>
|
1208
|
+
<p>this is in the body</p>
|
1209
|
+
</content>
|
1210
|
+
</paragraph>
|
1211
|
+
</body>'
|
1212
|
+
end
|
1159
1213
|
end
|
1160
1214
|
|
1161
1215
|
#-------------------------------------------------------------------------------
|
@@ -1228,6 +1282,46 @@ EOS
|
|
1228
1282
|
<p>PREAMBLE</p>
|
1229
1283
|
</preamble>'
|
1230
1284
|
end
|
1285
|
+
|
1286
|
+
it 'should handle weird preamble indicators' do
|
1287
|
+
node = parse :act, <<EOS
|
1288
|
+
BODY
|
1289
|
+
|
1290
|
+
PREAMBLE
|
1291
|
+
|
1292
|
+
this is actually in the body
|
1293
|
+
EOS
|
1294
|
+
|
1295
|
+
to_xml(node.body).should == '<body>
|
1296
|
+
<paragraph id="paragraph0">
|
1297
|
+
<content>
|
1298
|
+
<p>PREAMBLE</p>
|
1299
|
+
<p>this is actually in the body</p>
|
1300
|
+
</content>
|
1301
|
+
</paragraph>
|
1302
|
+
</body>'
|
1303
|
+
end
|
1304
|
+
|
1305
|
+
it 'should handle weird preface indicators' do
|
1306
|
+
node = parse :act, <<EOS
|
1307
|
+
PREFACE
|
1308
|
+
|
1309
|
+
BODY
|
1310
|
+
|
1311
|
+
PREFACE
|
1312
|
+
|
1313
|
+
this is actually in the body
|
1314
|
+
EOS
|
1315
|
+
|
1316
|
+
to_xml(node.body).should == '<body>
|
1317
|
+
<paragraph id="paragraph0">
|
1318
|
+
<content>
|
1319
|
+
<p>PREFACE</p>
|
1320
|
+
<p>this is actually in the body</p>
|
1321
|
+
</content>
|
1322
|
+
</paragraph>
|
1323
|
+
</body>'
|
1324
|
+
end
|
1231
1325
|
end
|
1232
1326
|
|
1233
1327
|
#-------------------------------------------------------------------------------
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: slaw
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.
|
4
|
+
version: 4.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Greg Kempe
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-06-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|