viewcumber 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,6 +1,18 @@
1
1
  = viewcumber
2
2
 
3
- Description goes here.
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 versapay. See LICENSE for details.
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.2
1
+ 0.0.3
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ system("cucumber --format Viewcumber #{ARGV.join(' ')}")
4
+
@@ -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 'FileUtils'
8
+ require 'fileutils'
9
9
 
10
10
  if respond_to? :AfterStep
11
11
  AfterStep do |scenario|
12
12
  begin
13
- if Capybara.page.driver.respond_to? :html
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
- @builder.span(:class => 'embed') do |pre|
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>&nbsp;
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
- @builder.declare!(
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
- @builder << '<html xmlns ="http://www.w3.org/1999/xhtml">'
74
- @builder.head do
75
- @builder.meta(:content => 'text/html;charset=utf-8')
76
- @builder.title 'Cucumber'
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
- @builder << <<-HTML
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
- @builder << '<body>'
87
- @builder << "<!-- Step count #{@step_count}-->"
88
- @builder << <<-HTML
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;">&larr;</a>
91
95
  <a href="#" id="next-btn" onclick="Cucumber.next(); return false;">&rarr;</a>
@@ -96,40 +100,40 @@ class Viewcumber
96
100
  <p id="step-name"></p>
97
101
  </div>
98
102
  HTML
99
- @builder << '<div class="cucumber">'
100
- @builder << "<ul>"
103
+ builder << '<div class="cucumber">'
104
+ builder << "<ul>"
101
105
  end
102
106
 
103
107
  def after_features(features)
104
- @builder << '</li>'
105
- @builder << '</ul>'
106
- @builder << '</div>'
107
- @builder << '<iframe name="viewport" id="viewport"></iframe>'
108
- @builder << '</body>'
109
- @builder << '</html>'
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
- @builder << '<li class="feature">'
118
+ builder << '<li class="feature">'
115
119
  end
116
120
 
117
121
  def after_feature(feature)
118
- @builder << '</ul>'
119
- @builder << '</li> <!--class="feature" -->'
122
+ builder << '</ul>'
123
+ builder << '</li> <!--class="feature" -->'
120
124
  end
121
125
 
122
126
  def before_comment(comment)
123
- @builder << '<pre class="comment">'
127
+ builder << '<pre class="comment">'
124
128
  end
125
129
 
126
130
  def after_comment(comment)
127
- @builder << '</pre>'
131
+ builder << '</pre>'
128
132
  end
129
133
 
130
134
  def comment_line(comment_line)
131
- @builder.text!(comment_line)
132
- @builder.br
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
- @builder.text!(@tag_spacer) if @tag_spacer
144
+ builder.text!(@tag_spacer) if @tag_spacer
141
145
  @tag_spacer = ' '
142
- @builder.span(tag_name, :class => 'tag')
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
- @builder.h2 do |h2|
149
- #@builder.span(keyword + ': ' + lines[0], :class => 'val')
150
- @builder.span(lines[0], :class => 'val')
152
+ builder.h2 do |h2|
153
+ #builder.span(keyword + ': ' + lines[0], :class => 'val')
154
+ builder.span(lines[0], :class => 'val')
151
155
  end
152
- @builder.p(:class => 'narrative') do
156
+ builder.p(:class => 'narrative') do
153
157
  lines[1..-1].each do |line|
154
- @builder.text!(line.strip)
155
- @builder.br
158
+ builder.text!(line.strip)
159
+ builder.br
156
160
  end
157
161
  end
158
- @builder << '<ul>'
162
+ builder << '<ul>'
159
163
  end
160
164
 
161
165
  def before_background(background)
162
166
  @in_background = true
163
- @builder << '<li class="background">'
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
- @builder << "</li>\n"
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
- @builder.h3 do |h3|
174
- @builder.span(keyword, :class => 'keyword')
175
- @builder.text!(' ')
176
- @builder.span(name, :class => 'val')
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
- @builder << "<li class='#{css_class}'>"
192
+ builder << "<li class='#{css_class}'>"
188
193
  end
189
194
 
190
195
  def after_feature_element(feature_element)
191
- @builder << "</li>\n"
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
- @builder.h3(:id => "scenario_#{@scenario_number}") do
198
- @builder.span(name, :class => 'val')
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
- @builder << '<table>'
209
+ builder << '<table>'
205
210
  end
206
211
 
207
212
  def after_outline_table(outline_table)
208
- @builder << '</table>'
213
+ builder << '</table>'
209
214
  @outline_row = nil
210
215
  end
211
216
 
212
217
  def before_examples(examples)
213
- @builder << '<li class="examples">'
218
+ builder << '<li class="examples">'
214
219
  end
215
220
 
216
221
  def after_examples(examples)
217
- @builder << "</li>\n"
222
+ builder << "</li>\n"
218
223
  end
219
224
 
220
225
  def examples_name(keyword, name)
221
- @builder.h4 do
222
- @builder.span(keyword, :class => 'keyword')
223
- @builder.text!(' ')
224
- @builder.span(name, :class => 'val')
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
- @builder << '<ol>'
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
- @builder << '</ol>'
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
- @builder << "<li id='#{@step_id}' class='step #{status}'>"
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
- @builder.pre do |pre|
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
- @builder << "</li>\n"
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
- @builder << '<table>'
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
- @builder << '</table>'
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
- @builder.pre(:class => 'val') do |pre|
318
- @builder << string.gsub("\n", '&#x000A;')
325
+ builder.pre(:class => 'val') do |pre|
326
+ builder << string.gsub("\n", '&#x000A;')
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
- @builder << "<tr class='step' id='#{@row_id}'>"
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
- @builder << "</tr>\n"
340
+ builder << "</tr>\n"
333
341
  if table_row.exception
334
- @builder.tr do
335
- @builder.td(:colspan => @col_index.to_s, :class => 'failed') do
336
- @builder.pre do |pre|
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
- @builder.pre(announcement, :class => 'announcement')
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
- @builder.div(:class => 'message') do
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
- @builder.pre do
385
- @builder.text!(message)
393
+ builder.pre do
394
+ builder.text!(message)
386
395
  end
387
396
  end
388
- @builder.div(:class => 'backtrace') do
389
- @builder.pre do
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
- @builder << backtrace_line(backtrace.join("\n"))
401
+ builder << backtrace_line(backtrace.join("\n"))
393
402
  end
394
403
  end
395
404
  extra = extra_failure_content(backtrace)
396
- @builder << extra unless extra == ""
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
- @builder.script do
410
- @builder.text!("makeRed('cucumber-header');") unless @header_red
418
+ builder.script do
419
+ builder.text!("makeRed('cucumber-header');") unless @header_red
411
420
  @header_red = true
412
- @builder.text!("makeRed('scenario_#{@scenario_number}');") unless @scenario_red
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
- @builder.script do
419
- @builder.text!("makeYellow('cucumber-header');") unless @header_red
420
- @builder.text!("makeYellow('scenario_#{@scenario_number}');") unless @scenario_red
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
- @builder.div(:class => 'step_name') do |div|
466
- @builder << "<a target=\"viewport\" class=\"step-link\" href=\"#{@file_name}\">"
467
- @builder.span(keyword, :class => 'keyword')
468
- @builder.span(:class => 'val') do |name|
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(/&lt;span class=&quot;(.*?)&quot;&gt;/, '<span class="\1">').gsub(/&lt;\/span&gt;/, '</span>')
470
479
  end
471
- @builder << "</a>"
480
+ builder << "</a>"
472
481
  end
473
482
  end
474
483
 
475
484
  def build_cell(cell_type, value, attributes)
476
- @builder.__send__(cell_type, attributes) do
477
- @builder.div do
478
- @builder.span(value,:class => 'step param')
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
- @builder.style(:type => 'text/css') do
493
+ builder.style(:type => 'text/css') do
485
494
  # Inline CSS here
486
- #@builder << File.read(File.dirname(__FILE__) + '/cucumber.css')
495
+ #builder << File.read(File.dirname(__FILE__) + '/cucumber.css')
487
496
  end
488
497
  end
489
498
 
490
499
  def inline_js
491
- @builder.script(:type => 'text/javascript') do
500
+ builder.script(:type => 'text/javascript') do
492
501
  # Inline JQuery here
493
- #@builder << inline_jquery
494
- #@builder << inline_js_content
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
- @builder << " <script type=\"text/javascript\">moveProgressBar('#{percent_done}');</script>"
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
- @builder << "<script type=\"text/javascript\">document.getElementById('duration').innerHTML = \"Finished in <strong>#{format_duration(features.duration)} seconds</strong>\";</script>"
567
- @builder << "<script type=\"text/javascript\">document.getElementById('totals').innerHTML = \"#{print_stat_string(features)}\";</script>"
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:
@@ -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: 27
4
+ hash: 25
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 0
9
- - 2
10
- version: 0.0.2
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-08 00:00:00 -07:00
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: []