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.
- data/ARCH.md +116 -0
- data/Gemfile +3 -0
- data/Gemfile.lock +20 -4
- data/LICENSE +22 -0
- data/README.md +343 -0
- data/Rakefile +25 -17
- data/bench/bench_runner.rb +132 -12
- data/bench/large.html.erb +9 -13
- data/bench/large.html.haml +11 -0
- data/bench/large.html.rb +8 -12
- data/bench/profiler +1 -1
- data/bench/profiler_runner.rb +2 -5
- data/bench/small.html.erb +9 -13
- data/bench/small.html.haml +11 -0
- data/bench/small.html.rb +8 -12
- data/bench/verylarge.html.erb +9 -13
- data/bench/verylarge.html.haml +11 -0
- data/bench/verylarge.html.rb +8 -12
- data/lib/undies/api.rb +163 -0
- data/lib/undies/element.rb +160 -80
- data/lib/undies/element_node.rb +116 -0
- data/lib/undies/io.rb +43 -0
- data/lib/undies/root_node.rb +62 -0
- data/lib/undies/source.rb +78 -2
- data/lib/undies/template.rb +17 -131
- data/lib/undies/version.rb +1 -1
- data/lib/undies.rb +3 -2
- data/test/element_closed_test.rb +69 -0
- data/test/element_node_test.rb +274 -0
- data/test/element_open_test.rb +101 -0
- data/test/element_test.rb +23 -196
- data/test/fixtures/write_thing.rb +4 -4
- data/test/helper.rb +84 -0
- data/test/io_test.rb +104 -0
- data/test/named_source_test.rb +1 -1
- data/test/raw_test.rb +25 -0
- data/test/root_node_test.rb +108 -0
- data/test/source_stack_test.rb +1 -1
- data/test/template_builder_render_test.rb +4 -9
- data/test/template_source_render_test.rb +16 -20
- data/test/template_test.rb +87 -80
- data/test/templates/content.html.rb +1 -1
- data/test/templates/test.html.rb +1 -1
- data/undies.gemspec +1 -0
- metadata +52 -23
- data/README.rdoc +0 -203
- data/lib/undies/named_source.rb +0 -54
- data/lib/undies/node.rb +0 -87
- data/lib/undies/node_stack.rb +0 -111
- data/lib/undies/output.rb +0 -31
- data/lib/undies/source_stack.rb +0 -22
- data/test/node_stack_test.rb +0 -109
- data/test/node_test.rb +0 -91
- data/test/output_test.rb +0 -69
data/test/node_test.rb
DELETED
@@ -1,91 +0,0 @@
|
|
1
|
-
require "assert"
|
2
|
-
|
3
|
-
require "undies/output"
|
4
|
-
require "undies/node"
|
5
|
-
|
6
|
-
class Undies::Node
|
7
|
-
|
8
|
-
class BasicTests < Assert::Context
|
9
|
-
desc 'a node'
|
10
|
-
before do
|
11
|
-
@output = Undies::Output.new(StringIO.new(@out = ""))
|
12
|
-
@n = Undies::Node.new("a text node here")
|
13
|
-
end
|
14
|
-
subject { @n }
|
15
|
-
|
16
|
-
should have_class_methods :start_tag, :end_tag, :set_start_tag, :set_end_tag
|
17
|
-
should have_class_methods :builds, :add_build
|
18
|
-
should have_class_methods :children, :set_children
|
19
|
-
should have_class_methods :attrs, :merge_attrs
|
20
|
-
should have_class_methods :node_name, :content, :mode, :prefix
|
21
|
-
|
22
|
-
should "have no start/end tags" do
|
23
|
-
assert_empty subject.class.start_tag(subject)
|
24
|
-
assert_empty subject.class.end_tag(subject)
|
25
|
-
end
|
26
|
-
|
27
|
-
should "have content" do
|
28
|
-
assert_equal "a text node here", subject.class.content(subject)
|
29
|
-
end
|
30
|
-
|
31
|
-
should "have no builds" do
|
32
|
-
assert_empty subject.class.builds(subject)
|
33
|
-
end
|
34
|
-
|
35
|
-
should "be :inline mode by default" do
|
36
|
-
assert_equal :inline, subject.class.mode(subject)
|
37
|
-
end
|
38
|
-
|
39
|
-
should "have no prefix if :inline mode" do
|
40
|
-
assert_empty subject.class.prefix(subject, 'start_tag', 2, 2)
|
41
|
-
assert_empty subject.class.prefix(subject, 'end_tag', 1, 2)
|
42
|
-
end
|
43
|
-
|
44
|
-
should "have a pp prefix if not :inline mode" do
|
45
|
-
node = Undies::Node.new("a non inline node", :partial)
|
46
|
-
assert_equal "\n ", node.class.prefix(node, 'start_tag', 2, 2)
|
47
|
-
assert_equal "\n ", node.class.prefix(node, 'end_tag', 2, 2)
|
48
|
-
assert_equal "\n ", node.class.prefix(node, 'start_tag', 1, 2)
|
49
|
-
assert_equal "\n", node.class.prefix(node, 'end_tag', 1, 2)
|
50
|
-
assert_equal "", node.class.prefix(node, 'start_tag', 0, 2)
|
51
|
-
assert_equal "\n", node.class.prefix(node, 'end_tag', 0, 2)
|
52
|
-
end
|
53
|
-
|
54
|
-
should "have no children by default" do
|
55
|
-
assert_equal false, subject.class.children(subject)
|
56
|
-
end
|
57
|
-
|
58
|
-
should "have no attrs by default" do
|
59
|
-
assert_empty subject.class.attrs(subject)
|
60
|
-
end
|
61
|
-
|
62
|
-
should "have no name by default" do
|
63
|
-
assert_empty subject.class.node_name(subject)
|
64
|
-
end
|
65
|
-
|
66
|
-
should "add a build if given a block" do
|
67
|
-
subject.class.add_build(subject, Proc.new {})
|
68
|
-
assert_equal [Proc.new {}], subject.class.builds(subject)
|
69
|
-
|
70
|
-
subject.class.add_build(subject, Proc.new {})
|
71
|
-
assert_equal [Proc.new {}, Proc.new {}], subject.class.builds(subject)
|
72
|
-
end
|
73
|
-
|
74
|
-
should "set children if given a value" do
|
75
|
-
subject.class.set_children(subject, true)
|
76
|
-
assert_equal true, subject.class.children(subject)
|
77
|
-
end
|
78
|
-
|
79
|
-
should "merge attrs if given an attrs hash" do
|
80
|
-
attrs_hash = {:same => 'value', :new => 'a new value'}
|
81
|
-
subject.class.merge_attrs(subject, attrs_hash)
|
82
|
-
assert_equal attrs_hash, subject.class.attrs(subject)
|
83
|
-
|
84
|
-
attrs_hash = {:same => 'new same', :new => 'a new value'}
|
85
|
-
subject.class.merge_attrs(subject, attrs_hash)
|
86
|
-
assert_equal attrs_hash, subject.class.attrs(subject)
|
87
|
-
end
|
88
|
-
|
89
|
-
end
|
90
|
-
|
91
|
-
end
|
data/test/output_test.rb
DELETED
@@ -1,69 +0,0 @@
|
|
1
|
-
require "assert"
|
2
|
-
|
3
|
-
require 'stringio'
|
4
|
-
require 'undies/node'
|
5
|
-
require 'undies/element'
|
6
|
-
require 'undies/node_stack'
|
7
|
-
require 'test/fixtures/write_thing'
|
8
|
-
|
9
|
-
require "undies/output"
|
10
|
-
|
11
|
-
class Undies::Output
|
12
|
-
|
13
|
-
class BasicTests < Assert::Context
|
14
|
-
desc 'render data'
|
15
|
-
before do
|
16
|
-
@io = StringIO.new(@out = "")
|
17
|
-
@output = Undies::Output.new(@io)
|
18
|
-
end
|
19
|
-
subject { @output }
|
20
|
-
|
21
|
-
should have_readers :io, :pp
|
22
|
-
should have_writer :options
|
23
|
-
should have_accessor :pp_level
|
24
|
-
should have_instance_method :write
|
25
|
-
|
26
|
-
should "know its stream" do
|
27
|
-
assert_same @io, subject.io
|
28
|
-
end
|
29
|
-
|
30
|
-
should "default to no pretty printing" do
|
31
|
-
assert_equal 0, subject.pp
|
32
|
-
end
|
33
|
-
|
34
|
-
should "default to pretty printing level 0" do
|
35
|
-
assert_equal 0, subject.pp_level
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
class PrettyPrintTests < BasicTests
|
41
|
-
desc "when pretty printing"
|
42
|
-
before do
|
43
|
-
subject.options = {:pp => 2}
|
44
|
-
end
|
45
|
-
|
46
|
-
should "know its pp indent amount" do
|
47
|
-
assert_equal 2, subject.pp
|
48
|
-
end
|
49
|
-
|
50
|
-
should "start pp at level 0 by default" do
|
51
|
-
assert_equal 0, subject.pp_level
|
52
|
-
end
|
53
|
-
|
54
|
-
should "pretty print stream data" do
|
55
|
-
subject.write(WriteThing.new, :hi, 0)
|
56
|
-
assert_equal "hi", @out
|
57
|
-
|
58
|
-
subject.pp_level +=1
|
59
|
-
subject.write(WriteThing.new, :hello, 0)
|
60
|
-
assert_equal "hi\n hello", @out
|
61
|
-
|
62
|
-
subject.pp_level -= 1
|
63
|
-
subject.write(WriteThing.new, :hithere, 0)
|
64
|
-
assert_equal "hi\n hellohithere", @out
|
65
|
-
end
|
66
|
-
|
67
|
-
end
|
68
|
-
|
69
|
-
end
|