livetext 0.9.13 → 0.9.14

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.
Files changed (71) hide show
  1. checksums.yaml +4 -4
  2. data/lib/errors.rb +4 -2
  3. data/lib/functions.rb +1 -1
  4. data/lib/helpers.rb +4 -0
  5. data/lib/livetext.rb +15 -9
  6. data/lib/parser/general.rb +1 -1
  7. data/lib/parser/mixin.rb +1 -7
  8. data/lib/processor.rb +1 -8
  9. data/lib/standard.rb +6 -11
  10. data/lib/userapi.rb +0 -4
  11. data/test/all.rb +1 -0
  12. data/test/formatting-tests.rb +35 -0
  13. data/test/snapshots/OMIT.txt +10 -0
  14. data/test/snapshots/error_inc_line_num/match-error.txt +1 -0
  15. data/test/snapshots/error_invalid_name/match-error.txt +1 -0
  16. data/test/snapshots/error_line_num/match-error.txt +1 -0
  17. data/test/snapshots/error_mismatched_end/expected-output.txt +0 -2
  18. data/test/snapshots/error_mismatched_end/match-error.txt +1 -0
  19. data/test/snapshots/error_missing_end/match-error.txt +1 -0
  20. data/test/snapshots/error_no_such_copy/match-error.txt +1 -0
  21. data/test/snapshots/error_no_such_inc/match-error.txt +1 -0
  22. data/test/snapshots/error_no_such_mixin/match-error.txt +1 -0
  23. data/test/snapshots/{lines.txt → formatting-tests.txt} +0 -0
  24. data/test/snapshots/predef_vars/match-output.txt +6 -0
  25. data/test/snapshots.rb +41 -92
  26. data/test/unit/parser/general.rb +21 -21
  27. data/test/unit/parser/mixin.rb +1 -1
  28. data/test/unit/parser.rb +2 -0
  29. metadata +13 -44
  30. data/test/snapshots/error_inc_line_num/actual-error.txt +0 -1
  31. data/test/snapshots/error_inc_line_num/actual-output.txt +0 -13
  32. data/test/snapshots/error_inc_line_num/expected-err-line1match.txt +0 -1
  33. data/test/snapshots/error_inc_line_num/out-sdiff.txt +0 -14
  34. data/test/snapshots/error_invalid_name/actual-error.txt +0 -10
  35. data/test/snapshots/error_invalid_name/actual-output.txt +0 -0
  36. data/test/snapshots/error_invalid_name/expected-err-line1match.txt +0 -1
  37. data/test/snapshots/error_invalid_name/out-sdiff.txt +0 -6
  38. data/test/snapshots/error_line_num/actual-error.txt +0 -1
  39. data/test/snapshots/error_line_num/actual-output.txt +0 -5
  40. data/test/snapshots/error_line_num/expected-err-line1match.txt +0 -1
  41. data/test/snapshots/error_line_num/out-sdiff.txt +0 -6
  42. data/test/snapshots/error_mismatched_end/actual-error.txt +0 -1
  43. data/test/snapshots/error_mismatched_end/actual-output.txt +0 -8
  44. data/test/snapshots/error_mismatched_end/expected-err-line1match.txt +0 -1
  45. data/test/snapshots/error_mismatched_end/out-sdiff.txt +0 -9
  46. data/test/snapshots/error_missing_end/actual-error.txt +0 -1
  47. data/test/snapshots/error_missing_end/actual-output.txt +0 -5
  48. data/test/snapshots/error_missing_end/expected-err-line1match.txt +0 -1
  49. data/test/snapshots/error_missing_end/out-sdiff.txt +0 -6
  50. data/test/snapshots/error_name_not_permitted/OLD-exp-out +0 -4
  51. data/test/snapshots/error_no_such_copy/actual-error.txt +0 -10
  52. data/test/snapshots/error_no_such_copy/actual-output.txt +0 -0
  53. data/test/snapshots/error_no_such_copy/expected-err-line1match.txt +0 -1
  54. data/test/snapshots/error_no_such_copy/out-sdiff.txt +0 -5
  55. data/test/snapshots/error_no_such_inc/actual-error.txt +0 -10
  56. data/test/snapshots/error_no_such_inc/actual-output.txt +0 -0
  57. data/test/snapshots/error_no_such_inc/expected-err-line1match.txt +0 -1
  58. data/test/snapshots/error_no_such_inc/out-sdiff.txt +0 -6
  59. data/test/snapshots/error_no_such_mixin/actual-error.txt +0 -1
  60. data/test/snapshots/error_no_such_mixin/actual-output.txt +0 -11
  61. data/test/snapshots/error_no_such_mixin/expected-err-line1match.txt +0 -1
  62. data/test/snapshots/error_no_such_mixin/out-sdiff.txt +0 -12
  63. data/test/snapshots/predef_vars/actual-error.txt +0 -0
  64. data/test/snapshots/predef_vars/actual-output.txt +0 -6
  65. data/test/snapshots/predef_vars/expected-output.txt +0 -6
  66. data/test/snapshots/predef_vars/out-sdiff.txt +0 -7
  67. data/test/snapshots/simple_mixin/actual-error.txt +0 -2
  68. data/test/snapshots/simple_mixin/actual-output.txt +0 -4
  69. data/test/snapshots/simple_mixin/out-sdiff.txt +0 -6
  70. data/test/unit/parse_misc.rb +0 -60
  71. data/test/unit/parse_set.rb +0 -157
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: livetext
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.13
4
+ version: 0.9.14
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hal Fulton
@@ -47,10 +47,12 @@ files:
47
47
  - test/affirm/lm-kbks.lt
