cucumber 0.3.96 → 0.3.97

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.
Files changed (93) hide show
  1. data/History.txt +22 -3
  2. data/License.txt +2 -0
  3. data/Manifest.txt +9 -5
  4. data/config/hoe.rb +1 -0
  5. data/examples/i18n/Rakefile +5 -3
  6. data/examples/i18n/fi/features/yhteenlasku.feature +5 -4
  7. data/examples/python/features/step_definitions/fib_steps.py +3 -0
  8. data/examples/python/features/support/env.rb +21 -21
  9. data/gem_tasks/contributors.rake +8 -0
  10. data/gem_tasks/features.rake +1 -0
  11. data/gem_tasks/sdoc.rake +7 -0
  12. data/lib/README.rdoc +12 -0
  13. data/lib/cucumber/ast/background.rb +1 -1
  14. data/lib/cucumber/ast/comment.rb +1 -1
  15. data/lib/cucumber/ast/examples.rb +9 -4
  16. data/lib/cucumber/ast/feature.rb +1 -1
  17. data/lib/cucumber/ast/feature_element.rb +1 -1
  18. data/lib/cucumber/ast/features.rb +1 -1
  19. data/lib/cucumber/ast/outline_table.rb +2 -2
  20. data/lib/cucumber/ast/py_string.rb +1 -1
  21. data/lib/cucumber/ast/scenario.rb +1 -1
  22. data/lib/cucumber/ast/scenario_outline.rb +8 -7
  23. data/lib/cucumber/ast/step.rb +1 -1
  24. data/lib/cucumber/ast/step_collection.rb +1 -1
  25. data/lib/cucumber/ast/step_invocation.rb +1 -1
  26. data/lib/cucumber/ast/table.rb +65 -45
  27. data/lib/cucumber/ast/tags.rb +2 -2
  28. data/lib/cucumber/ast/visitor.rb +6 -8
  29. data/lib/cucumber/broadcaster.rb +1 -1
  30. data/lib/cucumber/cli/language_help_formatter.rb +1 -1
  31. data/lib/cucumber/cli/main.rb +15 -52
  32. data/lib/cucumber/constantize.rb +1 -1
  33. data/lib/cucumber/core_ext/exception.rb +1 -1
  34. data/lib/cucumber/core_ext/instance_exec.rb +8 -3
  35. data/lib/cucumber/core_ext/proc.rb +1 -1
  36. data/lib/cucumber/core_ext/string.rb +1 -1
  37. data/lib/cucumber/feature_file.rb +4 -3
  38. data/lib/cucumber/filter.rb +2 -1
  39. data/lib/cucumber/formatter/ansicolor.rb +6 -5
  40. data/lib/cucumber/formatter/color_io.rb +2 -2
  41. data/lib/cucumber/formatter/console.rb +2 -0
  42. data/lib/cucumber/formatter/duration.rb +3 -0
  43. data/lib/cucumber/formatter/html.rb +1 -0
  44. data/lib/cucumber/formatter/junit.rb +1 -0
  45. data/lib/cucumber/formatter/ordered_xml_markup.rb +1 -1
  46. data/lib/cucumber/formatter/pretty.rb +18 -4
  47. data/lib/cucumber/formatter/profile.rb +1 -0
  48. data/lib/cucumber/formatter/progress.rb +1 -0
  49. data/lib/cucumber/formatter/rerun.rb +2 -0
  50. data/lib/cucumber/formatter/steps.rb +1 -0
  51. data/lib/cucumber/formatter/tag_cloud.rb +2 -1
  52. data/lib/cucumber/formatter/unicode.rb +1 -1
  53. data/lib/cucumber/formatter/usage.rb +1 -0
  54. data/lib/cucumber/language_support.rb +30 -0
  55. data/lib/cucumber/language_support/language_methods.rb +34 -12
  56. data/lib/cucumber/parser/feature.rb +81 -57
  57. data/lib/cucumber/parser/feature.tt +3 -3
  58. data/lib/cucumber/parser/natural_language.rb +1 -1
  59. data/lib/cucumber/parser/table.rb +3 -0
  60. data/lib/cucumber/parser/treetop_ext.rb +6 -5
  61. data/lib/cucumber/platform.rb +1 -2
  62. data/lib/cucumber/py_support/py_dsl.py +8 -0
  63. data/lib/cucumber/py_support/py_language.py +2 -0
  64. data/lib/cucumber/py_support/py_language.rb +68 -0
  65. data/lib/cucumber/rails/world.rb +2 -1
  66. data/lib/cucumber/rake/task.rb +13 -11
  67. data/lib/cucumber/rb_support/rb_dsl.rb +27 -15
  68. data/lib/cucumber/rb_support/rb_hook.rb +1 -2
  69. data/lib/cucumber/rb_support/rb_language.rb +57 -33
  70. data/lib/cucumber/rb_support/rb_step_definition.rb +42 -38
  71. data/lib/cucumber/rb_support/rb_world.rb +93 -0
  72. data/lib/cucumber/rspec_neuter.rb +3 -3
  73. data/lib/cucumber/step_match.rb +2 -2
  74. data/lib/cucumber/step_mother.rb +91 -65
  75. data/lib/cucumber/version.rb +1 -1
  76. data/lib/cucumber/webrat/element_locator.rb +3 -3
  77. data/rails_generators/cucumber/templates/cucumber.rake +2 -0
  78. data/rails_generators/cucumber/templates/webrat_steps.rb +4 -0
  79. data/spec/cucumber/ast/background_spec.rb +8 -1
  80. data/spec/cucumber/ast/scenario_outline_spec.rb +1 -0
  81. data/spec/cucumber/ast/table_spec.rb +10 -0
  82. data/spec/cucumber/cli/options_spec.rb +1 -1
  83. data/spec/cucumber/parser/feature_parser_spec.rb +4 -0
  84. data/spec/cucumber/rb_support/rb_step_definition_spec.rb +114 -0
  85. data/spec/cucumber/step_mother_spec.rb +29 -10
  86. data/spec/cucumber/treetop_parser/with_comments.feature +14 -1
  87. data/spec/cucumber/world/pending_spec.rb +1 -1
  88. metadata +21 -7
  89. data/gem_tasks/yard.rake +0 -8
  90. data/lib/cucumber/language_support/hook_methods.rb +0 -9
  91. data/lib/cucumber/world.rb +0 -89
  92. data/spec/cucumber/ast/visitor_spec.rb +0 -27
  93. data/spec/cucumber/step_definition_spec.rb +0 -102
