undies 2.2.1 → 3.0.0.rc.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.
Files changed (54) hide show
  1. data/ARCH.md +116 -0
  2. data/Gemfile +3 -0
  3. data/Gemfile.lock +20 -4
  4. data/LICENSE +22 -0
  5. data/README.md +343 -0
  6. data/Rakefile +25 -17
  7. data/bench/bench_runner.rb +132 -12
  8. data/bench/large.html.erb +9 -13
  9. data/bench/large.html.haml +11 -0
  10. data/bench/large.html.rb +8 -12
  11. data/bench/profiler +1 -1
  12. data/bench/profiler_runner.rb +2 -5
  13. data/bench/small.html.erb +9 -13
  14. data/bench/small.html.haml +11 -0
  15. data/bench/small.html.rb +8 -12
  16. data/bench/verylarge.html.erb +9 -13
  17. data/bench/verylarge.html.haml +11 -0
  18. data/bench/verylarge.html.rb +8 -12
  19. data/lib/undies/api.rb +163 -0
  20. data/lib/undies/element.rb +160 -80
  21. data/lib/undies/element_node.rb +116 -0
  22. data/lib/undies/io.rb +43 -0
  23. data/lib/undies/root_node.rb +62 -0
  24. data/lib/undies/source.rb +78 -2
  25. data/lib/undies/template.rb +17 -131
  26. data/lib/undies/version.rb +1 -1
  27. data/lib/undies.rb +3 -2
  28. data/test/element_closed_test.rb +69 -0
  29. data/test/element_node_test.rb +274 -0
  30. data/test/element_open_test.rb +101 -0
  31. data/test/element_test.rb +23 -196
  32. data/test/fixtures/write_thing.rb +4 -4
  33. data/test/helper.rb +84 -0
  34. data/test/io_test.rb +104 -0
  35. data/test/named_source_test.rb +1 -1
  36. data/test/raw_test.rb +25 -0
  37. data/test/root_node_test.rb +108 -0
  38. data/test/source_stack_test.rb +1 -1
  39. data/test/template_builder_render_test.rb +4 -9
  40. data/test/template_source_render_test.rb +16 -20
  41. data/test/template_test.rb +87 -80
  42. data/test/templates/content.html.rb +1 -1
  43. data/test/templates/test.html.rb +1 -1
  44. data/undies.gemspec +1 -0
  45. metadata +52 -23
  46. data/README.rdoc +0 -203
  47. data/lib/undies/named_source.rb +0 -54
  48. data/lib/undies/node.rb +0 -87
  49. data/lib/undies/node_stack.rb +0 -111
  50. data/lib/undies/output.rb +0 -31
  51. data/lib/undies/source_stack.rb +0 -22
  52. data/test/node_stack_test.rb +0 -109
  53. data/test/node_test.rb +0 -91
  54. data/test/output_test.rb +0 -69
@@ -1,7 +1,4 @@
1
1
  require "assert"
2
- require "stringio"
3
- require 'undies/node_stack'
4
-
5
2
  require "undies/template"
6
3
 
7
4
  class Undies::Template
@@ -12,19 +9,17 @@ class Undies::Template
12
9
  desc 'a template rendered using a source object'
13
10
  before do
14
11
  @src = Undies::Source.new(Proc.new {})
15
- @output = Undies::Output.new(@outstream = StringIO.new(@out = ""))
16
- @t = Undies::Template.new(@src, {}, @output)
12
+ @io = Undies::IO.new(@out = "")
13
+ @t = Undies::Template.new(@src, {}, @io)
17
14
  end
18
15
  subject { @t }
19
16
 
20
17
  should "maintain the template's scope throughout the build blocks" do
21
18
  templ = Undies::Template.new(Undies::Source.new do
22
19
  _div {
23
- _div {
24
- __ self.object_id
25
- }
20
+ _div self.object_id
26
21
  }
27
- end, {}, @output)
22
+ end, {}, @io)
28
23
  assert_equal "<div><div>#{templ.object_id}</div></div>", @out
29
24
  end
30
25
 
@@ -47,7 +42,7 @@ class Undies::Template
47
42
  @layout_file = File.expand_path "test/templates/layout.html.rb"
48
43
 
49
44
  @content_proc = Proc.new do
50
- _div { _ "Hi" }
45
+ _div "Hi"
51
46
  end
