cucumber 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (38) hide show
  1. data/History.txt +19 -0
  2. data/Manifest.txt +5 -1
  3. data/examples/self_test/features/tons_of_cukes.feature +52 -0
  4. data/examples/sinatra/features/support/env.rb +6 -2
  5. data/examples/tickets/features/248.feature +11 -0
  6. data/examples/tickets/features/step_definitons/248_steps.rb +15 -0
  7. data/features/cucumber_cli.feature +1 -1
  8. data/features/custom_formatter.feature +2 -2
  9. data/features/usage.feature +108 -0
  10. data/lib/autotest/cucumber_mixin.rb +1 -1
  11. data/lib/cucumber/ast/feature.rb +1 -1
  12. data/lib/cucumber/ast/features.rb +6 -0
  13. data/lib/cucumber/ast/step.rb +2 -13
  14. data/lib/cucumber/ast/step_invocation.rb +11 -3
  15. data/lib/cucumber/ast/table.rb +4 -0
  16. data/lib/cucumber/cli/configuration.rb +11 -14
  17. data/lib/cucumber/cli/main.rb +14 -21
  18. data/lib/cucumber/formatter.rb +1 -1
  19. data/lib/cucumber/formatter/html.rb +47 -8
  20. data/lib/cucumber/formatter/pretty.rb +1 -2
  21. data/lib/cucumber/formatter/rerun.rb +8 -0
  22. data/lib/cucumber/formatter/usage.rb +69 -0
  23. data/lib/cucumber/jbehave.rb +1 -0
  24. data/lib/cucumber/rails/world.rb +22 -21
  25. data/lib/cucumber/step_definition.rb +65 -54
  26. data/lib/cucumber/step_match.rb +10 -2
  27. data/lib/cucumber/step_mother.rb +1 -8
  28. data/lib/cucumber/version.rb +1 -1
  29. data/rails_generators/cucumber/templates/env.rb +2 -0
  30. data/rails_generators/feature/templates/steps.erb +1 -1
  31. data/spec/cucumber/ast/feature_spec.rb +2 -1
  32. data/spec/cucumber/ast/step_collection_spec.rb +8 -0
  33. data/spec/cucumber/cli/configuration_spec.rb +18 -6
  34. data/spec/cucumber/cli/main_spec.rb +1 -13
  35. data/spec/cucumber/parser/feature_parser_spec.rb +15 -15
  36. data/spec/cucumber/step_definition_spec.rb +21 -9
  37. metadata +7 -3
  38. data/gem_tasks/jar.rake +0 -67
@@ -10,10 +10,10 @@ module Cucumber
10
10
  def invoke(world, multiline_arg)
11
11
  all_args = @args.dup
12
12
  all_args << multiline_arg if multiline_arg
13
- @step_definition.invoke(world, all_args, @step_name)
13
+ @step_definition.invoke(world, all_args)
14
14
  end
15
15
 
16
- def format_args(format)
16
+ def format_args(format = lambda{|a| a})
17
17
  @formatted_step_name || @step_definition.format_args(@step_name, format)
18
18
  end
19
19
 
@@ -24,6 +24,10 @@ module Cucumber
24
24
  def backtrace_line
25
25
  @step_definition.backtrace_line
26
26
  end
27
+
28
+ def text_length
29
+ @step_definition.text_length
30
+ end
27
31
  end
28
32
 
29
33
  class NoStepMatch
@@ -45,5 +49,9 @@ module Cucumber
45
49
  def backtrace_line
46
50
  @step.backtrace_line
47
51
  end
52
+
53
+ def text_length
54
+ @step.text_length
55
+ end
48
56
  end
49
57
  end
@@ -101,7 +101,7 @@ module Cucumber
101
101
  end
102
102
 
103
103
  def After(&proc)
104
- (@after_procs ||= []) << proc
104
+ (@after_procs ||= []).unshift(proc)
105
105
  end
106
106
 
107
107
  # Registers a World proc. You can call this method as many times as you
@@ -141,13 +141,6 @@ module Cucumber
141
141
  def snippet_text(step_keyword, step_name)
142
142
  @snippet_generator.snippet_text(step_keyword, step_name)
143
143
  end
144
-
145
- def print_step_definitions(out)
146
- step_definitions.each do |step_definition|
147
- indent = max_step_definition_length - step_definition.text_length
148
- out.puts(step_definition.to_s(indent))
149
- end
150
- end
151
144
 
