viewcumber 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README.rdoc +14 -2
- data/Rakefile +2 -0
- data/VERSION +1 -1
- data/bin/viewcumber +4 -0
- data/lib/viewcumber.rb +116 -103
- data/viewcumber.gemspec +62 -0
- metadata +9 -7
data/README.rdoc
CHANGED
@@ -1,6 +1,18 @@
|
|
1
1
|
= viewcumber
|
2
2
|
|
3
|
-
|
3
|
+
Cucumber formatter for easily viewing each step of your scenarios
|
4
|
+
|
5
|
+
== Installation
|
6
|
+
|
7
|
+
<tt>gem install viewcumber</tt>
|
8
|
+
|
9
|
+
== Usage
|
10
|
+
|
11
|
+
<tt>viewcumber path/to/filename</tt>
|
12
|
+
or
|
13
|
+
<tt>cucumber --format Viewcumber path/to/filename</tt>
|
14
|
+
|
15
|
+
Then open <tt>./viewcumber/index.html</tt>
|
4
16
|
|
5
17
|
== Note on Patches/Pull Requests
|
6
18
|
|
@@ -14,4 +26,4 @@ Description goes here.
|
|
14
26
|
|
15
27
|
== Copyright
|
16
28
|
|
17
|
-
Copyright (c) 2010
|
29
|
+
Copyright (c) 2010 Versapay. See LICENSE for details.
|
data/Rakefile
CHANGED
@@ -8,6 +8,8 @@ begin
|
|
8
8
|
gem.summary = %Q{ Cucumber formatter for easily viewing each step of your scenarios }
|
9
9
|
gem.homepage = "http://github.com/versapay/viewcumber"
|
10
10
|
gem.authors = ["gregbell", "pcreux", "samuelreh"]
|
11
|
+
gem.default_executable = "viewcumber"
|
12
|
+
gem.executables = ["viewcumber"]
|
11
13
|
gem.add_dependency "cucumber", ">=0.8.5"
|
12
14
|
gem.add_dependency "capybara", ">=0.3"
|
13
15
|
end
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.3
|
data/bin/viewcumber
ADDED
data/lib/viewcumber.rb
CHANGED
@@ -5,12 +5,15 @@ require 'erb'
|
|
5
5
|
require 'cucumber/formatter/ordered_xml_markup'
|
6
6
|
require 'cucumber/formatter/duration'
|
7
7
|
require 'cucumber/formatter/io'
|
8
|
-
require '
|
8
|
+
require 'fileutils'
|
9
9
|
|
10
10
|
if respond_to? :AfterStep
|
11
11
|
AfterStep do |scenario|
|
12
12
|
begin
|
13
|
-
if
|
13
|
+
if !@email.blank?
|
14
|
+
Viewcumber.last_step_html = Viewcumber.rewrite_css_and_image_references(@email)
|
15
|
+
@email = nil
|
16
|
+
elsif Capybara.page.driver.respond_to? :html
|
14
17
|
Viewcumber.last_step_html = Viewcumber.rewrite_css_and_image_references(Capybara.page.driver.html.to_s)
|
15
18
|
end
|
16
19
|
rescue Exception => e
|
@@ -35,6 +38,7 @@ class Viewcumber
|
|
35
38
|
@options = options
|
36
39
|
@buffer = {}
|
37
40
|
@builder = create_builder(@io)
|
41
|
+
@background_builder = Builder::XmlMarkup.new
|
38
42
|
@feature_number = 0
|
39
43
|
@scenario_number = 0
|
40
44
|
@step_number = 0
|
@@ -50,7 +54,7 @@ class Viewcumber
|
|
50
54
|
|
51
55
|
def embed_image(file)
|
52
56
|
id = file.hash
|
53
|
-
|
57
|
+
builder.span(:class => 'embed') do |pre|
|
54
58
|
pre << %{<a href="" onclick="img=document.getElementById('#{id}'); img.style.display = (img.style.display == 'none' ? 'block' : 'none');return false">Screenshot</a><br>
|
55
59
|
<img id="#{id}" style="display: none" src="#{file}"/>}
|
56
60
|
end
|
@@ -62,7 +66,7 @@ class Viewcumber
|
|
62
66
|
copy_assets
|
63
67
|
|
64
68
|
# <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
|
65
|
-
|
69
|
+
builder.declare!(
|
66
70
|
:DOCTYPE,
|
67
71
|
:html,
|
68
72
|
:PUBLIC,
|
@@ -70,22 +74,22 @@ class Viewcumber
|
|
70
74
|
'http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd'
|
71
75
|
)
|
72
76
|
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
+
builder << '<html xmlns ="http://www.w3.org/1999/xhtml">'
|
78
|
+
builder.head do
|
79
|
+
builder.meta(:content => 'text/html;charset=utf-8')
|
80
|
+
builder.title 'Cucumber'
|
77
81
|
inline_css
|
78
82
|
inline_js
|
79
|
-
|
83
|
+
builder << <<-HTML
|
80
84
|
<link href='http://fonts.googleapis.com/css?family=Droid+Serif' rel='stylesheet' type='text/css'>
|
81
85
|
<link rel="stylesheet" type="text/css" href="main.css" />
|
82
86
|
<script type="text/javascript" src="jquery-min.js"></script>
|
83
87
|
<script type="text/javascript" src="main.js"></script>
|
84
88
|
HTML
|
85
89
|
end
|
86
|
-
|
87
|
-
|
88
|
-
|
90
|
+
builder << '<body>'
|
91
|
+
builder << "<!-- Step count #{@step_count}-->"
|
92
|
+
builder << <<-HTML
|
89
93
|
<div id="navigator">
|
90
94
|
<a href="#" id="prev-btn" onclick="Cucumber.previous(); return false;">←</a>
|
91
95
|
<a href="#" id="next-btn" onclick="Cucumber.next(); return false;">→</a>
|
@@ -96,40 +100,40 @@ class Viewcumber
|
|
96
100
|
<p id="step-name"></p>
|
97
101
|
</div>
|
98
102
|
HTML
|
99
|
-
|
100
|
-
|
103
|
+
builder << '<div class="cucumber">'
|
104
|
+
builder << "<ul>"
|
101
105
|
end
|
102
106
|
|
103
107
|
def after_features(features)
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
108
|
+
builder << '</li>'
|
109
|
+
builder << '</ul>'
|
110
|
+
builder << '</div>'
|
111
|
+
builder << '<iframe name="viewport" id="viewport"></iframe>'
|
112
|
+
builder << '</body>'
|
113
|
+
builder << '</html>'
|
110
114
|
end
|
111
115
|
|
112
116
|
def before_feature(feature)
|
113
117
|
@exceptions = []
|
114
|
-
|
118
|
+
builder << '<li class="feature">'
|
115
119
|
end
|
116
120
|
|
117
121
|
def after_feature(feature)
|
118
|
-
|
119
|
-
|
122
|
+
builder << '</ul>'
|
123
|
+
builder << '</li> <!--class="feature" -->'
|
120
124
|
end
|
121
125
|
|
122
126
|
def before_comment(comment)
|
123
|
-
|
127
|
+
builder << '<pre class="comment">'
|
124
128
|
end
|
125
129
|
|
126
130
|
def after_comment(comment)
|
127
|
-
|
131
|
+
builder << '</pre>'
|
128
132
|
end
|
129
133
|
|
130
134
|
def comment_line(comment_line)
|
131
|
-
|
132
|
-
|
135
|
+
builder.text!(comment_line)
|
136
|
+
builder.br
|
133
137
|
end
|
134
138
|
|
135
139
|
def after_tags(tags)
|
@@ -137,44 +141,45 @@ class Viewcumber
|
|
137
141
|
end
|
138
142
|
|
139
143
|
def tag_name(tag_name)
|
140
|
-
|
144
|
+
builder.text!(@tag_spacer) if @tag_spacer
|
141
145
|
@tag_spacer = ' '
|
142
|
-
|
146
|
+
builder.span(tag_name, :class => 'tag')
|
143
147
|
end
|
144
148
|
|
145
149
|
def feature_name(keyword, name)
|
146
150
|
lines = name.split(/\r?\n/)
|
147
151
|
return if lines.empty?
|
148
|
-
|
149
|
-
|
150
|
-
|
152
|
+
builder.h2 do |h2|
|
153
|
+
#builder.span(keyword + ': ' + lines[0], :class => 'val')
|
154
|
+
builder.span(lines[0], :class => 'val')
|
151
155
|
end
|
152
|
-
|
156
|
+
builder.p(:class => 'narrative') do
|
153
157
|
lines[1..-1].each do |line|
|
154
|
-
|
155
|
-
|
158
|
+
builder.text!(line.strip)
|
159
|
+
builder.br
|
156
160
|
end
|
157
161
|
end
|
158
|
-
|
162
|
+
builder << '<ul>'
|
159
163
|
end
|
160
164
|
|
161
165
|
def before_background(background)
|
162
166
|
@in_background = true
|
163
|
-
@
|
167
|
+
@background_builder = Builder::XmlMarkup.new
|
168
|
+
builder << '<li class="background">'
|
164
169
|
end
|
165
170
|
|
166
171
|
def after_background(background)
|
167
172
|
@in_background = nil
|
168
|
-
|
173
|
+
builder << "</li>\n"
|
169
174
|
end
|
170
175
|
|
171
176
|
def background_name(keyword, name, file_colon_line, source_indent)
|
172
177
|
@listing_background = true
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
end
|
178
|
+
# builder.h3 do |h3|
|
179
|
+
# builder.span(keyword, :class => 'keyword')
|
180
|
+
# builder.text!(' ')
|
181
|
+
# builder.span(name, :class => 'val')
|
182
|
+
# end
|
178
183
|
end
|
179
184
|
|
180
185
|
def before_feature_element(feature_element)
|
@@ -184,53 +189,54 @@ class Viewcumber
|
|
184
189
|
Cucumber::Ast::Scenario => 'scenario',
|
185
190
|
Cucumber::Ast::ScenarioOutline => 'scenario outline'
|
186
191
|
}[feature_element.class]
|
187
|
-
|
192
|
+
builder << "<li class='#{css_class}'>"
|
188
193
|
end
|
189
194
|
|
190
195
|
def after_feature_element(feature_element)
|
191
|
-
|
196
|
+
builder << "</li>\n"
|
192
197
|
@open_step_list = true
|
193
198
|
end
|
194
199
|
|
195
200
|
def scenario_name(keyword, name, file_colon_line, source_indent)
|
196
201
|
@listing_background = false
|
197
|
-
|
198
|
-
|
202
|
+
builder.h3(:id => "scenario_#{@scenario_number}") do
|
203
|
+
builder.span(name, :class => 'val')
|
199
204
|
end
|
200
205
|
end
|
201
206
|
|
202
207
|
def before_outline_table(outline_table)
|
203
208
|
@outline_row = 0
|
204
|
-
|
209
|
+
builder << '<table>'
|
205
210
|
end
|
206
211
|
|
207
212
|
def after_outline_table(outline_table)
|
208
|
-
|
213
|
+
builder << '</table>'
|
209
214
|
@outline_row = nil
|
210
215
|
end
|
211
216
|
|
212
217
|
def before_examples(examples)
|
213
|
-
|
218
|
+
builder << '<li class="examples">'
|
214
219
|
end
|
215
220
|
|
216
221
|
def after_examples(examples)
|
217
|
-
|
222
|
+
builder << "</li>\n"
|
218
223
|
end
|
219
224
|
|
220
225
|
def examples_name(keyword, name)
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
226
|
+
builder.h4 do
|
227
|
+
builder.span(keyword, :class => 'keyword')
|
228
|
+
builder.text!(' ')
|
229
|
+
builder.span(name, :class => 'val')
|
225
230
|
end
|
226
231
|
end
|
227
232
|
|
228
233
|
def before_steps(steps)
|
229
|
-
|
234
|
+
builder << '<ol>'
|
235
|
+
builder << @background_builder.target! unless (@in_background || @background_builder.nil?)
|
230
236
|
end
|
231
237
|
|
232
238
|
def after_steps(steps)
|
233
|
-
|
239
|
+
builder << '</ol>'
|
234
240
|
end
|
235
241
|
|
236
242
|
def before_step(step)
|
@@ -247,6 +253,7 @@ class Viewcumber
|
|
247
253
|
end
|
248
254
|
|
249
255
|
def before_step_result(keyword, step_match, multiline_arg, status, exception, source_indent, background)
|
256
|
+
@in_background_step = true if @in_background
|
250
257
|
@step_match = step_match
|
251
258
|
@hide_this_step = false
|
252
259
|
if exception
|
@@ -263,7 +270,7 @@ class Viewcumber
|
|
263
270
|
@status = status
|
264
271
|
return if @hide_this_step
|
265
272
|
set_scenario_color(status)
|
266
|
-
|
273
|
+
builder << "<li id='#{@step_id}' class='step #{status}'>"
|
267
274
|
end
|
268
275
|
|
269
276
|
def after_step_result(keyword, step_match, multiline_arg, status, exception, source_indent, background)
|
@@ -271,11 +278,12 @@ class Viewcumber
|
|
271
278
|
# print snippet for undefined steps
|
272
279
|
if status == :undefined
|
273
280
|
step_multiline_class = @step.multiline_arg ? @step.multiline_arg.class : nil
|
274
|
-
|
281
|
+
builder.pre do |pre|
|
275
282
|
pre << @step_mother.snippet_text(@step.actual_keyword,step_match.instance_variable_get("@name") || '',step_multiline_class)
|
276
283
|
end
|
277
284
|
end
|
278
|
-
|
285
|
+
builder << "</li>\n"
|
286
|
+
@in_background_step = false
|
279
287
|
end
|
280
288
|
|
281
289
|
def step_name(keyword, step_match, status, source_indent, background)
|
@@ -300,22 +308,22 @@ class Viewcumber
|
|
300
308
|
|
301
309
|
def before_multiline_arg(multiline_arg)
|
302
310
|
return if @hide_this_step || @skip_step
|
303
|
-
if Ast::Table === multiline_arg
|
304
|
-
|
311
|
+
if Cucumber::Ast::Table === multiline_arg
|
312
|
+
builder << '<table>'
|
305
313
|
end
|
306
314
|
end
|
307
315
|
|
308
316
|
def after_multiline_arg(multiline_arg)
|
309
317
|
return if @hide_this_step || @skip_step
|
310
|
-
if Ast::Table === multiline_arg
|
311
|
-
|
318
|
+
if Cucumber::Ast::Table === multiline_arg
|
319
|
+
builder << '</table>'
|
312
320
|
end
|
313
321
|
end
|
314
322
|
|
315
323
|
def py_string(string)
|
316
324
|
return if @hide_this_step
|
317
|
-
|
318
|
-
|
325
|
+
builder.pre(:class => 'val') do |pre|
|
326
|
+
builder << string.gsub("\n", '
')
|
319
327
|
end
|
320
328
|
end
|
321
329
|
|
@@ -324,16 +332,16 @@ class Viewcumber
|
|
324
332
|
@row_id = table_row.dom_id
|
325
333
|
@col_index = 0
|
326
334
|
return if @hide_this_step
|
327
|
-
|
335
|
+
builder << "<tr class='step' id='#{@row_id}'>"
|
328
336
|
end
|
329
337
|
|
330
338
|
def after_table_row(table_row)
|
331
339
|
return if @hide_this_step
|
332
|
-
|
340
|
+
builder << "</tr>\n"
|
333
341
|
if table_row.exception
|
334
|
-
|
335
|
-
|
336
|
-
|
342
|
+
builder.tr do
|
343
|
+
builder.td(:colspan => @col_index.to_s, :class => 'failed') do
|
344
|
+
builder.pre do |pre|
|
337
345
|
pre << format_exception(table_row.exception)
|
338
346
|
end
|
339
347
|
end
|
@@ -358,7 +366,7 @@ class Viewcumber
|
|
358
366
|
end
|
359
367
|
|
360
368
|
def announce(announcement)
|
361
|
-
|
369
|
+
builder.pre(announcement, :class => 'announcement')
|
362
370
|
end
|
363
371
|
|
364
372
|
def self.rewrite_css_and_image_references(response_html) # :nodoc:
|
@@ -367,33 +375,34 @@ class Viewcumber
|
|
367
375
|
list << name if File.directory?(name) and not name.to_s =~ /^\./
|
368
376
|
list
|
369
377
|
end
|
370
|
-
response_html.gsub(/("|')\/(#{directories.join('|')})/, '\1public/\2')
|
378
|
+
response_html.gsub!(/("|')\/(#{directories.join('|')})/, '\1public/\2')
|
379
|
+
response_html.gsub(/("|')http:\/\/.*\/images/, '\1public/images')
|
371
380
|
end
|
372
381
|
|
373
382
|
protected
|
374
383
|
|
375
384
|
def build_exception_detail(exception)
|
376
385
|
backtrace = Array.new
|
377
|
-
|
386
|
+
builder.div(:class => 'message') do
|
378
387
|
message = exception.message
|
379
388
|
if defined?(RAILS_ROOT) && message.include?('Exception caught')
|
380
389
|
matches = message.match(/Showing <i>(.+)<\/i>(?:.+)#(\d+)/)
|
381
390
|
backtrace += ["#{RAILS_ROOT}/#{matches[1]}:#{matches[2]}"]
|
382
391
|
message = message.match(/<code>([^(\/)]+)<\//m)[1]
|
383
392
|
end
|
384
|
-
|
385
|
-
|
393
|
+
builder.pre do
|
394
|
+
builder.text!(message)
|
386
395
|
end
|
387
396
|
end
|
388
|
-
|
389
|
-
|
397
|
+
builder.div(:class => 'backtrace') do
|
398
|
+
builder.pre do
|
390
399
|
backtrace = exception.backtrace
|
391
400
|
backtrace.delete_if { |x| x =~ /\/gems\/(cucumber|rspec)/ }
|
392
|
-
|
401
|
+
builder << backtrace_line(backtrace.join("\n"))
|
393
402
|
end
|
394
403
|
end
|
395
404
|
extra = extra_failure_content(backtrace)
|
396
|
-
|
405
|
+
builder << extra unless extra == ""
|
397
406
|
end
|
398
407
|
|
399
408
|
def set_scenario_color(status)
|
@@ -406,18 +415,18 @@ protected
|
|
406
415
|
end
|
407
416
|
|
408
417
|
def set_scenario_color_failed
|
409
|
-
|
410
|
-
|
418
|
+
builder.script do
|
419
|
+
builder.text!("makeRed('cucumber-header');") unless @header_red
|
411
420
|
@header_red = true
|
412
|
-
|
421
|
+
builder.text!("makeRed('scenario_#{@scenario_number}');") unless @scenario_red
|
413
422
|
@scenario_red = true
|
414
423
|
end
|
415
424
|
end
|
416
425
|
|
417
426
|
def set_scenario_color_pending
|
418
|
-
|
419
|
-
|
420
|
-
|
427
|
+
builder.script do
|
428
|
+
builder.text!("makeYellow('cucumber-header');") unless @header_red
|
429
|
+
builder.text!("makeYellow('scenario_#{@scenario_number}');") unless @scenario_red
|
421
430
|
end
|
422
431
|
end
|
423
432
|
|
@@ -462,36 +471,36 @@ protected
|
|
462
471
|
|
463
472
|
def build_step(keyword, step_match, status)
|
464
473
|
step_name = step_match.format_args(lambda{|param| %{<span class="param">#{param}</span>}})
|
465
|
-
|
466
|
-
|
467
|
-
|
468
|
-
|
474
|
+
builder.div(:class => 'step_name') do |div|
|
475
|
+
builder << "<a target=\"viewport\" class=\"step-link\" href=\"#{@file_name}\">"
|
476
|
+
builder.span(keyword, :class => 'keyword')
|
477
|
+
builder.span(:class => 'val') do |name|
|
469
478
|
name << h(step_name).gsub(/<span class="(.*?)">/, '<span class="\1">').gsub(/<\/span>/, '</span>')
|
470
479
|
end
|
471
|
-
|
480
|
+
builder << "</a>"
|
472
481
|
end
|
473
482
|
end
|
474
483
|
|
475
484
|
def build_cell(cell_type, value, attributes)
|
476
|
-
|
477
|
-
|
478
|
-
|
485
|
+
builder.__send__(cell_type, attributes) do
|
486
|
+
builder.div do
|
487
|
+
builder.span(value,:class => 'step param')
|
479
488
|
end
|
480
489
|
end
|
481
490
|
end
|
482
491
|
|
483
492
|
def inline_css
|
484
|
-
|
493
|
+
builder.style(:type => 'text/css') do
|
485
494
|
# Inline CSS here
|
486
|
-
|
495
|
+
#builder << File.read(File.dirname(__FILE__) + '/cucumber.css')
|
487
496
|
end
|
488
497
|
end
|
489
498
|
|
490
499
|
def inline_js
|
491
|
-
|
500
|
+
builder.script(:type => 'text/javascript') do
|
492
501
|
# Inline JQuery here
|
493
|
-
|
494
|
-
|
502
|
+
#builder << inline_jquery
|
503
|
+
#builder << inline_js_content
|
495
504
|
end
|
496
505
|
end
|
497
506
|
|
@@ -537,7 +546,7 @@ $('#'+element_id).css('color', '#000000');
|
|
537
546
|
end
|
538
547
|
|
539
548
|
def move_progress
|
540
|
-
|
549
|
+
builder << " <script type=\"text/javascript\">moveProgressBar('#{percent_done}');</script>"
|
541
550
|
end
|
542
551
|
|
543
552
|
def percent_done
|
@@ -563,8 +572,8 @@ $('#'+element_id).css('color', '#000000');
|
|
563
572
|
end
|
564
573
|
|
565
574
|
def print_stats(features)
|
566
|
-
|
567
|
-
|
575
|
+
builder << "<script type=\"text/javascript\">document.getElementById('duration').innerHTML = \"Finished in <strong>#{format_duration(features.duration)} seconds</strong>\";</script>"
|
576
|
+
builder << "<script type=\"text/javascript\">document.getElementById('totals').innerHTML = \"#{print_stat_string(features)}\";</script>"
|
568
577
|
end
|
569
578
|
|
570
579
|
def print_stat_string(features)
|
@@ -593,6 +602,10 @@ $('#'+element_id).css('color', '#000000');
|
|
593
602
|
def create_builder(io)
|
594
603
|
Cucumber::Formatter::OrderedXmlMarkup.new(:target => io, :indent => 0)
|
595
604
|
end
|
605
|
+
|
606
|
+
def builder
|
607
|
+
@in_background_step ? @background_builder : @builder
|
608
|
+
end
|
596
609
|
|
597
610
|
def copy_assets
|
598
611
|
FileUtils.mkdir "viewcumber" unless File.directory? "viewcumber"
|
@@ -601,7 +614,7 @@ $('#'+element_id).css('color', '#000000');
|
|
601
614
|
File.copy assets_dir + "/jquery-min.js", "viewcumber/jquery-min.js"
|
602
615
|
File.copy assets_dir + "/viewcumber.js", "viewcumber/main.js"
|
603
616
|
File.copy assets_dir + "/viewless.html", "viewcumber/viewless.html"
|
604
|
-
FileUtils.cp_r "public", "viewcumber/public"
|
617
|
+
FileUtils.cp_r File.join(Rails.root, "public"), "viewcumber/public"
|
605
618
|
end
|
606
619
|
|
607
620
|
class SnippetExtractor #:nodoc:
|
data/viewcumber.gemspec
ADDED
@@ -0,0 +1,62 @@
|
|
1
|
+
# Generated by jeweler
|
2
|
+
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
+
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
+
# -*- encoding: utf-8 -*-
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = %q{viewcumber}
|
8
|
+
s.version = "0.0.3"
|
9
|
+
|
10
|
+
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
+
s.authors = ["gregbell", "pcreux", "samuelreh"]
|
12
|
+
s.date = %q{2010-11-10}
|
13
|
+
s.default_executable = %q{viewcumber}
|
14
|
+
s.executables = ["viewcumber"]
|
15
|
+
s.extra_rdoc_files = [
|
16
|
+
"LICENSE",
|
17
|
+
"README.rdoc"
|
18
|
+
]
|
19
|
+
s.files = [
|
20
|
+
".document",
|
21
|
+
".gitignore",
|
22
|
+
"LICENSE",
|
23
|
+
"README.rdoc",
|
24
|
+
"Rakefile",
|
25
|
+
"VERSION",
|
26
|
+
"bin/viewcumber",
|
27
|
+
"lib/assets/jquery-min.js",
|
28
|
+
"lib/assets/viewcumber.css",
|
29
|
+
"lib/assets/viewcumber.js",
|
30
|
+
"lib/assets/viewless.html",
|
31
|
+
"lib/viewcumber.rb",
|
32
|
+
"test/helper.rb",
|
33
|
+
"test/test_viewcumber.rb",
|
34
|
+
"viewcumber.gemspec"
|
35
|
+
]
|
36
|
+
s.homepage = %q{http://github.com/versapay/viewcumber}
|
37
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
38
|
+
s.require_paths = ["lib"]
|
39
|
+
s.rubygems_version = %q{1.3.7}
|
40
|
+
s.summary = %q{Cucumber formatter for easily viewing each step of your scenarios}
|
41
|
+
s.test_files = [
|
42
|
+
"test/helper.rb",
|
43
|
+
"test/test_viewcumber.rb"
|
44
|
+
]
|
45
|
+
|
46
|
+
if s.respond_to? :specification_version then
|
47
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
48
|
+
s.specification_version = 3
|
49
|
+
|
50
|
+
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
51
|
+
s.add_runtime_dependency(%q<cucumber>, [">= 0.8.5"])
|
52
|
+
s.add_runtime_dependency(%q<capybara>, [">= 0.3"])
|
53
|
+
else
|
54
|
+
s.add_dependency(%q<cucumber>, [">= 0.8.5"])
|
55
|
+
s.add_dependency(%q<capybara>, [">= 0.3"])
|
56
|
+
end
|
57
|
+
else
|
58
|
+
s.add_dependency(%q<cucumber>, [">= 0.8.5"])
|
59
|
+
s.add_dependency(%q<capybara>, [">= 0.3"])
|
60
|
+
end
|
61
|
+
end
|
62
|
+
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: viewcumber
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 25
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 0
|
9
|
-
-
|
10
|
-
version: 0.0.
|
9
|
+
- 3
|
10
|
+
version: 0.0.3
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- gregbell
|
@@ -17,8 +17,8 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2010-10
|
21
|
-
default_executable:
|
20
|
+
date: 2010-11-10 00:00:00 -08:00
|
21
|
+
default_executable: viewcumber
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
24
24
|
name: cucumber
|
@@ -53,8 +53,8 @@ dependencies:
|
|
53
53
|
version_requirements: *id002
|
54
54
|
description:
|
55
55
|
email:
|
56
|
-
executables:
|
57
|
-
|
56
|
+
executables:
|
57
|
+
- viewcumber
|
58
58
|
extensions: []
|
59
59
|
|
60
60
|
extra_rdoc_files:
|
@@ -67,6 +67,7 @@ files:
|
|
67
67
|
- README.rdoc
|
68
68
|
- Rakefile
|
69
69
|
- VERSION
|
70
|
+
- bin/viewcumber
|
70
71
|
- lib/assets/jquery-min.js
|
71
72
|
- lib/assets/viewcumber.css
|
72
73
|
- lib/assets/viewcumber.js
|
@@ -74,6 +75,7 @@ files:
|
|
74
75
|
- lib/viewcumber.rb
|
75
76
|
- test/helper.rb
|
76
77
|
- test/test_viewcumber.rb
|
78
|
+
- viewcumber.gemspec
|
77
79
|
has_rdoc: true
|
78
80
|
homepage: http://github.com/versapay/viewcumber
|
79
81
|
licenses: []
|