cuporter 0.3.5 → 0.3.6
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 +22 -10
- data/Rakefile +1 -1
- data/bin/cuporter +2 -1
- data/lib/cuporter/cli/options.rb +28 -7
- data/lib/cuporter/document/html_document.rb +22 -19
- data/lib/cuporter/document.rb +11 -1
- data/public/{images → jquery.treeview/images}/ajax-loader.gif +0 -0
- data/public/{images → jquery.treeview/images}/file.gif +0 -0
- data/public/{images → jquery.treeview/images}/folder-closed.gif +0 -0
- data/public/{images → jquery.treeview/images}/folder.gif +0 -0
- data/public/{images → jquery.treeview/images}/minus.gif +0 -0
- data/public/{images → jquery.treeview/images}/plus.gif +0 -0
- data/public/{images → jquery.treeview/images}/treeview-black-line.gif +0 -0
- data/public/{images → jquery.treeview/images}/treeview-black.gif +0 -0
- data/public/{images → jquery.treeview/images}/treeview-default-line.gif +0 -0
- data/public/{images → jquery.treeview/images}/treeview-default.gif +0 -0
- data/public/{images → jquery.treeview/images}/treeview-famfamfam-line.gif +0 -0
- data/public/{images → jquery.treeview/images}/treeview-famfamfam.gif +0 -0
- data/public/{images → jquery.treeview/images}/treeview-gray-line.gif +0 -0
- data/public/{images → jquery.treeview/images}/treeview-gray.gif +0 -0
- data/public/{images → jquery.treeview/images}/treeview-red-line.gif +0 -0
- data/public/{images → jquery.treeview/images}/treeview-red.gif +0 -0
- data/public/{stylesheets → jquery.treeview}/jquery.treeview.css +15 -15
- data/public/{javascripts → jquery.treeview}/jquery.treeview.js +0 -0
- metadata +22 -22
data/README.textile
CHANGED
@@ -115,34 +115,46 @@ h4. help
|
|
115
115
|
$ cuporter -h
|
116
116
|
|
117
117
|
Usage: cuporter [options]
|
118
|
-
|
118
|
+
|
119
119
|
-r, --report [tag|feature|tree] View, or type of report.
|
120
120
|
Default: "tag"
|
121
|
-
|
121
|
+
|
122
122
|
-f, --format [xml|html|csv|text] Output format.
|
123
|
-
|
124
|
-
|
123
|
+
Default: text (it's pretty, though!)
|
124
|
+
|
125
125
|
-i, --input-dir DIR Root directory of *.feature files.
|
126
126
|
Default: "features"
|
127
|
-
|
127
|
+
|
128
128
|
Used to build the glob pattern '[--input-dir]/**/*.feature', which is really most likely
|
129
129
|
"features/**/*.features" and finds all feature files anywhere under "features" or
|
130
130
|
your custom root supplied with this option.
|
131
131
|
Overridden by "--file-input'.
|
132
|
-
|
132
|
+
|
133
133
|
-I, --file-input FILE Single *.feature file. Full name with extension, like 'path/to/file.feature.'
|
134
134
|
Overrides "--input-dir" and used mostly for testing.
|
135
|
-
|
135
|
+
|
136
136
|
-o, --output-file FILE Output file path, like 'tmp/cucumber/tag_report.html'.
|
137
|
-
|
137
|
+
|
138
138
|
-t, --tags TAG_EXPRESSION Filter on tags for name report.
|
139
139
|
TAG_EXPRESSION rules:
|
140
140
|
1. $ cucumber --help
|
141
141
|
2. http://github.com/aslakhellesoy/cucumber/wiki/Tags
|
142
|
-
|
142
|
+
|
143
143
|
-T, --title STRING Override report default title, which is different for each view/report.
|
144
144
|
This affects the xml 'report' node title and the html head > title attributes.
|
145
|
-
|
145
|
+
CSS and Javascript asset options:
|
146
|
+
|
147
|
+
-a, --assets-dir PATH Path to folder for CSS and Javascript assets.
|
148
|
+
Only applies with '--link-assets', which is off by default.
|
149
|
+
Setting this will cause assets to be copied from 'public';
|
150
|
+
otherwise, the html will link to the files under 'cuporter/public' in
|
151
|
+
your gempath.
|
152
|
+
|
153
|
+
-l, --link-assets Do not inline CSS and js in <style/> and <script/> tags, but link to
|
154
|
+
external files instead.
|
155
|
+
Default: 'false' for the tag and feature views, not optional for the
|
156
|
+
tree view, which requires external gifs.
|
157
|
+
|
146
158
|
Reporting options: on by default but can be turned off:
|
147
159
|
|
148
160
|
--no-sort Do not sort tags, features, scenarios, or outlines
|
data/Rakefile
CHANGED
data/bin/cuporter
CHANGED
@@ -14,7 +14,8 @@ when 'csv'
|
|
14
14
|
when 'text', 'pretty'
|
15
15
|
report.doc.to_text
|
16
16
|
when 'html'
|
17
|
-
|
17
|
+
Cuporter.options[:link_assets] = true if Cuporter.options[:report] == "tree"
|
18
|
+
html = Cuporter::Document.new_html(Cuporter.options[:report], Cuporter.options[:link_assets], Cuporter.options[:assets_dir])
|
18
19
|
formatters = File.expand_path("../lib/cuporter/formatters", File.dirname(__FILE__))
|
19
20
|
xslt = Nokogiri::XSLT(File.read("#{formatters}/xml_to_html.xslt"))
|
20
21
|
html.add_report(xslt.transform(report.doc).at('.report'))
|
data/lib/cuporter/cli/options.rb
CHANGED
@@ -25,6 +25,15 @@ module Cuporter
|
|
25
25
|
@@args
|
26
26
|
end
|
27
27
|
|
28
|
+
|
29
|
+
def self.full_path(path)
|
30
|
+
expanded_path = File.expand_path(path)
|
31
|
+
path_nodes = expanded_path.split(File::SEPARATOR)
|
32
|
+
file = path_nodes.pop
|
33
|
+
FileUtils.makedirs(path_nodes.join(File::SEPARATOR))
|
34
|
+
expanded_path
|
35
|
+
end
|
36
|
+
|
28
37
|
def self.parse
|
29
38
|
@@args = ARGV.dup
|
30
39
|
@options = {}
|
@@ -63,15 +72,9 @@ module Cuporter
|
|
63
72
|
@options[:input_file] = file
|
64
73
|
end
|
65
74
|
|
66
|
-
@options[:output_file]
|
67
75
|
opts.on("-o", "--output-file FILE", %Q{Output file path, like 'tmp/cucumber/tag_report.html'.
|
68
76
|
}) do |o|
|
69
|
-
|
70
|
-
path = full_path.split(File::SEPARATOR)
|
71
|
-
file = path.pop
|
72
|
-
FileUtils.makedirs(path.join(File::SEPARATOR))
|
73
|
-
|
74
|
-
@options[:output_file] = full_path
|
77
|
+
@options[:output_file] = full_path(o)
|
75
78
|
end
|
76
79
|
|
77
80
|
@options[:tags] = []
|
@@ -89,6 +92,24 @@ module Cuporter
|
|
89
92
|
@options[:title] = title
|
90
93
|
end
|
91
94
|
|
95
|
+
opts.separator "CSS and Javascript asset options:\n\n"
|
96
|
+
opts.on("-a", "--assets-dir PATH", %Q{Path to folder for CSS and Javascript assets.
|
97
|
+
Only applies with '--link-assets', which is off by default.
|
98
|
+
Setting this will cause assets to be copied from 'public';
|
99
|
+
otherwise, the html will link to the files under 'cuporter/public' in
|
100
|
+
your gempath.
|
101
|
+
}) do |a|
|
102
|
+
@options[:assets_dir] = full_path(a)
|
103
|
+
end
|
104
|
+
|
105
|
+
opts.on("-l", "--link-assets", %Q{Do not inline CSS and js in <style/> and <script/> tags, but link to
|
106
|
+
external files instead.
|
107
|
+
Default: 'false' for the tag and feature views, not optional for the
|
108
|
+
tree view, which requires external gifs.
|
109
|
+
}) do |l|
|
110
|
+
@options[:link_assets] = l
|
111
|
+
end
|
112
|
+
|
92
113
|
opts.separator "Reporting options: on by default but can be turned off:\n\n"
|
93
114
|
@options[:sort] = true
|
94
115
|
opts.on("--no-sort", "Do not sort tags, features, scenarios, or outlines\n") do |n|
|
@@ -2,7 +2,7 @@
|
|
2
2
|
module Cuporter
|
3
3
|
module Document
|
4
4
|
module Html
|
5
|
-
attr_accessor :view
|
5
|
+
attr_accessor :view, :link_assets, :assets_dir
|
6
6
|
|
7
7
|
def add_report(node)
|
8
8
|
root << head(node['title'])
|
@@ -26,43 +26,46 @@ module Cuporter
|
|
26
26
|
|
27
27
|
case view
|
28
28
|
when "tree"
|
29
|
-
h << link_js("jquery-min.js")
|
30
|
-
h << link_js("jquery.treeview.js")
|
31
|
-
h << link_css("jquery.treeview.css")
|
32
|
-
h << link_js("treeview-loader.js")
|
33
|
-
h << link_css("cuporter.css")
|
34
|
-
h << link_css("
|
29
|
+
h << link_js("javascripts/jquery-min.js")
|
30
|
+
h << link_js("jquery.treeview/jquery.treeview.js")
|
31
|
+
h << link_css("jquery.treeview/jquery.treeview.css")
|
32
|
+
h << link_js("javascripts/treeview-loader.js")
|
33
|
+
h << link_css("stylesheets/cuporter.css")
|
34
|
+
h << link_css("stylesheets/#{view}_style.css")
|
35
35
|
else
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
36
|
+
if link_assets
|
37
|
+
h << link_js("javascripts/jquery-min.js")
|
38
|
+
h << link_css("stylesheets/cuporter.css")
|
39
|
+
h << link_css("stylesheets/#{view}_style.css")
|
40
|
+
h << link_js("javascripts/expand-collapse.js")
|
41
|
+
else
|
42
|
+
h << script_js("javascripts/jquery-min.js")
|
43
|
+
h << style_css("stylesheets/cuporter.css")
|
44
|
+
h << style_css("stylesheets/#{view}_style.css")
|
45
|
+
h << script_js("javascripts/expand-collapse.js")
|
46
|
+
end
|
40
47
|
end
|
41
48
|
h
|
42
49
|
end
|
43
50
|
|
44
|
-
def assets_dir
|
45
|
-
@assets_dir ||= File.expand_path('public', File.dirname(__FILE__) + "/../../../")
|
46
|
-
end
|
47
|
-
|
48
51
|
def style_css(file)
|
49
52
|
style = new_node('style', 'type' => 'text/css')
|
50
|
-
style << file_contents("#{assets_dir}
|
53
|
+
style << file_contents("#{assets_dir}/#{file}")
|
51
54
|
style
|
52
55
|
end
|
53
56
|
|
54
57
|
def script_js(file)
|
55
58
|
script = new_node('script', 'type' => 'text/javascript')
|
56
|
-
script << file_contents("#{assets_dir}
|
59
|
+
script << file_contents("#{assets_dir}/#{file}")
|
57
60
|
script
|
58
61
|
end
|
59
62
|
|
60
63
|
def link_css(file)
|
61
|
-
new_node('link', 'type' => 'text/css', 'rel' => 'stylesheet', 'href' => "#{assets_dir}
|
64
|
+
new_node('link', 'type' => 'text/css', 'rel' => 'stylesheet', 'href' => "#{assets_dir}/#{file}")
|
62
65
|
end
|
63
66
|
|
64
67
|
def link_js(file)
|
65
|
-
new_node('script', 'type' => 'text/javascript', 'src' => "#{assets_dir}
|
68
|
+
new_node('script', 'type' => 'text/javascript', 'src' => "#{assets_dir}/#{file}")
|
66
69
|
end
|
67
70
|
|
68
71
|
def file_contents(file_name)
|
data/lib/cuporter/document.rb
CHANGED
@@ -10,10 +10,20 @@ module Cuporter
|
|
10
10
|
doc
|
11
11
|
end
|
12
12
|
|
13
|
-
def self.new_html(view)
|
13
|
+
def self.new_html(view, link_assets, assets_dir)
|
14
14
|
Nokogiri::XML::Document.send(:include, Cuporter::Document::Html)
|
15
15
|
doc = Nokogiri::XML::Document.new
|
16
16
|
doc.view = view
|
17
|
+
doc.link_assets = link_assets
|
18
|
+
project_assets = File.expand_path( "public", File.dirname(__FILE__) + "../../../")
|
19
|
+
|
20
|
+
# we count on the dirs being created by the option parser
|
21
|
+
if assets_dir
|
22
|
+
FileUtils.cp_r("#{project_assets}/.", assets_dir)
|
23
|
+
doc.assets_dir = assets_dir
|
24
|
+
else
|
25
|
+
doc.assets_dir = project_assets
|
26
|
+
end
|
17
27
|
root = Nokogiri::XML::Node.new('html', doc)
|
18
28
|
root.create_internal_subset( 'html', "-//W3C//DTD XHTML 1.0 Strict//EN", "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd")
|
19
29
|
doc << root
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -10,7 +10,7 @@
|
|
10
10
|
}
|
11
11
|
|
12
12
|
.treeview .hitarea {
|
13
|
-
background: url(
|
13
|
+
background: url(images/treeview-default.gif) -64px -25px no-repeat;
|
14
14
|
height: 16px;
|
15
15
|
width: 16px;
|
16
16
|
margin-left: -16px;
|
@@ -36,32 +36,32 @@
|
|
36
36
|
|
37
37
|
.treeview .hover { color: red; cursor: pointer; }
|
38
38
|
|
39
|
-
.treeview li { background: url(
|
39
|
+
.treeview li { background: url(images/treeview-default-line.gif) 0 0 no-repeat; }
|
40
40
|
.treeview li.collapsable, .treeview li.expandable { background-position: 0 -176px; }
|
41
41
|
|
42
42
|
.treeview .expandable-hitarea { background-position: -80px -3px; }
|
43
43
|
|
44
44
|
.treeview li.last { background-position: 0 -1766px }
|
45
|
-
.treeview li.lastCollapsable, .treeview li.lastExpandable { background-image: url(
|
45
|
+
.treeview li.lastCollapsable, .treeview li.lastExpandable { background-image: url(images/treeview-default.gif); }
|
46
46
|
.treeview li.lastCollapsable { background-position: 0 -111px }
|
47
47
|
.treeview li.lastExpandable { background-position: -32px -67px }
|
48
48
|
|
49
49
|
.treeview div.lastCollapsable-hitarea, .treeview div.lastExpandable-hitarea { background-position: 0; }
|
50
50
|
|
51
|
-
.treeview-red li { background-image: url(
|
52
|
-
.treeview-red .hitarea, .treeview-red li.lastCollapsable, .treeview-red li.lastExpandable { background-image: url(
|
51
|
+
.treeview-red li { background-image: url(images/treeview-red-line.gif); }
|
52
|
+
.treeview-red .hitarea, .treeview-red li.lastCollapsable, .treeview-red li.lastExpandable { background-image: url(images/treeview-red.gif); }
|
53
53
|
|
54
|
-
.treeview-black li { background-image: url(
|
55
|
-
.treeview-black .hitarea, .treeview-black li.lastCollapsable, .treeview-black li.lastExpandable { background-image: url(
|
54
|
+
.treeview-black li { background-image: url(images/treeview-black-line.gif); }
|
55
|
+
.treeview-black .hitarea, .treeview-black li.lastCollapsable, .treeview-black li.lastExpandable { background-image: url(images/treeview-black.gif); }
|
56
56
|
|
57
|
-
.treeview-gray li { background-image: url(
|
58
|
-
.treeview-gray .hitarea, .treeview-gray li.lastCollapsable, .treeview-gray li.lastExpandable { background-image: url(
|
57
|
+
.treeview-gray li { background-image: url(images/treeview-gray-line.gif); }
|
58
|
+
.treeview-gray .hitarea, .treeview-gray li.lastCollapsable, .treeview-gray li.lastExpandable { background-image: url(images/treeview-gray.gif); }
|
59
59
|
|
60
|
-
.treeview-famfamfam li { background-image: url(
|
61
|
-
.treeview-famfamfam .hitarea, .treeview-famfamfam li.lastCollapsable, .treeview-famfamfam li.lastExpandable { background-image: url(
|
60
|
+
.treeview-famfamfam li { background-image: url(images/treeview-famfamfam-line.gif); }
|
61
|
+
.treeview-famfamfam .hitarea, .treeview-famfamfam li.lastCollapsable, .treeview-famfamfam li.lastExpandable { background-image: url(images/treeview-famfamfam.gif); }
|
62
62
|
|
63
63
|
.treeview .placeholder {
|
64
|
-
background: url(
|
64
|
+
background: url(images/ajax-loader.gif) 0 0 no-repeat;
|
65
65
|
height: 16px;
|
66
66
|
width: 16px;
|
67
67
|
display: block;
|
@@ -69,7 +69,7 @@
|
|
69
69
|
|
70
70
|
.filetree li { padding: 3px 0 2px 16px; }
|
71
71
|
.filetree span.folder, .filetree span.file { padding: 1px 0 1px 16px; display: block; }
|
72
|
-
.filetree span.folder { background: url(
|
73
|
-
.filetree li.expandable span.folder { background: url(
|
74
|
-
.filetree span.file { background: url(
|
72
|
+
.filetree span.folder { background: url(images/folder.gif) 0 0 no-repeat; }
|
73
|
+
.filetree li.expandable span.folder { background: url(images/folder-closed.gif) 0 0 no-repeat; }
|
74
|
+
.filetree span.file { background: url(images/file.gif) 0 0 no-repeat; }
|
75
75
|
|
File without changes
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cuporter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 31
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 6
|
10
|
+
version: 0.3.6
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tim Camper
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2011-
|
18
|
+
date: 2011-05-08 00:00:00 -04:00
|
19
19
|
default_executable: cuporter
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -73,31 +73,31 @@ files:
|
|
73
73
|
- lib/cuporter.rb
|
74
74
|
- lib/cuporter/formatters/xml_to_html.xslt
|
75
75
|
- bin/cuporter
|
76
|
+
- public/jquery.treeview/jquery.treeview.css
|
76
77
|
- public/stylesheets/cuporter.css
|
77
78
|
- public/stylesheets/feature_style.css
|
78
|
-
- public/stylesheets/jquery.treeview.css
|
79
79
|
- public/stylesheets/tag_style.css
|
80
80
|
- public/stylesheets/tree_style.css
|
81
81
|
- public/javascripts/expand-collapse.js
|
82
82
|
- public/javascripts/jquery-min.js
|
83
|
-
- public/javascripts/jquery.treeview.js
|
84
83
|
- public/javascripts/treeview-loader.js
|
85
|
-
- public/
|
86
|
-
- public/images/
|
87
|
-
- public/images/
|
88
|
-
- public/images/folder.gif
|
89
|
-
- public/images/
|
90
|
-
- public/images/
|
91
|
-
- public/images/
|
92
|
-
- public/images/treeview-black.gif
|
93
|
-
- public/images/treeview-
|
94
|
-
- public/images/treeview-default.gif
|
95
|
-
- public/images/treeview-
|
96
|
-
- public/images/treeview-famfamfam.gif
|
97
|
-
- public/images/treeview-
|
98
|
-
- public/images/treeview-gray.gif
|
99
|
-
- public/images/treeview-
|
100
|
-
- public/images/treeview-red.gif
|
84
|
+
- public/jquery.treeview/jquery.treeview.js
|
85
|
+
- public/jquery.treeview/images/ajax-loader.gif
|
86
|
+
- public/jquery.treeview/images/file.gif
|
87
|
+
- public/jquery.treeview/images/folder-closed.gif
|
88
|
+
- public/jquery.treeview/images/folder.gif
|
89
|
+
- public/jquery.treeview/images/minus.gif
|
90
|
+
- public/jquery.treeview/images/plus.gif
|
91
|
+
- public/jquery.treeview/images/treeview-black-line.gif
|
92
|
+
- public/jquery.treeview/images/treeview-black.gif
|
93
|
+
- public/jquery.treeview/images/treeview-default-line.gif
|
94
|
+
- public/jquery.treeview/images/treeview-default.gif
|
95
|
+
- public/jquery.treeview/images/treeview-famfamfam-line.gif
|
96
|
+
- public/jquery.treeview/images/treeview-famfamfam.gif
|
97
|
+
- public/jquery.treeview/images/treeview-gray-line.gif
|
98
|
+
- public/jquery.treeview/images/treeview-gray.gif
|
99
|
+
- public/jquery.treeview/images/treeview-red-line.gif
|
100
|
+
- public/jquery.treeview/images/treeview-red.gif
|
101
101
|
has_rdoc: true
|
102
102
|
homepage: http://github.com/twcamper/cuporter
|
103
103
|
licenses: []
|