52
47
  @content_file = File.expand_path "test/templates/content.html.rb"
53
48
 
@@ -58,22 +53,22 @@ class Undies::Template
58
53
  end
59
54
 
60
55
  should "generate markup given proc content in a proc layout" do
61
- Undies::Template.new(@cp_lp_source, {}, @output)
56
+ Undies::Template.new(@cp_lp_source, {}, @io)
62
57
  assert_equal @expected_output, @out
63
58
  end
64
59
 
65
60
  should "generate markup given proc content in a layout file" do
66
- Undies::Template.new(@cp_lf_source, {}, @output)
61
+ Undies::Template.new(@cp_lf_source, {}, @io)
67
62
  assert_equal @expected_output, @out
68
63
  end
69
64
 
70
65
  should "generate markup given a content file in a proc layout" do
71
- Undies::Template.new(@cf_lp_source, {}, @output)
66
+ Undies::Template.new(@cf_lp_source, {}, @io)
72
67
  assert_equal @expected_output, @out
73
68
  end
74
69
 
75
70
  should "generate markup given a content file in a layout file" do
76
- Undies::Template.new(@cf_lf_source, {}, @output)
71
+ Undies::Template.new(@cf_lf_source, {}, @io)
77
72
  assert_equal @expected_output, @out
78
73
  end
79
74
 
@@ -85,27 +80,28 @@ class Undies::Template
85
80
  desc "using partials"
86
81
 
87
82
  before do
88
- @output = Undies::Output.new(@outstream, :pp => 2)
83
+ @io = Undies::IO.new(@out = "", :pp => 2)
89
84
  @source = Undies::Source.new(Proc.new do
90
85
  partial_source = Undies::Source.new(Proc.new do
91
- _div { _ thing }
86
+ _p @thing
92
87
  end)
93
88
 
94
89
  _div {
95
- _ thing
90
+ _span @thing
96
91
  __partial partial_source, {:thing => 1234}
97
92
 
98
93
  _div {
99
- __partial "some markup string here"
94
+ __partial " <p>some markup string here</p>\n"
100
95
  }
96
+
101
97
  }
102
98
  end)
103
99
  @data = {:thing => 'abcd'}
104
100
  end
105
101
 
106
102
  should "render the partial source with its own scope/data" do
107
- Undies::Template.new(@source, @data, @output)
108
- assert_equal "<div>abcd\n <div>1234</div>\n <div>\n some markup string here\n </div>\n</div>", @out
103
+ Undies::Template.new(@source, @data, @io)
104
+ assert_equal "<div>\n <span>abcd</span>\n <p>1234</p>\n <div>\n <p>some markup string here</p>\n </div>\n</div>\n", @out
109
105
  end
110
106
 
111
107
  end
@@ -1,7 +1,4 @@
1
1
  require "assert"
2
- require "stringio"
3
- require 'undies/node_stack'
4
-
5
2
  require "undies/template"
6
3
 
7
4
  class Undies::Template
@@ -12,23 +9,27 @@ class Undies::Template
12
9
  desc 'a template'
13
10
  before do
14
11
  @src = Undies::Source.new(Proc.new {})
15
- @output = Undies::Output.new(@outstream = StringIO.new(@out = ""))
16
- @t = Undies::Template.new(@src, {}, @output)
12
+ @io = Undies::IO.new(@out = "")
13
+ @t = Undies::Template.new(@src, {}, @io)
17
14
  end
18
15
  subject { @t }
19
16
 
20
- should have_class_method :source_stack, :node_stack, :flush, :escape_html
21
- should have_instance_methods :to_s, :element, :tag
22
- should have_instance_methods :_, :__
17
+ should have_class_methods :flush, :escape_html
23
18
  should have_instance_methods :__yield, :__partial
24
19
  should have_instance_methods :__push, :__pop, :__flush
25
20
  should have_instance_methods :__attrs
26
21
 
27
- should "know it's node stack" do
28
- assert_kind_of Undies::NodeStack, subject.class.node_stack(subject)
29
- end
22
+ # capture api
23
+ should have_instance_methods :raw, :element, :tag
24
+ should have_instance_methods :open_element, :open_tag
25
+ should have_instance_methods :closed_element, :closed_tag
26
+
27
+ # streaming api
28
+ should have_instance_methods :_, :__element, :__tag
29
+ should have_instance_methods :__open_element, :__open_tag
30
+ should have_instance_methods :__closed_element, :__closed_tag
30
31
 
