cucumber 1.3.16 → 1.3.17

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.
@@ -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