152
145
  def before_and_after(scenario, skip=false)
153
146
  unless current_world || skip
@@ -2,7 +2,7 @@ module Cucumber #:nodoc:
2
2
  class VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 2
5
- TINY = 0
5
+ TINY = 1
6
6
  PATCH = nil # Set to nil for official release
7
7
 
8
8
  STRING = [MAJOR, MINOR, TINY, PATCH].compact.join('.')
@@ -4,6 +4,8 @@ require File.expand_path(File.dirname(__FILE__) + '/../../config/environment')
4
4
  require 'cucumber/rails/world'
5
5
  require 'cucumber/formatters/unicode' # Comment out this line if you don't want Cucumber Unicode support
6
6
  Cucumber::Rails.use_transactional_fixtures
7
+ Cucumber::Rails.bypass_rescue # Comment out this line if you want Rails own error handling
8
+ # (e.g. rescue_action_in_public / rescue_responses / rescue_from)
7
9
 
8
10
  require 'webrat'
9
11
 
@@ -10,7 +10,7 @@ When /^I delete the (\d+)(?:st|nd|rd|th) <%= singular_name %>$/ do |pos|
10
10
  end
11
11
 
12
12
  Then /^I should see the following <%= plural_name %>:$/ do |<%= plural_name %>|
13
- <%= plural_name %>.raw[1..-1].each_with_index do |row, i|
13
+ <%= plural_name %>.rows.each_with_index do |row, i|
14
14
  row.each_with_index do |cell, j|