@@ -27,6 +27,10 @@ When /^I fill in "([^\"]*)" with "([^\"]*)"$/ do |field, value|
27
27
  fill_in(field, :with => value)
28
28
  end
29
29
 
30
+ When /^I fill in "([^\"]*)" for "([^\"]*)"$/ do |value, field|
31
+ fill_in(field, :with => value)
32
+ end
33
+
30
34
  # Use this to fill in an entire form with data from a table. Example:
31
35
  #
32
36
  # When I fill in the following:
@@ -10,7 +10,7 @@ module Cucumber
10
10
  extend(RbSupport::RbDsl)
11
11
  @step_mother = StepMother.new
12
12
  @step_mother.load_natural_language('en')
13
- @step_mother.load_programming_language('rb')
13
+ @rb = @step_mother.load_programming_language('rb')
14
14
 
15
15
  $x = $y = nil
16
16
  Before do
@@ -19,12 +19,19 @@ module Cucumber
19
19
  Given /y is (\d+)/ do |n|
20
20
  $y = $x * n.to_i
21
21
  end
22
+
23
+ register
24
+
22
25
  @visitor = Visitor.new(@step_mother)
23
26
  @visitor.options = {}
24
27
 
25
28
  @feature = mock('feature', :visit? => true).as_null_object
26
29
  end
27
30
 
31
+ def register
32
+ @step_mother.register_step_definitions(@rb.step_definitions)
33
+ end
34
+
28
35
  it "should execute Before blocks before background steps" do
