livetext 0.9.13 → 0.9.19

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. checksums.yaml +4 -4
  2. data/README.lt3 +2 -2
  3. data/imports/bookish.rb +288 -0
  4. data/imports/calibre.rb +28 -0
  5. data/imports/livemagick.rb +133 -0
  6. data/imports/markdown.rb +44 -0
  7. data/imports/markdown_importable.rb +46 -0
  8. data/imports/pyggish.rb +204 -0
  9. data/imports/tutorial.rb +95 -0
  10. data/lib/cmdargs.rb +93 -0
  11. data/lib/errors.rb +4 -2
  12. data/lib/formatline.rb +56 -83
  13. data/lib/functions.rb +1 -1
  14. data/lib/handler/icanhaz.rb +35 -0
  15. data/lib/handler.rb +1 -0
  16. data/lib/helpers.rb +177 -4
  17. data/lib/livetext.rb +20 -139
  18. data/lib/parser/file.rb +8 -0
  19. data/lib/parser/general.rb +1 -1
  20. data/lib/parser/import.rb +1 -3
  21. data/lib/parser/mixin.rb +22 -30
  22. data/lib/parser/set.rb +35 -26
  23. data/lib/parser/string.rb +19 -4
  24. data/lib/processor.rb +2 -12
  25. data/lib/standard.rb +73 -107
  26. data/lib/userapi.rb +1 -4
  27. data/livetext.gemspec +2 -1
  28. data/plugin/bookish.rb +26 -22
  29. data/plugin/calibre.rb +1 -1
  30. data/plugin/livemagick.rb +10 -10
  31. data/plugin/markdown.rb +13 -11
  32. data/plugin/pyggish.rb +94 -84
  33. data/plugin/tutorial.rb +10 -5
  34. data/test/snapshots/OMIT.txt +11 -0
  35. data/test/snapshots/clusion.txt +84 -0
  36. data/test/snapshots/error_inc_line_num/match-error.txt +1 -0
  37. data/test/snapshots/error_invalid_name/match-error.txt +1 -0
  38. data/test/snapshots/error_line_num/match-error.txt +1 -0
  39. data/test/snapshots/error_mismatched_end/expected-output.txt +0 -2
  40. data/test/snapshots/error_mismatched_end/match-error.txt +1 -0
  41. data/test/snapshots/error_missing_end/match-error.txt +1 -0
  42. data/test/snapshots/error_no_such_copy/match-error.txt +1 -0
  43. data/test/snapshots/error_no_such_copy/source.lt3 +0 -1
  44. data/test/snapshots/error_no_such_inc/match-error.txt +1 -0
  45. data/test/snapshots/error_no_such_mixin/match-error.txt +1 -0
  46. data/test/snapshots/icanhaz/expected-output.txt +5 -0
  47. data/test/snapshots/icanhaz/match-error.txt +1 -0
  48. data/test/snapshots/icanhaz/simple_import.rb +5 -0
  49. data/test/snapshots/{error_no_such_mixin/actual-output.txt → icanhaz/source.lt3} +3 -4
  50. data/test/snapshots/{error_invalid_name/actual-output.txt → icanhaz2/expected-error.txt} +0 -0
  51. data/test/snapshots/icanhaz2/expected-output.txt +6 -0
  52. data/test/snapshots/icanhaz2/simple_canhaz.rb +5 -0
  53. data/test/snapshots/icanhaz2/source.lt3 +6 -0
  54. data/test/snapshots/predef_vars/match-output.txt +6 -0
  55. data/test/snapshots/{error_no_such_copy/actual-output.txt → simple_import/expected-error.txt} +0 -0
  56. data/test/snapshots/simple_import/expected-output.txt +7 -0
  57. data/test/snapshots/simple_import/simple_import.rb +5 -0
  58. data/test/snapshots/simple_import/source.lt3 +7 -0
  59. data/test/snapshots/simple_include/source.lt3 +0 -1
  60. data/test/snapshots.rb +103 -107
  61. data/test/unit/all.rb +1 -0
  62. data/test/unit/formatline.rb +650 -0
  63. data/test/unit/parser/general.rb +21 -21
  64. data/test/unit/parser/importable.rb +1 -1
  65. data/test/unit/parser/mixin.rb +2 -2
  66. data/test/unit/parser/set.rb +19 -12
  67. data/test/unit/parser/string.rb +14 -14
  68. data/test/unit/parser.rb +2 -0
  69. metadata +37 -46
  70. data/test/formatting.rb +0 -103
  71. data/test/snapshots/error_inc_line_num/actual-error.txt +0 -1
  72. data/test/snapshots/error_inc_line_num/actual-output.txt +0 -13
  73. data/test/snapshots/error_inc_line_num/expected-err-line1match.txt +0 -1
  74. data/test/snapshots/error_inc_line_num/out-sdiff.txt +0 -14
  75. data/test/snapshots/error_invalid_name/actual-error.txt +0 -10
  76. data/test/snapshots/error_invalid_name/expected-err-line1match.txt +0 -1
  77. data/test/snapshots/error_invalid_name/out-sdiff.txt +0 -6
  78. data/test/snapshots/error_line_num/actual-error.txt +0 -1
  79. data/test/snapshots/error_line_num/actual-output.txt +0 -5
  80. data/test/snapshots/error_line_num/expected-err-line1match.txt +0 -1
  81. data/test/snapshots/error_line_num/out-sdiff.txt +0 -6
  82. data/test/snapshots/error_mismatched_end/actual-error.txt +0 -1
  83. data/test/snapshots/error_mismatched_end/actual-output.txt +0 -8
  84. data/test/snapshots/error_mismatched_end/expected-err-line1match.txt +0 -1
  85. data/test/snapshots/error_mismatched_end/out-sdiff.txt +0 -9
  86. data/test/snapshots/error_missing_end/actual-error.txt +0 -1
  87. data/test/snapshots/error_missing_end/actual-output.txt +0 -5
  88. data/test/snapshots/error_missing_end/expected-err-line1match.txt +0 -1
  89. data/test/snapshots/error_missing_end/out-sdiff.txt +0 -6
  90. data/test/snapshots/error_name_not_permitted/OLD-exp-out +0 -4
  91. data/test/snapshots/error_no_such_copy/actual-error.txt +0 -10
  92. data/test/snapshots/error_no_such_copy/expected-err-line1match.txt +0 -1
  93. data/test/snapshots/error_no_such_copy/out-sdiff.txt +0 -5
  94. data/test/snapshots/error_no_such_inc/actual-error.txt +0 -10
  95. data/test/snapshots/error_no_such_inc/actual-output.txt +0 -0
  96. data/test/snapshots/error_no_such_inc/expected-err-line1match.txt +0 -1
  97. data/test/snapshots/error_no_such_inc/out-sdiff.txt +0 -6
  98. data/test/snapshots/error_no_such_mixin/actual-error.txt +0 -1
  99. data/test/snapshots/error_no_such_mixin/expected-err-line1match.txt +0 -1
  100. data/test/snapshots/error_no_such_mixin/out-sdiff.txt +0 -12
  101. data/test/snapshots/lines.txt +0 -124
  102. data/test/snapshots/predef_vars/actual-error.txt +0 -0
  103. data/test/snapshots/predef_vars/actual-output.txt +0 -6
  104. data/test/snapshots/predef_vars/expected-output.txt +0 -6
  105. data/test/snapshots/predef_vars/out-sdiff.txt +0 -7
  106. data/test/snapshots/simple_mixin/actual-error.txt +0 -2
  107. data/test/snapshots/simple_mixin/actual-output.txt +0 -4
  108. data/test/snapshots/simple_mixin/out-sdiff.txt +0 -6
  109. data/test/unit/parse_misc.rb +0 -60
  110. data/test/unit/parse_set.rb +0 -157
