cuporter 0.3.2 → 0.3.3

Sign up to get free protection for your applications and to get access to all the features.
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