wortsammler 1.0.3 → 2.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.gitignore +46 -4
- data/.gitpod.Dockerfile +32 -0
- data/.gitpod.yml +1 -0
- data/.idea/.name +1 -0
- data/.idea/.rakeTasks +7 -0
- data/.idea/202_wortsammler-gem.iml +119 -0
- data/.idea/compiler.xml +22 -0
- data/.idea/encodings.xml +6 -0
- data/.idea/inspectionProfiles/profiles_settings.xml +7 -0
- data/.idea/misc.xml +4 -0
- data/.idea/modules.xml +9 -0
- data/.idea/vcs.xml +7 -0
- data/Gemfile +1 -0
- data/README.md +25 -28
- data/Rakefile +3 -3
- data/changelog.md +17 -1
- data/lib/wortsammler.rb +61 -54
- data/lib/wortsammler/class.Traceable.md.rb +9 -7
- data/lib/wortsammler/class.Traceable.rb +74 -60
- data/lib/wortsammler/class.proolib.rb +1102 -982
- data/lib/wortsammler/mdTraceParser.treetop +2 -2
- data/lib/wortsammler/version.rb +1 -1
- data/resources/default.wortsammler.latex +4 -3
- data/resources/main.md +1 -1
- data/resources/pandocdefault.docx +0 -0
- data/resources/pandocdefault.epub +70 -0
- data/resources/pandocdefault.html +73 -0
- data/resources/pandocdefault.latex +403 -0
- data/resources/sample_the-sample-document.yaml +27 -1
- data/spec/TC_EXP_001.md +2 -1
- data/spec/Zupfnoter.jpg +0 -0
- data/spec/tc_exp_003_reference.txt +14 -29
- data/spec/test_beautify.md +13 -1
- data/spec/test_beautify_reference.md +17 -3
- data/spec/test_mkindex_reference.txt +9 -38
- data/spec/test_slides.md +38 -0
- data/spec/wortsammler_spec.rb +186 -150
- data/testproject.xx/30_Sources/001_Main/main.md +273 -0
- data/testproject.xx/30_Sources/900_snippets/snippets.xlsx +0 -0
- data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_compact.docx +0 -0
- data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_compact.html +145 -0
- data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_compact.latex +416 -0
- data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_compact.pdf +0 -0
- data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_folien.beamer.pdf +0 -0
- data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_folien.docx +0 -0
- data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_folien.html +145 -0
- data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_folien.latex +416 -0
- data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_folien.pdf +0 -0
- data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_mieter.docx +0 -0
- data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_mieter.html +145 -0
- data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_mieter.latex +416 -0
- data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_mieter.pdf +0 -0
- data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_review.latex +582 -0
- data/testproject.xx/30_Sources/ZGEN_Documents/RS_Main_review.pdf +0 -0
- data/testproject.xx/30_Sources/ZGEN_RequirementsTracing/RS_Main.traces.md +56 -0
- data/testproject.xx/30_Sources/ZGEN_RequirementsTracing/ZGEN_Reqtrace.graphml +119 -0
- data/testproject.xx/30_Sources/ZGEN_RequirementsTracing/ZGEN_Reqtrace.md +50 -0
- data/testproject.xx/30_Sources/ZGEN_RequirementsTracing/ZGEN_ReqtraceCompare.txt +52 -0
- data/testproject.xx/30_Sources/ZSUPP_Manifests/sample_the-sample-document.yaml +79 -0
- data/testproject.xx/30_Sources/ZSUPP_Styles/default.wortsammler.latex +321 -0
- data/testproject.xx/30_Sources/ZSUPP_Styles/logo.jpg +0 -0
- data/testproject.xx/30_Sources/ZSUPP_Tools/rakefile.rb +5 -0
- data/testresults/wortsammler_testresults.html +49 -466
- data/uninstall-pandoc.pl +79 -0
- data/wortsammler.gemspec +7 -4
- metadata +84 -14
- data/testresults/wortsammler_testresults.log +0 -325
- data/wortsammler-gem.sublime-project +0 -8
@@ -7,9 +7,11 @@
|
|
7
7
|
- docx
|
8
8
|
- html
|
9
9
|
- pdf
|
10
|
+
- beamer
|
11
|
+
- slidy
|
10
12
|
|
11
13
|
:vars:
|
12
|
-
:lang:
|
14
|
+
:lang: de-de
|
13
15
|
:fontsize: 12pt
|
14
16
|
:mainfont: Calibri
|
15
17
|
:sansfont: Calibri
|
@@ -39,14 +41,38 @@
|
|
39
41
|
:title: Main requirements (review)
|
40
42
|
:filepart: review
|
41
43
|
:debug: true
|
44
|
+
:format:
|
45
|
+
- latex
|
46
|
+
- docx
|
47
|
+
- html
|
48
|
+
- pdf
|
42
49
|
|
43
50
|
:compact:
|
44
51
|
:title: Main requirements (compact)
|
45
52
|
:filepart: compact
|
53
|
+
:format:
|
54
|
+
- latex
|
55
|
+
- docx
|
56
|
+
- html
|
57
|
+
- pdf
|
58
|
+
|
46
59
|
|
47
60
|
:extended:
|
48
61
|
:title: Main requirements (extended)
|
49
62
|
:filepart: mieter
|
63
|
+
:format:
|
64
|
+
- latex
|
65
|
+
- docx
|
66
|
+
- html
|
67
|
+
- pdf
|
68
|
+
|
69
|
+
|
70
|
+
:folien:
|
71
|
+
:title: Beamer
|
72
|
+
:filepart: folien
|
73
|
+
:format:
|
74
|
+
- beamer
|
75
|
+
- pdf
|
50
76
|
|
51
77
|
:snippets:
|
52
78
|
- ../900_snippets/snippets.xlsx
|
data/spec/TC_EXP_001.md
CHANGED
@@ -8,9 +8,10 @@
|
|
8
8
|
: Perform the following steps
|
9
9
|
- Create a report of used images which do not have a model
|
10
10
|
release
|
11
|
-
|
11
|
+
|
12
12
|
Expected Results
|
13
13
|
: There should not be an image without model release
|
14
|
+
|
14
15
|
~~~~ {.expectedResult label="TC_DES_003"}
|
15
16
|
- logo on every page
|
16
17
|
- color scheme shall be seen
|
data/spec/Zupfnoter.jpg
ADDED
Binary file
|
@@ -1,38 +1,26 @@
|
|
1
1
|
- this is headline
|
2
|
-
- this is TC\_EXP\_003\_1
|
3
|
-
- this is md TC\_EXP\_003\_2
|
4
|
-
- this is md TC\_EXP\_003\_2
|
5
2
|
|
6
3
|
|
7
|
-
this is headline
|
8
|
-
================
|
9
4
|
|
5
|
+
THIS IS HEADLINE
|
10
6
|
|
11
|
-
now verbatim by indent inclucde TC_EXP_003_1.md
|
12
7
|
|
13
|
-
## this is TC_EXP_003_1
|
14
|
-
|
15
|
-
we now include TC_EXP_003_2 from TC_EXP_003_1
|
16
|
-
|
17
|
-
## this is md TC_EXP_003_2
|
18
|
-
|
19
|
-
- hugo
|
20
|
-
|
21
|
-
- hugo2
|
22
|
-
|
23
|
-
end of TC_EXP_003_2
|
24
|
-
|
25
|
-
end of TC_EXP_003_1
|
26
8
|
|
27
|
-
now
|
9
|
+
now verbatim by indent inclucde TC_EXP_003_1.md## this is TC_EXP_003_1
|
28
10
|
|
29
|
-
this is
|
30
|
-
--------------------
|
11
|
+
we now include TC_EXP_003_2 from TC_EXP_003_1## this is md TC_EXP_003_2
|
31
12
|
|
32
|
-
|
13
|
+
- hugo
|
33
14
|
|
34
|
-
|
35
|
-
|
15
|
+
- hugo2
|
16
|
+
|
17
|
+
end of TC_EXP_003_2
|
18
|
+
|
19
|
+
end of TC_EXP_003_1
|
20
|
+
|
21
|
+
now full format inclucde TC_EXP_003_1.md## this is TC_EXP_003_1
|
22
|
+
|
23
|
+
we now include TC_EXP_003_2 from TC_EXP_003_1## this is md TC_EXP_003_2
|
36
24
|
|
37
25
|
- hugo
|
38
26
|
|
@@ -42,10 +30,7 @@ end of TC_EXP_003_2
|
|
42
30
|
|
43
31
|
end of TC_EXP_003_1
|
44
32
|
|
45
|
-
now full format inclucde TC_EXP_003_2.md
|
46
|
-
|
47
|
-
this is md TC_EXP_003_2
|
48
|
-
-----------------------
|
33
|
+
now full format inclucde TC_EXP_003_2.md## this is md TC_EXP_003_2
|
49
34
|
|
50
35
|
- hugo
|
51
36
|
|
data/spec/test_beautify.md
CHANGED
@@ -19,7 +19,6 @@ this
|
|
19
19
|
~~~~
|
20
20
|
|
21
21
|
|
22
|
-
|
23
22
|
``` {#backtick_codeblock}
|
24
23
|
|
25
24
|
this
|
@@ -28,3 +27,16 @@ this
|
|
28
27
|
|
29
28
|
codedblock
|
30
29
|
```
|
30
|
+
|
31
|
+
|
32
|
+
**QNAP Store** **iSCSI-Name**
|
33
|
+
---------------- ------------------------ -------------------------------------------------
|
34
|
+
**KTLStore3** ktlstore3target1\_lun0 altes Replica-Volumen für KTLAZ-Host1
|
35
|
+
ktlstore3target2\_lun0 Hauptspeichervolumen (Laufwerk D auf KTLHost3)
|
36
|
+
ktlstore3excvol1 Speicher für Exchange (Laufwerk E auf KTLHost3)
|
37
|
+
ktlstore3excvol2 Speicher für Exchange (Laufwerk F auf KTLHost3)
|
38
|
+
**KTLStore4** ktlstore4target1\_lun0 1,5 TB Volume auf
|
39
|
+
ktlstore4target2\_lun0 Hauptspeichervolumen für KTLHost4 Laufwerk D
|
40
|
+
ktlstore4excvol1 Speicher für Exchange (Laufwerk E auf KTLHost4)
|
41
|
+
ktlstore4excvol2 Speicher für Exchange (Laufwerk F auf KTLHost4)
|
42
|
+
|
@@ -1,6 +1,9 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
---
|
2
|
+
author:
|
3
|
+
- Bernhard Weichel
|
4
|
+
date: '1.12.2014'
|
5
|
+
title: Test Markdown
|
6
|
+
---
|
4
7
|
|
5
8
|
# Test headlines
|
6
9
|
|
@@ -25,3 +28,14 @@ this
|
|
25
28
|
|
26
29
|
codedblock
|
27
30
|
~~~~
|
31
|
+
|
32
|
+
**QNAP Store** **iSCSI-Name**
|
33
|
+
---------------- ------------------------ -------------------------------------------------
|
34
|
+
**KTLStore3** ktlstore3target1\_lun0 altes Replica-Volumen für KTLAZ-Host1
|
35
|
+
ktlstore3target2\_lun0 Hauptspeichervolumen (Laufwerk D auf KTLHost3)
|
36
|
+
ktlstore3excvol1 Speicher für Exchange (Laufwerk E auf KTLHost3)
|
37
|
+
ktlstore3excvol2 Speicher für Exchange (Laufwerk F auf KTLHost3)
|
38
|
+
**KTLStore4** ktlstore4target1\_lun0 1,5 TB Volume auf
|
39
|
+
ktlstore4target2\_lun0 Hauptspeichervolumen für KTLHost4 Laufwerk D
|
40
|
+
ktlstore4excvol1 Speicher für Exchange (Laufwerk E auf KTLHost4)
|
41
|
+
ktlstore4excvol2 Speicher für Exchange (Laufwerk F auf KTLHost4)
|
@@ -3,35 +3,22 @@ CONTENTS
|
|
3
3
|
CONTENTS
|
4
4
|
|
5
5
|
Contents
|
6
|
-
1 Das ist ein Test zur Indexerstellung
|
7
|
-
|
8
|
-
2
|
6
|
+
1 Das ist ein Test zur Indexerstellung 2
|
9
7
|
|
10
8
|
1
|
11
9
|
|
12
|
-
|
10
|
+
January 5, 2019
|
13
11
|
|
14
12
|
1
|
15
13
|
|
16
14
|
DAS IST EIN TEST ZUR INDEXERSTELLUNG
|
17
15
|
|
18
16
|
1 Das ist ein Test zur Indexerstellung
|
19
|
-
Dies ist ein Typoblindtext. An ihm kann man sehen, ob alle Buchstaben da sind und wie sie aussehen. Manchmal
|
20
|
-
benutzt man Worte wie Hamburgefonts, Rafgenduks oder Handgloves, um Schriften zu testen.
|
21
|
-
Manchmal Sätze, die alle Buchstaben des Alphabets enthalten - man nennt diese Sätze »Pangrams«. Sehr bekannt
|
22
|
-
ist dieser: The quick brown fox jumps over the lazy old dog. Oft werden in Typoblindtexte auch fremdsprachige
|
23
|
-
Satzteile eingebaut (AVAIL® and Wefox™ are testing aussi la Kerning), um die Wirkung in anderen Sprachen zu
|
24
|
-
testen. In Lateinisch sieht zum Beispiel fast jede Schrift gut aus. Quod erat demonstrandum. Seit 1975 fehlen in
|
25
|
-
den meisten Testtexten die Zahlen, weswegen nach TypoGb. 204 § ab dem Jahr 2034 Zahlen in 86 der Texte zur
|
26
|
-
Pflicht werden. Nichteinhaltung wird mit bis zu 245 € oder 368 $ bestraft. Genauso wichtig in sind mittlerweile auch
|
27
|
-
Âçcèñtë, die in neueren Schriften aber fast immer enthalten sind. Ein wichtiges aber schwierig zu integrierendes Feld
|
28
|
-
sind OpenType-Funktionalitäten. Je nach Software und Voreinstellungen können eingebaute Kapitälchen, Kerning
|
29
|
-
oder Ligaturen (sehr pfiffig) nicht richtig dargestellt werden.Dies ist ein Typoblindtext. An ihm kann man sehen, ob
|
30
|
-
alle Buchstaben da sind und wie sie aussehen. Manchmal benutzt man Worte wie Hamburgefonts, Rafgenduks
|
17
|
+
Dies ist ein Typoblindtext. An ihm kann man sehen, ob alle Buchstaben da sind und wie sie aussehen. Manchmal benutzt man Worte wie Hamburgefonts, Rafgenduks oder Handgloves, um Schriften zu testen. Manchmal S�tze, die alle Buchstaben des Alphabets enthalten - man nennt diese S�tze �Pangrams�. Sehr bekannt ist dieser: The quick brown fox jumps over the lazy old dog. Oft werden in Typoblindtexte auch fremdsprachige Satzteile eingebaut (AVAIL� and WefoxTM are testing aussi la Kerning), um die Wirkung in anderen Sprachen zu testen. In Lateinisch sieht zum Beispiel fast jede Schrift gut aus. Quod erat demonstrandum. Seit 1975 fehlen in den meisten Testtexten die Zahlen, weswegen nach TypoGb. 204 � ab dem Jahr 2034 Zahlen in 86 der Texte zur Pflicht werden. Nichteinhaltung wird mit bis zu 245 oder 368 $ bestraft. Genauso wichtig in sind mittlerweile auch ��c��t�, die in neueren Schriften aber fast immer enthalten sind. Ein wichtiges aber schwierig zu integrierendes Feld sind OpenType-Funktionalit�ten. Je nach Software und Voreinstellungen k�nnen eingebaute Kapit�lchen, Kerning oder Ligaturen (sehr pfiffig) nicht richtig dargestellt werden.Dies ist ein Typoblindtext. An ihm kann man sehen, ob alle Buchstaben da sind und wie sie aussehen. Manchmal benutzt man Worte wie Hamburgefonts, Rafgenduks
|
31
18
|
|
32
19
|
2
|
33
20
|
|
34
|
-
|
21
|
+
January 5, 2019
|
35
22
|
|
36
23
|
1 DAS IST EIN TEST ZUR INDEXERSTELLUNG
|
37
24
|
|
@@ -39,22 +26,11 @@ December 17, 2014
|
|
39
26
|
|
40
27
|
DAS IST EIN TEST ZUR INDEXERSTELLUNG
|
41
28
|
|
42
|
-
Dies ist ein Typoblindtext. An ihm kann man sehen, ob alle Buchstaben da sind und wie sie aussehen. Manchmal
|
43
|
-
benutzt man Worte wie Hamburgefonts, Rafgenduks oder Handgloves, um Schriften zu testen. Manchmal Sätze,
|
44
|
-
die alle Buchstaben des Alphabets enthalten - man nennt diese Sätze »Pangrams«. Sehr bekannt ist dieser: The
|
45
|
-
quick brown fox jumps over the lazy old dog. Oft werden in Typoblindtexte auch fremdsprachige Satzteile eingebaut
|
46
|
-
(AVAIL® and Wefox™ are testing aussi la Kerning), um die Wirkung in anderen Sprachen zu testen. In Lateinisch sieht
|
47
|
-
zum Beispiel fast jede Schrift gut aus. Quod erat demonstrandum. Seit 1975 fehlen in den meisten Testtexten die
|
48
|
-
Zahlen, weswegen nach TypoGb. 204 § ab dem Jahr 2034 Zahlen in 86 der Texte zur Pflicht werden. Nichteinhaltung
|
49
|
-
wird mit bis zu 245 € oder 368 $ bestraft. Genauso wichtig in sind mittlerweile auch Âçcèñtë, die in neueren Schriften
|
50
|
-
aber fast immer enthalten sind. Ein wichtiges aber schwierig zu integrierendes Feld sind OpenType-Funktionalitäten.
|
51
|
-
Je nach Software und Voreinstellungen können eingebaute Kapitälchen, Kerning oder Ligaturen (sehr pfiffig) nicht
|
52
|
-
richtig dargestellt werden.Dies ist ein Typoblindtext. An ihm kann man sehen, ob alle Buchstaben da sind und wie
|
53
|
-
sie aussehen. Manchmal benutzt man Worte wie Hamburgefonts, Rafgenduks
|
29
|
+
Dies ist ein Typoblindtext. An ihm kann man sehen, ob alle Buchstaben da sind und wie sie aussehen. Manchmal benutzt man Worte wie Hamburgefonts, Rafgenduks oder Handgloves, um Schriften zu testen. Manchmal S�tze, die alle Buchstaben des Alphabets enthalten - man nennt diese S�tze �Pangrams�. Sehr bekannt ist dieser: The quick brown fox jumps over the lazy old dog. Oft werden in Typoblindtexte auch fremdsprachige Satzteile eingebaut (AVAIL� and WefoxTM are testing aussi la Kerning), um die Wirkung in anderen Sprachen zu testen. In Lateinisch sieht zum Beispiel fast jede Schrift gut aus. Quod erat demonstrandum. Seit 1975 fehlen in den meisten Testtexten die Zahlen, weswegen nach TypoGb. 204 � ab dem Jahr 2034 Zahlen in 86 der Texte zur Pflicht werden. Nichteinhaltung wird mit bis zu 245 oder 368 $ bestraft. Genauso wichtig in sind mittlerweile auch ��c��t�, die in neueren Schriften aber fast immer enthalten sind. Ein wichtiges aber schwierig zu integrierendes Feld sind OpenType-Funktionalit�ten. Je nach Software und Voreinstellungen k�nnen eingebaute Kapit�lchen, Kerning oder Ligaturen (sehr pfiffig) nicht richtig dargestellt werden.Dies ist ein Typoblindtext. An ihm kann man sehen, ob alle Buchstaben da sind und wie sie aussehen. Manchmal benutzt man Worte wie Hamburgefonts, Rafgenduks
|
54
30
|
|
55
31
|
3
|
56
32
|
|
57
|
-
|
33
|
+
January 5, 2019
|
58
34
|
|
59
35
|
1
|
60
36
|
|
@@ -64,15 +40,10 @@ hier kommt der Index
|
|
64
40
|
|
65
41
|
4
|
66
42
|
|
67
|
-
|
43
|
+
January 5, 2019
|
68
44
|
|
69
45
|
Index
|
70
|
-
|
71
|
-
Typoblindtext, 2, 3
|
72
|
-
Uder, 2
|
73
|
-
Ufer, 2
|
74
|
-
Äpfelchen, 2
|
75
|
-
Über, 2
|
46
|
+
S�tze, 2 Typoblindtext, 2, 3 Uder, 2 Ufer, 2 �pfelchen, 2 �ber, 2
|
76
47
|
|
77
48
|
5
|
78
49
|
|
@@ -84,6 +55,6 @@ ende des Index
|
|
84
55
|
|
85
56
|
6
|
86
57
|
|
87
|
-
|
58
|
+
January 5, 2019
|
88
59
|
|
89
60
|
|
data/spec/test_slides.md
ADDED
@@ -0,0 +1,38 @@
|
|
1
|
+
% Wortsammler Test Slides
|
2
|
+
% Bernhard Weichel
|
3
|
+
% 17.12.2014
|
4
|
+
|
5
|
+
# Slide 1
|
6
|
+
|
7
|
+
This is text on Slide 1
|
8
|
+
|
9
|
+
## this is subtitle in Slide 1
|
10
|
+
|
11
|
+
Lorem ipsum blafasel
|
12
|
+
|
13
|
+
# Slide 2: Lists
|
14
|
+
|
15
|
+
## Bullets
|
16
|
+
|
17
|
+
* bullte 1
|
18
|
+
* bullet 2
|
19
|
+
* bullet 3
|
20
|
+
|
21
|
+
## Numeric
|
22
|
+
|
23
|
+
1. Number 1
|
24
|
+
2. Number 2
|
25
|
+
3. Number 3
|
26
|
+
|
27
|
+
## definition
|
28
|
+
|
29
|
+
MD
|
30
|
+
: Markdown, really cool
|
31
|
+
|
32
|
+
Wortsammler
|
33
|
+
: Wortsammler also really cool
|
34
|
+
|
35
|
+
# an image
|
36
|
+
|
37
|
+
![Zupfnoter](Zupfnoter.jpg)
|
38
|
+
|
data/spec/wortsammler_spec.rb
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
require 'rake'
|
2
2
|
require 'tmpdir'
|
3
3
|
require 'pry'
|
4
|
+
require 'wortsammler.rb'
|
4
5
|
|
5
6
|
wortsammlerbin = "'#{File.expand_path("bin")}'"
|
6
|
-
wortsammler
|
7
|
+
wortsammler = "'#{File.expand_path(File.join("bin", "wortsammler"))}'"
|
7
8
|
testprojectdir = "testproject/30_Sources"
|
8
|
-
specdir
|
9
|
-
testoutput
|
9
|
+
specdir = File.dirname(__FILE__)
|
10
|
+
testoutput = "#{specdir}/../testoutput"
|
10
11
|
|
11
12
|
|
12
13
|
describe "Wortsammler generic issues" do
|
@@ -14,12 +15,12 @@ describe "Wortsammler generic issues" do
|
|
14
15
|
it "provides a help", :exp => false do
|
15
16
|
result = `#{wortsammler} -h`
|
16
17
|
result.should include("Usage: Wortsammler [options]")
|
17
|
-
$?.success?.should==true
|
18
|
+
$?.success?.should == true
|
18
19
|
end
|
19
20
|
|
20
21
|
it "runs silent", :exp => false do
|
21
22
|
result = `#{wortsammler}`
|
22
|
-
result.empty?.should==true
|
23
|
+
result.empty?.should == true
|
23
24
|
end
|
24
25
|
|
25
26
|
it "reports version numbers", :exp => false do
|
@@ -37,16 +38,16 @@ describe "Wortsammler generic issues" do
|
|
37
38
|
it "can create a new project folder", :exp => false do
|
38
39
|
FileUtils.rm_rf(testprojectdir)
|
39
40
|
system "#{wortsammler} -n #{testprojectdir}"
|
40
|
-
$?.success?.should==true
|
41
|
+
$?.success?.should == true
|
41
42
|
|
42
43
|
Dir["#{testprojectdir}/**/*"].should include "#{testprojectdir}/001_Main"
|
43
44
|
Dir["#{testprojectdir}/**/snippets.xlsx"].should include "#{testprojectdir}/900_snippets/snippets.xlsx"
|
44
45
|
end
|
45
46
|
|
46
47
|
it "does not initialize into an existing project folder" do
|
47
|
-
tempdir=Dir.mktmpdir
|
48
|
+
tempdir = Dir.mktmpdir
|
48
49
|
`#{wortsammler} -n #{tempdir}`
|
49
|
-
$?.success?.should==false
|
50
|
+
$?.success?.should == false
|
50
51
|
end
|
51
52
|
|
52
53
|
it "controls the pandoc options by document class" do
|
@@ -57,7 +58,7 @@ end
|
|
57
58
|
describe "Wortsammler options validator" do
|
58
59
|
it "rejects no processing" do
|
59
60
|
system "#{wortsammler} -i."
|
60
|
-
$?.success?.should==false
|
61
|
+
$?.success?.should == false
|
61
62
|
end
|
62
63
|
|
63
64
|
|
@@ -67,58 +68,58 @@ describe "Wortsammler beautifier features" do
|
|
67
68
|
|
68
69
|
|
69
70
|
it "beautifies all markdown files in a folder" do
|
70
|
-
tempdir=Dir.mktmpdir
|
71
|
-
mdtext="#this is headline\n\n lorem ipsum\n\nbla fasel"
|
71
|
+
tempdir = Dir.mktmpdir
|
72
|
+
mdtext = "#this is headline\n\n lorem ipsum\n\nbla fasel"
|
72
73
|
|
73
|
-
cycles=10
|
74
|
+
cycles = 10
|
74
75
|
cycles.times { |i|
|
75
76
|
File.open("#{tempdir}/#{i}.md", "w") { |f| f.puts mdtext }
|
76
77
|
}
|
77
78
|
|
78
79
|
system "#{wortsammler} -bi #{tempdir}"
|
79
|
-
$?.success?.should==true
|
80
|
+
$?.success?.should == true
|
80
81
|
|
81
82
|
cycles.times { |i|
|
82
|
-
beautified_result=File.open("#{tempdir}/#{i}.md").readlines.join
|
83
|
+
beautified_result = File.open("#{tempdir}/#{i}.md").readlines.join
|
83
84
|
beautified_result.should include("# this is headline")
|
84
85
|
}
|
85
86
|
end
|
86
87
|
|
87
88
|
|
88
|
-
it "beautifies a single file" do
|
89
|
-
tempdir=Dir.mktmpdir
|
90
|
-
mdfile="#{tempdir}/single.md"
|
91
|
-
mdtext="#this is headline\n\n lorem ipsum\n\nbla fasel"
|
89
|
+
it "beautifies a single file", exp: false do
|
90
|
+
tempdir = Dir.mktmpdir
|
91
|
+
mdfile = "#{tempdir}/single.md"
|
92
|
+
mdtext = "#this is headline\n\n lorem ipsum\n\nbla fasel"
|
92
93
|
|
93
94
|
File.open(mdfile, "w") { |f| f.puts mdtext }
|
94
95
|
system "#{wortsammler} -bi #{mdfile}"
|
95
|
-
$?.success?.should==true
|
96
|
+
$?.success?.should == true
|
96
97
|
|
97
|
-
beautified_result=File.open(mdfile).readlines.join
|
98
|
+
beautified_result = File.open(mdfile).readlines.join
|
98
99
|
beautified_result.should include("# this is headline")
|
99
100
|
end
|
100
101
|
|
101
102
|
it "recognizes if the specified manifest file is a directory", exp: false do
|
102
103
|
FileUtils.cd("testproject/30_Sources/ZSUPP_Tools") { |d|
|
103
|
-
manifest="../ZSUPP_Manifests"
|
104
|
-
cmd= "#{wortsammler} -bm #{manifest} 2>&1"
|
105
|
-
r
|
106
|
-
r.include?("directory").should==true
|
104
|
+
manifest = "../ZSUPP_Manifests"
|
105
|
+
cmd = "#{wortsammler} -bm #{manifest} 2>&1"
|
106
|
+
r = `#{cmd}`
|
107
|
+
r.include?("directory").should == true
|
107
108
|
}
|
108
|
-
$?.success?.should==false
|
109
|
+
$?.success?.should == false
|
109
110
|
end
|
110
111
|
it "beautifies input files in a manifest" do
|
111
112
|
FileUtils.cd("testproject/30_Sources/ZSUPP_Tools") { |d|
|
112
113
|
manifest = "../ZSUPP_Manifests/sample_the-sample-document.yaml"
|
113
|
-
cmd
|
114
|
+
cmd = "#{wortsammler} -bm #{manifest}"
|
114
115
|
system cmd
|
115
116
|
}
|
116
|
-
$?.success?.should==true
|
117
|
+
$?.success?.should == true
|
117
118
|
end
|
118
119
|
|
119
120
|
it "claims missing input" do
|
120
121
|
system "#{wortsammler} -b"
|
121
|
-
$?.success?.should==false
|
122
|
+
$?.success?.should == false
|
122
123
|
end
|
123
124
|
|
124
125
|
|
@@ -128,9 +129,9 @@ describe "Wortsammler beautifier features" do
|
|
128
129
|
end
|
129
130
|
|
130
131
|
it "creates a semantically unchanged markdown file", exp: false do
|
131
|
-
testname
|
132
|
-
inputfile
|
133
|
-
outputfile
|
132
|
+
testname = 'test_beautify'
|
133
|
+
inputfile = %Q{#{specdir}/#{testname}.md}
|
134
|
+
outputfile = %Q{#{testoutput}/#{testname}.md}
|
134
135
|
referencefile = %Q{#{specdir}/#{testname}_reference.md}
|
135
136
|
|
136
137
|
FileUtils.cp(inputfile, outputfile)
|
@@ -138,7 +139,7 @@ describe "Wortsammler beautifier features" do
|
|
138
139
|
system cmd
|
139
140
|
|
140
141
|
reference = File.open(referencefile).read
|
141
|
-
result
|
142
|
+
result = File.open(outputfile).read
|
142
143
|
result.should == reference
|
143
144
|
end
|
144
145
|
|
@@ -147,50 +148,50 @@ end
|
|
147
148
|
describe "Wortsammler conversion" do
|
148
149
|
|
149
150
|
it "converts a single file to output format" do
|
150
|
-
tempdir=Dir.mktmpdir
|
151
|
-
mdfile="#{tempdir}/single.md"
|
152
|
-
mdtext="#this is headline\n\n lorem ipsum\n\nbla fasel"
|
151
|
+
tempdir = Dir.mktmpdir
|
152
|
+
mdfile = "#{tempdir}/single.md"
|
153
|
+
mdtext = "#this is headline\n\n lorem ipsum\n\nbla fasel"
|
153
154
|
File.open(mdfile, "w") { |f| f.puts mdtext }
|
154
155
|
system "#{wortsammler} -pi #{mdfile} -o #{tempdir} -f latex:pdf:html:docx"
|
155
|
-
$?.success?.should==true
|
156
|
+
$?.success?.should == true
|
156
157
|
|
157
158
|
|
158
|
-
Dir["#{tempdir}/*"].map { |f| File.basename(f) }.should== ["single.docx",
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
159
|
+
Dir["#{tempdir}/*"].map { |f| File.basename(f) }.sort.should == ["single.docx",
|
160
|
+
"single.html",
|
161
|
+
"single.latex",
|
162
|
+
"single.log",
|
163
|
+
"single.md",
|
164
|
+
"single.pdf"
|
164
165
|
]
|
165
166
|
end
|
166
167
|
|
167
168
|
it "converts a single file to default output format" do
|
168
|
-
tempdir=Dir.mktmpdir
|
169
|
-
mdfile="#{tempdir}/single.md"
|
170
|
-
mdtext="#this is headline\n\n lorem ipsum\n\nbla fasel"
|
169
|
+
tempdir = Dir.mktmpdir
|
170
|
+
mdfile = "#{tempdir}/single.md"
|
171
|
+
mdtext = "#this is headline\n\n lorem ipsum\n\nbla fasel"
|
171
172
|
File.open(mdfile, "w") { |f| f.puts mdtext }
|
172
173
|
system "#{wortsammler} -pi #{mdfile} -o #{tempdir}"
|
173
|
-
$?.success?.should==true
|
174
|
+
$?.success?.should == true
|
174
175
|
|
175
176
|
|
176
|
-
Dir["#{tempdir}/*"].map { |f| File.basename(f) }.should== ["single.log",
|
177
|
-
|
178
|
-
|
177
|
+
Dir["#{tempdir}/*"].map { |f| File.basename(f) }.sort.should == ["single.log",
|
178
|
+
"single.md",
|
179
|
+
"single.pdf"
|
179
180
|
]
|
180
181
|
end
|
181
182
|
|
182
183
|
|
183
184
|
it "handles chapters up to 6 levels", exp: false do
|
184
|
-
tempdir="#{specdir}/../testoutput"
|
185
|
-
mdfile="#{tempdir}/chapternesting.md"
|
186
|
-
mdtext="#this is headline\n\n lorem ipsum\n\nbla fasel"
|
185
|
+
tempdir = "#{specdir}/../testoutput"
|
186
|
+
mdfile = "#{tempdir}/chapternesting.md"
|
187
|
+
mdtext = "#this is headline\n\n lorem ipsum\n\nbla fasel"
|
187
188
|
|
188
189
|
def lorem(j)
|
189
190
|
(1.upto 100).map { |i| "text_#{j} lorem ipsum #{i} dolor " }.join(" ")
|
190
191
|
end
|
191
192
|
|
192
193
|
def chapter(i, depth)
|
193
|
-
["\n\n", "##########"[1..depth], " this is example on level #{i} .. #{depth}\n\n",
|
194
|
+
["\n\n", "##########"[1 .. depth], " this is example on level #{i} .. #{depth}\n\n",
|
194
195
|
lorem(i),
|
195
196
|
].join("")
|
196
197
|
end
|
@@ -204,27 +205,27 @@ describe "Wortsammler conversion" do
|
|
204
205
|
}
|
205
206
|
|
206
207
|
system "#{wortsammler} -pbi '#{mdfile}' -o '#{tempdir}' -f pdf:latex"
|
207
|
-
$?.success?.should==true
|
208
|
+
$?.success?.should == true
|
208
209
|
|
209
|
-
Dir["#{tempdir}/chapternesting*"].map { |f| File.basename(f) }.sort.should== ["chapternesting.md",
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
210
|
+
Dir["#{tempdir}/chapternesting*"].map { |f| File.basename(f) }.sort.should == ["chapternesting.md",
|
211
|
+
"chapternesting.pdf",
|
212
|
+
"chapternesting.latex",
|
213
|
+
"chapternesting.log",
|
214
|
+
"chapternesting.md.bak"
|
214
215
|
].sort
|
215
216
|
end
|
216
217
|
|
217
218
|
it "handles lists up to 9 levels", exp: false do
|
218
|
-
tempdir="#{specdir}/../testoutput"
|
219
|
-
mdfile="#{tempdir}/listnesting.md"
|
220
|
-
mdtext="#this is headline\n\n lorem ipsum\n\nbla fasel"
|
219
|
+
tempdir = "#{specdir}/../testoutput"
|
220
|
+
mdfile = "#{tempdir}/listnesting.md"
|
221
|
+
mdtext = "#this is headline\n\n lorem ipsum\n\nbla fasel"
|
221
222
|
|
222
223
|
def lorem(j)
|
223
224
|
(1.upto 100).map { |i| "text_#{j} lorem ipsum #{i} dolor " }.join(" ")
|
224
225
|
end
|
225
226
|
|
226
227
|
def chapter(i, depth)
|
227
|
-
["\n\n", "##########"[1..depth], " this is example on level #{i} .. #{depth}\n\n",
|
228
|
+
["\n\n", "##########"[1 .. depth], " this is example on level #{i} .. #{depth}\n\n",
|
228
229
|
lorem(i),
|
229
230
|
].join("")
|
230
231
|
end
|
@@ -236,79 +237,85 @@ describe "Wortsammler conversion" do
|
|
236
237
|
f.puts ""
|
237
238
|
|
238
239
|
0.upto 8 do |i|
|
239
|
-
f.puts [" "*i, "- this is list level #{i}"].join
|
240
|
+
f.puts [" " * i, "- this is list level #{i}"].join
|
240
241
|
end
|
241
242
|
}
|
242
243
|
|
243
244
|
system "#{wortsammler} -pbi '#{mdfile}' -o '#{tempdir}' -f pdf:latex"
|
244
|
-
$?.success?.should==true
|
245
|
+
$?.success?.should == true
|
245
246
|
|
246
|
-
Dir["#{tempdir}/listnesting*"].map { |f| File.basename(f) }.sort.should== ["listnesting.md",
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
247
|
+
Dir["#{tempdir}/listnesting*"].map { |f| File.basename(f) }.sort.should == ["listnesting.md",
|
248
|
+
"listnesting.pdf",
|
249
|
+
"listnesting.latex",
|
250
|
+
"listnesting.log",
|
251
|
+
"listnesting.md.bak"
|
251
252
|
].sort
|
252
253
|
end
|
253
254
|
|
254
255
|
it "converts all files within a folder to output format" do
|
255
|
-
tempdir=Dir.mktmpdir
|
256
|
-
mdtext="# Header\n\n lorem ipsum\n"
|
256
|
+
tempdir = Dir.mktmpdir
|
257
|
+
mdtext = "# Header\n\n lorem ipsum\n"
|
257
258
|
basefiles = ["f1", "f2", "f3"]
|
258
|
-
outfiles
|
259
|
+
outfiles = basefiles.map { |f| ["#{f}.md", "#{f}.latex"] }.flatten.sort
|
259
260
|
basefiles.each { |f|
|
260
261
|
File.open("#{tempdir}/#{f}.md", "w") { |fo| fo.puts mdtext }
|
261
262
|
}
|
262
263
|
|
263
264
|
system "#{wortsammler} -pi #{tempdir} -o #{tempdir} -f latex"
|
264
|
-
$?.success?.should==true
|
265
|
+
$?.success?.should == true
|
265
266
|
|
266
|
-
Dir["#{tempdir}/*"].map { |f| File.basename(f) }.sort.should== outfiles
|
267
|
+
Dir["#{tempdir}/*"].map { |f| File.basename(f) }.sort.should == outfiles
|
267
268
|
|
268
269
|
end
|
269
270
|
|
270
271
|
it "processes a manifest" do
|
271
272
|
FileUtils.cd("testproject/30_Sources/ZSUPP_Tools") { |d|
|
272
|
-
manifest="../ZSUPP_Manifests/sample_the-sample-document.yaml"
|
273
|
-
cmd= "#{wortsammler} -pm #{manifest}"
|
273
|
+
manifest = "../ZSUPP_Manifests/sample_the-sample-document.yaml"
|
274
|
+
cmd = "#{wortsammler} -pm #{manifest}"
|
274
275
|
system cmd
|
275
276
|
}
|
276
|
-
$?.success?.should==true
|
277
|
+
$?.success?.should == true
|
277
278
|
end
|
278
279
|
|
279
280
|
it "investigates the existence of a manifest" do
|
280
|
-
manifest="testproject/30_Sources/ZSUPP_Manifests/xxthis-path-does-not-exist.yaml"
|
281
|
+
manifest = "testproject/30_Sources/ZSUPP_Manifests/xxthis-path-does-not-exist.yaml"
|
281
282
|
system "#{wortsammler} -m #{manifest}"
|
282
|
-
$?.success?.should==false
|
283
|
+
$?.success?.should == false
|
283
284
|
end
|
284
285
|
|
285
286
|
it "extracts the traceables according to a manifest", :exp => false do
|
286
|
-
manifest="testproject/30_Sources/ZSUPP_Manifests/sample_the-sample-document.yaml"
|
287
|
+
manifest = "testproject/30_Sources/ZSUPP_Manifests/sample_the-sample-document.yaml"
|
288
|
+
tracefile = "testproject/30_Sources/ZGEN_RequirementsTracing/RS_Main.traces.md"
|
289
|
+
FileUtils.rm(tracefile) if File.exists?(tracefile)
|
290
|
+
|
287
291
|
system "#{wortsammler} -cm #{manifest}"
|
288
|
-
|
292
|
+
result = File.read("testproject/30_Sources/ZGEN_RequirementsTracing/RS_Main.traces.md")
|
293
|
+
|
294
|
+
expect(result).to include("\\[RS\\_Comp\\_001\\] **Flexibler Dokumentumfang** { }()")
|
295
|
+
$?.success?.should == true
|
289
296
|
end
|
290
297
|
|
291
298
|
|
292
299
|
it "extracts plantuml according to a manifest", :exp => false do
|
293
|
-
manifest="testproject/30_Sources/ZSUPP_Manifests/sample_the-sample-document.yaml"
|
300
|
+
manifest = "testproject/30_Sources/ZSUPP_Manifests/sample_the-sample-document.yaml"
|
294
301
|
system "#{wortsammler} -um #{manifest}"
|
295
|
-
$?.success?.should==true
|
302
|
+
$?.success?.should == true
|
296
303
|
end
|
297
304
|
|
298
305
|
it "extracts plantuml from a single file", :exp => false do
|
299
|
-
outfile="#{testoutput}/authentification.png"
|
306
|
+
outfile = "#{testoutput}/authentification.png"
|
300
307
|
FileUtils.rm(outfile) if File.exists?(outfile)
|
301
308
|
system "#{wortsammler} -ui \"#{specdir}/TC_EXP_002.md\""
|
302
|
-
$?.success?.should==true
|
303
|
-
File.exist?(outfile).should==true
|
309
|
+
$?.success?.should == true
|
310
|
+
File.exist?(outfile).should == true
|
304
311
|
end
|
305
312
|
|
306
313
|
it "extracts plantuml from a folder", :exp => false do
|
307
|
-
outfile="#{testoutput}/authentification.png"
|
314
|
+
outfile = "#{testoutput}/authentification.png"
|
308
315
|
FileUtils.rm(outfile) if File.exists?(outfile)
|
309
316
|
system "#{wortsammler} -ui \"#{specdir}\""
|
310
|
-
$?.success?.should==true
|
311
|
-
File.exist?(outfile).should==true
|
317
|
+
$?.success?.should == true
|
318
|
+
File.exist?(outfile).should == true
|
312
319
|
end
|
313
320
|
|
314
321
|
|
@@ -321,55 +328,80 @@ describe "Wortsammler conversion" do
|
|
321
328
|
end
|
322
329
|
|
323
330
|
|
324
|
-
it "runs the rake file in the sample document" do
|
331
|
+
it "runs the rake file in the sample document", exp: false do
|
325
332
|
FileUtils.cd("testproject/30_Sources/ZSUPP_Tools") { |d|
|
326
|
-
path=ENV['PATH']
|
327
|
-
ENV['PATH']="#{wortsammlerbin}:#{path}"
|
333
|
+
path = ENV['PATH']
|
334
|
+
ENV['PATH'] = "#{wortsammlerbin}:#{path}"
|
328
335
|
puts ENV['PATH']
|
329
336
|
#system 'wortsammler -h'
|
330
|
-
cmd= "rake sample"
|
337
|
+
cmd = "rake sample"
|
331
338
|
system cmd
|
332
339
|
}
|
333
|
-
|
340
|
+
Dir["testproject/30_Sources/ZGEN_Documents/*.*"].count.should == 15
|
341
|
+
$?.success?.should == true
|
334
342
|
end
|
335
343
|
|
336
|
-
it "compiles all documents" do
|
344
|
+
it "compiles all documents", exp: false do
|
337
345
|
FileUtils.cd("testproject/30_Sources/ZSUPP_Tools") { |d|
|
338
|
-
path=ENV['PATH']
|
339
|
-
ENV['PATH']="#{wortsammlerbin}:#{path}"
|
346
|
+
path = ENV['PATH']
|
347
|
+
ENV['PATH'] = "#{wortsammlerbin}:#{path}"
|
340
348
|
puts ENV['PATH']
|
341
349
|
#system 'wortsammler -h'
|
342
|
-
cmd= "rake all"
|
350
|
+
cmd = "rake all"
|
343
351
|
#system cmd
|
344
352
|
}
|
345
353
|
end
|
346
354
|
|
347
355
|
end
|
348
356
|
|
357
|
+
describe "Wortsammler output formats" do
|
358
|
+
|
359
|
+
|
360
|
+
it "generates dzslides", exp: false do
|
361
|
+
mdfile = %Q{'#{specdir}/test_slides.md'}
|
362
|
+
FileUtils.cd("spec") do
|
363
|
+
system %Q{#{wortsammler} -pi #{mdfile} -o '#{testoutput}' -f slidy}
|
364
|
+
end
|
365
|
+
end
|
366
|
+
|
367
|
+
|
368
|
+
it "generates beamer files", exp: false do
|
369
|
+
mdfile = %Q{'#{specdir}/test_slides.md'}
|
370
|
+
FileUtils.cd("spec") do
|
371
|
+
system %Q{#{wortsammler} -pi #{mdfile} -o '#{testoutput}' -f beamer}
|
372
|
+
end
|
373
|
+
end
|
374
|
+
|
375
|
+
|
376
|
+
it "generates markdown", exp: true do
|
377
|
+
|
378
|
+
end
|
379
|
+
end
|
380
|
+
|
349
381
|
|
350
382
|
describe "Wortsammler syntax extensions", :exp => false do
|
351
383
|
it "[RS_Comp_012] supports embedded images" do
|
352
|
-
tempdir
|
353
|
-
imagefile ="floating-image.pdf"
|
384
|
+
tempdir = "#{specdir}/../testoutput"
|
385
|
+
imagefile = "floating-image.pdf"
|
354
386
|
|
355
387
|
FileUtils.cd(tempdir) { |c|
|
356
388
|
FileUtils.cp("#{specdir}/#{imagefile}", ".")
|
357
389
|
|
358
|
-
mdfile="embedded-image.md"
|
359
|
-
|
360
|
-
mdtext=["#this is headline",
|
361
|
-
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
|
390
|
+
mdfile = "embedded-image.md"
|
391
|
+
|
392
|
+
mdtext = ["#this is headline",
|
393
|
+
(5 .. 100).to_a.map { |oi|
|
394
|
+
["\n\n",
|
395
|
+
"this is image\n\n~~EMBED \"#{imagefile}\" o 40mm 60mm~~",
|
396
|
+
(1 .. 20).to_a.map { |ii|
|
397
|
+
"#{oi} und #{ii} lorem ipsum und blafasel"
|
398
|
+
}.join(" "),
|
399
|
+
"\n\n",
|
400
|
+
(5 .. 15 + oi).to_a.map { |ii|
|
401
|
+
"#{oi} und #{ii} lorem ipsum und blafasel"
|
402
|
+
}.join(" "),
|
403
|
+
"\n\n"]
|
404
|
+
}
|
373
405
|
].flatten.join("\n")
|
374
406
|
|
375
407
|
File.open(mdfile, "w") { |f| f.puts mdtext }
|
@@ -377,54 +409,54 @@ describe "Wortsammler syntax extensions", :exp => false do
|
|
377
409
|
system "#{wortsammler} -pi '#{mdfile}' -o '.' -f pdf:latex:html:docx"
|
378
410
|
FileUtils.rm imagefile
|
379
411
|
}
|
380
|
-
$?.success?.should==true
|
412
|
+
$?.success?.should == true
|
381
413
|
end
|
382
414
|
|
383
415
|
it "TC_EXP_001 expands expected results from testcases", exp: false do
|
384
416
|
|
385
|
-
proc=ReferenceTweaker.new("pdf")
|
386
|
-
outfile="#{specdir}/../testoutput/TC_EXP_001.output.md"
|
417
|
+
proc = ReferenceTweaker.new("pdf")
|
418
|
+
outfile = "#{specdir}/../testoutput/TC_EXP_001.output.md"
|
387
419
|
File.unlink(outfile) if File.exists?(outfile)
|
388
420
|
proc.prepareFile("#{specdir}/TC_EXP_001.md", outfile)
|
389
421
|
|
390
|
-
a=File.open(outfile, "r").readlines.join
|
422
|
+
a = File.open(outfile, "r").readlines.join
|
391
423
|
a.should include("TC-DES-003-01")
|
392
424
|
end
|
393
425
|
|
394
426
|
it "TC_EXP_002 removes plantuml sources", exp: false do
|
395
427
|
|
396
|
-
proc=ReferenceTweaker.new("pdf")
|
397
|
-
outfile="#{specdir}/../testoutput/TC_EXP_002.output.md"
|
428
|
+
proc = ReferenceTweaker.new("pdf")
|
429
|
+
outfile = "#{specdir}/../testoutput/TC_EXP_002.output.md"
|
398
430
|
File.unlink(outfile) if File.exists?(outfile)
|
399
431
|
proc.prepareFile("#{specdir}/TC_EXP_002.md", outfile)
|
400
432
|
|
401
|
-
a=File.open(outfile, "r").readlines.join
|
402
|
-
a.include?(".plantuml").should==false
|
433
|
+
a = File.open(outfile, "r").readlines.join
|
434
|
+
a.include?(".plantuml").should == false
|
403
435
|
end
|
404
436
|
|
405
|
-
it "
|
406
|
-
tempdir
|
407
|
-
mdinlayfile
|
408
|
-
mdinlayfile_1 ="TC_EXP_003_2.md"
|
409
|
-
mdfile="tc_exp_003"
|
437
|
+
it "TC_EXP_003x handles Markdown inlays", exp: true do
|
438
|
+
tempdir = "#{specdir}/../testoutput"
|
439
|
+
mdinlayfile = "TC_EXP_003_1.md"
|
440
|
+
mdinlayfile_1 = "TC_EXP_003_2.md"
|
441
|
+
mdfile = "tc_exp_003"
|
410
442
|
|
411
443
|
FileUtils.cd(tempdir) { |c|
|
412
444
|
FileUtils.cp("#{specdir}/#{mdinlayfile}", ".")
|
413
445
|
FileUtils.cp("#{specdir}/#{mdinlayfile_1}", ".")
|
414
446
|
|
415
447
|
|
416
|
-
mdtext=["#this is headline",
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
448
|
+
mdtext = ["#this is headline",
|
449
|
+
"",
|
450
|
+
"~~~~",
|
451
|
+
"", "now verbatim by indent inclucde #{mdinlayfile}", "",
|
452
|
+
" ~~MD \"#{mdinlayfile.gsub('_', '\_')}\"~~",
|
453
|
+
"~~~~",
|
454
|
+
"",
|
455
|
+
"", "now full format inclucde #{mdinlayfile}", "",
|
456
|
+
"~~MD \"#{mdinlayfile}\"~~",
|
457
|
+
"",
|
458
|
+
"", "now full format inclucde #{mdinlayfile_1}", "",
|
459
|
+
"~~MD \"#{mdinlayfile_1}\"~~",
|
428
460
|
].flatten.join("\n")
|
429
461
|
|
430
462
|
File.open("#{mdfile}.md", "w") { |f| f.puts mdtext }
|
@@ -434,24 +466,28 @@ describe "Wortsammler syntax extensions", :exp => false do
|
|
434
466
|
FileUtils.rm mdinlayfile_1
|
435
467
|
}
|
436
468
|
|
437
|
-
ref
|
469
|
+
ref = File.open("#{specdir}/tc_exp_003_reference.txt").read
|
438
470
|
result = File.open("#{tempdir}/#{mdfile}.txt").read
|
439
|
-
|
471
|
+
|
472
|
+
expect(result).to eq ref
|
440
473
|
end
|
441
474
|
|
442
475
|
it "generates an index", exp: false do
|
443
476
|
system "wortsammler -pi \"#{specdir}/test_mkindex.md\" -f pdf:latex -o \"#{testoutput}\""
|
444
477
|
system "pdftotext \"#{testoutput}/test_mkindex.pdf\""
|
445
|
-
|
446
|
-
|
447
|
-
|
478
|
+
the_time = Time.now.strftime("%B %-d, %Y")
|
479
|
+
ref = File.open("#{specdir}/test_mkindex_reference.txt", encoding: "ISO-8859-1").read
|
480
|
+
result = File.open("#{testoutput}/test_mkindex.txt", encoding: "ISO-8859-1").read
|
481
|
+
result = result.gsub(the_time, "January 5, 2019") # adapt this if you update the reference
|
482
|
+
expect(result).to eq ref
|
448
483
|
end
|
449
484
|
|
450
485
|
it "reports TeX messages", exp: false do
|
451
|
-
system
|
452
|
-
system "pdftotext \"#{
|
453
|
-
result = File.open("#{
|
454
|
-
result.include?("[WARN]").should==true
|
486
|
+
system %Q{wortsammler -pi '#{specdir}/test_mkindex.md' -f pdf:latex -o '#{testoutput}' >> '#{testoutput}/test_mkindex.lst'}
|
487
|
+
system "pdftotext \"#{testoutput}/test_mkindex.pdf\""
|
488
|
+
result = File.open("#{testoutput }/test_mkindex.lst").read
|
489
|
+
result.include?("[WARN]").should == true
|
455
490
|
end
|
456
491
|
|
492
|
+
|
457
493
|
end
|