@@ -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>'
@@ -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 +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. <
@@ -1,124 +0,0 @@
1
- Check output of $$date
2
- Today is $$date, I guess
3
- /Today is \d\d\d\d-\d\d-\d\d, I guess/
4
-
5
- Check output of $$time
6
- Tick tock, it's $$time right now
7
- /Tick tock, it's \d\d:\d\d:\d\d right now/
8
-
9
- Trying $$b function, no param
10
- This is $$b being called
11
- This is <b>NO PARAMETER</b> being called
12
-
13
- Trying $$b function, brackets
14
- This is $$b[bold text] being called
15
- This is <b>bold text</b> being called
16
-
17
- Trying $$b function, unterminated brackets
18
- This is $$b[bold text being called
19
- This is <b>bold text being called</b>
20
-
21
- Trying $$b function, colon param
22
- This is $$b:token being called
23
- This is <b>token</b> being called
24
-
25
- Try $$i
26
- There is $$i[some text] here
27
- There is <i>some text</i> here
28
-
29
- Try $$t
30
- There is $$t[some text] here
31
- There is <font size=+1><tt>some text</tt></font> here
32
-
33
- Try $$s
34
- There is $$s[some text] here
35
- There is <strike>some text</strike> here
36
-
37
- Try $$bi
38
- There is $$bi[some text] here
39
- There is <b><i>some text</i></b> here
40
-
41
- Try $$bt
42
- There is $$bt[some text] here
43
- There is <b><font size=+1><tt>some text</tt></font></b> here
44
-
45
- Try $$bs
46
- There is $$bs[some text] here
47
- There is <b><strike>some text</strike></b> here
48
-
49
- Try $$it
50
- There is $$it[some text] here
51
- There is <i><font size=+1><tt>some text</tt></font></i> here
52
-
53
- Try $$is
54
- There is $$is[some text] here
55
- There is <i><strike>some text</strike></i> here
56
-
57
- Try $$ts
58
- There is $$ts[some text] here
59
- There is <font size=+1><tt><strike>some text</strike></tt></font> here
60
-
61
- Try $$bit
62
- There is $$bit[some text] here
63
- There is <b><i><font size=+1><tt>some text</tt></font></i></b> here
64
-
65
- Try $$bis
66
- There is $$bis[some text] here
67
- There is <b><i><strike>some text</strike></i></b> here
68
-
69
- Try $$bts
70
- There is $$bts[some text] here
71
- There is <b><font size=+1><tt><strike>some text</strike></tt></font></b> here
72
-
73
- Try $$its
74
- There is $$its[some text] here
75
- There is <i><font size=+1><tt><strike>some text</strike></tt></font></i> here
76
-
77
- Try $$bits
78
- There is $$bits[some text] here
79
- There is <b><i><font size=+1><tt><strike>some text</strike></tt></font></i></b> here
80
-
81
- Escaped brackets inside bracketed function parameter
82
- Here is an $$t[\[:array, :expression\]] with escapes.
83
- Here is an <font size=+1><tt>[:array, :expression]</tt></font> with escapes.
84
-
85
- Escape brackets inside *
86
- There are brackets *[\[\]] here
87
- There are brackets <b>[]</b> here
88
-
89
- Escape brackets inside _
90
- There are brackets _[\[\]] here
91
- There are brackets <i>[]</i> here
92
-
93
- Escape brackets inside `
94
- There are brackets `[\[\]] here
95
- There are brackets <font size=+1><tt>[]</tt></font> here
96
-
97
- Escape brackets inside ~
98
- There are brackets ~[\[\]] here
99
- There are brackets <strike>[]</strike> here
100
-
101
- Line starts with underscore
102
- _This for example
103
- <i>This</i> for example
104
-
105
- Line starts with double underscore
106
- __This, for example
107
- <i>This</i>, for example
108
-
109
- Line has embedded underscores
110
- This has some_embedded_underscores
111
- This has some_embedded_underscores
112
-
113
- Line has escaped underscores
114
- This has some\_escaped\_underscores
115
- This has some_escaped_underscores
116
-
117
- Doubled underscore, midline
118
- This is __doubled, it seems
119
- This is <i>doubled</i>, it seems
120
-
121
- Underscore inside parens
122
- This is (_italicized and parenthesized)
123
- This is (<i>italicized</i> and parenthesized)
124
-
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