48
48
  - test/all.rb
49
49
  - test/cleanup
50
+ - test/formatting-tests.rb
50
51
  - test/formatting.rb
51
52
  - test/newtest
52
53
  - test/sdtest
53
54
  - test/snapshots.rb
55
+ - test/snapshots/OMIT.txt
54
56
  - test/snapshots/basic_formatting/expected-error.txt
55
57
  - test/snapshots/basic_formatting/expected-output.txt
56
58
  - test/snapshots/basic_formatting/source.lt3
@@ -68,58 +70,33 @@ files:
68
70
  - test/snapshots/def_method/expected-error.txt
69
71
  - test/snapshots/def_method/expected-output.txt
70
72
  - test/snapshots/def_method/source.lt3
71
- - test/snapshots/error_inc_line_num/actual-error.txt
72
- - test/snapshots/error_inc_line_num/actual-output.txt
73
- - test/snapshots/error_inc_line_num/expected-err-line1match.txt
74
73
  - test/snapshots/error_inc_line_num/expected-output.txt
75
74
  - test/snapshots/error_inc_line_num/file2.lt3
76
- - test/snapshots/error_inc_line_num/out-sdiff.txt
75
+ - test/snapshots/error_inc_line_num/match-error.txt
77
76
  - test/snapshots/error_inc_line_num/source.lt3
78
- - test/snapshots/error_invalid_name/actual-error.txt
79
- - test/snapshots/error_invalid_name/actual-output.txt
80
- - test/snapshots/error_invalid_name/expected-err-line1match.txt
81
77
  - test/snapshots/error_invalid_name/expected-output.txt
82
- - test/snapshots/error_invalid_name/out-sdiff.txt
78
+ - test/snapshots/error_invalid_name/match-error.txt
83
79
  - test/snapshots/error_invalid_name/source.lt3
84
- - test/snapshots/error_line_num/actual-error.txt
85
- - test/snapshots/error_line_num/actual-output.txt
86
- - test/snapshots/error_line_num/expected-err-line1match.txt
87
80
  - test/snapshots/error_line_num/expected-output.txt
88
- - test/snapshots/error_line_num/out-sdiff.txt
81
+ - test/snapshots/error_line_num/match-error.txt
89
82
  - test/snapshots/error_line_num/source.lt3
