cuporter 0.3.2 → 0.3.3
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/README.textile +123 -44
- data/Rakefile +5 -5
- data/bin/cuporter +19 -11
- data/lib/cuporter.rb +15 -26
- data/lib/cuporter/cli/options.rb +95 -22
- data/lib/cuporter/document.rb +23 -0
- data/lib/cuporter/document/html_document.rb +82 -0
- data/lib/cuporter/extensions/nokogiri.rb +46 -0
- data/lib/cuporter/feature_parser.rb +38 -19
- data/lib/cuporter/filter.rb +1 -0
- data/lib/cuporter/formatters/csv.rb +69 -0
- data/lib/cuporter/formatters/text.rb +166 -0
- data/lib/cuporter/formatters/xml_to_html.xslt +315 -0
- data/lib/cuporter/node.rb +7 -83
- data/lib/cuporter/node/node_base.rb +114 -0
- data/lib/cuporter/node/numbering.rb +32 -0
- data/lib/cuporter/node/sorting.rb +27 -0
- data/lib/cuporter/node/tagged_node.rb +22 -0
- data/lib/cuporter/node/totalling.rb +19 -0
- data/lib/cuporter/node/types.rb +158 -0
- data/lib/cuporter/node_parser.rb +62 -0
- data/lib/cuporter/report/feature_report.rb +23 -0
- data/lib/cuporter/report/report_base.rb +69 -0
- data/lib/cuporter/report/tag_report.rb +27 -7
- data/lib/cuporter/report/tree_report.rb +24 -0
- data/lib/cuporter/tag_nodes_parser.rb +94 -0
- data/public/images/ajax-loader.gif +0 -0
- data/public/images/file.gif +0 -0
- data/public/images/folder-closed.gif +0 -0
- data/public/images/folder.gif +0 -0
- data/public/images/minus.gif +0 -0
- data/public/images/plus.gif +0 -0
- data/public/images/treeview-black-line.gif +0 -0
- data/public/images/treeview-black.gif +0 -0
- data/public/images/treeview-default-line.gif +0 -0
- data/public/images/treeview-default.gif +0 -0
- data/public/images/treeview-famfamfam-line.gif +0 -0
- data/public/images/treeview-famfamfam.gif +0 -0
- data/public/images/treeview-gray-line.gif +0 -0
- data/public/images/treeview-gray.gif +0 -0
- data/public/images/treeview-red-line.gif +0 -0
- data/public/images/treeview-red.gif +0 -0
- data/public/javascripts/expand-collapse.js +47 -0
- data/public/javascripts/jquery-min.js +167 -0
- data/public/javascripts/jquery.treeview.js +267 -0
- data/public/javascripts/treeview-loader.js +11 -0
- data/public/stylesheets/cuporter.css +101 -0
- data/{lib/cuporter/formatter/name_report/style.css → public/stylesheets/feature_style.css} +17 -18
- data/public/stylesheets/jquery.treeview.css +75 -0
- data/{lib/cuporter/formatter/tag_report/style.css → public/stylesheets/tag_style.css} +17 -22
- data/public/stylesheets/tree_style.css +104 -0
- metadata +52 -37
- data/lib/cuporter/example_set_node.rb +0 -15
- data/lib/cuporter/formatter/csv_text_methods.rb +0 -20
- data/lib/cuporter/formatter/cuporter.css +0 -64
- data/lib/cuporter/formatter/html_methods.rb +0 -122
- data/lib/cuporter/formatter/html_node_writer.rb +0 -104
- data/lib/cuporter/formatter/jquery-min.js +0 -154
- data/lib/cuporter/formatter/name_report/csv.rb +0 -12
- data/lib/cuporter/formatter/name_report/html.rb +0 -48
- data/lib/cuporter/formatter/name_report/html_node_writer.rb +0 -18
- data/lib/cuporter/formatter/name_report/text.rb +0 -16
- data/lib/cuporter/formatter/name_report/text_node_writer.rb +0 -16
- data/lib/cuporter/formatter/pretty_text_methods.rb +0 -22
- data/lib/cuporter/formatter/tag_report/csv.rb +0 -12
- data/lib/cuporter/formatter/tag_report/html.rb +0 -35
- data/lib/cuporter/formatter/tag_report/html_node_writer.rb +0 -19
- data/lib/cuporter/formatter/tag_report/text.rb +0 -14
- data/lib/cuporter/formatter/tag_report/text_node_writer.rb +0 -17
- data/lib/cuporter/formatter/text_methods.rb +0 -19
- data/lib/cuporter/formatter/writer.rb +0 -33
- data/lib/cuporter/name_list_parser.rb +0 -44
- data/lib/cuporter/node_numberer.rb +0 -18
- data/lib/cuporter/report/name_report.rb +0 -19
- data/lib/cuporter/report/report.rb +0 -22
- data/lib/cuporter/tag_list_node.rb +0 -54
- data/lib/cuporter/tag_list_parser.rb +0 -39
@@ -1,44 +0,0 @@
|
|
1
|
-
# Copyright 2010 ThoughtWorks, Inc. Licensed under the MIT License
|
2
|
-
|
3
|
-
module Cuporter
|
4
|
-
class NameListParser < FeatureParser
|
5
|
-
|
6
|
-
# ++sub_expression++ is the paren group in the regex, dereferenced with $1 in the caller
|
7
|
-
def new_feature_node(sub_expression)
|
8
|
-
TagListNode.new(sub_expression, @current_tags, @filter)
|
9
|
-
end
|
10
|
-
|
11
|
-
def handle_scenario_line(sub_expression)
|
12
|
-
@feature.filter_child(Node.new(sub_expression), @current_tags)
|
13
|
-
end
|
14
|
-
|
15
|
-
def new_scenario_outline_node(sub_expression)
|
16
|
-
TagListNode.new(sub_expression, @current_tags, @filter)
|
17
|
-
end
|
18
|
-
|
19
|
-
def handle_example_set_line
|
20
|
-
@scenario_outline.filter_child(@example_set, @example_set.tags)
|
21
|
-
end
|
22
|
-
|
23
|
-
def new_example_set_node(sub_expression)
|
24
|
-
ExampleSetNode.new(sub_expression, @feature.tags | @current_tags, @filter)
|
25
|
-
end
|
26
|
-
|
27
|
-
def close_scenario_outline
|
28
|
-
if @scenario_outline
|
29
|
-
if @example_set
|
30
|
-
@scenario_outline.filter_child(@example_set, @example_set.tags) if @example_set
|
31
|
-
@example_set = nil
|
32
|
-
end
|
33
|
-
@feature.add_child(@scenario_outline) if @scenario_outline.has_children?
|
34
|
-
@scenario_outline = nil
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
def initialize(file, filter)
|
39
|
-
super(file)
|
40
|
-
@filter = filter
|
41
|
-
end
|
42
|
-
|
43
|
-
end
|
44
|
-
end
|
@@ -1,18 +0,0 @@
|
|
1
|
-
module Cuporter
|
2
|
-
class NodeNumberer
|
3
|
-
|
4
|
-
attr_reader :total
|
5
|
-
|
6
|
-
def initialize
|
7
|
-
@total = 0
|
8
|
-
end
|
9
|
-
|
10
|
-
def number(node)
|
11
|
-
node.children.each do |child|
|
12
|
-
child.number = @total += 1 if child.numerable?
|
13
|
-
number(child)
|
14
|
-
end
|
15
|
-
end
|
16
|
-
|
17
|
-
end
|
18
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
# Copyright 2010 ThoughtWorks, Inc. Licensed under the MIT License
|
2
|
-
module Cuporter
|
3
|
-
class NameReport < Report
|
4
|
-
|
5
|
-
def report_node
|
6
|
-
names = TagListNode.new("report", @filter)
|
7
|
-
files.each do |file|
|
8
|
-
feature = FeatureParser.name_list(file, @filter)
|
9
|
-
if feature && feature.has_children?
|
10
|
-
names.add_child(feature)
|
11
|
-
end
|
12
|
-
end
|
13
|
-
names.sort_all_descendants!
|
14
|
-
names.number_all_descendants
|
15
|
-
names
|
16
|
-
end
|
17
|
-
|
18
|
-
end
|
19
|
-
end
|
@@ -1,22 +0,0 @@
|
|
1
|
-
# Copyright 2010 ThoughtWorks, Inc. Licensed under the MIT License
|
2
|
-
module Cuporter
|
3
|
-
class Report
|
4
|
-
|
5
|
-
attr_reader :filter, :title
|
6
|
-
|
7
|
-
def initialize(input_file_pattern, filter_args = nil, title = nil)
|
8
|
-
@input_file_pattern = input_file_pattern
|
9
|
-
@filter = Filter.new(filter_args || {})
|
10
|
-
@title = title
|
11
|
-
end
|
12
|
-
|
13
|
-
def files
|
14
|
-
Dir[@input_file_pattern].collect {|f| File.expand_path f}
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.create(type, input_file_pattern, filter_args = nil, title = nil)
|
18
|
-
klass = Cuporter.const_get("#{type.downcase}Report".to_class_name)
|
19
|
-
klass.new(input_file_pattern, filter_args, title)
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
# Copyright 2010 ThoughtWorks, Inc. Licensed under the MIT License
|
2
|
-
module Cuporter
|
3
|
-
# a node with a list of tags that can be applied to all children
|
4
|
-
class TagListNode < Node
|
5
|
-
|
6
|
-
attr_reader :tags
|
7
|
-
|
8
|
-
def initialize(name, tags, filter = {})
|
9
|
-
super(name)
|
10
|
-
@tags = tags
|
11
|
-
@filter = filter
|
12
|
-
end
|
13
|
-
|
14
|
-
def has_tags?
|
15
|
-
@tags.size > 0
|
16
|
-
end
|
17
|
-
|
18
|
-
def filter_child(node, node_tags)
|
19
|
-
add_child(node) if @filter.pass?(tags | node_tags)
|
20
|
-
end
|
21
|
-
|
22
|
-
def add_to_tag_nodes(node)
|
23
|
-
(tags | node.tags).each do |tag|
|
24
|
-
tag_node = find_or_create_child(tag)
|
25
|
-
tag_node.add_child(node)
|
26
|
-
end
|
27
|
-
end
|
28
|
-
|
29
|
-
# Have my children adopt the other node's grandchildren.
|
30
|
-
#
|
31
|
-
# Copy children of other node's top-level, direct descendants to this
|
32
|
-
# node's direct descendants of the same name.
|
33
|
-
def merge_tag_nodes(other)
|
34
|
-
other.children.each do |other_tag_node|
|
35
|
-
tag_node = find_or_create_child(other_tag_node.name)
|
36
|
-
new_grandchild = Node.new(other.name)
|
37
|
-
new_grandchild.children = other_tag_node.children
|
38
|
-
new_grandchild.file = other.file
|
39
|
-
|
40
|
-
tag_node.add_child(new_grandchild)
|
41
|
-
end
|
42
|
-
end
|
43
|
-
|
44
|
-
def find_or_create_child(name)
|
45
|
-
child_node = self[name]
|
46
|
-
unless child_node
|
47
|
-
children << Node.new(name)
|
48
|
-
child_node = children.last
|
49
|
-
end
|
50
|
-
child_node
|
51
|
-
end
|
52
|
-
|
53
|
-
end
|
54
|
-
end
|
@@ -1,39 +0,0 @@
|
|
1
|
-
# Copyright 2010 ThoughtWorks, Inc. Licensed under the MIT License
|
2
|
-
|
3
|
-
module Cuporter
|
4
|
-
class TagListParser < FeatureParser
|
5
|
-
|
6
|
-
# ++sub_expression++ is the paren group in the regex, dereferenced with $1 in the caller
|
7
|
-
def new_feature_node(sub_expression)
|
8
|
-
TagListNode.new(sub_expression, @current_tags)
|
9
|
-
end
|
10
|
-
|
11
|
-
def handle_scenario_line(sub_expression)
|
12
|
-
@feature.add_to_tag_nodes(TagListNode.new(sub_expression, @current_tags))
|
13
|
-
end
|
14
|
-
|
15
|
-
def new_scenario_outline_node(sub_expression)
|
16
|
-
TagListNode.new(sub_expression, @current_tags)
|
17
|
-
end
|
18
|
-
|
19
|
-
def handle_example_set_line
|
20
|
-
@scenario_outline.add_to_tag_nodes(@example_set)
|
21
|
-
end
|
22
|
-
|
23
|
-
def new_example_set_node(sub_expression)
|
24
|
-
ExampleSetNode.new(sub_expression, @feature.tags | @current_tags)
|
25
|
-
end
|
26
|
-
|
27
|
-
def close_scenario_outline
|
28
|
-
if @scenario_outline
|
29
|
-
if @example_set
|
30
|
-
@scenario_outline.add_to_tag_nodes(@example_set) if @example_set
|
31
|
-
@example_set = nil
|
32
|
-
end
|
33
|
-
@feature.merge_tag_nodes(@scenario_outline)
|
34
|
-
@scenario_outline = nil
|
35
|
-
end
|
36
|
-
end
|
37
|
-
|
38
|
-
end
|
39
|
-
end
|