29
36
  background = Background.new(
30
37
  comment=Comment.new(''),
@@ -41,6 +41,7 @@ module Cucumber
41
41
  ],
42
42
  [
43
43
  [
44
+ Comment.new("#Mmmm... cucumbers\n"),
44
45
  24,
45
46
  'Examples:',
46
47
  'First table',
@@ -285,6 +285,16 @@ module Cucumber
285
285
  | aslak | true |
286
286
  }
287
287
  end
288
+
289
+ it "should not allow mappings that match more than 1 column" do
290
+ t1 = Table.new([
291
+ ['Cuke', 'Duke'],
292
+ ['Foo', 'Bar']
293
+ ])
294
+ lambda do
295
+ t1.map_headers!(/uk/ => 'u')
296
+ end.should raise_error(%{2 headers matched /uk/: ["Cuke", "Duke"]})
297
+ end
288
298
 
289
299
  describe "raising" do
290
300
  before do
@@ -46,7 +46,7 @@ module Cli
46
46
 
47
47
  context '-r or --require' do
48
48
  it "collects all specified files into an array" do
49
- after_parsing ('--require some_file.rb -r another_file.rb') do
49
+ after_parsing('--require some_file.rb -r another_file.rb') do
50
50
  options[:require].should == ['some_file.rb', 'another_file.rb']
51
51
  end
52
52
  end
@@ -349,6 +349,10 @@ Given I am a step
349
349
  it "should parse scenario_outline" do
350
350
  parse_file("scenario_outline.feature")
351
351
  end
352
+
353
+ it "should parse comments" do
354
+ parse_file("with_comments.feature")
355
+ end
352
356
  end
353
357
 
354
358
  describe "Filtering" do
@@ -0,0 +1,114 @@
1
+ require File.dirname(__FILE__) + '/../../spec_helper'
2
+
3
+ require 'cucumber/ast'
4
+ require 'cucumber/step_mother'
5
+ require 'cucumber/rb_support/rb_language'
6
+
7
+ module Cucumber
8
+ module RbSupport
9
+ describe RbStepDefinition do
10
+ before do
11
+ @step_mother = StepMother.new
12
+ @step_mother.load_natural_language('en')
13
+ @rb = @step_mother.load_programming_language('rb')
14
+ @dsl = Object.new
15
+ @dsl.extend RbSupport::RbDsl
16
+ @step_mother.before(nil)
17
+
18
+ $inside = nil
19
+ end
20
+
21
+ def register
22
+ @step_mother.register_step_definitions(@rb.step_definitions)
23
+ end
24
+
25
+ it "should allow calling of other steps" do
26
+ @dsl.Given /Outside/ do
27
+ Given "Inside"
28
+ end
29
+ @dsl.Given /Inside/ do
30
+ $inside = true
31
+ end
32
+ register
33
+
34
+ @step_mother.step_match("Outside").invoke(nil)
35
+ $inside.should == true
36
+ end
37
+
38
+ it "should allow calling of other steps with inline arg" do
39
+ @dsl.Given /Outside/ do
40
+ Given "Inside", Ast::Table.new([['inside']])
41
+ end
42
+ @dsl.Given /Inside/ do |table|
43
+ $inside = table.raw[0][0]
44
+ end
45
+ register
46
+
47
+ @step_mother.step_match("Outside").invoke(nil)
48
+ $inside.should == 'inside'
49
+ end
50
+
51
+ it "should raise Undefined when inside step is not defined" do
52
+ @dsl.Given /Outside/ do
53
+ Given 'Inside'
54
+ end
55
+ register
56
+
57
+ lambda do
58
+ @step_mother.step_match('Outside').invoke(nil)
59
+ end.should raise_error(Undefined, 'Undefined step: "Inside"')
60
+ end
61
+
62
+ it "should allow forced pending" do
63
+ @dsl.Given /Outside/ do
64
+ pending("Do me!")
65
+ end
66
+ register
67
+
68
+ lambda do
69
+ @step_mother.step_match("Outside").invoke(nil)
70
+ end.should raise_error(Pending, "Do me!")
71
+ end
72
+
73
+ it "should allow announce" do
74
+ v = mock('visitor')
75
+ v.should_receive(:announce).with('wasup')
76
+ @step_mother.visitor = v
77
+ @dsl.Given /Loud/ do
78
+ announce 'wasup'
79
+ end
80
+ register
81
+
82
+ @step_mother.step_match("Loud").invoke(nil)
83
+ end
84
+
85
+ def unindented(s)
86
+ s.split("\n")[1..-2].join("\n").indent(-10)
87
+ end
88
+
89
+ it "should recognise quotes in name and make according regexp" do
90
+ @rb.snippet_text('Given', 'A "first" arg').should == unindented(%{
91
+ Given /^A "([^\\"]*)" arg$/ do |arg1|
92
+ pending
93
+ end
94
+ })
95
+ end
96
+
97
+ it "should recognise several quoted words in name and make according regexp and args" do
98
+ @rb.snippet_text('Given', 'A "first" and "second" arg').should == unindented(%{
99
+ Given /^A "([^\\"]*)" and "([^\\"]*)" arg$/ do |arg1, arg2|
100
+ pending
101
+ end
102
+ })
103
+ end
104
+
105
+ it "should not use quote group when there are no quotes" do
106
+ @rb.snippet_text('Given', 'A first arg').should == unindented(%{
107
+ Given /^A first arg$/ do
108
+ pending
109
+ end
110
+ })
111
+ end
112
+ end
113
+ end
114
+ end
@@ -16,11 +16,17 @@ module Cucumber
16
16
  @visitor = mock('Visitor')