90
- - test/snapshots/error_mismatched_end/actual-error.txt
91
- - test/snapshots/error_mismatched_end/actual-output.txt
92
- - test/snapshots/error_mismatched_end/expected-err-line1match.txt
93
83
  - test/snapshots/error_mismatched_end/expected-output.txt
94
- - test/snapshots/error_mismatched_end/out-sdiff.txt
84
+ - test/snapshots/error_mismatched_end/match-error.txt
95
85
  - test/snapshots/error_mismatched_end/source.lt3
96
- - test/snapshots/error_missing_end/actual-error.txt
97
- - test/snapshots/error_missing_end/actual-output.txt
98
- - test/snapshots/error_missing_end/expected-err-line1match.txt
99
86
  - test/snapshots/error_missing_end/expected-output.txt
100
- - test/snapshots/error_missing_end/out-sdiff.txt
87
+ - test/snapshots/error_missing_end/match-error.txt
101
88
  - test/snapshots/error_missing_end/source.lt3
102
- - test/snapshots/error_name_not_permitted/OLD-exp-out
103
89
  - test/snapshots/error_name_not_permitted/expected-output.txt
104
90
  - test/snapshots/error_name_not_permitted/match-error.txt
105
91
  - test/snapshots/error_name_not_permitted/source.lt3
106
- - test/snapshots/error_no_such_copy/actual-error.txt
107
- - test/snapshots/error_no_such_copy/actual-output.txt
108
- - test/snapshots/error_no_such_copy/expected-err-line1match.txt
109
92
  - test/snapshots/error_no_such_copy/expected-output.txt
110
- - test/snapshots/error_no_such_copy/out-sdiff.txt
93
+ - test/snapshots/error_no_such_copy/match-error.txt
111
94
  - test/snapshots/error_no_such_copy/source.lt3
112
- - test/snapshots/error_no_such_inc/actual-error.txt
113
- - test/snapshots/error_no_such_inc/actual-output.txt
114
- - test/snapshots/error_no_such_inc/expected-err-line1match.txt
115
95
  - test/snapshots/error_no_such_inc/expected-output.txt
116
- - test/snapshots/error_no_such_inc/out-sdiff.txt
96
+ - test/snapshots/error_no_such_inc/match-error.txt
117
97
  - test/snapshots/error_no_such_inc/source.lt3
118
- - test/snapshots/error_no_such_mixin/actual-error.txt
119
- - test/snapshots/error_no_such_mixin/actual-output.txt
120
- - test/snapshots/error_no_such_mixin/expected-err-line1match.txt
121
98
  - test/snapshots/error_no_such_mixin/expected-output.txt
122
- - test/snapshots/error_no_such_mixin/out-sdiff.txt
99
+ - test/snapshots/error_no_such_mixin/match-error.txt
123
100
  - test/snapshots/error_no_such_mixin/source.lt3
124
101
  - test/snapshots/example_alpha/expected-error.txt
125
102
  - test/snapshots/example_alpha/expected-output.txt
@@ -128,21 +105,18 @@ files:
128
105
  - test/snapshots/example_alpha2/expected-output.txt
129
106
  - test/snapshots/example_alpha2/source.lt3
130
107
  - test/snapshots/fixit
108
+ - test/snapshots/formatting-tests.txt
131
109
  - test/snapshots/functions/expected-error.txt
132
110
  - test/snapshots/functions/expected-output.txt
133
111
  - test/snapshots/functions/source.lt3
134
112
  - test/snapshots/hello_world/expected-error.txt
135
113
  - test/snapshots/hello_world/expected-output.txt
136
114
  - test/snapshots/hello_world/source.lt3
137
- - test/snapshots/lines.txt
138
115
  - test/snapshots/more_complex_vars/expected-error.txt
139
116
  - test/snapshots/more_complex_vars/expected-output.txt
140
117
  - test/snapshots/more_complex_vars/source.lt3
