slaw 0.17.2 → 1.0.0.alpha.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 +4 -4
- data/README.md +9 -2
- data/bin/slaw +2 -19
- data/lib/slaw/generator.rb +21 -6
- data/lib/slaw/grammars/core_nodes.rb +17 -0
- data/lib/slaw/grammars/inlines.treetop +45 -0
- data/lib/slaw/grammars/inlines_nodes.rb +58 -0
- data/lib/slaw/grammars/pl/act.treetop +246 -0
- data/lib/slaw/grammars/pl/act_nodes.rb +469 -0
- data/lib/slaw/grammars/schedules.treetop +33 -0
- data/lib/slaw/grammars/schedules_nodes.rb +107 -0
- data/lib/slaw/grammars/tables.treetop +59 -0
- data/lib/slaw/grammars/tables_nodes.rb +74 -0
- data/lib/slaw/grammars/terminals.treetop +84 -0
- data/lib/slaw/grammars/za/act.treetop +222 -0
- data/lib/slaw/grammars/za/act_nodes.rb +307 -0
- data/lib/slaw/{za → grammars/za}/act_text.xsl +0 -0
- data/lib/slaw/parse/builder.rb +6 -202
- data/lib/slaw/version.rb +1 -1
- data/spec/generator_spec.rb +2 -0
- data/spec/parse/builder_spec.rb +0 -48
- data/spec/pl/act_block_spec.rb +449 -0
- data/spec/za/act_block_spec.rb +5 -3
- data/spec/za/act_inline_spec.rb +2 -0
- data/spec/za/act_schedules_spec.rb +2 -0
- data/spec/za/act_table_spec.rb +2 -0
- metadata +19 -7
- data/lib/slaw/za/act.treetop +0 -393
- data/lib/slaw/za/act_nodes.rb +0 -532
data/lib/slaw/version.rb
CHANGED
data/spec/generator_spec.rb
CHANGED
data/spec/parse/builder_spec.rb
CHANGED
@@ -715,54 +715,6 @@ XML
|
|
715
715
|
end
|
716
716
|
end
|
717
717
|
|
718
|
-
describe '#guess_at_definitions' do
|
719
|
-
it 'should find definitions in p elements' do
|
720
|
-
doc = xml2doc(section(<<XML
|
721
|
-
<heading>Definitions</heading>
|
722
|
-
<subsection id="section-1.subsection-1">
|
723
|
-
<content>
|
724
|
-
<p>“authorised official” means any official of the Council who has been authorised by it to administer, implement and enforce the provisions of these By-laws;</p>
|
725
|
-
</content>
|
726
|
-
</subsection>
|
727
|
-
<subsection id="section-1.subsection-2">
|
728
|
-
<content>
|
729
|
-
<blockList id="section-1.subsection-2.list2">
|
730
|
-
<listIntroduction>
|
731
|
-
“Council” means – </listIntroduction>
|
732
|
-
<item id="section-1.subsection-2.list2.a">
|
733
|
-
<num>(a)</num>
|
734
|
-
<p>the Metropolitan Municipality of the City of Johannesburg established by Provincial Notice No. 6766 of 2000 dated 1 October 2000, as amended, exercising its legislative and executive authority through its municipal Council; or</p>
|
735
|
-
</item>
|
736
|
-
</blockList>
|
737
|
-
</content>
|
738
|
-
</subsection>
|
739
|
-
XML
|
740
|
-
))
|
741
|
-
|
742
|
-
subject.guess_at_definitions(doc)
|
743
|
-
doc.to_s.should == section(<<XML
|
744
|
-
<heading>Definitions</heading>
|
745
|
-
<subsection id="section-1.subsection-1" refersTo="#term-authorised_official">
|
746
|
-
<content>
|
747
|
-
<p>"<def refersTo="#term-authorised_official">authorised official</def>" means any official of the Council who has been authorised by it to administer, implement and enforce the provisions of these By-laws;</p>
|
748
|
-
</content>
|
749
|
-
</subsection>
|
750
|
-
<subsection id="section-1.subsection-2">
|
751
|
-
<content>
|
752
|
-
<blockList id="section-1.subsection-2.list2" refersTo="#term-Council">
|
753
|
-
<listIntroduction>"<def refersTo="#term-Council">Council</def>" means – </listIntroduction>
|
754
|
-
<item id="section-1.subsection-2.list2.a">
|
755
|
-
<num>(a)</num>
|
756
|
-
<p>the Metropolitan Municipality of the City of Johannesburg established by Provincial Notice No. 6766 of 2000 dated 1 October 2000, as amended, exercising its legislative and executive authority through its municipal Council; or</p>
|
757
|
-
</item>
|
758
|
-
</blockList>
|
759
|
-
</content>
|
760
|
-
</subsection>
|
761
|
-
XML
|
762
|
-
)
|
763
|
-
end
|
764
|
-
end
|
765
|
-
|
766
718
|
describe '#normalise_headings' do
|
767
719
|
it 'should normalise ALL CAPS headings' do
|
768
720
|
doc = xml2doc(section(<<XML
|
@@ -0,0 +1,449 @@
|
|
1
|
+
# encoding: UTF-8
|
2
|
+
|
3
|
+
require 'slaw'
|
4
|
+
|
5
|
+
describe Slaw::ActGenerator do
|
6
|
+
subject { Slaw::ActGenerator.new('pl') }
|
7
|
+
|
8
|
+
def parse(rule, s)
|
9
|
+
subject.builder.text_to_syntax_tree(s, {root: rule})
|
10
|
+
end
|
11
|
+
|
12
|
+
def should_parse(rule, s)
|
13
|
+
s << "\n" unless s.end_with?("\n")
|
14
|
+
tree = subject.builder.text_to_syntax_tree(s, {root: rule})
|
15
|
+
|
16
|
+
if not tree
|
17
|
+
raise Exception.new(subject.failure_reason || "Couldn't match to grammar") if tree.nil?
|
18
|
+
else
|
19
|
+
# count an assertion
|
20
|
+
tree.should_not be_nil
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
24
|
+
def to_xml(node, *args)
|
25
|
+
b = ::Nokogiri::XML::Builder.new
|
26
|
+
node.to_xml(b, *args)
|
27
|
+
b.doc.root.to_xml(encoding: 'UTF-8')
|
28
|
+
end
|
29
|
+
|
30
|
+
#-------------------------------------------------------------------------------
|
31
|
+
# Basics
|
32
|
+
|
33
|
+
describe 'full test' do
|
34
|
+
it 'should handle a full hierarchy' do
|
35
|
+
node = parse :body, <<EOS
|
36
|
+
DZIAŁ I
|
37
|
+
|
38
|
+
Projekt ustawy
|
39
|
+
|
40
|
+
Rozdział 7. Oznaczanie przepisów ustawy i ich systematyzacja
|
41
|
+
|
42
|
+
§ 54. Podstawową jednostką redakcyjną ustawy jest artykuł.
|
43
|
+
|
44
|
+
§ 55. 1. Każdą samodzielną myśl ujmuje się w odrębny artykuł.
|
45
|
+
2. Artykuł powinien być w miarę możliwości jednozdaniowy.
|
46
|
+
3. Jeżeli samodzielną myśl wyraża zespół zdań, dokonuje się podziału artykułu na ustępy. W ustawie określanej jako "kodeks" ustępy oznacza się paragrafami (§).
|
47
|
+
4. Podział artykułu na ustępy wprowadza się także w przypadku, gdy między zdaniami wyrażającymi samodzielne myśli występują powiązania treściowe, ale treść żadnego z nich nie jest na tyle istotna, aby wydzielić ją w odrębny artykuł.
|
48
|
+
|
49
|
+
§ 56. 1. W obrębie artykułu (ustępu) zawierającego wyliczenie wyróżnia się dwie części: wprowadzenie do wyliczenia oraz punkty. Wyliczenie może kończyć się częścią wspólną, odnoszącą się do wszystkich punktów. Po części wspólnej nie dodaje się kolejnej samodzielnej myśli; w razie potrzeby formułuje się ją w kolejnym ustępie.
|
50
|
+
2. W obrębie punktów można dokonać dalszego wyliczenia, wprowadzając litery.
|
51
|
+
EOS
|
52
|
+
|
53
|
+
to_xml(node).should == '<body>
|
54
|
+
<division id="division-I">
|
55
|
+
<num>I</num>
|
56
|
+
<paragraph id="division-I.paragraph-0">
|
57
|
+
<content>
|
58
|
+
<p>Projekt ustawy</p>
|
59
|
+
</content>
|
60
|
+
</paragraph>
|
61
|
+
<chapter id="chapter-7">
|
62
|
+
<num>7</num>
|
63
|
+
<heading>Oznaczanie przepisów ustawy i ich systematyzacja</heading>
|
64
|
+
<section id="section-54">
|
65
|
+
<num>54.</num>
|
66
|
+
<content>
|
67
|
+
<p>Podstawową jednostką redakcyjną ustawy jest artykuł.</p>
|
68
|
+
</content>
|
69
|
+
</section>
|
70
|
+
<section id="section-55">
|
71
|
+
<num>55.</num>
|
72
|
+
<paragraph id="section-55.paragraph-1">
|
73
|
+
<num>1.</num>
|
74
|
+
<content>
|
75
|
+
<p>Każdą samodzielną myśl ujmuje się w odrębny artykuł.</p>
|
76
|
+
</content>
|
77
|
+
</paragraph>
|
78
|
+
<paragraph id="section-55.paragraph-2">
|
79
|
+
<num>2.</num>
|
80
|
+
<content>
|
81
|
+
<p>Artykuł powinien być w miarę możliwości jednozdaniowy.</p>
|
82
|
+
</content>
|
83
|
+
</paragraph>
|
84
|
+
<paragraph id="section-55.paragraph-3">
|
85
|
+
<num>3.</num>
|
86
|
+
<content>
|
87
|
+
<p>Jeżeli samodzielną myśl wyraża zespół zdań, dokonuje się podziału artykułu na ustępy. W ustawie określanej jako "kodeks" ustępy oznacza się paragrafami (§).</p>
|
88
|
+
</content>
|
89
|
+
</paragraph>
|
90
|
+
<paragraph id="section-55.paragraph-4">
|
91
|
+
<num>4.</num>
|
92
|
+
<content>
|
93
|
+
<p>Podział artykułu na ustępy wprowadza się także w przypadku, gdy między zdaniami wyrażającymi samodzielne myśli występują powiązania treściowe, ale treść żadnego z nich nie jest na tyle istotna, aby wydzielić ją w odrębny artykuł.</p>
|
94
|
+
</content>
|
95
|
+
</paragraph>
|
96
|
+
</section>
|
97
|
+
<section id="section-56">
|
98
|
+
<num>56.</num>
|
99
|
+
<paragraph id="section-56.paragraph-1">
|
100
|
+
<num>1.</num>
|
101
|
+
<content>
|
102
|
+
<p>W obrębie artykułu (ustępu) zawierającego wyliczenie wyróżnia się dwie części: wprowadzenie do wyliczenia oraz punkty. Wyliczenie może kończyć się częścią wspólną, odnoszącą się do wszystkich punktów. Po części wspólnej nie dodaje się kolejnej samodzielnej myśli; w razie potrzeby formułuje się ją w kolejnym ustępie.</p>
|
103
|
+
</content>
|
104
|
+
</paragraph>
|
105
|
+
<paragraph id="section-56.paragraph-2">
|
106
|
+
<num>2.</num>
|
107
|
+
<content>
|
108
|
+
<p>W obrębie punktów można dokonać dalszego wyliczenia, wprowadzając litery.</p>
|
109
|
+
</content>
|
110
|
+
</paragraph>
|
111
|
+
</section>
|
112
|
+
</chapter>
|
113
|
+
</division>
|
114
|
+
</body>'
|
115
|
+
end
|
116
|
+
end
|
117
|
+
|
118
|
+
#-------------------------------------------------------------------------------
|
119
|
+
# Articles
|
120
|
+
|
121
|
+
describe 'articles' do
|
122
|
+
it 'should handle articles' do
|
123
|
+
node = parse :article, <<EOS
|
124
|
+
Art. 1. Ustawa reguluje opodatkowanie podatkiem dochodowym dochodów osób fizycznych
|
125
|
+
EOS
|
126
|
+
to_xml(node).should == '<article id="article-1">
|
127
|
+
<num>1.</num>
|
128
|
+
<content>
|
129
|
+
<p>Ustawa reguluje opodatkowanie podatkiem dochodowym dochodów osób fizycznych</p>
|
130
|
+
</content>
|
131
|
+
</article>'
|
132
|
+
end
|
133
|
+
|
134
|
+
it 'should handle consecutive articles' do
|
135
|
+
node = parse :body, <<EOS
|
136
|
+
Art. 1. Ustawa reguluje opodatkowanie podatkiem dochodowym dochodów osób fizycznych
|
137
|
+
Art. 2. Something else
|
138
|
+
EOS
|
139
|
+
to_xml(node).should == '<body>
|
140
|
+
<article id="article-1">
|
141
|
+
<num>1.</num>
|
142
|
+
<content>
|
143
|
+
<p>Ustawa reguluje opodatkowanie podatkiem dochodowym dochodów osób fizycznych</p>
|
144
|
+
</content>
|
145
|
+
</article>
|
146
|
+
<article id="article-2">
|
147
|
+
<num>2.</num>
|
148
|
+
<content>
|
149
|
+
<p>Something else</p>
|
150
|
+
</content>
|
151
|
+
</article>
|
152
|
+
</body>'
|
153
|
+
end
|
154
|
+
|
155
|
+
it 'should handle nested content' do
|
156
|
+
node = parse :article, <<EOS
|
157
|
+
Art. 2. 1. Przepisów ustawy nie stosuje się do:
|
158
|
+
1) przychodów z działalności rolniczej, z wyjątkiem przychodów z działów specjalnych produkcji rolnej;
|
159
|
+
2) przychodów z gospodarki leśnej w rozumieniu ustawy o lasach;
|
160
|
+
EOS
|
161
|
+
to_xml(node).should == '<article id="article-2">
|
162
|
+
<num>2.</num>
|
163
|
+
<paragraph id="article-2.paragraph-1">
|
164
|
+
<num>1.</num>
|
165
|
+
<intro>
|
166
|
+
<p>Przepisów ustawy nie stosuje się do:</p>
|
167
|
+
</intro>
|
168
|
+
<point id="article-2.paragraph-1.point-1">
|
169
|
+
<num>1)</num>
|
170
|
+
<content>
|
171
|
+
<p>przychodów z działalności rolniczej, z wyjątkiem przychodów z działów specjalnych produkcji rolnej;</p>
|
172
|
+
</content>
|
173
|
+
</point>
|
174
|
+
<point id="article-2.paragraph-1.point-2">
|
175
|
+
<num>2)</num>
|
176
|
+
<content>
|
177
|
+
<p>przychodów z gospodarki leśnej w rozumieniu ustawy o lasach;</p>
|
178
|
+
</content>
|
179
|
+
</point>
|
180
|
+
</paragraph>
|
181
|
+
</article>'
|
182
|
+
end
|
183
|
+
end
|
184
|
+
|
185
|
+
#-------------------------------------------------------------------------------
|
186
|
+
# Divisions
|
187
|
+
|
188
|
+
describe 'divisions' do
|
189
|
+
it 'should handle divisions' do
|
190
|
+
node = parse :division, <<EOS
|
191
|
+
DZIAŁ I
|
192
|
+
Projekt ustawy
|
193
|
+
|
194
|
+
Rozdział 7. Oznaczanie przepisów ustawy i ich systematyzacja
|
195
|
+
|
196
|
+
§ 54. Podstawową jednostką redakcyjną ustawy jest artykuł.
|
197
|
+
EOS
|
198
|
+
to_xml(node).should == '<division id="division-I">
|
199
|
+
<num>I</num>
|
200
|
+
<heading>Projekt ustawy</heading>
|
201
|
+
<chapter id="chapter-7">
|
202
|
+
<num>7</num>
|
203
|
+
<heading>Oznaczanie przepisów ustawy i ich systematyzacja</heading>
|
204
|
+
<section id="section-54">
|
205
|
+
<num>54.</num>
|
206
|
+
<content>
|
207
|
+
<p>Podstawową jednostką redakcyjną ustawy jest artykuł.</p>
|
208
|
+
</content>
|
209
|
+
</section>
|
210
|
+
</chapter>
|
211
|
+
</division>'
|
212
|
+
end
|
213
|
+
end
|
214
|
+
|
215
|
+
#-------------------------------------------------------------------------------
|
216
|
+
# Subdivisions
|
217
|
+
|
218
|
+
describe 'subdivisions' do
|
219
|
+
it 'should handle subdivisions' do
|
220
|
+
node = parse :subdivision, <<EOS
|
221
|
+
ODDZIAŁ I
|
222
|
+
Projekt ustawy
|
223
|
+
|
224
|
+
§ 54. Podstawową jednostką redakcyjną ustawy jest artykuł.
|
225
|
+
EOS
|
226
|
+
to_xml(node).should == '<subdivision id="subdivision-I">
|
227
|
+
<num>I</num>
|
228
|
+
<heading>Projekt ustawy</heading>
|
229
|
+
<section id="section-54">
|
230
|
+
<num>54.</num>
|
231
|
+
<content>
|
232
|
+
<p>Podstawową jednostką redakcyjną ustawy jest artykuł.</p>
|
233
|
+
</content>
|
234
|
+
</section>
|
235
|
+
</subdivision>'
|
236
|
+
end
|
237
|
+
end
|
238
|
+
|
239
|
+
#-------------------------------------------------------------------------------
|
240
|
+
# Paragraph
|
241
|
+
|
242
|
+
describe 'paragraph' do
|
243
|
+
it 'should handle simple para' do
|
244
|
+
node = parse :paragraph, <<EOS
|
245
|
+
1. Każdą samodzielną myśl ujmuje się w odrębny artykuł.
|
246
|
+
EOS
|
247
|
+
|
248
|
+
to_xml(node).should == '<paragraph id="paragraph-1">
|
249
|
+
<num>1.</num>
|
250
|
+
<content>
|
251
|
+
<p>Każdą samodzielną myśl ujmuje się w odrębny artykuł.</p>
|
252
|
+
</content>
|
253
|
+
</paragraph>'
|
254
|
+
end
|
255
|
+
|
256
|
+
it 'should handle an empty para' do
|
257
|
+
node = parse :paragraph, <<EOS
|
258
|
+
1.
|
259
|
+
EOS
|
260
|
+
|
261
|
+
to_xml(node).should == '<paragraph id="paragraph-1">
|
262
|
+
<num>1.</num>
|
263
|
+
<content>
|
264
|
+
<p/>
|
265
|
+
</content>
|
266
|
+
</paragraph>'
|
267
|
+
end
|
268
|
+
|
269
|
+
it 'should handle paragraphs with points' do
|
270
|
+
node = parse :paragraph, <<EOS
|
271
|
+
2. W ustawie należy unikać posługiwania się:
|
272
|
+
1) określeniami specjalistycznymi, o ile ich użycie nie jest powodowane zapewnieniem należytej precyzji tekstu;
|
273
|
+
2) określeniami lub zapożyczeniami obcojęzycznymi, chyba że nie mają dokładnego odpowiednika w języku polskim;
|
274
|
+
3) nowo tworzonymi pojęciami lub strukturami językowymi, chyba że w dotychczasowym słownictwie polskim brak jest odpowiedniego określenia.
|
275
|
+
EOS
|
276
|
+
|
277
|
+
to_xml(node).should == '<paragraph id="paragraph-2">
|
278
|
+
<num>2.</num>
|
279
|
+
<intro>
|
280
|
+
<p>W ustawie należy unikać posługiwania się:</p>
|
281
|
+
</intro>
|
282
|
+
<point id="paragraph-2.point-1">
|
283
|
+
<num>1)</num>
|
284
|
+
<content>
|
285
|
+
<p>określeniami specjalistycznymi, o ile ich użycie nie jest powodowane zapewnieniem należytej precyzji tekstu;</p>
|
286
|
+
</content>
|
287
|
+
</point>
|
288
|
+
<point id="paragraph-2.point-2">
|
289
|
+
<num>2)</num>
|
290
|
+
<content>
|
291
|
+
<p>określeniami lub zapożyczeniami obcojęzycznymi, chyba że nie mają dokładnego odpowiednika w języku polskim;</p>
|
292
|
+
</content>
|
293
|
+
</point>
|
294
|
+
<point id="paragraph-2.point-3">
|
295
|
+
<num>3)</num>
|
296
|
+
<content>
|
297
|
+
<p>nowo tworzonymi pojęciami lub strukturami językowymi, chyba że w dotychczasowym słownictwie polskim brak jest odpowiedniego określenia.</p>
|
298
|
+
</content>
|
299
|
+
</point>
|
300
|
+
</paragraph>'
|
301
|
+
end
|
302
|
+
end
|
303
|
+
|
304
|
+
#-------------------------------------------------------------------------------
|
305
|
+
# Section
|
306
|
+
|
307
|
+
describe 'section' do
|
308
|
+
it 'should handle section with un-numbered para' do
|
309
|
+
node = parse :section, <<EOS
|
310
|
+
§ 5.
|
311
|
+
|
312
|
+
Przepisy ustawy redaguje si´ zwi´êle i syntetycznie, unikajàc nadmiernej szczegó∏owoÊci, a zarazem w sposób, w jaki opisuje si´ typowe sytuacje wyst´pujàce w dziedzinie spraw regulowanych tà ustawà.
|
313
|
+
EOS
|
314
|
+
|
315
|
+
to_xml(node).should == '<section id="section-5">
|
316
|
+
<num>5.</num>
|
317
|
+
<content>
|
318
|
+
<p>Przepisy ustawy redaguje si´ zwi´êle i syntetycznie, unikajàc nadmiernej szczegó∏owoÊci, a zarazem w sposób, w jaki opisuje si´ typowe sytuacje wyst´pujàce w dziedzinie spraw regulowanych tà ustawà.</p>
|
319
|
+
</content>
|
320
|
+
</section>'
|
321
|
+
end
|
322
|
+
|
323
|
+
it 'should handle section with numbered para on the same line' do
|
324
|
+
node = parse :section, <<EOS
|
325
|
+
§ 54. Podstawową jednostką redakcyjną ustawy jest artykuł.
|
326
|
+
EOS
|
327
|
+
|
328
|
+
to_xml(node).should == '<section id="section-54">
|
329
|
+
<num>54.</num>
|
330
|
+
<content>
|
331
|
+
<p>Podstawową jednostką redakcyjną ustawy jest artykuł.</p>
|
332
|
+
</content>
|
333
|
+
</section>'
|
334
|
+
end
|
335
|
+
|
336
|
+
it 'should handle section with numbered paras' do
|
337
|
+
node = parse :section, <<EOS
|
338
|
+
§ 55. 1. Każdą samodzielną myśl ujmuje się w odrębny artykuł.
|
339
|
+
2. Artykuł powinien być w miarę możliwości jednozdaniowy.
|
340
|
+
3. Jeżeli samodzielną myśl wyraża zespół zdań, dokonuje się podziału artykułu na ustępy. W ustawie określanej jako "kodeks" ustępy oznacza się paragrafami (§).
|
341
|
+
EOS
|
342
|
+
|
343
|
+
to_xml(node).should == '<section id="section-55">
|
344
|
+
<num>55.</num>
|
345
|
+
<paragraph id="section-55.paragraph-1">
|
346
|
+
<num>1.</num>
|
347
|
+
<content>
|
348
|
+
<p>Każdą samodzielną myśl ujmuje się w odrębny artykuł.</p>
|
349
|
+
</content>
|
350
|
+
</paragraph>
|
351
|
+
<paragraph id="section-55.paragraph-2">
|
352
|
+
<num>2.</num>
|
353
|
+
<content>
|
354
|
+
<p>Artykuł powinien być w miarę możliwości jednozdaniowy.</p>
|
355
|
+
</content>
|
356
|
+
</paragraph>
|
357
|
+
<paragraph id="section-55.paragraph-3">
|
358
|
+
<num>3.</num>
|
359
|
+
<content>
|
360
|
+
<p>Jeżeli samodzielną myśl wyraża zespół zdań, dokonuje się podziału artykułu na ustępy. W ustawie określanej jako "kodeks" ustępy oznacza się paragrafami (§).</p>
|
361
|
+
</content>
|
362
|
+
</paragraph>
|
363
|
+
</section>'
|
364
|
+
end
|
365
|
+
|
366
|
+
it 'should handle section with intro, para and points' do
|
367
|
+
node = parse :section, <<EOS
|
368
|
+
§ 54. Podstawową jednostką redakcyjną ustawy jest artykuł.
|
369
|
+
|
370
|
+
Something here
|
371
|
+
|
372
|
+
1) a point
|
373
|
+
2) second point
|
374
|
+
EOS
|
375
|
+
|
376
|
+
to_xml(node).should == '<section id="section-54">
|
377
|
+
<num>54.</num>
|
378
|
+
<intro>
|
379
|
+
<p>Podstawową jednostką redakcyjną ustawy jest artykuł.</p>
|
380
|
+
</intro>
|
381
|
+
<paragraph id="section-54.paragraph-0">
|
382
|
+
<content>
|
383
|
+
<p>Something here</p>
|
384
|
+
</content>
|
385
|
+
</paragraph>
|
386
|
+
<point id="section-54.point-1">
|
387
|
+
<num>1)</num>
|
388
|
+
<content>
|
389
|
+
<p>a point</p>
|
390
|
+
</content>
|
391
|
+
</point>
|
392
|
+
<point id="section-54.point-2">
|
393
|
+
<num>2)</num>
|
394
|
+
<content>
|
395
|
+
<p>second point</p>
|
396
|
+
</content>
|
397
|
+
</point>
|
398
|
+
</section>'
|
399
|
+
end
|
400
|
+
end
|
401
|
+
|
402
|
+
#-------------------------------------------------------------------------------
|
403
|
+
# Point
|
404
|
+
|
405
|
+
describe 'point' do
|
406
|
+
it 'should handle basic point' do
|
407
|
+
node = parse :point, <<EOS
|
408
|
+
1) szczegółowy tryb i terminy rozpatrywania wniosków o udzielenie finansowego wsparcia;
|
409
|
+
EOS
|
410
|
+
|
411
|
+
to_xml(node, 'prefix.', 0).should == '<point id="prefix.point-1">
|
412
|
+
<num>1)</num>
|
413
|
+
<content>
|
414
|
+
<p>szczegółowy tryb i terminy rozpatrywania wniosków o udzielenie finansowego wsparcia;</p>
|
415
|
+
</content>
|
416
|
+
</point>'
|
417
|
+
end
|
418
|
+
|
419
|
+
it 'should handle points with litera' do
|
420
|
+
node = parse :point, <<EOS
|
421
|
+
1) dokumenty potwierdzające prawo własności albo prawo użytkowania wieczystego nieruchomości, której dotyczy przedsięwzięcie albo na której położony jest budynek, którego budowę, remont lub przebudowę zamierza się przepro- wadzić w ramach realizacji przedsięwzięcia, w tym:
|
422
|
+
|
423
|
+
a) oryginał albo potwierdzoną za zgodność z oryginałem kopię wypisu i wyrysu z rejestru gruntów wszystkich dzia- łek ewidencyjnych, na których realizowane jest przedsięwzięcie, wydanego nie wcześniej niż 3 miesiące przed dniem złożenia wniosku, oraz
|
424
|
+
|
425
|
+
b) numer księgi wieczystej;
|
426
|
+
EOS
|
427
|
+
|
428
|
+
to_xml(node, 'prefix.', 0).should == '<point id="prefix.point-1">
|
429
|
+
<num>1)</num>
|
430
|
+
<intro>
|
431
|
+
<p>dokumenty potwierdzające prawo własności albo prawo użytkowania wieczystego nieruchomości, której dotyczy przedsięwzięcie albo na której położony jest budynek, którego budowę, remont lub przebudowę zamierza się przepro- wadzić w ramach realizacji przedsięwzięcia, w tym:</p>
|
432
|
+
</intro>
|
433
|
+
<list id="prefix.point-1.list-a">
|
434
|
+
<num>a)</num>
|
435
|
+
<content>
|
436
|
+
<p>oryginał albo potwierdzoną za zgodność z oryginałem kopię wypisu i wyrysu z rejestru gruntów wszystkich dzia- łek ewidencyjnych, na których realizowane jest przedsięwzięcie, wydanego nie wcześniej niż 3 miesiące przed dniem złożenia wniosku, oraz</p>
|
437
|
+
</content>
|
438
|
+
</list>
|
439
|
+
<list id="prefix.point-1.list-b">
|
440
|
+
<num>b)</num>
|
441
|
+
<content>
|
442
|
+
<p>numer księgi wieczystej;</p>
|
443
|
+
</content>
|
444
|
+
</list>
|
445
|
+
</point>'
|
446
|
+
end
|
447
|
+
end
|
448
|
+
|
449
|
+
end
|