15
15
  response.should have_selector("table > tr:nth-child(#{i+2}) > td:nth-child(#{j+1})") { |td|
16
16
  td.inner_text.should == cell
@@ -9,7 +9,8 @@ module Cucumber
9
9
  it "should convert to sexp" do
10
10
  feature = create_feature(Object.new)
11
11
  feature.to_sexp.should ==
12
- [:feature,
12
+ [:feature,
13
+ "features/pretty_printing.feature",
13
14
  "Pretty printing",
14
15
  [:comment, "# My feature comment\n"],
15
16
  [:tag, "one"],
@@ -3,6 +3,14 @@ require File.dirname(__FILE__) + '/../../spec_helper'
3
3
  module Cucumber
4
4
  module Ast
5
5
  describe StepCollection do
6
+ it "should convert And to Given in snippets" do
7
+ c = StepCollection.new([
8
+ Step.new(1, 'Given', 'cukes'),
9
+ Step.new(2, 'And', 'turnips')
10
+ ])
11
+ actual_keywords = c.step_invocations.map{|i| i.actual_keyword}
12
+ actual_keywords.should == %w{Given Given}
13
+ end
6
14
  end
7
15
  end
8
16
  end
@@ -18,7 +18,7 @@ module Cli
18
18
  it "should require files in support paths first" do
19
19
  File.stub!(:directory?).and_return(true)
20
20
  Dir.stub!(:[]).and_return(["/features/step_definitions/foo.rb","/features/support/bar.rb"])
21
-
21
+
22
22
  config = Configuration.new(StringIO.new)
23
23
  config.parse!(%w{--require /features})
24
24
 
@@ -31,7 +31,7 @@ module Cli
31
31
  it "should require env.rb files first" do
32
32
  File.stub!(:directory?).and_return(true)
33
33
  Dir.stub!(:[]).and_return(["/features/support/a_file.rb","/features/support/env.rb"])
34
-
34
+
35
35
  config = Configuration.new(StringIO.new)
36
36
  config.parse!(%w{--require /features})
37
37
 
@@ -40,7 +40,19 @@ module Cli
40
40
  "/features/support/a_file.rb"
41
41
  ]
42
42
  end
43
-
43
+
44
+ it "should not require env.rb files when --dry-run" do
45
+ File.stub!(:directory?).and_return(true)
46
+ Dir.stub!(:[]).and_return(["/features/support/a_file.rb","/features/support/env.rb"])
47
+
48
+ config = Configuration.new(StringIO.new)
49
+ config.parse!(%w{--require /features --dry-run})
50
+
51
+ config.files_to_require.should == [
52
+ "/features/support/a_file.rb"
53
+ ]
54
+ end
55
+
44
56
  it "should expand args from YAML file" do
45
57
  given_cucumber_yml_defined_as({'bongo' => '--require from/yml'})
46
58
 
@@ -101,11 +113,11 @@ END_OF_MESSAGE
101
113
  config = Configuration.new(StringIO.new, error = StringIO.new)
102
114
  config.parse!(%w{--profile i_do_not_exist})
103
115
 
104
- error.string.should match(/cucumber.yml was not found. Please refer to cucumber's documentaion on defining profiles in cucumber.yml./)
116
+ error.string.should match(/cucumber.yml was not found. Please refer to cucumber's documentation on defining profiles in cucumber.yml./)
105
117
  end
106
118
 
107
119
  it "should provide a helpful error message when cucumber.yml is blank or malformed" do
108
- expected_error_message = /cucumber.yml was found, but was blank or malformed. Please refer to cucumber's documentaion on correct profile usage./
120
+ expected_error_message = /cucumber.yml was found, but was blank or malformed. Please refer to cucumber's documentation on correct profile usage./
109
121
 
110
122
  ['', 'sfsadfs', "--- \n- an\n- array\n", "---dddfd"].each do |bad_input|
111
123
  given_cucumber_yml_defined_as(bad_input)
@@ -118,7 +130,7 @@ END_OF_MESSAGE
118
130
  end
119
131
 
120
132
  it "should procide a helpful error message when the YAML can not be parsed" do
121
- expected_error_message = /cucumber.yml was found, but could not be parsed. Please refer to cucumber's documentaion on correct profile usage./
133
+ expected_error_message = /cucumber.yml was found, but could not be parsed. Please refer to cucumber's documentation on correct profile usage./
122
134
 
123
135
  given_cucumber_yml_defined_as("input that causes an exception in YAML loading")
124
136
  YAML.should_receive(:load).and_raise Exception
@@ -10,18 +10,6 @@ module Cli
10
10
  Kernel.stub!(:exit).and_return(nil)
11
11
  end
12
12
 
13
- it "should print step definitions" do
14
- step_mother = Object.new.extend(StepMother)
15
- step_mother.Given(/Bonjour/) {}
16
- step_mother.Given(/Monde/) {}
17
- @cli = Main.new(%w{-S}, @out)
18
- @cli.execute!(step_mother)
19
- @out.string.should == %{
20
- /Bonjour/ # spec/cucumber/cli/main_spec.rb:15
21
- /Monde/ # spec/cucumber/cli/main_spec.rb:16
22
- }.lstrip
23
- end
24
-
25
13
  describe "verbose mode" do
26
14
 
27
15
  before(:each) do
@@ -54,7 +42,7 @@ module Cli
54
42
  describe "diffing" do
55
43
 
56
44
  before :each do
57
- @configuration = mock('Configuration', :null_object => true, :print_step_definitions? => nil)
45
+ @configuration = mock('Configuration', :null_object => true)
58
46
  Configuration.should_receive(:new).and_return(@configuration)
59
47
 
60
48
  @step_mother = mock('StepMother', :null_object => true)
@@ -33,7 +33,7 @@ with blurb
33
33
  parse(%{# My comment
34
34
  Feature: hi
35
35
  }).to_sexp.should ==
36
- [:feature, "Feature: hi\n",
36
+ [:feature, nil, "Feature: hi\n",
37
37
  [:comment, "# My comment\n"]]
38
38
  end
39
39
 
@@ -45,7 +45,7 @@ Feature: hi
45
45
  # When bar
46
46
  Then baz
47
47
  }).to_sexp.should ==
48
- [:feature, "Feature: Hi",
48
+ [:feature, nil, "Feature: Hi",
49
49
  [:scenario, 2, "Scenario:", "Hello",
50
50
  [:step, 3, "Given", "foo"],
51
51
  [:comment, "# When bar\n"],
@@ -59,18 +59,18 @@ Feature: hi
59
59
  # World
60
60
  Feature: hi
61
61
  }).to_sexp.should ==
62
- [:feature, "Feature: hi\n",
62
+ [:feature, nil, "Feature: hi\n",
63
63
  [:comment, "# Hello\n# World\n"]]
64
64
  end
65
65
 
66
66
  it "should parse a file with no comments" do
67
67
  parse("Feature: hi\n").to_sexp.should ==
68
- [:feature, "Feature: hi\n"]
68
+ [:feature, nil, "Feature: hi\n"]
69
69
  end
70
70
 
71
71
  it "should parse a file with only a multiline comment with newlines" do
72
72
  parse("# Hello\n\n# World\n").to_sexp.should ==
73
- [:feature, "",
73
+ [:feature, nil, "",
74
74
  [:comment, "# Hello\n\n# World\n"]]
75
75
  end
76
76
  end
@@ -78,7 +78,7 @@ Feature: hi
78
78
  describe "Tags" do
79
79
  it "should parse a file with tags on a feature" do
80
80
  parse("# My comment\n@hello @world Feature: hi\n").to_sexp.should ==
81
- [:feature, "Feature: hi\n",
81
+ [:feature, nil, "Feature: hi\n",
82
82
  [:comment, "# My comment\n"],
83
83
  [:tag, "hello"],
84
84
  [:tag, "world"]]
@@ -96,7 +96,7 @@ Feature: hi
96
96
  @st3
97
97
  @st4 @ST5 @#^%&ST6**!
98
98
  Scenario: Second}).to_sexp.should ==
99
- [:feature, "Feature: hi",
99
+ [:feature, nil, "Feature: hi",
100
100
  [:comment, "# FC\n "],
101
101
  [:tag, "ft"],
102
102
  [:scenario, 6, 'Scenario:', 'First',
@@ -111,7 +111,7 @@ Feature: hi
111
111
  describe "Background" do
112
112
  it "should have steps" do
113
113
  parse("Feature: Hi\nBackground:\nGiven I am a step\n").to_sexp.should ==
114
- [:feature, "Feature: Hi",
114
+ [:feature, nil, "Feature: Hi",
115
115
  [:background, 2, "Background:",
116
116
  [:step, 3, "Given", "I am a step"]]]
117
117
  end
@@ -120,7 +120,7 @@ Feature: hi
120
120
  describe "Scenarios" do
121
121
  it "can be empty" do
122
122
  parse("Feature: Hi\n\nScenario: Hello\n").to_sexp.should ==
123
- [:feature, "Feature: Hi",
123
+ [:feature, nil, "Feature: Hi",
124
124
  [:scenario, 3, "Scenario:", "Hello"]]
125
125
  end
126
126
 
@@ -134,7 +134,7 @@ Scenario: bar
134
134
 
135
135
  it "should have steps" do
136
136
  parse("Feature: Hi\nScenario: Hello\nGiven I am a step\n").to_sexp.should ==
137
- [:feature, "Feature: Hi",
137
+ [:feature, nil, "Feature: Hi",
138
138
  [:scenario, 2, "Scenario:", "Hello",
139
139
  [:step_invocation, 3, "Given", "I am a step"]]]
140
140
  end
@@ -145,7 +145,7 @@ Scenario: Hello
145
145
  Given I have a table
146
146
  |a|b|
147
147
  }).to_sexp.should ==
148
- [:feature, "Feature: Hi",
148
+ [:feature, nil, "Feature: Hi",
149
149
  [:scenario, 2, "Scenario:", "Hello",
150
150
  [:step_invocation, 3, "Given", "I have a table",
151
151
  [:table,
@@ -166,7 +166,7 @@ Given I have a string
166
166
  """
167
167
 
168
168
  }).to_sexp.should ==
169
- [:feature, "Feature: Hi",
169
+ [:feature, nil, "Feature: Hi",
170
170
  [:scenario, 2, "Scenario:", "Hello",
171
171
  [:step_invocation, 3, "Given", "I have a string",
172
172
  [:py_string, "hello\nworld"]]]]
@@ -182,7 +182,7 @@ Examples:
182
182
  |what|
183
183
  |green|
184
184
  }).to_sexp.should ==
185
- [:feature, "Feature: Hi",
185
+ [:feature, nil, "Feature: Hi",
186
186
  [:scenario_outline, "Scenario Outline:", "Hello",
187
187
  [:step, 3, "Given", "a <what> cucumber"],
188
188
  [:examples, "Examples:", "",
@@ -203,7 +203,7 @@ Examples:
203
203
  |a|b|
204
204
  |c|d|
205
205
  }).to_sexp.should ==
206
- [:feature, "Feature: Hi",
206
+ [:feature, nil, "Feature: Hi",
207
207
  [:scenario_outline, "Scenario Outline:", "Hello",
208
208
  [:step, 4, "Given", "I have a table",
209
209
  [:table,
@@ -233,7 +233,7 @@ Examples:
233
233
  |5|6|
234
234
 
235
235
  ").to_sexp.should ==
236
- [:feature, "Feature: Hi",
236
+ [:feature, nil, "Feature: Hi",
237
237
  [:scenario_outline, "Scenario Outline:", "Hello",
238
238
  [:step, 5, "Given", "I have a table",
239
239
  [:table,
@@ -58,15 +58,7 @@ module Cucumber
58
58
  step_match("Outside").invoke(@world, nil)
59
59
  end.should raise_error(Pending, "Do me!")
60
60
  end
61
-
62
- it "should have a #to_s suitable for automcompletion" do
63
- stepdef = Given /Hello (.*)/ do
64
- end
65
-
66
- stepdef.to_s.should == '/Hello (.*)/ # spec/cucumber/step_definition_spec.rb:63'
67
- stepdef.to_s(2).should == '/Hello (.*)/ # spec/cucumber/step_definition_spec.rb:63'
68
- end
69
-
61
+
70
62
  it "should allow announce" do
71
63
  v = mock('visitor')
72
64
  v.should_receive(:announce).with('wasup')
@@ -77,5 +69,25 @@ module Cucumber
77
69
  end
78
70
  step_match("Loud").invoke(world, nil)
79
71
  end
72
+
73
+ def unindented(s)
74
+ s.split("\n")[1..-2].join("\n").indent(-8)
75
+ end
76
+
77
+ it "should recognise quotes in name and make according regexp" do
78
+ StepDefinition.snippet_text('Given', 'A "first" arg').should == unindented(%{
79
+ Given /^A "([^\\"]*)" arg$/ do |arg1|
80
+ pending
81
+ end
82
+ })
83
+ end
84
+
85
+ it "should not use quote group when there are no quotes" do
86
+ StepDefinition.snippet_text('Given', 'A first arg').should == unindented(%{
87
+ Given /^A first arg$/ do
88
+ pending
89
+ end
90
+ })
91
+ end
80
92
  end
81
93
  end
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.2.0
4
+ version: 0.2.1
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-03-18 00:00:00 -04:00
12
+ date: 2009-03-25 00:00:00 +01:00
13
13
  default_executable:
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
@@ -245,6 +245,7 @@ files:
245
245
  - examples/self_test/features/step_definitions/sample_steps.rb
246
246
  - examples/self_test/features/support/env.rb
247
247
  - examples/self_test/features/support/tag_count_formatter.rb
248
+ - examples/self_test/features/tons_of_cukes.feature
248
249
  - examples/sinatra/Rakefile
249
250
  - examples/sinatra/app.rb
250
251
  - examples/sinatra/features/add.feature
@@ -264,9 +265,11 @@ files:
264
265
  - examples/tickets/features/180.feature
265
266
  - examples/tickets/features/236.feature
266
267
  - examples/tickets/features/241.feature
268
+ - examples/tickets/features/248.feature
267
269
  - examples/tickets/features/lib/eatting_machine.rb
268
270
  - examples/tickets/features/lib/pantry.rb
269
271
  - examples/tickets/features/scenario_outline.feature
272
+ - examples/tickets/features/step_definitons/248_steps.rb
270
273
  - examples/tickets/features/step_definitons/scenario_outline_steps.rb
271
274
  - examples/tickets/features/step_definitons/tickets_steps.rb
272
275
  - examples/tickets/features/tickets.feature
@@ -284,13 +287,13 @@ files:
284
287
  - features/step_definitions/cucumber_steps.rb
285
288
  - features/step_definitions/extra_steps.rb
286
289
  - features/support/env.rb
290
+ - features/usage.feature
287
291
  - gem_tasks/deployment.rake
288
292
  - gem_tasks/environment.rake
289
293
  - gem_tasks/features.rake
290
294
  - gem_tasks/fix_cr_lf.rake
291
295
  - gem_tasks/flog.rake
292
296
  - gem_tasks/gemspec.rake
293
- - gem_tasks/jar.rake
294
297
  - gem_tasks/rspec.rake
295
298
  - gem_tasks/yard.rake
296
299
  - lib/autotest/cucumber.rb
@@ -337,6 +340,7 @@ files:
337
340
  - lib/cucumber/formatter/progress.rb
338
341
  - lib/cucumber/formatter/rerun.rb
339
342
  - lib/cucumber/formatter/unicode.rb
343
+ - lib/cucumber/formatter/usage.rb
340
344
  - lib/cucumber/formatters/unicode.rb
341
345
  - lib/cucumber/jbehave.rb
342
346
  - lib/cucumber/languages.yml
@@ -1,67 +0,0 @@
1
- # http://blog.nicksieger.com/articles/2009/01/10/jruby-1-1-6-gems-in-a-jar
2
-
3
- USE_JRUBY_VERSION = '1.1.6'
4
- USE_JBEHAVE_VERSION = '2.1'
5
- USE_JUNIT_VERSION = '4.5'
6
- USE_HAMCREST_VERSION = '1.1'
7
- CUCUMBER_VERSIONED = "cucumber-#{Cucumber::VERSION::STRING}"
8
-
9
- task :jar => [
10
- :clean,
11
- 'jar:download_jruby',
12
- 'jar:install_gems',
13
- 'jar:bundle_gems',
14
- 'jar:download_jars_deps',
15
- 'jar:unpack_jar_deps',
16
- 'jar:bundle_jars',
17
- 'jar:fix_gem_binaries',
18
- 'jar:test_jar'
19
- ]
20
-
21
- namespace :jar do
22
- task :download_jruby do
23
- sh "wget http://dist.codehaus.org/jruby/#{USE_JRUBY_VERSION}/jruby-complete-#{USE_JRUBY_VERSION}.jar -O #{CUCUMBER_VERSIONED}.jar"
24
- end
25
-
26
- task :install_gems => :gem do
27
- mkdir 'pkg/jar_gems'
28
- sh "java -jar #{CUCUMBER_VERSIONED}.jar -S gem install -i ./pkg/jar_gems pkg/#{CUCUMBER_VERSIONED}.gem --no-ri --no-rdoc"
29
- end
30
-
31
- task :bundle_gems do
32
- sh "jar uf #{CUCUMBER_VERSIONED}.jar -C pkg/jar_gems ."
33
- end
34
-
35
- task :download_jars_deps do
36
- mkdir 'pkg/jar_deps'
37
- sh "wget http://repository.codehaus.org/org/jbehave/jbehave-core/#{USE_JBEHAVE_VERSION}/jbehave-core-#{USE_JBEHAVE_VERSION}.jar -O pkg/jar_deps/jbehave-core-#{USE_JBEHAVE_VERSION}.jar"
38
- sh "wget http://mirrors.ibiblio.org/pub/mirrors/maven2/junit/junit/#{USE_JUNIT_VERSION}/junit-#{USE_JUNIT_VERSION}.jar -O pkg/jar_deps/junit-#{USE_JUNIT_VERSION}.jar"
39
- sh "wget http://hamcrest.googlecode.com/files/hamcrest-all-#{USE_HAMCREST_VERSION}.jar -O pkg/jar_deps/hamcrest-all-#{USE_HAMCREST_VERSION}.jar"
40
- end
41
-
42
- task :unpack_jar_deps do
43
- Dir.chdir 'pkg/jar_deps' do
44
- Dir['*.jar'].each do |jar|
45
- sh "jar xvf #{jar}"
46
- rm_rf jar
47
- rm_rf 'META-INF'
48
- end
49
- end
50
- end
51
-
52
- task :bundle_jars do
53
- sh "jar uf #{CUCUMBER_VERSIONED}.jar -C pkg/jar_deps ."
54
- end
55
-
56
- task :fix_gem_binaries do
57
- mkdir_p 'pkg/gem_binaries/META-INF/jruby.home'
58
- Dir.chdir 'pkg/gem_binaries/META-INF/jruby.home' do
59
- sh "jar xvf ../../../../#{CUCUMBER_VERSIONED}.jar bin"
60
- end
61
- sh "jar uf #{CUCUMBER_VERSIONED}.jar -C pkg/gem_binaries ."
62
- end
63
-
64
- task :test_jar do
65
- sh "java -cp examples/jbehave/target/classes -jar #{CUCUMBER_VERSIONED}.jar -S cucumber examples/jbehave/features"
66
- end
67
- end