31
- should "complain if creating a template with no Output obj" do
32
+ should "complain if creating a template with no IO obj" do
32
33
  assert_raises ArgumentError do
33
34
  Undies::Template.new(@src, {})
34
35
  end
@@ -36,22 +37,45 @@ class Undies::Template
36
37
 
37
38
  should "default the data to an empty hash if none provided" do
38
39
  assert_nothing_raised do
39
- Undies::Template.new(@src, @output)
40
+ Undies::Template.new(@src, @io)
40
41
  end
41
42
  end
42
43
 
43
44
  should "default the source to an empty Proc source if none provided" do
44
45
  assert_nothing_raised do
45
- Undies::Template.new(@output)
46
+ Undies::Template.new(@io)
46
47
  end
47
48
  assert_equal "", @out
48
49
  end
49
50
 
51
+ should "push a root node onto its IO" do
52
+ assert_kind_of Undies::RootNode, @io.current
53
+ end
54
+
50
55
  end
51
56
 
52
57
 
53
58
 
54
- class NodeTests < BasicTests
59
+ class PlainTextTests < BasicTests
60
+ before do
61
+ @data = "stuff & <em>more stuff</em>"
62
+ end
63
+
64
+ should have_instance_methods :raw
65
+
66
+ should "add the text un-escaped using the 'raw' method" do
67
+ assert_equal @data, subject.raw(@data)
68
+ end
69
+
70
+ should "escape the text using the Template#escape_html method" do
71
+ assert_equal "stuff &amp; &lt;em&gt;more stuff&lt;&#x2F;em&gt;", Undies::Template.escape_html(@data)
72
+ end
73
+
74
+ end
75
+
76
+
77
+
78
+ class PlainTextTests < BasicTests
55
79
  desc "with text data"
56
80
  before do
57
81
  @data = "stuff & <em>more stuff</em>"
@@ -64,40 +88,52 @@ class Undies::Template
64
88
  assert_equal subject.class.escape_html(@data), @out
65
89
  end
66
90
 
67
- should "add the text un-escaped using the '__' method" do
68
- subject.__ @data
69
- subject.__flush
91
+ end
92
+
70
93
 
71
- assert_equal @data, @out
94
+
95
+ class CapturedElementTests < BasicTests
96
+ desc "using the captured element api methods"
97
+
98
+ should "capture `element` output as Raw output" do
99
+ assert_kind_of Undies::Raw, subject.closed_element(:br)
72
100
  end
73
101
 
74
- should "add empty string nodes using '__' and '_' methods with no args" do
75
- subject._
76
- subject.__
77
- subject.__flush
102
+ should "capture `element` output correctly" do
103
+ assert_equal "<br />", subject.closed_element(:br).to_s
104
+ end
78
105
 
79
- assert_equal "", @out
106
+ should "capture with `tag` method versions" do
107
+ assert_equal "<span></span>", subject.open_tag(:span).to_s
108
+ end
109
+
110
+ should "capture and escape data approptiately" do
111
+ elem = subject.open_element(:span, *[
112
+ "stuff & <em>more stuff</em>",
113
+ subject.strong(subject.i('ITALICS!!'), ' (here)')
114
+ ])
115
+ assert_equal "<span>stuff &amp; &lt;em&gt;more stuff&lt;&#x2F;em&gt;<strong><i>ITALICS!!</i> (here)</strong></span>", elem.to_s
80
116
  end
81
117
 
82
118
  end
83
119
 
84
120
 
85
121
 
86
- class ElementTests < BasicTests
87
- desc "using the 'element' helper"
122
+ class StreamedElementTests < BasicTests
123
+ desc "using the streamed element api methods"
88
124
 
89
- should "stream element output" do
90
- subject.element(:br)
125
+ should "stream `element` output" do
126
+ subject.__closed_element(:br)
91
127
  subject.__flush
92
128
 
93
129
  assert_equal "<br />", @out
94
130
  end
95
131
 
96
- should "alias it with 'tag'" do
97
- subject.tag(:br)
132
+ should "alias it with `tag` versions" do
133
+ subject.__open_tag(:span)
98
134
  subject.__flush
99
135
 