141
- - test/snapshots/predef_vars/actual-error.txt
142
- - test/snapshots/predef_vars/actual-output.txt
143
118
  - test/snapshots/predef_vars/expected-error.txt
144
- - test/snapshots/predef_vars/expected-output.txt
145
- - test/snapshots/predef_vars/out-sdiff.txt
119
+ - test/snapshots/predef_vars/match-output.txt
146
120
  - test/snapshots/predef_vars/source.lt3
147
121
  - test/snapshots/raw_lines/expected-error.txt
148
122
  - test/snapshots/raw_lines/expected-output.txt
@@ -159,11 +133,8 @@ files:
159
133
  - test/snapshots/simple_include/expected-output.txt
160
134
  - test/snapshots/simple_include/simplefile.inc
161
135
  - test/snapshots/simple_include/source.lt3
162
- - test/snapshots/simple_mixin/actual-error.txt
163
- - test/snapshots/simple_mixin/actual-output.txt
164
136
  - test/snapshots/simple_mixin/expected-error.txt
165
137
  - test/snapshots/simple_mixin/expected-output.txt
166
- - test/snapshots/simple_mixin/out-sdiff.txt
167
138
  - test/snapshots/simple_mixin/simple_mixin.rb
168
139
  - test/snapshots/simple_mixin/source.lt3
169
140
  - test/snapshots/simple_vars/expected-error.txt
@@ -179,8 +150,6 @@ files:
179
150
  - test/testlines.rb
180
151
  - test/unit/all.rb
181
152
  - test/unit/html.rb
182
- - test/unit/parse_misc.rb
183
- - test/unit/parse_set.rb
184
153
  - test/unit/parser.rb
185
154
  - test/unit/parser/all.rb
186
155
  - test/unit/parser/general.rb