17
17
  end
18
18
 
19
+ def register
20
+ @step_mother.register_step_definitions(@rb.step_definitions)
21
+ end
22
+
19
23
  it "should format step names" do
20
24
  @dsl.Given(/it (.*) in (.*)/) do |what, month|
21
25
  end
22
26
  @dsl.Given(/nope something else/) do |what, month|
23
27
  end
28
+ register
29
+
24
30
  format = @step_mother.step_match("it snows in april").format_args("[%s]")
25
31
  format.should == "it [snows] in [april]"
26
32
  end
@@ -28,13 +34,14 @@ module Cucumber
28
34
  it "should raise Ambiguous error with guess hint when multiple step definitions match" do
29
35
  @dsl.Given(/Three (.*) mice/) {|disability|}
30
36
  @dsl.Given(/Three blind (.*)/) {|animal|}
37
+ register
31
38
 
32
39
  lambda do
33
40
  @step_mother.step_match("Three blind mice")
34
41
  end.should raise_error(Ambiguous, %{Ambiguous match of "Three blind mice":
35
42
 
36
- spec/cucumber/step_mother_spec.rb:29:in `/Three (.*) mice/'
37
- spec/cucumber/step_mother_spec.rb:30:in `/Three blind (.*)/'
43
+ spec/cucumber/step_mother_spec.rb:35:in `/Three (.*) mice/'
44
+ spec/cucumber/step_mother_spec.rb:36:in `/Three blind (.*)/'
38
45
 
39
46
  You can run again with --guess to make Cucumber be more smart about it
40
47
  })
@@ -42,15 +49,17 @@ You can run again with --guess to make Cucumber be more smart about it
42
49
 
43
50
  it "should not show --guess hint when --guess is used" do
44
51
  @step_mother.options = {:guess => true}
52
+
45
53
  @dsl.Given(/Three (.*) mice/) {|disability|}
46
54
  @dsl.Given(/Three cute (.*)/) {|animal|}
55
+ register
47
56
 
48
57
  lambda do
49
58
  @step_mother.step_match("Three cute mice")
