gherkin 2.2.0-universal-dotnet → 2.2.1-universal-dotnet
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +2 -1
- data/.rvmrc +1 -0
- data/Gemfile +4 -0
- data/Gemfile.lock +49 -0
- data/History.txt +8 -0
- data/README.rdoc +2 -2
- data/Rakefile +6 -49
- data/VERSION +1 -0
- data/build_native_gems.sh +8 -0
- data/features/step_definitions/{json_lexer_steps.rb → json_parser_steps.rb} +1 -1
- data/features/step_definitions/pretty_formatter_steps.rb +1 -1
- data/features/support/env.rb +4 -0
- data/gherkin.gemspec +57 -0
- data/lib/gherkin/formatter/model.rb +16 -7
- data/lib/gherkin/json_parser.rb +1 -1
- data/lib/gherkin/listener/formatter_listener.rb +1 -1
- data/lib/gherkin/tools/files.rb +1 -1
- data/lib/gherkin/tools/reformat.rb +1 -2
- data/lib/gherkin/version.rb +3 -0
- data/spec/gherkin/formatter/pretty_formatter_spec.rb +4 -4
- data/spec/gherkin/json_parser_spec.rb +1 -1
- data/spec/gherkin/shared/lexer_group.rb +1 -1
- data/spec/gherkin/shared/py_string_group.rb +1 -1
- data/spec/gherkin/shared/tags_group.rb +1 -1
- data/spec/spec_helper.rb +3 -0
- data/tasks/compile.rake +1 -1
- data/tasks/cucumber.rake +1 -2
- data/tasks/gems.rake +31 -35
- data/tasks/ikvm.rake +13 -8
- data/tasks/rdoc.rake +1 -4
- data/tasks/release.rake +7 -15
- data/tasks/rspec.rake +0 -1
- metadata +67 -45
- data/VERSION.yml +0 -5
- data/json-simple-1.1.dll +0 -0
data/.gitignore
CHANGED
data/.rvmrc
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
rvm @cucumber
|
data/Gemfile
ADDED
data/Gemfile.lock
ADDED
@@ -0,0 +1,49 @@
|
|
1
|
+
PATH
|
2
|
+
remote: /Users/aslakhellesoy/scm/cucumber
|
3
|
+
specs:
|
4
|
+
cucumber (0.9.0)
|
5
|
+
builder (~> 2.1.2)
|
6
|
+
diff-lcs (~> 1.1.2)
|
7
|
+
json_pure (~> 1.4.6)
|
8
|
+
term-ansicolor (~> 1.0.5)
|
9
|
+
|
10
|
+
PATH
|
11
|
+
remote: .
|
12
|
+
specs:
|
13
|
+
gherkin (2.2.1)
|
14
|
+
trollop (~> 1.16.2)
|
15
|
+
|
16
|
+
GEM
|
17
|
+
remote: http://rubygems.org/
|
18
|
+
specs:
|
19
|
+
awesome_print (0.2.1)
|
20
|
+
builder (2.1.2)
|
21
|
+
diff-lcs (1.1.2)
|
22
|
+
json_pure (1.4.6)
|
23
|
+
rake (0.8.7)
|
24
|
+
rake-compiler (0.7.1)
|
25
|
+
rake (>= 0.8.3, < 0.9)
|
26
|
+
rspec (2.0.0.beta.20)
|
27
|
+
rspec-core (= 2.0.0.beta.20)
|
28
|
+
rspec-expectations (= 2.0.0.beta.20)
|
29
|
+
rspec-mocks (= 2.0.0.beta.20)
|
30
|
+
rspec-core (2.0.0.beta.20)
|
31
|
+
rspec-expectations (2.0.0.beta.20)
|
32
|
+
diff-lcs (>= 1.1.2)
|
33
|
+
rspec-mocks (2.0.0.beta.20)
|
34
|
+
term-ansicolor (1.0.5)
|
35
|
+
trollop (1.16.2)
|
36
|
+
|
37
|
+
PLATFORMS
|
38
|
+
java
|
39
|
+
ruby
|
40
|
+
x86-mingw32
|
41
|
+
|
42
|
+
DEPENDENCIES
|
43
|
+
awesome_print (~> 0.2.1)
|
44
|
+
cucumber!
|
45
|
+
gherkin!
|
46
|
+
rake (~> 0.8.7)
|
47
|
+
rake-compiler (~> 0.7.1)
|
48
|
+
rspec (~> 2.0.0.beta.20)
|
49
|
+
trollop (~> 1.16.2)
|
data/History.txt
CHANGED
@@ -1,3 +1,11 @@
|
|
1
|
+
== 2.2.1
|
2
|
+
|
3
|
+
=== New Features
|
4
|
+
* Windows gems are now built against 1.8.6-p287 and 1.9.1-p243, on both mswin32 and mingw32, and should work on 1.8.6, 1.8.7, 1.9.1 and 1.9.2 versions of rubyinstaller.org as well as older windows rubies. (Aslak Hellesøy)
|
5
|
+
|
6
|
+
=== Changed features
|
7
|
+
* Build system no longer uses Jeweler - only Rake, Bundler and Rubygems (Aslak Hellesøy)
|
8
|
+
|
1
9
|
== 2.2.0 (2010-07-26)
|
2
10
|
|
3
11
|
This release breaks some APIs since the previous 2.1.5 release. If you install gherkin 2.2.0 you must also upgrade to
|
data/README.rdoc
CHANGED
@@ -33,7 +33,7 @@ E.g. in Bash, export RL_LANG="en,fr,no". This can be quite helpful when modifyin
|
|
33
33
|
** ikvm/Gherkin/Gherkin.csproj
|
34
34
|
* Make sure both JRuby and MRI has the latest Cucumber installed (from source) otherwise the jruby gem might not get the jar inside it.
|
35
35
|
** Install cucumber without gherkin dep: gem install --ignore-dependencies pkg/cucumber
|
36
|
-
* rake release:ALL
|
36
|
+
* rake gems:prepare && ./build_native_gems.sh && rake release:ALL
|
37
37
|
* Announce on Cucumber list, IRC and Twitter.
|
38
38
|
|
39
39
|
== Configuring Rake-Compiler for cross compilation
|
@@ -41,7 +41,7 @@ In order to build Windows binaries (so we can release Windows gems from OS X/Lin
|
|
41
41
|
|
42
42
|
http://github.com/luislavena/rake-compiler/
|
43
43
|
|
44
|
-
I didn't want to install macports (I'm on homebrew) and I couldn't figure out how to build MinGW myself. I got prebuilt binaries:
|
44
|
+
I didn't want to install macports (I'm on homebrew) and I couldn't figure out how to build MinGW myself. I got prebuilt binaries (version 4.3.0):
|
45
45
|
http://crossgcc.rts-software.org/doku.php - just add the bin folder to your PATH
|
46
46
|
|
47
47
|
== Note on Patches/Pull Requests
|
data/Rakefile
CHANGED
@@ -1,56 +1,13 @@
|
|
1
1
|
# encoding: utf-8
|
2
|
-
require 'rbconfig'
|
3
2
|
require 'rubygems'
|
4
|
-
require '
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
config = YAML.load_file('VERSION.yml')
|
9
|
-
GHERKIN_VERSION = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
|
3
|
+
require 'bundler'
|
4
|
+
Bundler.setup
|
5
|
+
Bundler::GemHelper.install_tasks
|
10
6
|
|
11
|
-
|
12
|
-
require 'jeweler'
|
13
|
-
Jeweler::Tasks.new do |gem|
|
14
|
-
gem.name = "gherkin"
|
15
|
-
gem.summary = %Q{Fast Gherkin lexer/parser}
|
16
|
-
gem.description = %Q{A fast Gherkin lexer/parser based on the Ragel State Machine Compiler.}
|
17
|
-
gem.email = "cukes@googlegroups.com"
|
18
|
-
gem.homepage = "http://github.com/aslakhellesoy/gherkin"
|
19
|
-
gem.authors = ["Mike Sassak", "Gregory Hnatiuk", "Aslak Hellesøy"]
|
20
|
-
gem.executables = ["gherkin"]
|
21
|
-
gem.add_dependency "trollop", "~> 1.16.2"
|
22
|
-
gem.add_development_dependency 'awesome_print', '~> 0.2.1'
|
23
|
-
gem.add_development_dependency 'rspec', '~> 2.0.0.beta.17'
|
24
|
-
gem.add_development_dependency "cucumber", "~> 0.9.0"
|
25
|
-
gem.add_development_dependency "rake-compiler", "~> 0.7.0" unless defined?(JRUBY_VERSION)
|
7
|
+
require 'rake/clean'
|
26
8
|
|
27
|
-
|
28
|
-
|
29
|
-
case ENV['PLATFORM']
|
30
|
-
when 'java'
|
31
|
-
gem.platform = 'java'
|
32
|
-
gem.files += FileList['lib/gherkin.jar']
|
33
|
-
gem.extensions = []
|
34
|
-
when 'i386-mswin32', 'i386-mingw32'
|
35
|
-
gem.platform = ENV['PLATFORM']
|
36
|
-
gem.files += FileList['lib/*/*.so']
|
37
|
-
gem.extensions = []
|
38
|
-
when 'universal-dotnet'
|
39
|
-
gem.platform = ENV['PLATFORM']
|
40
|
-
gem.files += FileList['lib/*.dll']
|
41
|
-
gem.extensions = []
|
42
|
-
else
|
43
|
-
gem.files += FileList['lib/gherkin/rb_lexer/*.rb']
|
44
|
-
gem.files += FileList['ext/**/*.c']
|
45
|
-
gem.extensions = FileList['ext/**/extconf.rb']
|
46
|
-
end
|
47
|
-
|
48
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
49
|
-
end
|
50
|
-
Jeweler::GemcutterTasks.new
|
51
|
-
rescue LoadError
|
52
|
-
warn "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
53
|
-
end
|
9
|
+
$:.unshift(File.dirname(__FILE__) + '/lib')
|
10
|
+
require 'gherkin/version'
|
54
11
|
|
55
12
|
Dir['tasks/**/*.rake'].each { |rake| load File.expand_path(rake) }
|
56
13
|
|
data/VERSION
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
2.2.1
|
@@ -0,0 +1,8 @@
|
|
1
|
+
#!/bin/sh
|
2
|
+
rm -Rf release
|
3
|
+
mkdir release
|
4
|
+
GEM_PLATFORM=java gem build gherkin.gemspec
|
5
|
+
GEM_PLATFORM=i386-mswin32 gem build gherkin.gemspec
|
6
|
+
GEM_PLATFORM=i386-mingw32 gem build gherkin.gemspec
|
7
|
+
GEM_PLATFORM=universal-dotnet gem build gherkin.gemspec
|
8
|
+
mv *.gem release
|
@@ -12,7 +12,7 @@ Given /^a JSON lexer$/ do
|
|
12
12
|
end
|
13
13
|
|
14
14
|
Given /^the following JSON is parsed:$/ do |text|
|
15
|
-
@json_parser.parse(JSON.pretty_generate(JSON.parse(text)), "unknown.json")
|
15
|
+
@json_parser.parse(JSON.pretty_generate(JSON.parse(text)), "unknown.json", 0)
|
16
16
|
end
|
17
17
|
|
18
18
|
Then /^the outputted text should be:$/ do |expected_text|
|
@@ -23,7 +23,7 @@ module PrettyPlease
|
|
23
23
|
result = StringIO.new
|
24
24
|
pretty_formatter = Gherkin::Formatter::PrettyFormatter.new(result, false)
|
25
25
|
json_parser = Gherkin::JSONParser.new(pretty_formatter)
|
26
|
-
json_parser.parse(json.string, "#{feature_path}.json")
|
26
|
+
json_parser.parse(json.string, "#{feature_path}.json", 0)
|
27
27
|
|
28
28
|
result.string
|
29
29
|
end
|
data/features/support/env.rb
CHANGED
data/gherkin.gemspec
ADDED
@@ -0,0 +1,57 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
gherkin_dir = Dir.pwd =~ /gherkin\/tmp/ ? File.expand_path("../../../..", Dir.pwd) : File.expand_path("..", __FILE__)
|
3
|
+
$LOAD_PATH.unshift File.join(gherkin_dir, 'lib')
|
4
|
+
require "gherkin/version"
|
5
|
+
|
6
|
+
Gem::Specification.new do |s|
|
7
|
+
s.name = "gherkin"
|
8
|
+
s.version = Gherkin::VERSION
|
9
|
+
s.authors = ["Mike Sassak", "Gregory Hnatiuk", "Aslak Hellesøy"]
|
10
|
+
s.description = "A fast Gherkin lexer/parser based on the Ragel State Machine Compiler."
|
11
|
+
s.summary = "gherkin-#{Gherkin::VERSION}"
|
12
|
+
s.email = "cukes@googlegroups.com"
|
13
|
+
s.homepage = "http://github.com/aslakhellesoy/gherkin"
|
14
|
+
|
15
|
+
s.rubygems_version = "1.3.7"
|
16
|
+
s.default_executable = "gherkin"
|
17
|
+
|
18
|
+
s.files = `git ls-files`.split("\n")
|
19
|
+
s.test_files = `git ls-files -- {spec,features}/*`.split("\n")
|
20
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
21
|
+
s.extra_rdoc_files = ["LICENSE", "README.rdoc", "History.txt"]
|
22
|
+
s.rdoc_options = ["--charset=UTF-8"]
|
23
|
+
s.require_path = "lib"
|
24
|
+
|
25
|
+
s.files -= Dir['ikvm/**/*']
|
26
|
+
s.files -= Dir['java/**/*']
|
27
|
+
s.files -= Dir['ext/**/*']
|
28
|
+
s.files -= Dir['lib/gherkin.jar']
|
29
|
+
s.files -= Dir['lib/**/*.dll']
|
30
|
+
s.files -= Dir['lib/**/*.bundle']
|
31
|
+
s.files -= Dir['lib/**/*.so']
|
32
|
+
|
33
|
+
if ENV['GEM_PLATFORM']
|
34
|
+
puts "GEM_PLATFORM:#{ENV['GEM_PLATFORM']}"
|
35
|
+
puts "PLATFORM:#{PLATFORM}"
|
36
|
+
end
|
37
|
+
s.platform = ENV['GEM_PLATFORM'] if ENV['GEM_PLATFORM']
|
38
|
+
case s.platform.to_s
|
39
|
+
when /java/
|
40
|
+
s.files += ['lib/gherkin.jar']
|
41
|
+
when /mswin|mingw32/
|
42
|
+
s.files += Dir['lib/*/*.so']
|
43
|
+
when /dotnet/
|
44
|
+
s.files += Dir['lib/*.dll']
|
45
|
+
else # MRI or Rubinius
|
46
|
+
s.files += Dir['lib/gherkin/rb_lexer/*.rb']
|
47
|
+
s.files += Dir['ext/**/*.c']
|
48
|
+
s.extensions = Dir['ext/**/extconf.rb']
|
49
|
+
s.add_development_dependency('rake-compiler', '~> 0.7.1')
|
50
|
+
end
|
51
|
+
|
52
|
+
s.add_dependency('trollop', '~> 1.16.2')
|
53
|
+
s.add_development_dependency('rake', '~> 0.8.7')
|
54
|
+
s.add_development_dependency('awesome_print', '~> 0.2.1')
|
55
|
+
s.add_development_dependency('rspec', '~> 2.0.0.beta.20')
|
56
|
+
s.add_development_dependency('cucumber', '~> 0.9.0') unless File.directory?(File.join(gherkin_dir, '../cucumber'))
|
57
|
+
end
|
@@ -20,10 +20,10 @@ module Gherkin
|
|
20
20
|
end
|
21
21
|
|
22
22
|
class BasicStatement < Hashable
|
23
|
-
attr_reader :comments, :keyword, :name, :
|
23
|
+
attr_reader :comments, :keyword, :name, :line
|
24
24
|
|
25
|
-
def initialize(comments, keyword, name,
|
26
|
-
@comments, @keyword, @name, @
|
25
|
+
def initialize(comments, keyword, name, line)
|
26
|
+
@comments, @keyword, @name, @line = comments, keyword, name, line
|
27
27
|
end
|
28
28
|
|
29
29
|
def line_range
|
@@ -36,7 +36,16 @@ module Gherkin
|
|
36
36
|
end
|
37
37
|
end
|
38
38
|
|
39
|
-
class
|
39
|
+
class DescribedStatement < BasicStatement
|
40
|
+
attr_reader :description
|
41
|
+
|
42
|
+
def initialize(comments, keyword, name, description, line)
|
43
|
+
super(comments, keyword, name, line)
|
44
|
+
@description = description
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
class TagStatement < DescribedStatement
|
40
49
|
attr_reader :tags
|
41
50
|
|
42
51
|
def initialize(comments, tags, keyword, name, description, line)
|
@@ -61,7 +70,7 @@ module Gherkin
|
|
61
70
|
end
|
62
71
|
end
|
63
72
|
|
64
|
-
class Background <
|
73
|
+
class Background < DescribedStatement
|
65
74
|
native_impl('gherkin')
|
66
75
|
|
67
76
|
def initialize(comments, keyword, name, description, line)
|
@@ -120,8 +129,8 @@ module Gherkin
|
|
120
129
|
|
121
130
|
attr_accessor :multiline_arg, :result
|
122
131
|
|
123
|
-
def initialize(comments, keyword, name,
|
124
|
-
super(comments, keyword, name,
|
132
|
+
def initialize(comments, keyword, name, line, multiline_arg=nil, result=nil)
|
133
|
+
super(comments, keyword, name, line)
|
125
134
|
@multiline_arg = multiline_arg
|
126
135
|
@result = result
|
127
136
|
end
|
data/lib/gherkin/json_parser.rb
CHANGED
@@ -48,7 +48,7 @@ module Gherkin
|
|
48
48
|
multiline_arg = Formatter::Model::PyString.new(ma['value'], ma['line'])
|
49
49
|
end
|
50
50
|
end
|
51
|
-
Formatter::Model::Step.new(comments(o), keyword(o), name(o),
|
51
|
+
Formatter::Model::Step.new(comments(o), keyword(o), name(o), line(o), multiline_arg)
|
52
52
|
end
|
53
53
|
|
54
54
|
def rows(o)
|
@@ -49,7 +49,7 @@ module Gherkin
|
|
49
49
|
|
50
50
|
def step(keyword, name, line)
|
51
51
|
replay_step_or_examples
|
52
|
-
@step_statement = Formatter::Model::Step.new(grab_comments!, keyword, name,
|
52
|
+
@step_statement = Formatter::Model::Step.new(grab_comments!, keyword, name, line)
|
53
53
|
end
|
54
54
|
|
55
55
|
def row(cells, line)
|
data/lib/gherkin/tools/files.rb
CHANGED
@@ -10,8 +10,7 @@ module Gherkin
|
|
10
10
|
each do |file|
|
11
11
|
io = defined?(JRUBY_VERSION) ? Java.java.io.StringWriter.new : StringIO.new
|
12
12
|
formatter = Formatter::PrettyFormatter.new(io, true)
|
13
|
-
|
14
|
-
scan(file, listener)
|
13
|
+
parse(file, formatter)
|
15
14
|
string = defined?(JRUBY_VERSION) ? io.getBuffer.toString : io.string
|
16
15
|
File.open(file, 'w') {|io| io.write(string)}
|
17
16
|
end
|
@@ -42,8 +42,8 @@ module Gherkin
|
|
42
42
|
['When ', 'foo']
|
43
43
|
])
|
44
44
|
@l.scenario(Model::Scenario.new([], [], "Scenario", "The scenario", "", 4))
|
45
|
-
@l.step(Model::Step.new([], "Given ", "some stuff",
|
46
|
-
@l.step(Model::Step.new([], "When ", "foo",
|
45
|
+
@l.step(Model::Step.new([], "Given ", "some stuff", 5, nil, result('passed', nil, nil, "features/step_definitions/bar.rb:56")))
|
46
|
+
@l.step(Model::Step.new([], "When ", "foo", 6, nil, result('passed', nil, nil, "features/step_definitions/bar.rb:96")))
|
47
47
|
|
48
48
|
assert_io(%{Feature: Hello
|
49
49
|
World
|
@@ -61,7 +61,7 @@ module Gherkin
|
|
61
61
|
['Given ', 'some stuff that is longer']
|
62
62
|
])
|
63
63
|
@l.scenario(Model::Scenario.new([], [], "Scenario", "The scenario", "", 4))
|
64
|
-
@l.step(Model::Step.new([], "Given ", "some stuff that is longer",
|
64
|
+
@l.step(Model::Step.new([], "Given ", "some stuff that is longer", 5, nil, result('passed', nil, nil, "features/step_definitions/bar.rb:56")))
|
65
65
|
|
66
66
|
assert_io(%{Feature: Hello
|
67
67
|
World
|
@@ -72,7 +72,7 @@ module Gherkin
|
|
72
72
|
end
|
73
73
|
|
74
74
|
it "should highlight arguments for regular steps" do
|
75
|
-
step = Model::Step.new([], "Given ", "I have 999 cukes in my belly",
|
75
|
+
step = Model::Step.new([], "Given ", "I have 999 cukes in my belly", 3, nil, result('passed', nil, [Gherkin::Formatter::Argument.new(7, '999')], nil))
|
76
76
|
@l.step(step)
|
77
77
|
assert_io(" Given I have 999 cukes in my belly\n")
|
78
78
|
end
|
data/spec/spec_helper.rb
CHANGED
data/tasks/compile.rake
CHANGED
data/tasks/cucumber.rake
CHANGED
@@ -4,7 +4,6 @@ require 'cucumber/rake/task'
|
|
4
4
|
Cucumber::Rake::Task.new(:cucumber) do |t|
|
5
5
|
t.cucumber_opts = "--profile default"
|
6
6
|
end
|
7
|
-
task :cucumber => [:check_dependencies]
|
8
7
|
|
9
8
|
namespace :cucumber do
|
10
9
|
Cucumber::Rake::Task.new(:rcov, "Run Cucumber using RCov") do |t|
|
@@ -16,7 +15,7 @@ namespace :cucumber do
|
|
16
15
|
Cucumber::Rake::Task.new(:native_lexer, "Run Native lexer Cucumber features") do |t|
|
17
16
|
t.cucumber_opts = "--profile native_lexer"
|
18
17
|
end
|
19
|
-
task :native_lexer => [:
|
18
|
+
task :native_lexer => [:clean, :compile]
|
20
19
|
end
|
21
20
|
|
22
21
|
rescue LoadError
|
data/tasks/gems.rake
CHANGED
@@ -1,46 +1,42 @@
|
|
1
1
|
namespace :gems do
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
end
|
2
|
+
task :win do
|
3
|
+
unless File.directory?(File.expand_path('~/.rake-compiler'))
|
4
|
+
STDERR.puts <<-EOM
|
5
|
+
|
6
|
+
You must install Windows rubies to ~/.rake-compiler with:
|
8
7
|
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
# rake-compiler cross-ruby VERSION=1.9.1-p243
|
15
|
-
# rake-compiler cross-ruby VERSION=1.8.6-p114
|
16
|
-
#
|
17
|
-
sh "rake cross compile RUBY_CC_VERSION=1.8.6:1.9.1"
|
18
|
-
sh "rake gemspec build PLATFORM=i386-#{win_compiler}"
|
19
|
-
mv "pkg/gherkin-#{GHERKIN_VERSION}-x86-#{win_compiler}.gem", 'release'
|
8
|
+
rake-compiler cross-ruby VERSION=1.8.6-p287
|
9
|
+
# (Later 1.9.1 patch levels don't compile on mingw)
|
10
|
+
rake-compiler cross-ruby VERSION=1.9.1-p243
|
11
|
+
EOM
|
12
|
+
exit(1)
|
20
13
|
end
|
14
|
+
# rvm and mingw ruby versions have to match to avoid errors
|
15
|
+
sh "rvm 1.8.6@cucumber rake cross compile RUBY_CC_VERSION=1.8.6"
|
16
|
+
sh "rvm 1.9.1@cucumber rake cross compile RUBY_CC_VERSION=1.9.1"
|
17
|
+
# This will copy the .so files to the proper place
|
18
|
+
sh "rake cross compile RUBY_CC_VERSION=1.8.6:1.9.1"
|
21
19
|
end
|
22
20
|
|
23
|
-
desc '
|
24
|
-
task :jruby => :
|
25
|
-
sh "rvm jruby
|
26
|
-
sh "rvm jruby rake gemspec build PLATFORM=java"
|
27
|
-
raise "The jruby gem looks too small" if File.stat("pkg/gherkin-#{GHERKIN_VERSION}-java.gem").size < 1000000
|
28
|
-
mv "pkg/gherkin-#{GHERKIN_VERSION}-java.gem", 'release'
|
21
|
+
desc 'Prepare JRuby binares'
|
22
|
+
task :jruby => [:jar] do
|
23
|
+
sh "rvm jruby@cucumber -S rspec spec"
|
29
24
|
end
|
30
25
|
|
31
|
-
desc '
|
32
|
-
task :ironruby => [:jruby, 'ikvm:dll', 'ikvm:copy_ikvm_dlls']
|
33
|
-
sh "rake gemspec build PLATFORM=universal-dotnet"
|
34
|
-
mv "pkg/gherkin-#{GHERKIN_VERSION}-universal-dotnet.gem", 'release'
|
35
|
-
end
|
26
|
+
desc 'Prepare IronRuby binaries'
|
27
|
+
task :ironruby => [:jruby, 'ikvm:dll', 'ikvm:copy_ikvm_dlls']
|
36
28
|
|
37
|
-
task :
|
38
|
-
|
29
|
+
task :sanity do
|
30
|
+
raise "The jruby gem looks too small" if File.stat("release/gherkin-#{Gherkin::VERSION}-java.gem").size < 1000000
|
39
31
|
end
|
40
32
|
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
33
|
+
desc "Prepare binaries for all gems"
|
34
|
+
task :prepare => [
|
35
|
+
:clean,
|
36
|
+
:spec,
|
37
|
+
:win,
|
38
|
+
:jruby,
|
39
|
+
:ironruby
|
40
|
+
]
|
45
41
|
|
46
|
-
|
42
|
+
end
|
data/tasks/ikvm.rake
CHANGED
@@ -20,18 +20,21 @@ require File.dirname(__FILE__) + '/../spec/gherkin/json'
|
|
20
20
|
# [mono] mono ikvm/Gherkin/bin/Debug/Gherkin.exe features/steps_parser.feature
|
21
21
|
#
|
22
22
|
namespace :ikvm do
|
23
|
-
|
24
|
-
task :exe => 'lib/gherkin.jar' do
|
23
|
+
task :dependent_dlls do
|
25
24
|
mkdir_p 'release' unless File.directory?('release')
|
26
|
-
sh("mono /usr/local/ikvm/bin/ikvmc.exe -target:
|
25
|
+
sh("mono /usr/local/ikvm/bin/ikvmc.exe -target:library #{JSON_SIMPLE_JAR} -out:release/json-simple.dll")
|
26
|
+
end
|
27
|
+
|
28
|
+
desc 'Make a .NET .exe'
|
29
|
+
task :exe => ['lib/gherkin.jar', :dependent_dlls] do
|
30
|
+
sh("mono /usr/local/ikvm/bin/ikvmc.exe -target:exe lib/gherkin.jar -out:release/gherkin-#{Gherkin::VERSION}.exe -reference:release/json-simple.dll")
|
27
31
|
end
|
28
32
|
|
29
33
|
desc 'Make a .NET .dll'
|
30
|
-
task :dll => 'lib/gherkin.jar' do
|
34
|
+
task :dll => ['lib/gherkin.jar', :dependent_dlls] do
|
31
35
|
mkdir_p 'release' unless File.directory?('release')
|
32
|
-
sh("mono /usr/local/ikvm/bin/ikvmc.exe -target:library
|
33
|
-
|
34
|
-
cp "release/gherkin-#{GHERKIN_VERSION}.dll", 'lib/gherkin.dll'
|
36
|
+
sh("mono /usr/local/ikvm/bin/ikvmc.exe -target:library lib/gherkin.jar -out:release/gherkin-#{Gherkin::VERSION}.dll -reference:release/json-simple.dll")
|
37
|
+
cp "release/gherkin-#{Gherkin::VERSION}.dll", 'lib/gherkin.dll'
|
35
38
|
end
|
36
39
|
|
37
40
|
desc 'Copy the IKVM .dll files over to the pkg dir'
|
@@ -44,6 +47,8 @@ namespace :ikvm do
|
|
44
47
|
end
|
45
48
|
|
46
49
|
task :ikvm => ['ikvm:copy_ikvm_dlls', 'ikvm:exe', 'ikvm:dll'] do
|
47
|
-
|
50
|
+
puts "************** Pretty printing some features with .NET. **************"
|
51
|
+
sh "mono release/gherkin-#{Gherkin::VERSION}.exe features"
|
52
|
+
puts "************** DONE Pretty printing some features with .NET. All OK. **************"
|
48
53
|
end
|
49
54
|
|
data/tasks/rdoc.rake
CHANGED
@@ -1,11 +1,8 @@
|
|
1
1
|
require 'rake/rdoctask'
|
2
2
|
|
3
3
|
Rake::RDocTask.new do |rdoc|
|
4
|
-
config = YAML.load_file('VERSION.yml')
|
5
|
-
version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
|
6
|
-
|
7
4
|
rdoc.rdoc_dir = 'rdoc'
|
8
|
-
rdoc.title = "Gherkin #{
|
5
|
+
rdoc.title = "Gherkin #{Gherkin::VERSION}"
|
9
6
|
rdoc.rdoc_files.include('README.rdoc')
|
10
7
|
rdoc.rdoc_files.include('lib/**/*.rb')
|
11
8
|
rdoc.rdoc_files.exclude('lib/gherkin/lexer')
|
data/tasks/release.rake
CHANGED
@@ -1,9 +1,9 @@
|
|
1
1
|
namespace :release do
|
2
|
-
desc '
|
3
|
-
task :ALL => [:
|
2
|
+
desc 'Upload all packages and tag git'
|
3
|
+
task :ALL => ['gems:sanity', :push_dll, :push_jar, :push_native_gems, :release]
|
4
4
|
|
5
5
|
desc 'Push all gems to rubygems.org (gemcutter)'
|
6
|
-
task :
|
6
|
+
task :push_native_gems do
|
7
7
|
Dir.chdir('release') do
|
8
8
|
Dir['*.gem'].each do |gem_file|
|
9
9
|
sh("gem push #{gem_file}")
|
@@ -14,18 +14,10 @@ namespace :release do
|
|
14
14
|
desc 'Push dll to Github'
|
15
15
|
task :push_dll => :ikvm do
|
16
16
|
Dir.chdir('release') do
|
17
|
-
#
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
rescue => e
|
22
|
-
# For some reason we're getting an error even if the upload is successful. Verify that here...
|
23
|
-
head = `curl -I -X HEAD http://github.com/downloads/aslakhellesoy/gherkin/gherkin-#{GHERKIN_VERSION}.dll`
|
24
|
-
if !(head =~ /302 Found/in)
|
25
|
-
e.message << "\n\nUpload of gherkin-#{GHERKIN_VERSION}.dll failed:\n\n#{head}"
|
26
|
-
raise e
|
27
|
-
end
|
28
|
-
end
|
17
|
+
# No known way to do scripted uploads. github/upload or aslakhellesoy's fork of github-gem no longer work
|
18
|
+
puts "Manually upload gherkin-#{Gherkin::VERSION}.dll to http://github.com/aslakhellesoy/gherkin/downloads"
|
19
|
+
puts "Then press enter"
|
20
|
+
STDIN.gets
|
29
21
|
end
|
30
22
|
end
|
31
23
|
|
data/tasks/rspec.rake
CHANGED
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gherkin
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 5
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 2
|
9
|
-
-
|
10
|
-
version: 2.2.
|
9
|
+
- 1
|
10
|
+
version: 2.2.1
|
11
11
|
platform: universal-dotnet
|
12
12
|
authors:
|
13
13
|
- Mike Sassak
|
@@ -17,7 +17,7 @@ autorequire:
|
|
17
17
|
bindir: bin
|
18
18
|
cert_chain: []
|
19
19
|
|
20
|
-
date: 2010-
|
20
|
+
date: 2010-09-13 00:00:00 +02:00
|
21
21
|
default_executable: gherkin
|
22
22
|
dependencies:
|
23
23
|
- !ruby/object:Gem::Dependency
|
@@ -37,71 +37,55 @@ dependencies:
|
|
37
37
|
type: :runtime
|
38
38
|
version_requirements: *id001
|
39
39
|
- !ruby/object:Gem::Dependency
|
40
|
-
name:
|
40
|
+
name: rake
|
41
41
|
prerelease: false
|
42
42
|
requirement: &id002 !ruby/object:Gem::Requirement
|
43
43
|
none: false
|
44
44
|
requirements:
|
45
45
|
- - ~>
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
hash:
|
47
|
+
hash: 49
|
48
48
|
segments:
|
49
49
|
- 0
|
50
|
-
-
|
51
|
-
-
|
52
|
-
version: 0.
|
50
|
+
- 8
|
51
|
+
- 7
|
52
|
+
version: 0.8.7
|
53
53
|
type: :development
|
54
54
|
version_requirements: *id002
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
|
-
name:
|
56
|
+
name: awesome_print
|
57
57
|
prerelease: false
|
58
58
|
requirement: &id003 !ruby/object:Gem::Requirement
|
59
59
|
none: false
|
60
60
|
requirements:
|
61
61
|
- - ~>
|
62
62
|
- !ruby/object:Gem::Version
|
63
|
-
hash:
|
63
|
+
hash: 21
|
64
64
|
segments:
|
65
|
-
- 2
|
66
|
-
- 0
|
67
65
|
- 0
|
68
|
-
-
|
69
|
-
-
|
70
|
-
version:
|
66
|
+
- 2
|
67
|
+
- 1
|
68
|
+
version: 0.2.1
|
71
69
|
type: :development
|
72
70
|
version_requirements: *id003
|
73
71
|
- !ruby/object:Gem::Dependency
|
74
|
-
name:
|
72
|
+
name: rspec
|
75
73
|
prerelease: false
|
76
74
|
requirement: &id004 !ruby/object:Gem::Requirement
|
77
75
|
none: false
|
78
76
|
requirements:
|
79
77
|
- - ~>
|
80
78
|
- !ruby/object:Gem::Version
|
81
|
-
hash:
|
79
|
+
hash: 62196427
|
82
80
|
segments:
|
81
|
+
- 2
|
83
82
|
- 0
|
84
|
-
- 9
|
85
83
|
- 0
|
86
|
-
|
84
|
+
- beta
|
85
|
+
- 20
|
86
|
+
version: 2.0.0.beta.20
|
87
87
|
type: :development
|
88
88
|
version_requirements: *id004
|
89
|
-
- !ruby/object:Gem::Dependency
|
90
|
-
name: rake-compiler
|
91
|
-
prerelease: false
|
92
|
-
requirement: &id005 !ruby/object:Gem::Requirement
|
93
|
-
none: false
|
94
|
-
requirements:
|
95
|
-
- - ~>
|
96
|
-
- !ruby/object:Gem::Version
|
97
|
-
hash: 3
|
98
|
-
segments:
|
99
|
-
- 0
|
100
|
-
- 7
|
101
|
-
- 0
|
102
|
-
version: 0.7.0
|
103
|
-
type: :development
|
104
|
-
version_requirements: *id005
|
105
89
|
description: A fast Gherkin lexer/parser based on the Ragel State Machine Compiler.
|
106
90
|
email: cukes@googlegroups.com
|
107
91
|
executables:
|
@@ -111,17 +95,22 @@ extensions: []
|
|
111
95
|
extra_rdoc_files:
|
112
96
|
- LICENSE
|
113
97
|
- README.rdoc
|
98
|
+
- History.txt
|
114
99
|
files:
|
115
100
|
- .gitattributes
|
116
101
|
- .gitignore
|
117
102
|
- .mailmap
|
118
103
|
- .rspec
|
104
|
+
- .rvmrc
|
105
|
+
- Gemfile
|
106
|
+
- Gemfile.lock
|
119
107
|
- History.txt
|
120
108
|
- LICENSE
|
121
109
|
- README.rdoc
|
122
110
|
- Rakefile
|
123
|
-
- VERSION
|
111
|
+
- VERSION
|
124
112
|
- bin/gherkin
|
113
|
+
- build_native_gems.sh
|
125
114
|
- cucumber.yml
|
126
115
|
- features/escaped_pipes.feature
|
127
116
|
- features/feature_parser.feature
|
@@ -133,21 +122,16 @@ files:
|
|
133
122
|
- features/step_definitions/eyeball_steps.rb
|
134
123
|
- features/step_definitions/gherkin_steps.rb
|
135
124
|
- features/step_definitions/json_formatter_steps.rb
|
136
|
-
- features/step_definitions/
|
125
|
+
- features/step_definitions/json_parser_steps.rb
|
137
126
|
- features/step_definitions/pretty_formatter_steps.rb
|
138
127
|
- features/steps_parser.feature
|
139
128
|
- features/support/env.rb
|
129
|
+
- gherkin.gemspec
|
140
130
|
- ikvm/.gitignore
|
141
131
|
- java/.gitignore
|
142
132
|
- java/src/main/java/gherkin/lexer/i18n/.gitignore
|
143
133
|
- java/src/main/resources/gherkin/.gitignore
|
144
|
-
- json-simple-1.1.dll
|
145
134
|
- lib/.gitignore
|
146
|
-
- lib/IKVM.OpenJDK.Core.dll
|
147
|
-
- lib/IKVM.OpenJDK.Security.dll
|
148
|
-
- lib/IKVM.OpenJDK.Text.dll
|
149
|
-
- lib/IKVM.Runtime.dll
|
150
|
-
- lib/gherkin.dll
|
151
135
|
- lib/gherkin.rb
|
152
136
|
- lib/gherkin/c_lexer.rb
|
153
137
|
- lib/gherkin/cli/main.rb
|
@@ -187,6 +171,7 @@ files:
|
|
187
171
|
- lib/gherkin/tools/reformat.rb
|
188
172
|
- lib/gherkin/tools/stats.rb
|
189
173
|
- lib/gherkin/tools/stats_listener.rb
|
174
|
+
- lib/gherkin/version.rb
|
190
175
|
- ragel/i18n/.gitignore
|
191
176
|
- ragel/lexer.c.rl.erb
|
192
177
|
- ragel/lexer.java.rl.erb
|
@@ -244,6 +229,11 @@ files:
|
|
244
229
|
- tasks/rdoc.rake
|
245
230
|
- tasks/release.rake
|
246
231
|
- tasks/rspec.rake
|
232
|
+
- lib/gherkin.dll
|
233
|
+
- lib/IKVM.OpenJDK.Core.dll
|
234
|
+
- lib/IKVM.OpenJDK.Security.dll
|
235
|
+
- lib/IKVM.OpenJDK.Text.dll
|
236
|
+
- lib/IKVM.Runtime.dll
|
247
237
|
has_rdoc: true
|
248
238
|
homepage: http://github.com/aslakhellesoy/gherkin
|
249
239
|
licenses: []
|
@@ -277,14 +267,46 @@ rubyforge_project:
|
|
277
267
|
rubygems_version: 1.3.7
|
278
268
|
signing_key:
|
279
269
|
specification_version: 3
|
280
|
-
summary:
|
270
|
+
summary: gherkin-2.2.1
|
281
271
|
test_files:
|
272
|
+
- features/escaped_pipes.feature
|
273
|
+
- features/feature_parser.feature
|
274
|
+
- features/json_formatter.feature
|
275
|
+
- features/json_parser.feature
|
276
|
+
- features/native_lexer.feature
|
277
|
+
- features/parser_with_native_lexer.feature
|
278
|
+
- features/pretty_formatter.feature
|
279
|
+
- features/step_definitions/eyeball_steps.rb
|
280
|
+
- features/step_definitions/gherkin_steps.rb
|
281
|
+
- features/step_definitions/json_formatter_steps.rb
|
282
|
+
- features/step_definitions/json_parser_steps.rb
|
283
|
+
- features/step_definitions/pretty_formatter_steps.rb
|
284
|
+
- features/steps_parser.feature
|
285
|
+
- features/support/env.rb
|
282
286
|
- spec/gherkin/c_lexer_spec.rb
|
287
|
+
- spec/gherkin/fixtures/1.feature
|
288
|
+
- spec/gherkin/fixtures/comments_in_table.feature
|
289
|
+
- spec/gherkin/fixtures/complex.feature
|
290
|
+
- spec/gherkin/fixtures/complex.json
|
291
|
+
- spec/gherkin/fixtures/complex_for_filtering.feature
|
292
|
+
- spec/gherkin/fixtures/complex_with_tags.feature
|
293
|
+
- spec/gherkin/fixtures/dos_line_endings.feature
|
294
|
+
- spec/gherkin/fixtures/hantu_pisang.feature
|
295
|
+
- spec/gherkin/fixtures/i18n_fr.feature
|
296
|
+
- spec/gherkin/fixtures/i18n_no.feature
|
297
|
+
- spec/gherkin/fixtures/i18n_zh-CN.feature
|
298
|
+
- spec/gherkin/fixtures/scenario_outline_with_tags.feature
|
299
|
+
- spec/gherkin/fixtures/scenario_without_steps.feature
|
300
|
+
- spec/gherkin/fixtures/simple_with_comments.feature
|
301
|
+
- spec/gherkin/fixtures/simple_with_tags.feature
|
302
|
+
- spec/gherkin/fixtures/with_bom.feature
|
283
303
|
- spec/gherkin/formatter/argument_spec.rb
|
284
304
|
- spec/gherkin/formatter/colors_spec.rb
|
285
305
|
- spec/gherkin/formatter/filter_formatter_spec.rb
|
286
306
|
- spec/gherkin/formatter/model_spec.rb
|
287
307
|
- spec/gherkin/formatter/pretty_formatter_spec.rb
|
308
|
+
- spec/gherkin/formatter/spaces.feature
|
309
|
+
- spec/gherkin/formatter/tabs.feature
|
288
310
|
- spec/gherkin/formatter/tag_count_formatter_spec.rb
|
289
311
|
- spec/gherkin/i18n_spec.rb
|
290
312
|
- spec/gherkin/java_lexer_spec.rb
|
data/VERSION.yml
DELETED
data/json-simple-1.1.dll
DELETED
Binary file
|