100
- assert_equal "<br />", @out
136
+ assert_equal "<span></span>", @out
101
137
  end
102
138
 
103
139
  should "respond to underscore-prefix methods" do
@@ -111,13 +147,6 @@ class Undies::Template
111
147
  assert_equal "<br />", @out
112
148
  end
113
149
 
114
- should "not respond to element methods without an underscore-prefix" do
115
- assert !subject.respond_to?(:div)
116
- assert_raises NoMethodError do
117
- subject.div
118
- end
119
- end
120
-
121
150
  end
122
151
 
123
152
 
@@ -125,7 +154,7 @@ class Undies::Template
125
154
  class BuildAttrsTests < BasicTests
126
155
 
127
156
  should "modify attributes during a build using the __attrs method" do
128
- subject.element(:div)
157
+ subject.__element(:div)
129
158
  subject.__push
130
159
  subject.__attrs :class => 'test'
131
160
  subject.__pop
@@ -135,7 +164,7 @@ class Undies::Template
135
164
  end
136
165
 
137
166
  should "should merge __attrs values with existing attrs" do
138
- subject.element(:div).test
167
+ subject.__element(:div).test
139
168
  subject.__push
140
169
  subject.__attrs :id => 'this'
141
170
  subject.__pop
@@ -145,7 +174,7 @@ class Undies::Template
145
174
  end
146
175
 
147
176
  should "should merge __attrs class values by appending to the existing" do
148
- subject.element(:div).test
177
+ subject.__element(:div).test
149
178
  subject.__push
150
179
  subject.__attrs :class => 'this'
151
180
  subject.__pop
@@ -154,13 +183,10 @@ class Undies::Template
154
183
  assert_equal "<div class=\"this\"></div>", @out
155
184
  end
156
185
 
157
- should "ignore __attrs values once content has been added" do
158
- subject.element(:div)
186
+ should "add __attrs even though content has been added" do
187
+ subject.__element(:div, 'hi there', 'friend')
159
188
  subject.__push
160
189
  subject.__attrs :class => 'this'
161
- subject._ "hi there"
162
- subject._ "friend"
163
- subject.__attrs :title => 'missedtheboat'
164
190
  subject.__pop
165
191
  subject.__flush
166
192
 
@@ -168,14 +194,11 @@ class Undies::Template
168
194
  end
169
195
 
170
196
  should "ignore __attrs values once child elements have been added" do
171
- subject.element(:div)
197
+ subject.__element(:div)
172
198
  subject.__push
173
199
  subject.__attrs :class => 'this'
174
- subject._p
175
- subject.__push
176
- subject._ "hi there"
177
- subject.__pop
178
- subject._p { subject._ "friend" }
200
+ subject._p 'hi there'
201
+ subject._p 'friend'
179
202
  subject.__attrs :title => 'missedtheboat'
180
203
  subject.__pop
181
204
  subject.__flush
@@ -189,22 +212,9 @@ class Undies::Template
189
212
 
190
213
  class LocalDataTests < BasicTests
191
214
 
192
- should "only accept the data if it is a Hash" do
193
- assert_respond_to(
194
- :some,
195
- Undies::Template.new(Undies::Source.new(Proc.new {}), {:some => 'data'}, @output)
196
- )
197
- end
198
-
199
- should "complain if trying to set locals that conflict with public methods" do
200
- assert_raises ArgumentError do
201
- Undies::Template.new(Undies::Source.new(Proc.new {}), {:_ => "yay!"})
202
- end
203
- end
204
-
205
- should "respond to each locals key with its value" do
206
- templ = Undies::Template.new(Undies::Source.new(Proc.new {}), {:some => 'data'}, @output)
207
- assert_equal "data", templ.some
215
+ should "accept a hash of data and apply them to the template scope as instance variables" do
216
+ t = Undies::Template.new(Undies::Source.new(Proc.new {}), {:some => 'data'}, @io)
217
+ assert_equal 'data', t.instance_variable_get("@some")
208
218
  end
209
219
 
210
220
  end
@@ -215,13 +225,12 @@ class Undies::Template
215
225
  desc "that is streaming"
216
226
 
217
227
  before do
218
- outstream = StringIO.new(@output = "")
219
- @template = Undies::Template.new(Undies::Output.new(outstream))
228
+ @template = Undies::Template.new(Undies::IO.new(@output = ""))
220
229
  end