50
59
  end.should raise_error(Ambiguous, %{Ambiguous match of "Three cute mice":
51
60
 
52
- spec/cucumber/step_mother_spec.rb:45:in `/Three (.*) mice/'
53
- spec/cucumber/step_mother_spec.rb:46:in `/Three cute (.*)/'
61
+ spec/cucumber/step_mother_spec.rb:53:in `/Three (.*) mice/'
62
+ spec/cucumber/step_mother_spec.rb:54:in `/Three cute (.*)/'
54
63
 
55
64
  })
56
65
  end
@@ -59,6 +68,7 @@ spec/cucumber/step_mother_spec.rb:46:in `/Three cute (.*)/'
59
68
  @step_mother.options = {:guess => true}
60
69
  @dsl.Given(/Three (.*) mice/) {|disability|}
61
70
  @dsl.Given(/Three (.*)/) {|animal|}
71
+ register
62
72
 
63
73
  lambda do
64
74
  @step_mother.step_match("Three blind mice")
@@ -69,6 +79,8 @@ spec/cucumber/step_mother_spec.rb:46:in `/Three cute (.*)/'
69
79
  @step_mother.options = {:guess => true}
70
80
  right = @dsl.Given(/Three (.*) mice/) {|disability|}
71
81
  wrong = @dsl.Given(/Three (.*)/) {|animal|}
82
+ register
83
+
72
84
  @step_mother.step_match("Three blind mice").step_definition.should == right
73
85
  end
74
86
 
@@ -76,6 +88,8 @@ spec/cucumber/step_mother_spec.rb:46:in `/Three cute (.*)/'
76
88
  @step_mother.options = {:guess => true}
77
89
  right = @dsl.Given(/Three (.*) mice ran (.*)/) {|disability|}
78
90
  wrong = @dsl.Given(/Three (.*)/) {|animal|}
91
+ register
92
+
79
93
  @step_mother.step_match("Three blind mice ran far").step_definition.should == right
80
94
  end
81
95
 
@@ -84,6 +98,8 @@ spec/cucumber/step_mother_spec.rb:46:in `/Three cute (.*)/'
84
98
  general = @dsl.Given(/Three (.*) mice ran (.*)/) {|disability|}
85
99
  specific = @dsl.Given(/Three blind mice ran far/) {}
86
100
  more_specific = @dsl.Given(/^Three blind mice ran far$/) {}
101
+ register
102
+
87
103
  @step_mother.step_match("Three blind mice ran far").step_definition.should == more_specific
88
104
  end
89
105
 
@@ -97,6 +113,7 @@ spec/cucumber/step_mother_spec.rb:46:in `/Three cute (.*)/'
97
113
  @dsl.Given(/Three (.*) mice/) {|disability|}
98
114
  lambda do
99
115
  @dsl.Given(/Three (.*) mice/) {|disability|}
116
+ register
100
117
  end.should raise_error(Redundant)
101
118
  end
102
119
 
@@ -104,6 +121,7 @@ spec/cucumber/step_mother_spec.rb:46:in `/Three cute (.*)/'
104
121
  it "should not raise Redundant unless it's really redundant" do
105
122
  @dsl.Given(/^(.*) (.*) user named '(.*)'$/) {|a,b,c|}
106
123
  @dsl.Given(/^there is no (.*) user named '(.*)'$/) {|a,b|}
124
+ register
107
125
  end
108
126
 
109
127
  it "should raise an error if the world is nil" do
@@ -115,7 +133,7 @@ spec/cucumber/step_mother_spec.rb:46:in `/Three cute (.*)/'
115
133
  raise "Should fail"
116
134
  rescue RbSupport::NilWorld => e
117
135
  e.message.should == "World procs should never return nil"
118
- e.backtrace.should == ["spec/cucumber/step_mother_spec.rb:110:in `World'"]
136
+ e.backtrace.should == ["spec/cucumber/step_mother_spec.rb:128:in `World'"]
119
137
  end
120
138
  end
121
139
 