@@ -1 +0,0 @@
1
- Error: Name 'foobar' is unknown
@@ -1,13 +0,0 @@
1
- This is my
2
- source file
3
- which includes file2 here:
4
- This is file2
5
- which has an error
6
- about an unknown command
7
- in line 5
8
- <p>
9
-
10
- And this is file2 line 7.
11
- And here we are
12
- back in the
13
- original file.
@@ -1 +0,0 @@
1
- Error: Name 'foobar' is unknown
@@ -1,14 +0,0 @@
1
- EXPECTED | ACTUAL
2
- This is my This is my
3
- source file source file
4
- which includes file2 here: which includes file2 here:
5
- This is file2 This is file2
6
- which has an error which has an error
7
- about an unknown command about an unknown command
8
- in line 5 in line 5
9
- <p> <p>
10
-
11
- And this is file2 line 7. And this is file2 line 7.
12
- And here we are And here we are
13
- back in the back in the
14
- original file. original file.
@@ -1,10 +0,0 @@
1
- /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:7:in `check_disallowed': to_s (DisallowedName)
2
- from /Users/Hal/Dropbox/topx/git/livetext/lib/standard.rb:142:in `_def'
3
- from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext.rb:232:in `handle_dotcmd'
4
- from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext.rb:141:in `process_line'
5
- from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext.rb:203:in `block in process_file'
6
- from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext.rb:200:in `loop'
7
- from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext.rb:200:in `process_file'
8
- from ../../../bin/livetext:88:in `block in <main>'
9
- from ../../../bin/livetext:57:in `loop'
10
- from ../../../bin/livetext:57:in `<main>'
File without changes
@@ -1 +0,0 @@
1
- Error: Illegal name 'to_s'
@@ -1,6 +0,0 @@
1
- EXPECTED | ACTUAL
2
- > This file has
3
- > a defined method
4
- > that is invalid:
5
- > <p>
6
- >
@@ -1 +0,0 @@
1
- Error: Name 'foobar' is unknown
@@ -1,5 +0,0 @@
1
- This file
2
- will have an error
3
- on line 4
4
- if all goes
5
- well.
@@ -1 +0,0 @@
1
- Error: Name 'foobar' is unknown
@@ -1,6 +0,0 @@
1
- EXPECTED | ACTUAL
2
- This file This file
3
- will have an error will have an error
4
- on line 4 on line 4
5
- if all goes <
6
- well. <
@@ -1 +0,0 @@
1
- Error: Name 'end' is unknown
@@ -1,8 +0,0 @@
1
- It is an error
2
- to specify .end
3
- without something
4
- beginning a block:
5
- <p>
6
-
7
- foo bar
8
- baz
@@ -1 +0,0 @@
1
- Error: Mismatched 'end'
@@ -1,9 +0,0 @@
1
- EXPECTED | ACTUAL
2
- It is an error It is an error
3
- to specify .end to specify .end
4
- without something without something
5
- beginning a block: beginning a block:
6
- <p> <p>
7
-
8
- foo bar foo bar
9
- baz baz
@@ -1 +0,0 @@
1
- Error: #<RuntimeError: Expected .end, found end of file>
@@ -1,5 +0,0 @@
1
- Blah
2
- blah
3
- <p>
4
-
5
-
@@ -1 +0,0 @@
1
- Error: #<RuntimeError: Expected .end, found end of file>
@@ -1,6 +0,0 @@
1
- EXPECTED | ACTUAL
2
- Blah Blah
3
- blah blah
4
- <p> <p>
5
-
6
-
@@ -1,4 +0,0 @@
1
- Names such as 'class'
2
- are not permitted here...
3
- <p>
4
-
@@ -1,10 +0,0 @@
1
- /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:11:in `check_file_exists': Error: file nosuchfile.txt not found (FileNotFound)
2
- from /Users/Hal/Dropbox/topx/git/livetext/lib/standard.rb:280:in `copy'
3
- from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext.rb:232:in `handle_dotcmd'
4
- from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext.rb:141:in `process_line'
5
- from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext.rb:203:in `block in process_file'
6
- from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext.rb:200:in `loop'
7
- from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext.rb:200:in `process_file'
8
- from ../../../bin/livetext:88:in `block in <main>'
9
- from ../../../bin/livetext:57:in `loop'
10
- from ../../../bin/livetext:57:in `<main>'
File without changes
@@ -1 +0,0 @@
1
- Error: file nosuchfile.txt not found
@@ -1,5 +0,0 @@
1
- EXPECTED | ACTUAL
2
- > Make sure a
3
- > nonexistent file with .copy
4
- > gives an error.
5
- > <p>
@@ -1,10 +0,0 @@
1
- /Users/Hal/Dropbox/topx/git/livetext/lib/helpers.rb:11:in `check_file_exists': Error: file nosuchinc.lt3 not found (FileNotFound)
2
- from /Users/Hal/Dropbox/topx/git/livetext/lib/standard.rb:237:in `_include'
3
- from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext.rb:232:in `handle_dotcmd'
4
- from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext.rb:141:in `process_line'
5
- from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext.rb:203:in `block in process_file'
6
- from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext.rb:200:in `loop'
7
- from /Users/Hal/Dropbox/topx/git/livetext/lib/livetext.rb:200:in `process_file'
8
- from ../../../bin/livetext:88:in `block in <main>'
9
- from ../../../bin/livetext:57:in `loop'
10
- from ../../../bin/livetext:57:in `<main>'
File without changes
@@ -1 +0,0 @@
1
- Error: file nosuchinc.lt3 not found
@@ -1,6 +0,0 @@
1
- EXPECTED | ACTUAL
2
- > Make sure
3
- > a nonexistent include
4
- > will give an error.
5
- > <p>
6
- >
@@ -1 +0,0 @@
1
- Error: #<ArgumentError: wrong number of arguments (given 1, expected 0)>
@@ -1,11 +0,0 @@
1
- Test that
2
- we give an error
3
- when a mixin does not
4
- exist:
5
- <p>
6
-
7
- <p>
8
-
9
- We shouldn't
10
- reach this point
11
- in the file.
@@ -1 +0,0 @@
1
- No such mixin 'nosuchthing'
@@ -1,12 +0,0 @@
1
- EXPECTED | ACTUAL
2
- Test that | Test that
3
- we give an error we give an error
4
- when a mixin does not when a mixin does not
5
- exist: exist:
6
- <p> <p>
7
- <
8
- <p> <
9
- <
10
- We shouldn't <
11
- reach this point <
12
- in the file. <
File without changes
@@ -1,6 +0,0 @@
1
- Here we go...
2
- File = source.lt3
3
- FileDir = /Users/Hal/Dropbox/topx/git/livetext/test/snapshots/predef_vars
4
- User = Hal
5
- Version = 0.9.12
6
- NoSuchVar = [NoSuchVar is undefined]
@@ -1,6 +0,0 @@
1
- Here we go...
2
- File = source.lt3
3
- FileDir = /Users/Hal/Dropbox/topx/git/livetext/test/snapshots/predef_vars
4
- User = Hal
5
- Version = 0.9.11
6
- NoSuchVar = [NoSuchVar is undefined]
@@ -1,7 +0,0 @@
1
- EXPECTED | ACTUAL
2
- Here we go... Here we go...
3
- File = source.lt3 File = source.lt3
4
- FileDir = /Users/Hal/Dropbox/topx/git/livetext/test/snapsho FileDir = /Users/Hal/Dropbox/topx/git/livetext/test/snapsho
5
- User = Hal User = Hal
6
- Version = 0.9.12 | Version = 0.9.11
7
- NoSuchVar = [NoSuchVar is undefined] NoSuchVar = [NoSuchVar is undefined]
@@ -1,2 +0,0 @@
1
- Error: #<ArgumentError: wrong number of arguments (given 1, expected 0)>
2
- Error: Name 'hello_world' is unknown
@@ -1,4 +0,0 @@
1
- Here I am
2
- testing a simple mixin
3
- Now call a method:
4
- That's all.
@@ -1,6 +0,0 @@
1
- EXPECTED | ACTUAL
2
- Here I am Here I am
3
- testing a simple mixin testing a simple mixin
4
- Now call a method: Now call a method:
5
- > Hello, world.
6
- That's all. That's all.
@@ -1,60 +0,0 @@
1
- require 'minitest/autorun'
2
-
3
- # FIXME delete??
4
-
5
- require 'parse_misc'
6
-
7
- ParseMisc = ::Livetext::ParseMisc
8
-
9
- class TestParseMisc < MiniTest::Test
10
-
11
- def setup
12
- end
13
-
14
- def teardown
15
- end
16
-
17
- def test_strip_quotes
18
- assert_raises(NilValue) { ParseMisc.new(nil).strip_quotes }
19
- assert_raises(NullString) { ParseMisc.new("").strip_quotes }
20
- assert_raises(MismatchedQuotes) { ParseMisc.new(%['test]).strip_quotes }
21
- # assert_raises(MismatchedQuotes) { ParseMisc.new(%[test']).strip_quotes }
22
- assert_raises(MismatchedQuotes) { ParseMisc.new(%["test]).strip_quotes }
23
- # assert_raises(MismatchedQuotes) { ParseMisc.new(%[test"]).strip_quotes }
24
- assert_raises(MismatchedQuotes) { ParseMisc.new(%["test']).strip_quotes }
25
- assert_raises(MismatchedQuotes) { ParseMisc.new(%['test"]).strip_quotes }
26
-
27
- assert ParseMisc.new(%[24601]).strip_quotes == "24601", "Failure 1"
28
- assert ParseMisc.new(%[3.14]).strip_quotes == "3.14", "Failure 2"
29
- assert ParseMisc.new(%[test]).strip_quotes == "test", "Failure 3"
30
- assert ParseMisc.new(%['test']).strip_quotes == "test", "Failure 4"
31
- assert ParseMisc.new(%["test"]).strip_quotes == "test", "Failure 5"
32
- end
33
-
34
- def test_variables
35
- vars = ["foo 234\n", "bar 456\n"]
36
- expect = [%w[foo 234], %w[bar 456]]
37
- assert_equal ParseMisc.parse_vars(vars), expect
38
-
39
- vars = ["foo2 234", "bar2 456"] # newline irrelevant
40
- expect = [%w[foo2 234], %w[bar2 456]]
41
- assert_equal ParseMisc.parse_vars(vars), expect
42
-
43
- # quotes are not stripped... hmm
44
- vars = ["alpha 'simple string'", 'beta "another string"']
45
- expect = [["alpha", "'simple string'"], ["beta", '"another string"']]
46
- assert_equal ParseMisc.parse_vars(vars), expect
47
-
48
- # prefix (namespacing)
49
- vars = ["alpha 'simple string'", 'beta "another string"']
50
- expect = [["this.alpha", "'simple string'"], ["this.beta", '"another string"']]
51
- assert_equal ParseMisc.parse_vars(vars, prefix: "this"), expect
52
-
53
- # prefix (namespacing)
54
- vars = ["alpha 'simple string'", 'beta "another string"']
55
- expect = [["this.that.alpha", "'simple string'"], ["this.that.beta", '"another string"']]
56
- assert_equal ParseMisc.parse_vars(vars, prefix: "this.that"), expect
57
-
58
- end
59
-
60
- end
@@ -1,157 +0,0 @@
1
-
2
- require 'minitest/autorun'
3
-
4
- require_relative '../../lib/parse/set'
5
-
6
- ParseSet = Livetext::ParseSet
7
-
8
- class TestParseSet < MiniTest::Test
9
-
10
- def setup
11
- end
12
-
13
- def teardown
14
- end
15
-
16
- def test_one_unquoted
17
- set = ParseSet.new('my_var_123 = 789').parse
18
- pair = set.first
19
- assert_equal pair, %w[my_var_123 789]
20
-
21
- set = ParseSet.new('var_234 = naked_string').parse
22
- pair = set.first
23
- assert_equal pair, %w[var_234 naked_string]
24
- end
25
-
26
- def test_one_single_quoted
27
- set = ParseSet.new("fancy.var.name = 'simple string'").parse
28
- pair = set.first
29
- assert_equal pair, ["fancy.var.name", "simple string"]
30
- end
31
-
32
- def test_one_double_quoted
33
- set = ParseSet.new('fancy.var2 = "another string"').parse
34
- pair = set.first
35
- assert_equal pair, ["fancy.var2", "another string"]
36
- end
37
-
38
- def test_multiple_unquoted
39
- pair1, pair2 = ParseSet.new("this=345, that=678").parse
40
- assert_equal pair1, %w[this 345]
41
- assert_equal pair2, %w[that 678]
42
- end
43
-
44
- def test_multiple_unquoted_quoted
45
- pair1, pair2 = ParseSet.new('alpha = 567, beta = "oh well"').parse
46
- assert_equal pair1, %w[alpha 567]
47
- assert_equal pair2, ["beta", "oh well"]
48
- end
49
-
50
- def test_quote_embedded_comma
51
- set = ParseSet.new('gamma = "oh, well"').parse
52
- pair = set.first
53
- assert_equal pair, ["gamma", "oh, well"]
54
- end
55
-
56
- def test_get_var
57
- @parse = ParseSet.new("foo=345")
58
- assert_equal @parse.get_var, "foo"
59
- @parse = ParseSet.new("foo = 345")
60
- assert_equal @parse.get_var, "foo"
61
- @parse = ParseSet.new("foo123 = 345")
62
- assert_equal @parse.get_var, "foo123"
63
- @parse = ParseSet.new("foo_bar = 345")
64
- assert_equal @parse.get_var, "foo_bar"
65
- @parse = ParseSet.new("Foobar = 345")
66
- assert_equal @parse.get_var, "Foobar"
67
- @parse = ParseSet.new("_foobar = 345")
68
- assert_equal @parse.get_var, "_foobar"
69
-
70
- # will not notice missing equal sign till later parsing
71
- @parse = ParseSet.new("foo bar")
72
- assert_equal @parse.get_var, "foo"
73
-
74
- # can detect missing equal sign if iteration ends
75
- @parse = ParseSet.new("foo")
76
- assert_raises(NoEqualSign) { @parse.get_var }
77
- @parse = ParseSet.new("foo-bar = 345")
78
- assert_raises(BadVariableName) { @parse.get_var }
79
- end
80
-
81
- def test_skip_equal
82
- @parse = ParseSet.new("=")
83
- assert_nil @parse.skip_equal
84
- @parse = ParseSet.new(" = ")
85
- assert_nil @parse.skip_equal
86
- @parse = ParseSet.new(" =")
87
- assert_nil @parse.skip_equal
88
- @parse = ParseSet.new(" = 345")
89
- assert_equal @parse.skip_equal, "3"
90
- @parse = ParseSet.new(" = 'meh'")
91
- assert_equal @parse.skip_equal, "'"
92
-
93
- @parse = ParseSet.new("no equal here")
94
- assert_raises(NoEqualSign) { @parse.skip_equal }
95
- @parse = ParseSet.new("")
96
- assert_raises(NoEqualSign) { @parse.skip_equal }
97
- end
98
-
99
- def test_quoted_value
100
- @parse = ParseSet.new(%['this'])
101
- assert_equal @parse.quoted_value, "this"
102
- @parse = ParseSet.new(%["that"])
103
- assert_equal @parse.quoted_value, "that"
104
- @parse = ParseSet.new(%[""])
105
- assert_equal @parse.quoted_value, ""
106
- @parse = ParseSet.new(%[''])
107
- assert_equal @parse.quoted_value, ""
108
-
109
- @parse = ParseSet.new(%['foo"])
110
- assert_raises(BadQuotedString) { @parse.quoted_value }
111
- @parse = ParseSet.new(%["bar'])
112
- assert_raises(BadQuotedString) { @parse.quoted_value }
113
- @parse = ParseSet.new(%['baz])
114
- assert_raises(BadQuotedString) { @parse.quoted_value }
115
- @parse = ParseSet.new(%["bam])
116
- assert_raises(BadQuotedString) { @parse.quoted_value }
117
- # LATER:
118
- # - allow (escaped?) comma in quoted string
119
- end
120
-
121
- def test_unquoted_value
122
- # Note: an unquoted value is still a string!
123
- @parse = ParseSet.new(%[342 ])
124
- assert_equal @parse.unquoted_value, "342"
125
- @parse = ParseSet.new(%[343,])
126
- assert_equal @parse.unquoted_value, "343"
127
- @parse = ParseSet.new(%[344,678])
128
- assert_equal @parse.unquoted_value, "344"
129
- @parse = ParseSet.new(%[345.123])
130
- assert_equal @parse.unquoted_value, "345.123"
131
- @parse = ParseSet.new(%[whatever])
132
- assert_equal @parse.unquoted_value, "whatever"
133
-
134
- # LATER:
135
- # - disallow comma in unquoted string
136
- # - disallow quote trailing unquoted string
137
- # - allow/disallow escaping??
138
- end
139
-
140
- # BUG: FormatLine doesn't know variables in this context!
141
-
142
- def xtest_4
143
- set = ParseSet.new("file = $File").parse
144
- assert_equal set.first, "file"
145
- assert set.last !~ /undefined/
146
- end
147
-
148
- # BUG: ...or functions.
149
- # (Additional bug: Failing silently seems wrong.)
150
-
151
- def xtest_5
152
- set = ParseSet.new("date = $$date").parse
153
- assert_equal set.first, "date"
154
- assert set.last =~ /^\d\d.\d\d.\d\d/
155
- end
156
-
157
- end