viewcumber 0.0.2 → 0.0.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.
@@ -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: []