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.
Files changed (77) hide show
  1. data/README.textile +123 -44
  2. data/Rakefile +5 -5
  3. data/bin/cuporter +19 -11
  4. data/lib/cuporter.rb +15 -26
  5. data/lib/cuporter/cli/options.rb +95 -22
  6. data/lib/cuporter/document.rb +23 -0
  7. data/lib/cuporter/document/html_document.rb +82 -0
  8. data/lib/cuporter/extensions/nokogiri.rb +46 -0
  9. data/lib/cuporter/feature_parser.rb +38 -19
  10. data/lib/cuporter/filter.rb +1 -0
  11. data/lib/cuporter/formatters/csv.rb +69 -0
  12. data/lib/cuporter/formatters/text.rb +166 -0
  13. data/lib/cuporter/formatters/xml_to_html.xslt +315 -0
  14. data/lib/cuporter/node.rb +7 -83
  15. data/lib/cuporter/node/node_base.rb +114 -0
  16. data/lib/cuporter/node/numbering.rb +32 -0
  17. data/lib/cuporter/node/sorting.rb +27 -0
  18. data/lib/cuporter/node/tagged_node.rb +22 -0
  19. data/lib/cuporter/node/totalling.rb +19 -0
  20. data/lib/cuporter/node/types.rb +158 -0
  21. data/lib/cuporter/node_parser.rb +62 -0
  22. data/lib/cuporter/report/feature_report.rb +23 -0
  23. data/lib/cuporter/report/report_base.rb +69 -0
  24. data/lib/cuporter/report/tag_report.rb +27 -7
  25. data/lib/cuporter/report/tree_report.rb +24 -0
  26. data/lib/cuporter/tag_nodes_parser.rb +94 -0
  27. data/public/images/ajax-loader.gif +0 -0
  28. data/public/images/file.gif +0 -0
  29. data/public/images/folder-closed.gif +0 -0
  30. data/public/images/folder.gif +0 -0
  31. data/public/images/minus.gif +0 -0
  32. data/public/images/plus.gif +0 -0
  33. data/public/images/treeview-black-line.gif +0 -0
  34. data/public/images/treeview-black.gif +0 -0
  35. data/public/images/treeview-default-line.gif +0 -0
  36. data/public/images/treeview-default.gif +0 -0
  37. data/public/images/treeview-famfamfam-line.gif +0 -0
  38. data/public/images/treeview-famfamfam.gif +0 -0
  39. data/public/images/treeview-gray-line.gif +0 -0
  40. data/public/images/treeview-gray.gif +0 -0
  41. data/public/images/treeview-red-line.gif +0 -0
  42. data/public/images/treeview-red.gif +0 -0
  43. data/public/javascripts/expand-collapse.js +47 -0
  44. data/public/javascripts/jquery-min.js +167 -0
  45. data/public/javascripts/jquery.treeview.js +267 -0
  46. data/public/javascripts/treeview-loader.js +11 -0
  47. data/public/stylesheets/cuporter.css +101 -0
  48. data/{lib/cuporter/formatter/name_report/style.css → public/stylesheets/feature_style.css} +17 -18
  49. data/public/stylesheets/jquery.treeview.css +75 -0
  50. data/{lib/cuporter/formatter/tag_report/style.css → public/stylesheets/tag_style.css} +17 -22
  51. data/public/stylesheets/tree_style.css +104 -0
  52. metadata +52 -37
  53. data/lib/cuporter/example_set_node.rb +0 -15
  54. data/lib/cuporter/formatter/csv_text_methods.rb +0 -20
  55. data/lib/cuporter/formatter/cuporter.css +0 -64
  56. data/lib/cuporter/formatter/html_methods.rb +0 -122
  57. data/lib/cuporter/formatter/html_node_writer.rb +0 -104
  58. data/lib/cuporter/formatter/jquery-min.js +0 -154
  59. data/lib/cuporter/formatter/name_report/csv.rb +0 -12
  60. data/lib/cuporter/formatter/name_report/html.rb +0 -48
  61. data/lib/cuporter/formatter/name_report/html_node_writer.rb +0 -18
  62. data/lib/cuporter/formatter/name_report/text.rb +0 -16
  63. data/lib/cuporter/formatter/name_report/text_node_writer.rb +0 -16
  64. data/lib/cuporter/formatter/pretty_text_methods.rb +0 -22
  65. data/lib/cuporter/formatter/tag_report/csv.rb +0 -12
  66. data/lib/cuporter/formatter/tag_report/html.rb +0 -35
  67. data/lib/cuporter/formatter/tag_report/html_node_writer.rb +0 -19
  68. data/lib/cuporter/formatter/tag_report/text.rb +0 -14
  69. data/lib/cuporter/formatter/tag_report/text_node_writer.rb +0 -17
  70. data/lib/cuporter/formatter/text_methods.rb +0 -19
  71. data/lib/cuporter/formatter/writer.rb +0 -33
  72. data/lib/cuporter/name_list_parser.rb +0 -44
  73. data/lib/cuporter/node_numberer.rb +0 -18
  74. data/lib/cuporter/report/name_report.rb +0 -19
  75. data/lib/cuporter/report/report.rb +0 -22
  76. data/lib/cuporter/tag_list_node.rb +0 -54
  77. 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