Class: Cuporter::Formatters::HtmlNodeWriter
- Inherits:
-
Object
- Object
- Cuporter::Formatters::HtmlNodeWriter
- Defined in:
- lib/cuporter/formatters/html_node_writer.rb
Instance Attribute Summary collapse
-
#builder ⇒ Object
readonly
Returns the value of attribute builder.
Instance Method Summary collapse
-
#initialize ⇒ HtmlNodeWriter
constructor
A new instance of HtmlNodeWriter.
- #node_class(name) ⇒ Object
- #to_row(node, attributes = {}) ⇒ Object
- #write_children(node) ⇒ Object
- #write_children_in_list(children) ⇒ Object
- #write_children_in_table(children) ⇒ Object
- #write_node(node) ⇒ Object
- #write_node_name(node) ⇒ Object
- #write_nodes(report, number_scenarios) ⇒ Object
Constructor Details
#initialize ⇒ HtmlNodeWriter
Returns a new instance of HtmlNodeWriter.
11 12 13 |
# File 'lib/cuporter/formatters/html_node_writer.rb', line 11 def initialize @builder = Builder::XmlMarkup.new end |
Instance Attribute Details
#builder ⇒ Object (readonly)
Returns the value of attribute builder.
9 10 11 |
# File 'lib/cuporter/formatters/html_node_writer.rb', line 9 def builder @builder end |
Instance Method Details
#node_class(name) ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 |
# File 'lib/cuporter/formatters/html_node_writer.rb', line 80 def node_class(name) case name when FeatureParser::TAG_LINE :tag when FeatureParser::FEATURE_LINE :feature when FeatureParser::SCENARIO_LINE :scenario when FeatureParser::SCENARIO_OUTLINE_LINE :scenario_outline when FeatureParser::SCENARIO_SET_LINE, FeatureParser::EXAMPLE_SET_LINE :example_set else :example end end |
#to_row(node, attributes = {}) ⇒ Object
60 61 62 63 64 65 66 |
# File 'lib/cuporter/formatters/html_node_writer.rb', line 60 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
38 39 40 41 42 43 44 45 |
# File 'lib/cuporter/formatters/html_node_writer.rb', line 38 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
68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/cuporter/formatters/html_node_writer.rb', line 68 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
47 48 49 50 51 52 53 54 55 56 57 58 |
# File 'lib/cuporter/formatters/html_node_writer.rb', line 47 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_node(node) ⇒ Object
23 24 25 26 27 28 |
# File 'lib/cuporter/formatters/html_node_writer.rb', line 23 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
30 31 32 33 34 35 36 |
# File 'lib/cuporter/formatters/html_node_writer.rb', line 30 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) builder.span(node.file, :class => :file) if node.file end end |
#write_nodes(report, number_scenarios) ⇒ Object
15 16 17 18 19 20 21 |
# File 'lib/cuporter/formatters/html_node_writer.rb', line 15 def write_nodes(report, number_scenarios) report.children.each do |tag_node| tag_node.number_all_descendants if number_scenarios write_node(tag_node) end builder end |