cucumber 1.3.16 → 1.3.17

Sign up to get free protection for your applications and to get access to all the features.
@@ -3,7 +3,7 @@ rvm:
3
3
  - 2.0.0
4
4
  - 1.9.3
5
5
  - 1.8.7
6
- - jruby
6
+ - jruby-1.7.12
7
7
 
8
8
  # whitelist
9
9
  branches:
data/History.md CHANGED
@@ -1,5 +1,10 @@
1
1
  ## [In Git](https://github.com/cucumber/cucumber/compare/v1.3.16...v1.3.x-bugfix)
2
2
 
3
+ * Rescue ArgumentError on split so formatters don't fail due to bad encoding ([692](https://github.com/cucumber/cucumber/pull/692) Arthur Silva)
4
+ * Support embedding images directly in HTML files ([696](https://github.com/cucumber/cucumber/pull/696) @brasmusson)
5
+ * Support embedding images directly in Gherkin formatters ([695](https://github.com/cucumber/cucumber/pull/695) @brasmusson)
6
+ * Fix JSON formatter output for expand mode ([700](https://github.com/cucumber/cucumber/pull/700) @brasmusson)
7
+
3
8
  ## [v1.3.16](https://github.com/cucumber/cucumber/compare/v1.3.15...v1.3.16)
4
9
 
5
10
  * Add RSpec 3 test double support ([689](https://github.com/cucumber/cucumber/pull/689) @cyphactor)
@@ -19,7 +19,7 @@ Gem::Specification.new do |s|
19
19
  s.add_dependency 'multi_json', '>= 1.7.5', '< 2.0'
20
20
  s.add_dependency 'multi_test', '>= 0.1.1'
21
21
 
22
- s.add_development_dependency 'aruba', '~> 0.5.2'
22
+ s.add_development_dependency 'aruba', '= 0.5.2'
23
23
  s.add_development_dependency 'json', '~> 1.7'
24
24
  s.add_development_dependency 'nokogiri', '~> 1.5.2'
25
25
  s.add_development_dependency 'rake', '>= 0.9.2', '< 10.2'
@@ -54,6 +54,11 @@ Feature: JSON output formatter
54
54
  Given /^I print from step definition/ do
55
55
  puts "from step definition"
56
56
  end
57
+
58
+ Given /^I embed data directly/ do
59
+ data = "YWJj"
60
+ embed data, "mime-type;base64"
61
+ end
57
62
  """
58
63
  And a file named "features/embed.feature" with:
59
64
  """
@@ -72,6 +77,31 @@ Feature: JSON output formatter
72
77
  And I print from step definition
73
78
 
74
79
  """
80
+ And a file named "features/outline.feature" with:
81
+ """
82
+ Feature: An outline feature
83
+
84
+ Scenario Outline: outline
85
+ Given a <type> step
86
+
87
+ Examples: examples1
88
+ | type |
89
+ | passing |
90
+ | failing |
91
+
92
+ Examples: examples2
93
+ | type |
94
+ | passing |
95
+
96
+ """
97
+ And a file named "features/embed_data_directly.feature" with:
98
+ """
99
+ Feature: An embed data directly feature
100
+
101
+ Scenario:
102
+ Given I embed data directly
103
+
104
+ """
75
105
 
76
106
  # Need to investigate why this won't pass in-process. error_message doesn't get det?
77
107
  @spawn
@@ -405,4 +435,228 @@ Feature: JSON output formatter
405
435
  }
406
436
  ]
407
437
 
438
+ """
439
+ Scenario: embedding data directly
440
+ When I run `cucumber -b --format json features/embed_data_directly.feature`
441
+ Then it should pass with JSON:
442
+ """
443
+ [
444
+ {
445
+ "uri": "features/embed_data_directly.feature",
446
+ "id": "an-embed-data-directly-feature",
447
+ "keyword": "Feature",
448
+ "name": "An embed data directly feature",
449
+ "line": 1,
450
+ "description": "",
451
+ "elements": [
452
+ {
453
+ "id": "an-embed-data-directly-feature;",
454
+ "keyword": "Scenario",
455
+ "name": "",
456
+ "line": 3,
457
+ "description": "",
458
+ "type": "scenario",
459
+ "steps": [
460
+ {
461
+ "keyword": "Given ",
462
+ "name": "I embed data directly",
463
+ "line": 4,
464
+ "embeddings": [
465
+ {
466
+ "mime_type": "mime-type",
467
+ "data": "YWJj"
468
+ }
469
+ ],
470
+ "match": {
471
+ "location": "features/step_definitions/steps.rb:38"
472
+ },
473
+ "result": {
474
+ "status": "passed",
475
+ "duration": 1
476
+ }
477
+ }
478
+ ]
479
+ }
480
+ ]
481
+ }
482
+ ]
483
+
484
+ """
485
+ @spawn
486
+ Scenario: scenario outline
487
+ When I run `cucumber --format json features/outline.feature`
488
+ Then it should fail with JSON:
489
+ """
490
+ [
491
+ {
492
+ "uri": "features/outline.feature",
493
+ "id": "an-outline-feature",
494
+ "keyword": "Feature",
495
+ "name": "An outline feature",
496
+ "line": 1,
497
+ "description": "",
498
+ "elements": [
499
+ {
500
+ "id": "an-outline-feature;outline",
501
+ "keyword": "Scenario Outline",
502
+ "name": "outline",
503
+ "line": 3,
504
+ "description": "",
505
+ "type": "scenario_outline",
506
+ "steps": [
507
+ {
508
+ "keyword": "Given ",
509
+ "name": "a <type> step",
510
+ "line": 4,
511
+ "match": {
512
+ "location": "features/step_definitions/steps.rb:1"
513
+ }
514
+ }
515
+ ],
516
+ "examples": [
517
+ {
518
+ "keyword": "Examples",
519
+ "name": "examples1",
520
+ "line": 6,
521
+ "description": "",
522
+ "id": "an-outline-feature;outline;examples1",
523
+ "rows": [
524
+ {
525
+ "cells": [
526
+ "type"
527
+ ],
528
+ "line": 7,
529
+ "id": "an-outline-feature;outline;examples1;1"
530
+ },
531
+ {
532
+ "cells": [
533
+ "passing"
534
+ ],
535
+ "line": 8,
536
+ "id": "an-outline-feature;outline;examples1;2"
537
+ },
538
+ {
539
+ "cells": [
540
+ "failing"
541
+ ],
542
+ "line": 9,
543
+ "id": "an-outline-feature;outline;examples1;3"
544
+ }
545
+ ]
546
+ },
547
+ {
548
+ "keyword": "Examples",
549
+ "name": "examples2",
550
+ "line": 11,
551
+ "description": "",
552
+ "id": "an-outline-feature;outline;examples2",
553
+ "rows": [
554
+ {
555
+ "cells": [
556
+ "type"
557
+ ],
558
+ "line": 12,
559
+ "id": "an-outline-feature;outline;examples2;1"
560
+ },
561
+ {
562
+ "cells": [
563
+ "passing"
564
+ ],
565
+ "line": 13,
566
+ "id": "an-outline-feature;outline;examples2;2"
567
+ }
568
+ ]
569
+ }
570
+ ]
571
+ }
572
+ ]
573
+ }
574
+ ]
575
+
576
+ """
577
+ @spawn
578
+ Scenario: scenario outline expanded
579
+ When I run `cucumber --expand --format json features/outline.feature`
580
+ Then it should fail with JSON:
581
+ """
582
+ [
583
+ {
584
+ "uri": "features/outline.feature",
585
+ "id": "an-outline-feature",
586
+ "keyword": "Feature",
587
+ "name": "An outline feature",
588
+ "line": 1,
589
+ "description": "",
590
+ "elements": [
591
+ {
592
+ "id": "an-outline-feature;outline;examples1;2",
593
+ "keyword": "Scenario Outline",
594
+ "name": "outline",
595
+ "line": 8,
596
+ "description": "",
597
+ "type": "scenario",
598
+ "steps": [
599
+ {
600
+ "keyword": "Given ",
601
+ "name": "a passing step",
602
+ "line": 4,
603
+ "match": {
604
+ "location": "features/step_definitions/steps.rb:1"
605
+ },
606
+ "result": {
607
+ "status": "passed",
608
+ "duration": 1
609
+ }
610
+ }
611
+ ]
612
+ },
613
+ {
614
+ "id": "an-outline-feature;outline;examples1;3",
615
+ "keyword": "Scenario Outline",
616
+ "name": "outline",
617
+ "line": 9,
618
+ "description": "",
619
+ "type": "scenario",
620
+ "steps": [
621
+ {
622
+ "keyword": "Given ",
623
+ "name": "a failing step",
624
+ "line": 4,
625
+ "match": {
626
+ "location": "features/step_definitions/steps.rb:5"
627
+ },
628
+ "result": {
629
+ "status": "failed",
630
+ "error_message" : " (RuntimeError)\n./features/step_definitions/steps.rb:6:in `/a failing step/'\nfeatures/outline.feature:4:in `Given a <type> step'",
631
+ "duration": 1
632
+ }
633
+ }
634
+ ]
635
+ },
636
+ {
637
+ "id": "an-outline-feature;outline;examples2;2",
638
+ "keyword": "Scenario Outline",
639
+ "name": "outline",
640
+ "line": 13,
641
+ "description": "",
642
+ "type": "scenario",
643
+ "steps": [
644
+ {
645
+ "keyword": "Given ",
646
+ "name": "a passing step",
647
+ "line": 4,
648
+ "match": {
649
+ "location": "features/step_definitions/steps.rb:1"
650
+ },
651
+ "result": {
652
+ "status": "passed",
653
+ "duration": 1
654
+ }
655
+ }
656
+ ]
657
+ }
658
+ ]
659
+ }
660
+ ]
661
+
408
662
  """
@@ -17,8 +17,10 @@ Then /^it should (pass|fail) with JSON:$/ do |pass_fail, json|
17
17
  actual.each do |feature|
18
18
  feature['elements'].each do |scenario|
19
19
  scenario['steps'].each do |step|
20
- step['result']['duration'].should be >= 0
21
- step['result']['duration'] = 1
20
+ if step['result']
21
+ step['result']['duration'].should be >= 0
22
+ step['result']['duration'] = 1
23
+ end
22
24
  end
23
25
  end
24
26
  end
@@ -6,9 +6,10 @@ module Cucumber
6
6
  # Adapts Cucumber formatter events to Gherkin formatter events
7
7
  # This class will disappear when Cucumber is based on Gherkin's model.
8
8
  class GherkinFormatterAdapter
9
- def initialize(gherkin_formatter, print_empty_match)
9
+ def initialize(gherkin_formatter, print_empty_match, options)
10
10
  @gf = gherkin_formatter
11
11
  @print_empty_match = print_empty_match
12
+ @options = options
12
13
  end
13
14
 
14
15
  def before_feature(feature)
@@ -28,14 +29,47 @@ module Cucumber
28
29
  @gf.scenario(feature_element.gherkin_statement)
29
30
  when Ast::ScenarioOutline
30
31
  @outline = true
31
- @gf.scenario_outline(feature_element.gherkin_statement)
32
+ if @options[:expand]
33
+ @in_instantiated_scenario = false
34
+ @current_scenario_hash = to_hash(feature_element.gherkin_statement)
35
+ else
36
+ @gf.scenario_outline(feature_element.gherkin_statement)
37
+ end
32
38
  else
33
39
  raise "Bad type: #{feature_element.class}"
34
40
  end
35
41
  end
36
42
 
43
+ def scenario_name(keyword, name, file_colon_line, source_indent)
44
+ if @outline and @options[:expand]
45
+ return if not @in_instantiated_scenario
46
+ if @new_example_table
47
+ @example_row = 1
48
+ @new_example_table = false
49
+ else
50
+ @example_row += 1
51
+ end
52
+ example_row_hash = @current_example_rows[@example_row].to_hash
53
+ scenario = Gherkin::Formatter::Model::Scenario.new(
54
+ @current_scenario_hash['comments'],
55
+ @current_scenario_hash['tags'],
56
+ @current_scenario_hash['keyword'],
57
+ @current_scenario_hash['name'],
58
+ @current_scenario_hash['description'],
59
+ example_row_hash['line'],
60
+ example_row_hash['id'])
61
+ @gf.scenario(scenario)
62
+ end
63
+ end
64
+
37
65
  def before_step(step)
38
- @gf.step(step.gherkin_statement)
66
+ unless @outline and @options[:expand]
67
+ @gf.step(step.gherkin_statement)
68
+ else
69
+ if @in_instantiated_scenario
70
+ @current_step_hash = to_hash(step.gherkin_statement)
71
+ end
72
+ end
39
73
  if @print_empty_match
40
74
  if(@outline)
41
75
  match = Gherkin::Formatter::Model::Match.new(step.gherkin_statement.outline_args, nil)
@@ -55,23 +89,52 @@ module Cucumber
55
89
  # Trick the formatter to believe that's what was printed previously so we get arg highlights on #result
56
90
  @gf.instance_variable_set('@match', match)
57
91
  else
58
- @gf.match(match)
92
+ unless @outline and @options[:expand]
93
+ @gf.match(match)
94
+ end
59
95
  end
60
96
 
61
97
  error_message = exception ? "#{exception.message} (#{exception.class})\n#{exception.backtrace.join("\n")}" : nil
62
98
  unless @outline
63
99
  @gf.result(Gherkin::Formatter::Model::Result.new(status, nil, error_message))
100
+ else
101
+ if @options[:expand] and @in_instantiated_scenario
102
+ @current_match = match
103
+ @current_result = Gherkin::Formatter::Model::Result.new(status, nil, error_message)
104
+ end
105
+ end
106
+ end
107
+
108
+ def step_name(keyword, step_match, status, source_indent, background, file_colon_line)
109
+ if @outline and @options[:expand] and @in_instantiated_scenario
110
+ @gf.step(Gherkin::Formatter::Model::Step.new(
111
+ @current_step_hash['comments'],
112
+ @current_step_hash['keyword'],
113
+ step_match.format_args(),
114
+ @current_step_hash['line'],
115
+ @current_step_hash['rows'],
116
+ @current_step_hash['doc_string']))
117
+ @gf.match(@current_match)
118
+ @gf.result(@current_result)
64
119
  end
65
120
  end
66
121
 
67
122
  def before_examples(examples)
68
- @gf.examples(examples.gherkin_statement)
123
+ unless @options[:expand]
124
+ @gf.examples(examples.gherkin_statement)
125
+ else
126
+ @in_instantiated_scenario = true
127
+ @new_example_table = true
128
+ @current_example_rows = to_hash(examples.gherkin_statement)['rows']
129
+ end
69
130
  end
70
131
 
71
132
  #used for capturing duration
72
133
  def after_step(step)
73
134
  step_finish = (Time.now - @step_time)
74
- @gf.append_duration(step_finish)
135
+ unless @outline and @options[:expand] and not @in_instantiated_scenario
136
+ @gf.append_duration(step_finish)
137
+ end
75
138
  end
76
139
 
77
140
  def after_feature(feature)
@@ -83,7 +146,16 @@ module Cucumber
83
146
  end
84
147
 
85
148
  def embed(file, mime_type, label)
86
- data = File.open(file, 'rb') { |f| f.read }
149
+ if File.file?(file)
150
+ data = File.open(file, 'rb') { |f| f.read }
151
+ else
152
+ if mime_type =~ /;base64$/
153
+ mime_type = mime_type[0..-8]
154
+ data = Base64.decode64(file)
155
+ else
156
+ data = file
157
+ end
158
+ end
87
159
  if defined?(JRUBY_VERSION)
88
160
  data = data.to_java_bytes
89
161
  end
@@ -93,6 +165,16 @@ module Cucumber
93
165
  def puts(message)
94
166
  @gf.write(message)
95
167
  end
168
+
169
+ private
170
+
171
+ def to_hash(gherkin_statement)
172
+ if defined?(JRUBY_VERSION)
173
+ gherkin_statement.toMap()
174
+ else
175
+ gherkin_statement.to_hash
176
+ end
177
+ end
96
178
  end
97
179
  end
98
180
  end
@@ -28,6 +28,10 @@ module Cucumber
28
28
  def embed(src, mime_type, label)
29
29
  case(mime_type)
30
30
  when /^image\/(png|gif|jpg|jpeg)/
31
+ unless File.file?(src) or src =~ /^data:image\/(png|gif|jpg|jpeg);base64,/
32
+ type = mime_type =~ /;base[0-9]+$/ ? mime_type : mime_type + ";base64"
33
+ src = "data:" + type + "," + src
34
+ end
31
35
  embed_image(src, label)
32
36
  end
33
37
  end
@@ -598,8 +602,12 @@ module Cucumber
598
602
 
599
603
  def lines_around(file, line)
600
604
  if File.file?(file)
605
+ begin
601
606
  lines = File.open(file).read.split("\n")
602
- min = [0, line-3].max
607
+ rescue ArgumentError
608
+ return "# Couldn't get snippet for #{file}"
609
+ end
610
+ min = [0, line-3].max
603
611
  max = [line+1, lines.length-1].min
604
612
  selected_lines = []
605
613
  selected_lines.join("\n")
@@ -11,7 +11,7 @@ module Cucumber
11
11
 
12
12
  def initialize(runtime, io, options)
13
13
  @io = ensure_io(io, "json")
14
- super(Gherkin::Formatter::JSONFormatter.new(@io), false)
14
+ super(Gherkin::Formatter::JSONFormatter.new(@io), false, options)
15
15
  end
16
16
  end
17
17
  end
@@ -4,7 +4,7 @@ require 'rbconfig'
4
4
 
5
5
  module Cucumber
6
6
  unless defined?(Cucumber::VERSION)
7
- VERSION = '1.3.16'
7
+ VERSION = '1.3.17'
8
8
  BINARY = File.expand_path(File.dirname(__FILE__) + '/../../bin/cucumber')
9
9
  LIBDIR = File.expand_path(File.dirname(__FILE__) + '/../../lib')
10
10
  JRUBY = defined?(JRUBY_VERSION)
@@ -235,7 +235,10 @@ module Cucumber
235
235
 
236
236
  describe "with a step that embeds a snapshot" do
237
237
  define_steps do
238
- Given(/snap/) { embed('snapshot.jpeg', 'image/jpeg') }
238
+ Given(/snap/) {
239
+ File.should_receive(:file?).with('snapshot.jpeg').and_return(true)
240
+ embed('snapshot.jpeg', 'image/jpeg')
241
+ }
239
242
  end
240
243
 
241
244
  define_feature(<<-FEATURE)
@@ -247,6 +250,34 @@ module Cucumber
247
250
  it { @doc.css('.embed img').first.attributes['src'].to_s.should == "snapshot.jpeg" }
248
251
  end
249
252
 
253
+ describe "with a step that embeds a snapshot content manually" do
254
+ define_steps do
255
+ Given(/snap/) { embed('data:image/png;base64,YWJj', 'image/png') }
256
+ end
257
+
258
+ define_feature(<<-FEATURE)
259
+ Feature:
260
+ Scenario:
261
+ Given snap
262
+ FEATURE
263
+
264
+ it { @doc.css('.embed img').first.attributes['src'].to_s.should == "data:image/png;base64,YWJj" }
265
+ end
266
+
267
+ describe "with a step that embeds a snapshot content" do
268
+ define_steps do
269
+ Given(/snap/) { embed('YWJj', 'image/png;base64') }
270
+ end
271
+
272
+ define_feature(<<-FEATURE)
273
+ Feature:
274
+ Scenario:
275
+ Given snap
276
+ FEATURE
277
+
278
+ it { @doc.css('.embed img').first.attributes['src'].to_s.should == "data:image/png;base64,YWJj" }
279
+ end
280
+
250
281
  describe "with an undefined Given step then an undefined And step" do
251
282
  define_feature(<<-FEATURE)
252
283
  Feature:
@@ -1,38 +1,85 @@
1
1
  require 'spec_helper'
2
2
  require 'cucumber/formatter/progress'
3
+ require 'cucumber/formatter/spec_helper'
4
+ require 'cucumber/cli/options'
3
5
 
4
6
  module Cucumber
5
7
  module Formatter
6
8
  describe Progress do
9
+ extend SpecHelperDsl
10
+ include SpecHelper
7
11
 
8
12
  before(:each) do
9
13
  Cucumber::Term::ANSIColor.coloring = false
10
14
  @out = StringIO.new
11
- progress = Cucumber::Formatter::Progress.new(double("step mother"), @out, {})
12
- @visitor = Cucumber::Ast::TreeWalker.new(nil, [progress])
15
+ @formatter = Progress.new(step_mother, @out, {})
13
16
  end
14
17
 
15
- describe "visiting a table cell value without a status" do
16
- it "should take the status from the last run step" do
17
- @visitor.visit_step_result('', '', nil, :failed, nil, 10, nil, nil)
18
- outline_table = double()
19
- outline_table.should_receive(:accept) do |visitor|
20
- visitor.visit_table_cell_value('value', nil)
18
+ describe "given a single feature" do
19
+ before(:each) do
20
+ run_defined_feature
21
+ end
22
+
23
+ describe "with a scenario" do
24
+ define_feature <<-FEATURE
25
+ Feature: Banana party
26
+
27
+ Scenario: Monkey eats banana
28
+ Given there are bananas
29
+ FEATURE
30
+
31
+ it "outputs the undefined step" do
32
+ expect(@out.string).to include "U\n"
21
33
  end
22
- @visitor.visit_outline_table(outline_table)
34
+ end
23
35
 
24
- @out.string.should == "FF"
36
+ describe "with a background" do
37
+ define_feature <<-FEATURE
38
+ Feature: Banana party
39
+
40
+ Background:
41
+ Given a tree
42
+
43
+ Scenario: Monkey eats banana
44
+ Given there are bananas
45
+ FEATURE
46
+
47
+ it "outputs the two undefined steps" do
48
+ expect(@out.string).to include "UU\n"
49
+ end
25
50
  end
26
- end
27
51
 
28
- describe "visiting a table cell which is a table header" do
29
- it "should not output anything" do
30
- @visitor.visit_table_cell_value('value', :skipped_param)
52
+ describe "with a scenario outline" do
53
+ define_feature <<-FEATURE
54
+ Feature: Fud Pyramid
55
+
56
+ Scenario Outline: Monkey eats a balanced diet
57
+ Given there are <Things>
58
+
59
+ Examples: Fruit
60
+ | Things |
61
+ | apples |
62
+ | bananas |
63
+ Examples: Vegetables
64
+ | Things |
65
+ | broccoli |
66
+ | carrots |
67
+ FEATURE
68
+
69
+ it "outputs each undefined step" do
70
+ expect(@out.string).to include "UUUU\n"
71
+ end
72
+
73
+ it "has 4 undefined scenarios" do
74
+ expect(@out.string).to include "4 scenarios (4 undefined)"
75
+ end
76
+
77
+ it "has 4 undefined steps" do
78
+ expect(@out.string).to include "4 steps (4 undefined)"
79
+ end
31
80
 
32
- @out.string.should == ""
33
81
  end
34
82
  end
35
-
36
83
  end
37
84
  end
38
85
  end
metadata CHANGED
@@ -1,353 +1,400 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.16
4
+ version: 1.3.17
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Aslak Hellesøy
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
- date: 2014-07-28 00:00:00.000000000 Z
12
+ date: 2014-09-13 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: builder
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - ">="
19
+ - - ! '>='
18
20
  - !ruby/object:Gem::Version
19
21
  version: 2.1.2
20
22
  type: :runtime
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - ">="
27
+ - - ! '>='
25
28
  - !ruby/object:Gem::Version
26
29
  version: 2.1.2
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: diff-lcs
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - ">="
35
+ - - ! '>='
32
36
  - !ruby/object:Gem::Version
33
37
  version: 1.1.3
34
38
  type: :runtime
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - ">="
43
+ - - ! '>='
39
44
  - !ruby/object:Gem::Version
40
45
  version: 1.1.3
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: gherkin
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - "~>"
51
+ - - ~>
46
52
  - !ruby/object:Gem::Version
47
53
  version: '2.12'
48
54
  type: :runtime
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - "~>"
59
+ - - ~>
53
60
  - !ruby/object:Gem::Version
54
61
  version: '2.12'
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: multi_json
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
- - - ">="
67
+ - - ! '>='
60
68
  - !ruby/object:Gem::Version
61
69
  version: 1.7.5
62
- - - "<"
70
+ - - <
63
71
  - !ruby/object:Gem::Version
64
72
  version: '2.0'
65
73
  type: :runtime
66
74
  prerelease: false
67
75
  version_requirements: !ruby/object:Gem::Requirement
76
+ none: false
68
77
  requirements:
69
- - - ">="
78
+ - - ! '>='
70
79
  - !ruby/object:Gem::Version
71
80
  version: 1.7.5
72
- - - "<"
81
+ - - <
73
82
  - !ruby/object:Gem::Version
74
83
  version: '2.0'
75
84
  - !ruby/object:Gem::Dependency
76
85
  name: multi_test
77
86
  requirement: !ruby/object:Gem::Requirement
87
+ none: false
78
88
  requirements:
79
- - - ">="
89
+ - - ! '>='
80
90
  - !ruby/object:Gem::Version
81
91
  version: 0.1.1
82
92
  type: :runtime
83
93
  prerelease: false
84
94
  version_requirements: !ruby/object:Gem::Requirement
95
+ none: false
85
96
  requirements:
86
- - - ">="
97
+ - - ! '>='
87
98
  - !ruby/object:Gem::Version
88
99
  version: 0.1.1
89
100
  - !ruby/object:Gem::Dependency
90
101
  name: aruba
91
102
  requirement: !ruby/object:Gem::Requirement
103
+ none: false
92
104
  requirements:
93
- - - "~>"
105
+ - - '='
94
106
  - !ruby/object:Gem::Version
95
107
  version: 0.5.2
96
108
  type: :development
97
109
  prerelease: false
98
110
  version_requirements: !ruby/object:Gem::Requirement
111
+ none: false
99
112
  requirements:
100
- - - "~>"
113
+ - - '='
101
114
  - !ruby/object:Gem::Version
102
115
  version: 0.5.2
103
116
  - !ruby/object:Gem::Dependency
104
117
  name: json
105
118
  requirement: !ruby/object:Gem::Requirement
119
+ none: false
106
120
  requirements:
107
- - - "~>"
121
+ - - ~>
108
122
  - !ruby/object:Gem::Version
109
123
  version: '1.7'
110
124
  type: :development
111
125
  prerelease: false
112
126
  version_requirements: !ruby/object:Gem::Requirement
127
+ none: false
113
128
  requirements:
114
- - - "~>"
129
+ - - ~>
115
130
  - !ruby/object:Gem::Version
116
131
  version: '1.7'
117
132
  - !ruby/object:Gem::Dependency
118
133
  name: nokogiri
119
134
  requirement: !ruby/object:Gem::Requirement
135
+ none: false
120
136
  requirements:
121
- - - "~>"
137
+ - - ~>
122
138
  - !ruby/object:Gem::Version
123
139
  version: 1.5.2
124
140
  type: :development
125
141
  prerelease: false
126
142
  version_requirements: !ruby/object:Gem::Requirement
143
+ none: false
127
144
  requirements:
128
- - - "~>"
145
+ - - ~>
129
146
  - !ruby/object:Gem::Version
130
147
  version: 1.5.2
131
148
  - !ruby/object:Gem::Dependency
132
149
  name: rake
133
150
  requirement: !ruby/object:Gem::Requirement
151
+ none: false
134
152
  requirements:
135
- - - ">="
153
+ - - ! '>='
136
154
  - !ruby/object:Gem::Version
137
155
  version: 0.9.2
138
- - - "<"
156
+ - - <
139
157
  - !ruby/object:Gem::Version
140
158
  version: '10.2'
141
159
  type: :development
142
160
  prerelease: false
143
161
  version_requirements: !ruby/object:Gem::Requirement
162
+ none: false
144
163
  requirements:
145
- - - ">="
164
+ - - ! '>='
146
165
  - !ruby/object:Gem::Version
147
166
  version: 0.9.2
148
- - - "<"
167
+ - - <
149
168
  - !ruby/object:Gem::Version
150
169
  version: '10.2'
151
170
  - !ruby/object:Gem::Dependency
152
171
  name: rspec
153
172
  requirement: !ruby/object:Gem::Requirement
173
+ none: false
154
174
  requirements:
155
- - - "~>"
175
+ - - ~>
156
176
  - !ruby/object:Gem::Version
157
177
  version: '2'
158
178
  type: :development
159
179
  prerelease: false
160
180
  version_requirements: !ruby/object:Gem::Requirement
181
+ none: false
161
182
  requirements:
162
- - - "~>"
183
+ - - ~>
163
184
  - !ruby/object:Gem::Version
164
185
  version: '2'
165
186
  - !ruby/object:Gem::Dependency
166
187
  name: simplecov
167
188
  requirement: !ruby/object:Gem::Requirement
189
+ none: false
168
190
  requirements:
169
- - - ">="
191
+ - - ! '>='
170
192
  - !ruby/object:Gem::Version
171
193
  version: 0.6.2
172
194
  type: :development
173
195
  prerelease: false
174
196
  version_requirements: !ruby/object:Gem::Requirement
197
+ none: false
175
198
  requirements:
176
- - - ">="
199
+ - - ! '>='
177
200
  - !ruby/object:Gem::Version
178
201
  version: 0.6.2
179
202
  - !ruby/object:Gem::Dependency
180
203
  name: spork
181
204
  requirement: !ruby/object:Gem::Requirement
205
+ none: false
182
206
  requirements:
183
- - - ">="
207
+ - - ! '>='
184
208
  - !ruby/object:Gem::Version
185
209
  version: 1.0.0.rc2
186
210
  type: :development
187
211
  prerelease: false
188
212
  version_requirements: !ruby/object:Gem::Requirement
213
+ none: false
189
214
  requirements:
190
- - - ">="
215
+ - - ! '>='
191
216
  - !ruby/object:Gem::Version
192
217
  version: 1.0.0.rc2
193
218
  - !ruby/object:Gem::Dependency
194
219
  name: syntax
195
220
  requirement: !ruby/object:Gem::Requirement
221
+ none: false
196
222
  requirements:
197
- - - ">="
223
+ - - ! '>='
198
224
  - !ruby/object:Gem::Version
199
225
  version: 1.0.0
200
226
  type: :development
201
227
  prerelease: false
202
228
  version_requirements: !ruby/object:Gem::Requirement
229
+ none: false
203
230
  requirements:
204
- - - ">="
231
+ - - ! '>='
205
232
  - !ruby/object:Gem::Version
206
233
  version: 1.0.0
207
234
  - !ruby/object:Gem::Dependency
208
235
  name: bcat
209
236
  requirement: !ruby/object:Gem::Requirement
237
+ none: false
210
238
  requirements:
211
- - - "~>"
239
+ - - ~>
212
240
  - !ruby/object:Gem::Version
213
241
  version: 0.6.2
214
242
  type: :development
215
243
  prerelease: false
216
244
  version_requirements: !ruby/object:Gem::Requirement
245
+ none: false
217
246
  requirements:
218
- - - "~>"
247
+ - - ~>
219
248
  - !ruby/object:Gem::Version
220
249
  version: 0.6.2
221
250
  - !ruby/object:Gem::Dependency
222
251
  name: kramdown
223
252
  requirement: !ruby/object:Gem::Requirement
253
+ none: false
224
254
  requirements:
225
- - - "~>"
255
+ - - ~>
226
256
  - !ruby/object:Gem::Version
227
257
  version: '0.14'
228
258
  type: :development
229
259
  prerelease: false
230
260
  version_requirements: !ruby/object:Gem::Requirement
261
+ none: false
231
262
  requirements:
232
- - - "~>"
263
+ - - ~>
233
264
  - !ruby/object:Gem::Version
234
265
  version: '0.14'
235
266
  - !ruby/object:Gem::Dependency
236
267
  name: yard
237
268
  requirement: !ruby/object:Gem::Requirement
269
+ none: false
238
270
  requirements:
239
- - - "~>"
271
+ - - ~>
240
272
  - !ruby/object:Gem::Version
241
273
  version: 0.8.0
242
274
  type: :development
243
275
  prerelease: false
244
276
  version_requirements: !ruby/object:Gem::Requirement
277
+ none: false
245
278
  requirements:
246
- - - "~>"
279
+ - - ~>
247
280
  - !ruby/object:Gem::Version
248
281
  version: 0.8.0
249
282
  - !ruby/object:Gem::Dependency
250
283
  name: capybara
251
284
  requirement: !ruby/object:Gem::Requirement
285
+ none: false
252
286
  requirements:
253
- - - ">="
287
+ - - ! '>='
254
288
  - !ruby/object:Gem::Version
255
289
  version: 1.1.2
256
- - - "<"
290
+ - - <
257
291
  - !ruby/object:Gem::Version
258
292
  version: '2.1'
259
293
  type: :development
260
294
  prerelease: false
261
295
  version_requirements: !ruby/object:Gem::Requirement
296
+ none: false
262
297
  requirements:
263
- - - ">="
298
+ - - ! '>='
264
299
  - !ruby/object:Gem::Version
265
300
  version: 1.1.2
266
- - - "<"
301
+ - - <
267
302
  - !ruby/object:Gem::Version
268
303
  version: '2.1'
269
304
  - !ruby/object:Gem::Dependency
270
305
  name: rack-test
271
306
  requirement: !ruby/object:Gem::Requirement
307
+ none: false
272
308
  requirements:
273
- - - ">="
309
+ - - ! '>='
274
310
  - !ruby/object:Gem::Version
275
311
  version: 0.6.1
276
312
  type: :development
277
313
  prerelease: false
278
314
  version_requirements: !ruby/object:Gem::Requirement
315
+ none: false
279
316
  requirements:
280
- - - ">="
317
+ - - ! '>='
281
318
  - !ruby/object:Gem::Version
282
319
  version: 0.6.1
283
320
  - !ruby/object:Gem::Dependency
284
321
  name: ramaze
285
322
  requirement: !ruby/object:Gem::Requirement
323
+ none: false
286
324
  requirements:
287
- - - ">="
325
+ - - ! '>='
288
326
  - !ruby/object:Gem::Version
289
327
  version: '0'
290
328
  type: :development
291
329
  prerelease: false
292
330
  version_requirements: !ruby/object:Gem::Requirement
331
+ none: false
293
332
  requirements:
294
- - - ">="
333
+ - - ! '>='
295
334
  - !ruby/object:Gem::Version
296
335
  version: '0'
297
336
  - !ruby/object:Gem::Dependency
298
337
  name: sinatra
299
338
  requirement: !ruby/object:Gem::Requirement
339
+ none: false
300
340
  requirements:
301
- - - ">="
341
+ - - ! '>='
302
342
  - !ruby/object:Gem::Version
303
343
  version: 1.3.2
304
344
  type: :development
305
345
  prerelease: false
306
346
  version_requirements: !ruby/object:Gem::Requirement
347
+ none: false
307
348
  requirements:
308
- - - ">="
349
+ - - ! '>='
309
350
  - !ruby/object:Gem::Version
310
351
  version: 1.3.2
311
352
  - !ruby/object:Gem::Dependency
312
353
  name: webrat
313
354
  requirement: !ruby/object:Gem::Requirement
355
+ none: false
314
356
  requirements:
315
- - - ">="
357
+ - - ! '>='
316
358
  - !ruby/object:Gem::Version
317
359
  version: 0.7.3
318
360
  type: :development
319
361
  prerelease: false
320
362
  version_requirements: !ruby/object:Gem::Requirement
363
+ none: false
321
364
  requirements:
322
- - - ">="
365
+ - - ! '>='
323
366
  - !ruby/object:Gem::Version
324
367
  version: 0.7.3
325
368
  - !ruby/object:Gem::Dependency
326
369
  name: mime-types
327
370
  requirement: !ruby/object:Gem::Requirement
371
+ none: false
328
372
  requirements:
329
- - - "<"
373
+ - - <
330
374
  - !ruby/object:Gem::Version
331
375
  version: '2.0'
332
376
  type: :development
333
377
  prerelease: false
334
378
  version_requirements: !ruby/object:Gem::Requirement
379
+ none: false
335
380
  requirements:
336
- - - "<"
381
+ - - <
337
382
  - !ruby/object:Gem::Version
338
383
  version: '2.0'
339
384
  - !ruby/object:Gem::Dependency
340
385
  name: rubyzip
341
386
  requirement: !ruby/object:Gem::Requirement
387
+ none: false
342
388
  requirements:
343
- - - "<"
389
+ - - <
344
390
  - !ruby/object:Gem::Version
345
391
  version: '1.0'
346
392
  type: :development
347
393
  prerelease: false
348
394
  version_requirements: !ruby/object:Gem::Requirement
395
+ none: false
349
396
  requirements:
350
- - - "<"
397
+ - - <
351
398
  - !ruby/object:Gem::Version
352
399
  version: '1.0'
353
400
  description: Behaviour Driven Development with elegance and joy
@@ -357,12 +404,12 @@ executables:
357
404
  extensions: []
358
405
  extra_rdoc_files: []
359
406
  files:
360
- - ".gitattributes"
361
- - ".rspec"
362
- - ".ruby-gemset"
363
- - ".ruby-version"
364
- - ".travis.yml"
365
- - ".yardopts"
407
+ - .gitattributes
408
+ - .rspec
409
+ - .ruby-gemset
410
+ - .ruby-version
411
+ - .travis.yml
412
+ - .yardopts
366
413
  - CONTRIBUTING.md
367
414
  - Gemfile
368
415
  - History.md
@@ -948,28 +995,29 @@ files:
948
995
  - spec/spec_helper.rb
949
996
  homepage: http://cukes.info
950
997
  licenses: []
951
- metadata: {}
952
998
  post_install_message:
953
999
  rdoc_options:
954
- - "--charset=UTF-8"
1000
+ - --charset=UTF-8
955
1001
  require_paths:
956
1002
  - lib
957
1003
  required_ruby_version: !ruby/object:Gem::Requirement
1004
+ none: false
958
1005
  requirements:
959
- - - ">="
1006
+ - - ! '>='
960
1007
  - !ruby/object:Gem::Version
961
1008
  version: '0'
962
1009
  required_rubygems_version: !ruby/object:Gem::Requirement
1010
+ none: false
963
1011
  requirements:
964
- - - ">="
1012
+ - - ! '>='
965
1013
  - !ruby/object:Gem::Version
966
1014
  version: '0'
967
1015
  requirements: []
968
1016
  rubyforge_project:
969
- rubygems_version: 2.2.2
1017
+ rubygems_version: 1.8.23
970
1018
  signing_key:
971
- specification_version: 4
972
- summary: cucumber-1.3.16
1019
+ specification_version: 3
1020
+ summary: cucumber-1.3.17
973
1021
  test_files:
974
1022
  - features/assertions.feature
975
1023
  - features/autoformat_profile_output.feature
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: 0bee73d888dad5e658a4289f55e7f975a00797bb
4
- data.tar.gz: c29fa70693d1cb3cb6956357410774eb2222cd40
5
- SHA512:
6
- metadata.gz: dcedaf020ae485ff03c74282b77f6c66e4c41e22d7fed6cb124ff9fe9be3c4d9e2d9846263f0749d40096e43cd2e8cfde657c18a1724e6e887cd9ff091696720
7
- data.tar.gz: 0a934db47fc16a45f40421fd726d4018ccc2c92ebdc4381d618b0b1dde101a739fd980711aa95446a508d3700a705d834b4e8dbbcbdb1718aa57760595463d92