221
230
 
222
231
  should "not stream full content until Undies#flush called on the template" do
223
- @template._div { @template._ "Added post-init" }
224
- @expected_output = "<div>Added post-init</div>"
232
+ @template._div "Added"
233
+ @expected_output = "<div>Added</div>"
225
234
 
226
235
  assert_equal "", @output
227
236
  Undies::Template.flush(@template)
@@ -231,13 +240,13 @@ class Undies::Template
231
240
  should "should write to the stream as its being constructed" do
232
241
  @template._div.good.thing!(:type => "something")
233
242
  @template.__push
234
- @template._p { @template._ 'hi' }
243
+ @template._p 'hi'
235
244
  @template.__flush
236
245
 
237
246
  @expected_output = "<div class=\"good\" id=\"thing\" type=\"something\"><p>hi</p>"
238
247
  assert_equal @expected_output, @output
239
248
 
240
- @template._p { @template._ "action" }
249
+ @template._p "action"
241
250
  @template.__pop
242
251
  @template.__flush
243
252
 
@@ -252,7 +261,7 @@ class Undies::Template
252
261
  class PrettyPrintTests < BasicTests
253
262
 
254
263
  should "generate pretty printed markup" do
255
- output = Undies::Output.new(@outstream, :pp => 2)
264
+ output = Undies::IO.new(@out = "", :pp => 2)
256
265
  templ = Undies::Template.new(output)
257
266
 
258
267
  templ._html
@@ -260,10 +269,7 @@ class Undies::Template
260
269
  templ._head {}
261
270
  templ._body
262
271
  templ.__push
263
- templ._div { templ._ "Hi" }
264
- # templ.__push
265
- # templ._ "Hi"
266
- # templ.__pop
272
+ templ._div "Hi"
267
273
  templ.__pop
268
274
  templ.__pop
269
275
  templ.__flush
@@ -274,7 +280,8 @@ class Undies::Template
274
280
  <body>
275
281
  <div>Hi</div>
276
282
  </body>
277
- </html>}, @out )
283
+ </html>
284
+ }, @out )
278
285
  end
279
286
 
280
287
  end
@@ -1 +1 @@
1
- _div { _ "Hi" }
1
+ _div "Hi"
@@ -1,6 +1,6 @@
1
1
  _html {
2
2
  _head {}
3
3
  _body {
4
- _div { _ "Hi" }
4
+ _div "Hi"
5
5
  }
6
6
  }
data/undies.gemspec CHANGED
@@ -19,6 +19,7 @@ Gem::Specification.new do |s|
19
19
 
20
20
  s.add_development_dependency("bundler", ["~> 1.0"])
21
21
  s.add_development_dependency("assert", ["~> 0.7.3"])
22
+ s.add_development_dependency("assert-view", ["~> 0.6"])
22
23
  s.add_development_dependency("whysoslow", ["~> 0.0"])
23
24
 
24
25
  end
metadata CHANGED
@@ -1,13 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: undies
3
3
  version: !ruby/object:Gem::Version
4
- hash: 5
5
- prerelease:
4
+ hash: 15424119
5
+ prerelease: 6
6
6
  segments:
7
- - 2
8
- - 2
7
+ - 3
8
+ - 0
9
+ - 0
10
+ - rc
9
11
  - 1
10
- version: 2.2.1
12
+ version: 3.0.0.rc.1
11
13
  platform: ruby
12
14
  authors:
13
15
  - Kelly Redding
@@ -15,7 +17,7 @@ autorequire:
15
17
  bindir: bin
16
18
  cert_chain: []
17
19
 
18
- date: 2012-03-15 00:00:00 Z
20
+ date: 2012-04-11 00:00:00 Z
19
21
  dependencies:
20
22
  - !ruby/object:Gem::Dependency
21
23
  type: :development
@@ -51,6 +53,21 @@ dependencies:
51
53
  - !ruby/object:Gem::Dependency
52
54
  type: :development
53
55
  requirement: &id003 !ruby/object:Gem::Requirement
56
+ none: false
57
+ requirements:
58
+ - - ~>
59
+ - !ruby/object:Gem::Version
60
+ hash: 7
61
+ segments:
62
+ - 0
63
+ - 6
64
+ version: "0.6"
65
+ name: assert-view
66
+ version_requirements: *id003
67
+ prerelease: false
68
+ - !ruby/object:Gem::Dependency
69
+ type: :development
70
+ requirement: &id004 !ruby/object:Gem::Requirement
54
71
  none: false
