Class: Cuporter::Formatter::HtmlNodeWriter
- Inherits:
-
Object
- Object
- Cuporter::Formatter::HtmlNodeWriter
show all
- Defined in:
- lib/cuporter/formatter/html_node_writer.rb
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(report, builder) ⇒ HtmlNodeWriter
Returns a new instance of HtmlNodeWriter.
11
12
13
14
|
# File 'lib/cuporter/formatter/html_node_writer.rb', line 11
def initialize(report, builder)
@report = report
@builder = builder
end
|
Instance Attribute Details
#builder ⇒ Object
Returns the value of attribute builder.
9
10
11
|
# File 'lib/cuporter/formatter/html_node_writer.rb', line 9
def builder
@builder
end
|
Instance Method Details
#node_class(name) ⇒ Object
#to_row(node, attributes = {}) ⇒ Object
65
66
67
68
69
70
71
|
# File 'lib/cuporter/formatter/html_node_writer.rb', line 65
def to_row(node, attributes = {})
builder.tr(attributes) do |row|
number_string = node.number ? "#{node.number}." : ""
row.td(number_string, :class => :number)
node.name.sub(/^\|/,"").split("|").each {|s| row.td(s.strip, :class => :val) }
end
end
|
#write_children(node) ⇒ Object
43
44
45
46
47
48
49
50
|
# File 'lib/cuporter/formatter/html_node_writer.rb', line 43
def write_children(node)
return if node.children.empty?
if node.is_a? ExampleSetNode
write_children_in_table(node.children)
else
write_children_in_list(node.children)
end
end
|
#write_children_in_list(children) ⇒ Object
73
74
75
76
77
78
79
80
81
82
83
|
# File 'lib/cuporter/formatter/html_node_writer.rb', line 73
def write_children_in_list(children)
builder.ul do
children.each do |child|
if child.has_children?
write_node(child)
else
builder.li() { write_node_name(child) }
end
end
end
end
|
#write_children_in_table(children) ⇒ Object
52
53
54
55
56
57
58
59
60
61
62
63
|
# File 'lib/cuporter/formatter/html_node_writer.rb', line 52
def write_children_in_table(children)
builder.div(:class => :example_rows) do
builder.table do
builder.thead {to_row(children.first)}
builder.tbody do
children[1..-1].each do |child|
to_row(child, :class => :example)
end
end
end
end
end
|
#write_file(file) ⇒ Object
32
33
34
35
36
37
38
39
40
41
|
# File 'lib/cuporter/formatter/html_node_writer.rb', line 32
def write_file(file)
builder.div(:class => :file) do |div|
path_nodes = file.split(File::Separator)
file_name = path_nodes.pop
parent_dir = path_nodes.pop
div.span(path_nodes.join("/"))
div.span("/#{parent_dir}", :class => :dir)
div.span("/#{file_name}")
end
end
|
#write_node(node) ⇒ Object
16
17
18
19
20
21
|
# File 'lib/cuporter/formatter/html_node_writer.rb', line 16
def write_node(node)
builder.li(:class => node_class(node.name)) do
write_node_name(node)
write_children(node)
end
end
|
#write_node_name(node) ⇒ Object
23
24
25
26
27
28
29
30
|
# File 'lib/cuporter/formatter/html_node_writer.rb', line 23
def write_node_name(node)
builder.span("#{node.number}.", :class => :number) if node.number
builder.div(:class => "#{node_class(node.name)}_name") do
builder.span(node.name)
write_file(node.file) if node.file
builder.span("[#{node.total}]", :class => :total) if node_class(node.name) == :tag
end
end
|