@@ -130,7 +148,7 @@ spec/cucumber/step_mother_spec.rb:46:in `/Three cute (.*)/'
130
148
 
131
149
  it "should implicitly extend world with modules" do
132
150
  @dsl.World(ModuleOne, ModuleTwo)
133
- @step_mother.begin_scenario
151
+ @step_mother.before(nil)
134
152
  class << @rb.current_world
135
153
  included_modules.index(ModuleOne).should_not == nil
136
154
  included_modules.index(ModuleTwo).should_not == nil
@@ -145,10 +163,10 @@ spec/cucumber/step_mother_spec.rb:46:in `/Three cute (.*)/'
145
163
  end.should raise_error(RbSupport::MultipleWorld, %{You can only pass a proc to #World once, but it's happening
146
164
  in 2 places:
147
165
 
148
- spec/cucumber/step_mother_spec.rb:142:in `World'
149
- spec/cucumber/step_mother_spec.rb:144:in `World'
166
+ spec/cucumber/step_mother_spec.rb:160:in `World'
167
+ spec/cucumber/step_mother_spec.rb:162:in `World'
150
168
 
151
- Use Ruby modules instead to extend your worlds. See the Cucumber::StepMother#World RDoc
169
+ Use Ruby modules instead to extend your worlds. See the Cucumber::RbSupport::RbDsl#World RDoc
152
170
  or http://wiki.github.com/aslakhellesoy/cucumber/a-whole-new-world.
153
171
 
154
172
  })
@@ -157,12 +175,13 @@ or http://wiki.github.com/aslakhellesoy/cucumber/a-whole-new-world.
157
175
  it "should find before hooks" do
158
176
  fish = @dsl.Before('@fish'){}
159
177
  meat = @dsl.Before('@meat'){}
178
+ register
160
179
 
161
180
  scenario = mock('Scenario')
162
181
  scenario.should_receive(:accept_hook?).with(fish).and_return(true)
163
182
  scenario.should_receive(:accept_hook?).with(meat).and_return(false)
164
183
 
165
- @step_mother.hooks_for(:before, scenario).should == [fish]
184
+ @rb.hooks_for(:before, scenario).should == [fish]
166
185
  end
167
186
  end
168
187
  end
@@ -2,9 +2,22 @@
2
2
  # Two lines
3
3
  Feature: Some header
4
4
 
5
+ Background:
6
+ # comment
7
+ Given whatever
8
+
5
9
  # Scenario header
6
10
  # on two lines
7
11
  Scenario: Some scenario
8
12
  Given one
9
13
  # When two
10
- Then three
14
+ Then three
15
+
16
+ Scenario Outline: Some outline
17
+ Given <one>
18
+ Then <two>
19
+
20
+ # Examples group comment
21
+ Examples:
22
+ | one | two |
23
+ | a | b |
@@ -6,7 +6,7 @@ module Cucumber
6
6
 
7
7
  before(:each) do
8
8
  l = RbSupport::RbLanguage.new(StepMother.new)
9
- l.begin_scenario
9
+ l.begin_rb_scenario
10
10
  @world = l.current_world
11
11
  end
12
12
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.96
4
+ version: 0.3.97
5
5
  platform: ruby
6
6
  authors:
7
7
  - "Aslak Helles\xC3\xB8y"
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-08-20 00:00:00 +02:00
12
+ date: 2009-08-23 00:00:00 -05:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -32,6 +32,16 @@ dependencies:
32
32
  - !ruby/object:Gem::Version
33
33
  version: 1.3.0
34
34
  version:
35
+ - !ruby/object:Gem::Dependency
36
+ name: polyglot
37
+ type: :runtime
38
+ version_requirement:
39
+ version_requirements: !ruby/object:Gem::Requirement
40
+ requirements:
41
+ - - ">="
42
+ - !ruby/object:Gem::Version
43
+ version: 0.2.8
44
+ version:
35
45
  - !ruby/object:Gem::Dependency
36
46
  name: diff-lcs
37
47
  type: :runtime
@@ -235,6 +245,7 @@ files:
235
245
  - examples/junit/features/step_definitions/steps.rb
236
246
  - examples/pure_java/README.textile