55
72
  requirements:
56
73
  - - ~>
@@ -61,7 +78,7 @@ dependencies:
61
78
  - 0
62
79
  version: "0.0"
63
80
  name: whysoslow
64
- version_requirements: *id003
81
+ version_requirements: *id004
65
82
  prerelease: false
66
83
  description: A pure-Ruby DSL for streaming templated HTML, XML, or plain text. Named for its gratuitous use of the underscore.
67
84
  email:
@@ -74,39 +91,46 @@ extra_rdoc_files: []
74
91
 
75
92
  files:
76
93
  - .gitignore
94
+ - ARCH.md
77
95
  - Gemfile
78
96
  - Gemfile.lock
79
- - README.rdoc
97
+ - LICENSE
98
+ - README.md
80
99
  - Rakefile
81
100
  - bench/bench
82
101
  - bench/bench_runner.rb
83
102
  - bench/large.html.erb
103
+ - bench/large.html.haml
84
104
  - bench/large.html.rb
85
105
  - bench/procs.rb
86
106
  - bench/profiler
87
107
  - bench/profiler_runner.rb
88
108
  - bench/small.html.erb
109
+ - bench/small.html.haml
89
110
  - bench/small.html.rb
90
111
  - bench/verylarge.html.erb
112
+ - bench/verylarge.html.haml
91
113
  - bench/verylarge.html.rb
92
114
  - lib/undies.rb
115
+ - lib/undies/api.rb
93
116
  - lib/undies/element.rb
94
- - lib/undies/named_source.rb
95
- - lib/undies/node.rb
96
- - lib/undies/node_stack.rb
97
- - lib/undies/output.rb
117
+ - lib/undies/element_node.rb
118
+ - lib/undies/io.rb
119
+ - lib/undies/root_node.rb
98
120
  - lib/undies/source.rb
99
- - lib/undies/source_stack.rb
100
121
  - lib/undies/template.rb
101
122
  - lib/undies/version.rb
123
+ - test/element_closed_test.rb
124
+ - test/element_node_test.rb
125
+ - test/element_open_test.rb
102
126
  - test/element_test.rb
103
127
  - test/fixtures/write_thing.rb
104
128
  - test/helper.rb
129
+ - test/io_test.rb
105
130
  - test/irb.rb
106
131
  - test/named_source_test.rb
107
- - test/node_stack_test.rb
108
- - test/node_test.rb
109
- - test/output_test.rb
132
+ - test/raw_test.rb
133
+ - test/root_node_test.rb
110
134
  - test/source_stack_test.rb
111
135
  - test/source_test.rb
112
136
  - test/template_builder_render_test.rb
@@ -137,12 +161,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
137
161
  required_rubygems_version: !ruby/object:Gem::Requirement
138
162
  none: false
139
163
  requirements:
140
- - - ">="
164
+ - - ">"
141
165
  - !ruby/object:Gem::Version
142
- hash: 3
166
+ hash: 25
143
167
  segments:
144
- - 0
145
- version: "0"
168
+ - 1
169
+ - 3
170
+ - 1
171
+ version: 1.3.1
146
172
  requirements: []
147
173
 
148
174
  rubyforge_project:
@@ -151,14 +177,17 @@ signing_key:
151
177
  specification_version: 3
152
178
  summary: A pure-Ruby DSL for streaming templated HTML, XML, or plain text. Named for its gratuitous use of the underscore.
153
179
  test_files:
180
+ - test/element_closed_test.rb
181
+ - test/element_node_test.rb
182
+ - test/element_open_test.rb
154
183
  - test/element_test.rb
155
184
  - test/fixtures/write_thing.rb
156
185
  - test/helper.rb
186
+ - test/io_test.rb
157
187
  - test/irb.rb
158
188
  - test/named_source_test.rb
159
- - test/node_stack_test.rb
160
- - test/node_test.rb
161
- - test/output_test.rb
189
+ - test/raw_test.rb
190
+ - test/root_node_test.rb
162
191
  - test/source_stack_test.rb
163
192
  - test/source_test.rb
164
193
  - test/template_builder_render_test.rb