237
247
  - examples/python/features/fibonacci.feature
248
+ - examples/python/features/step_definitions/fib_steps.py
238
249
  - examples/python/features/step_definitions/fib_steps.rb
239
250
  - examples/python/features/support/env.rb
240
251
  - examples/python/lib/fib.py
@@ -356,7 +367,8 @@ files:
356
367
  - gem_tasks/gemspec.rake
357
368
  - gem_tasks/rspec.rake
358
369
  - gem_tasks/sass.rake
359
- - gem_tasks/yard.rake
370
+ - gem_tasks/sdoc.rake
371
+ - lib/README.rdoc
360
372
  - lib/autotest/cucumber.rb
361
373
  - lib/autotest/cucumber_mixin.rb
362
374
  - lib/autotest/cucumber_rails.rb
@@ -413,7 +425,7 @@ files:
413
425
  - lib/cucumber/formatter/unicode.rb
414
426
  - lib/cucumber/formatter/usage.rb
415
427
  - lib/cucumber/formatters/unicode.rb
416
- - lib/cucumber/language_support/hook_methods.rb
428
+ - lib/cucumber/language_support.rb
417
429
  - lib/cucumber/language_support/language_methods.rb
418
430
  - lib/cucumber/language_support/step_definition_methods.rb
419
431
  - lib/cucumber/languages.yml
@@ -426,6 +438,9 @@ files:
426
438
  - lib/cucumber/parser/table.tt
427
439
  - lib/cucumber/parser/treetop_ext.rb
428
440
  - lib/cucumber/platform.rb
441
+ - lib/cucumber/py_support/py_dsl.py
442
+ - lib/cucumber/py_support/py_language.py
443
+ - lib/cucumber/py_support/py_language.rb
429
444
  - lib/cucumber/rails/rspec.rb
430
445
  - lib/cucumber/rails/world.rb
431
446
  - lib/cucumber/rake/task.rb
@@ -433,13 +448,13 @@ files:
433
448
  - lib/cucumber/rb_support/rb_hook.rb
434
449
  - lib/cucumber/rb_support/rb_language.rb
435
450
  - lib/cucumber/rb_support/rb_step_definition.rb
451
+ - lib/cucumber/rb_support/rb_world.rb
436
452
  - lib/cucumber/rspec_neuter.rb
437
453
  - lib/cucumber/step_match.rb
438
454
  - lib/cucumber/step_mother.rb
439
455
  - lib/cucumber/version.rb
440
456
  - lib/cucumber/webrat/element_locator.rb
441
457
  - lib/cucumber/webrat/table_locator.rb
442
- - lib/cucumber/world.rb
443
458
  - rails_generators/cucumber/USAGE
444
459
  - rails_generators/cucumber/cucumber_generator.rb
445
460
  - rails_generators/cucumber/templates/cucumber
@@ -463,7 +478,6 @@ files:
463
478
  - spec/cucumber/ast/step_collection_spec.rb
464
479
  - spec/cucumber/ast/step_spec.rb
465
480
  - spec/cucumber/ast/table_spec.rb
466
- - spec/cucumber/ast/visitor_spec.rb
467
481
  - spec/cucumber/broadcaster_spec.rb
468
482
  - spec/cucumber/cli/configuration_spec.rb
469
483
  - spec/cucumber/cli/drb_client_spec.rb
@@ -482,8 +496,8 @@ files:
482
496
  - spec/cucumber/rails/stubs/mini_rails.rb
483
497
  - spec/cucumber/rails/stubs/test_help.rb
484
498
  - spec/cucumber/rails/world_spec.rb
499
+ - spec/cucumber/rb_support/rb_step_definition_spec.rb
485
500
  - spec/cucumber/sell_cucumbers.feature
486
- - spec/cucumber/step_definition_spec.rb
487
501
  - spec/cucumber/step_mother_spec.rb
488
502
  - spec/cucumber/treetop_parser/empty_feature.feature
489
503
  - spec/cucumber/treetop_parser/empty_scenario.feature