gherkin 1.0.30-universal-dotnet

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 (104) hide show
  1. data/.gitattributes +2 -0
  2. data/.gitignore +9 -0
  3. data/.mailmap +2 -0
  4. data/History.txt +187 -0
  5. data/LICENSE +20 -0
  6. data/README.rdoc +59 -0
  7. data/Rakefile +58 -0
  8. data/VERSION.yml +5 -0
  9. data/bin/gherkin +5 -0
  10. data/cucumber.yml +3 -0
  11. data/features/escaped_pipes.feature +8 -0
  12. data/features/feature_parser.feature +226 -0
  13. data/features/native_lexer.feature +19 -0
  14. data/features/parser_with_native_lexer.feature +205 -0
  15. data/features/pretty_printer.feature +14 -0
  16. data/features/step_definitions/eyeball_steps.rb +3 -0
  17. data/features/step_definitions/gherkin_steps.rb +30 -0
  18. data/features/step_definitions/pretty_formatter_steps.rb +55 -0
  19. data/features/steps_parser.feature +46 -0
  20. data/features/support/env.rb +33 -0
  21. data/ikvm/.gitignore +3 -0
  22. data/java/.gitignore +2 -0
  23. data/java/src/main/java/gherkin/lexer/.gitignore +1 -0
  24. data/java/src/main/resources/gherkin/.gitignore +1 -0
  25. data/lib/.gitignore +4 -0
  26. data/lib/gherkin.rb +2 -0
  27. data/lib/gherkin/c_lexer.rb +17 -0
  28. data/lib/gherkin/cli/main.rb +33 -0
  29. data/lib/gherkin/formatter/argument.rb +27 -0
  30. data/lib/gherkin/formatter/colors.rb +119 -0
  31. data/lib/gherkin/formatter/escaping.rb +15 -0
  32. data/lib/gherkin/formatter/monochrome_format.rb +9 -0
  33. data/lib/gherkin/formatter/pretty_formatter.rb +168 -0
  34. data/lib/gherkin/i18n.rb +176 -0
  35. data/lib/gherkin/i18n.yml +588 -0
  36. data/lib/gherkin/i18n_lexer.rb +38 -0
  37. data/lib/gherkin/native.rb +7 -0
  38. data/lib/gherkin/native/ikvm.rb +55 -0
  39. data/lib/gherkin/native/java.rb +47 -0
  40. data/lib/gherkin/native/null.rb +9 -0
  41. data/lib/gherkin/parser/event.rb +45 -0
  42. data/lib/gherkin/parser/filter_listener.rb +199 -0
  43. data/lib/gherkin/parser/meta.txt +5 -0
  44. data/lib/gherkin/parser/parser.rb +142 -0
  45. data/lib/gherkin/parser/root.txt +11 -0
  46. data/lib/gherkin/parser/steps.txt +4 -0
  47. data/lib/gherkin/parser/tag_expression.rb +50 -0
  48. data/lib/gherkin/rb_lexer.rb +8 -0
  49. data/lib/gherkin/rb_lexer/.gitignore +1 -0
  50. data/lib/gherkin/rb_lexer/README.rdoc +8 -0
  51. data/lib/gherkin/rubify.rb +18 -0
  52. data/lib/gherkin/tools.rb +8 -0
  53. data/lib/gherkin/tools/files.rb +35 -0
  54. data/lib/gherkin/tools/reformat.rb +19 -0
  55. data/lib/gherkin/tools/stats.rb +21 -0
  56. data/lib/gherkin/tools/stats_listener.rb +57 -0
  57. data/ragel/i18n/.gitignore +1 -0
  58. data/ragel/lexer.c.rl.erb +425 -0
  59. data/ragel/lexer.java.rl.erb +216 -0
  60. data/ragel/lexer.rb.rl.erb +173 -0
  61. data/ragel/lexer_common.rl.erb +50 -0
  62. data/spec/gherkin/c_lexer_spec.rb +21 -0
  63. data/spec/gherkin/csharp_lexer_spec.rb +20 -0
  64. data/spec/gherkin/fixtures/1.feature +8 -0
  65. data/spec/gherkin/fixtures/comments_in_table.feature +9 -0
  66. data/spec/gherkin/fixtures/complex.feature +45 -0
  67. data/spec/gherkin/fixtures/dos_line_endings.feature +45 -0
  68. data/spec/gherkin/fixtures/i18n_fr.feature +14 -0
  69. data/spec/gherkin/fixtures/i18n_no.feature +7 -0
  70. data/spec/gherkin/fixtures/i18n_zh-CN.feature +9 -0
  71. data/spec/gherkin/fixtures/simple_with_comments.feature +7 -0
  72. data/spec/gherkin/fixtures/simple_with_tags.feature +11 -0
  73. data/spec/gherkin/fixtures/with_bom.feature +3 -0
  74. data/spec/gherkin/formatter/argument_spec.rb +28 -0
  75. data/spec/gherkin/formatter/colors_spec.rb +19 -0
  76. data/spec/gherkin/formatter/pretty_formatter_spec.rb +162 -0
  77. data/spec/gherkin/formatter/spaces.feature +9 -0
  78. data/spec/gherkin/formatter/tabs.feature +9 -0
  79. data/spec/gherkin/i18n_lexer_spec.rb +26 -0
  80. data/spec/gherkin/i18n_spec.rb +144 -0
  81. data/spec/gherkin/java_lexer_spec.rb +21 -0
  82. data/spec/gherkin/parser/filter_listener_spec.rb +390 -0
  83. data/spec/gherkin/parser/parser_spec.rb +50 -0
  84. data/spec/gherkin/parser/tag_expression_spec.rb +116 -0
  85. data/spec/gherkin/rb_lexer_spec.rb +19 -0
  86. data/spec/gherkin/sexp_recorder.rb +32 -0
  87. data/spec/gherkin/shared/lexer_spec.rb +550 -0
  88. data/spec/gherkin/shared/py_string_spec.rb +150 -0
  89. data/spec/gherkin/shared/row_spec.rb +104 -0
  90. data/spec/gherkin/shared/tags_spec.rb +50 -0
  91. data/spec/spec_helper.rb +87 -0
  92. data/tasks/bench.rake +188 -0
  93. data/tasks/bench/feature_builder.rb +49 -0
  94. data/tasks/bench/generated/.gitignore +1 -0
  95. data/tasks/bench/null_listener.rb +4 -0
  96. data/tasks/compile.rake +89 -0
  97. data/tasks/cucumber.rake +26 -0
  98. data/tasks/gems.rake +45 -0
  99. data/tasks/ikvm.rake +47 -0
  100. data/tasks/ragel_task.rb +70 -0
  101. data/tasks/rdoc.rake +12 -0
  102. data/tasks/release.rake +26 -0
  103. data/tasks/rspec.rake +15 -0
  104. metadata +257 -0
@@ -0,0 +1,49 @@
1
+ class StepsBuilder
2
+ def initialize
3
+ @steps = []
4
+ end
5
+
6
+ def step(content, generator)
7
+ @steps << " Given #{content}"
8
+ if(rand(5) == 0)
9
+ cols = rand(8) + 1
10
+ rows = rand(10)
11
+ rows.times do
12
+ row = " |"
13
+ cols.times do
14
+ row << generator.table_cell << "|"
15
+ end
16
+ @steps << row
17
+ end
18
+ end
19
+ end
20
+
21
+ def to_s
22
+ @steps.join("\n")
23
+ end
24
+ end
25
+
26
+ class FeatureBuilder
27
+ def initialize(name, &block)
28
+ @name = name
29
+ @scenarios = {}
30
+ block.call(self)
31
+ end
32
+
33
+ def scenario(name, &block)
34
+ @scenarios[name] = StepsBuilder.new
35
+ block.call(@scenarios[name])
36
+ end
37
+
38
+ def to_s
39
+ str = "Feature: #{@name}\n"
40
+ @scenarios.each do |scenario, steps|
41
+ str += "\n"
42
+ str += " Scenario: #{scenario}\n"
43
+ str += steps.to_s
44
+ str += "\n"
45
+ end
46
+ str
47
+ end
48
+ end
49
+
@@ -0,0 +1 @@
1
+ *.feature
@@ -0,0 +1,4 @@
1
+ class NullListener
2
+ def method_missing(*args)
3
+ end
4
+ end
@@ -0,0 +1,89 @@
1
+ require File.dirname(__FILE__) + '/ragel_task'
2
+ BYPASS_NATIVE_IMPL = true
3
+ require 'gherkin/i18n'
4
+
5
+ CLEAN.include [
6
+ 'pkg', 'tmp',
7
+ '**/*.{o,bundle,jar,so,obj,pdb,lib,def,exp,log}', 'ext',
8
+ 'java/target',
9
+ 'ragel/i18n/*.rl',
10
+ 'lib/gherkin/rb_lexer/*.rb',
11
+ 'ext/**/*.c',
12
+ 'java/src/main/java/gherkin/lexer/*.java',
13
+ 'java/src/main/resources/gherkin/*.properties',
14
+ ]
15
+
16
+ desc "Compile the Java extensions"
17
+ task :jar => 'lib/gherkin.jar'
18
+
19
+ file 'lib/gherkin.jar' => Dir['java/src/main/java/**/*.java'] do
20
+ sh("mvn -f java/pom.xml package")
21
+ end
22
+
23
+ rl_langs = ENV['RL_LANGS'] ? ENV['RL_LANGS'].split(',') : []
24
+ langs = Gherkin::I18n.all.select { |lang| rl_langs.empty? || rl_langs.include?(lang.iso_code) }
25
+
26
+ langs.each do |i18n|
27
+ java = RagelTask.new('java', i18n)
28
+ rb = RagelTask.new('rb', i18n)
29
+
30
+ file 'lib/gherkin.jar' => [java.target, rb.target]
31
+
32
+ begin
33
+ if defined?(JRUBY_VERSION)
34
+ java_properties = "java/src/main/resources/gherkin/I18nKeywords_#{i18n.iso_code.gsub(/-/, '_')}.properties"
35
+ file java_properties => 'lib/gherkin/i18n.yml' do
36
+ File.open(java_properties, 'wb') do |io|
37
+ io.puts("# Generated file. Do not edit.")
38
+ Gherkin::I18n::KEYWORD_KEYS.each do |key|
39
+ value = Gherkin::I18n.unicode_escape(i18n.keywords(key).join("|"))
40
+ io.puts("#{key}:#{value}")
41
+ end
42
+ end
43
+ end
44
+ file 'lib/gherkin.jar' => java_properties
45
+ else
46
+ require 'rake/extensiontask'
47
+
48
+ c = RagelTask.new('c', i18n)
49
+
50
+ extconf = "ext/gherkin_lexer_#{i18n.underscored_iso_code}/extconf.rb"
51
+ file extconf do
52
+ FileUtils.mkdir(File.dirname(extconf)) unless File.directory?(File.dirname(extconf))
53
+ File.open(extconf, "w") do |io|
54
+ io.write(<<-EOF)
55
+ require 'mkmf'
56
+ CONFIG['warnflags'].gsub!(/-Wshorten-64-to-32/, '') if CONFIG['warnflags']
57
+ $CFLAGS << ' -O0 -Wall -Werror' if CONFIG['CC'] =~ /gcc/
58
+ dir_config("gherkin_lexer_#{i18n.underscored_iso_code}")
59
+ have_library("c", "main")
60
+ create_makefile("gherkin_lexer_#{i18n.underscored_iso_code}")
61
+ EOF
62
+ end
63
+ end
64
+
65
+ Rake::ExtensionTask.new("gherkin_lexer_#{i18n.underscored_iso_code}") do |ext|
66
+ if ENV['RUBY_CC_VERSION']
67
+ ext.cross_compile = true
68
+ ext.cross_platform = 'i386-mingw32'
69
+ end
70
+ end
71
+
72
+ # The way tasks are defined with compile:xxx (but without namespace) in rake-compiler forces us
73
+ # to use these hacks for setting up dependencies. Ugly!
74
+ Rake::Task["compile:gherkin_lexer_#{i18n.underscored_iso_code}"].prerequisites.unshift(extconf)
75
+ Rake::Task["compile:gherkin_lexer_#{i18n.underscored_iso_code}"].prerequisites.unshift(c.target)
76
+ Rake::Task["compile:gherkin_lexer_#{i18n.underscored_iso_code}"].prerequisites.unshift(rb.target)
77
+
78
+ Rake::Task["compile"].prerequisites.unshift(extconf)
79
+ Rake::Task["compile"].prerequisites.unshift(c.target)
80
+ Rake::Task["compile"].prerequisites.unshift(rb.target)
81
+ end
82
+ rescue LoadError
83
+ unless defined?($c_warned)
84
+ warn "WARNING: Rake::ExtensionTask not installed. Skipping C compilation."
85
+ $c_warned = true
86
+ task :compile # no-op
87
+ end
88
+ end
89
+ end
@@ -0,0 +1,26 @@
1
+ begin
2
+ require 'cucumber/rake/task'
3
+
4
+ Cucumber::Rake::Task.new(:cucumber) do |t|
5
+ t.cucumber_opts = "--profile default"
6
+ end
7
+ task :cucumber => [:check_dependencies]
8
+
9
+ namespace :cucumber do
10
+ Cucumber::Rake::Task.new(:rcov, "Run Cucumber using RCov") do |t|
11
+ t.cucumber_opts = "--profile default"
12
+ t.rcov = true
13
+ t.rcov_opts = %w{--exclude spec\/}
14
+ end
15
+
16
+ Cucumber::Rake::Task.new(:native_lexer, "Run Native lexer Cucumber features") do |t|
17
+ t.cucumber_opts = "--profile native_lexer"
18
+ end
19
+ task :native_lexer => [:check_dependencies, :clean, :compile]
20
+ end
21
+
22
+ rescue LoadError
23
+ task :cucumber do
24
+ raise "Cucumber not installed"
25
+ end
26
+ end
@@ -0,0 +1,45 @@
1
+ namespace :gems do
2
+ desc "Build MRI/C POSIX gem"
3
+ task :posix => :release_dir do
4
+ sh "rake clean spec"
5
+ sh "rake gemspec build"
6
+ mv "pkg/gherkin-#{GHERKIN_VERSION}.gem", 'release'
7
+ end
8
+
9
+ [:mswin32, :mingw32].each do |win_compiler|
10
+ desc "Build MRI/C precompiled #{win_compiler} gem"
11
+ task win_compiler do
12
+ # Bootstrap with:
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'
20
+ end
21
+ end
22
+
23
+ desc 'Build JRuby gem'
24
+ task :jruby => :release_dir do
25
+ sh "rvm jruby rake spec"
26
+ sh "rvm jruby rake gemspec build PLATFORM=java"
27
+ mv "pkg/gherkin-#{GHERKIN_VERSION}-java.gem", 'release'
28
+ end
29
+
30
+ desc 'Build IronRuby gem'
31
+ task :ironruby => [:jruby, 'ikvm:dll', 'ikvm:copy_ikvm_dlls'] do
32
+ sh "rake gemspec build PLATFORM=universal-dotnet"
33
+ mv "pkg/gherkin-#{GHERKIN_VERSION}-universal-dotnet.gem", 'release'
34
+ end
35
+
36
+ task :release_dir do
37
+ mkdir 'release' unless File.directory?('release')
38
+ end
39
+
40
+ task :clean_release_dir do
41
+ rm_rf 'release' if File.directory?('release')
42
+ end
43
+ end
44
+
45
+ task :gems => ['gems:clean_release_dir', 'gems:posix', 'gems:mswin32', 'gems:mingw32', 'gems:jruby', 'gems:ironruby']
@@ -0,0 +1,47 @@
1
+ # To test out the pure Java main program on .NET, execute:
2
+ #
3
+ # rake ikvm
4
+ #
5
+ # Just print dots:
6
+ #
7
+ # [mono] pkg/gherkin.exe features
8
+ #
9
+ # Pretty print all to STDOUT:
10
+ #
11
+ # [mono] pkg/gherkin.exe features pretty
12
+ #
13
+ # To test out the pure C# main program on .NET, execute:
14
+ #
15
+ # rake ikvm (you need this to generate all the .dll files needed for the next step)
16
+ #
17
+ # Then build ikvm/Gherkin.sln. Then:
18
+ #
19
+ # [mono] mono ikvm/Gherkin/bin/Debug/Gherkin.exe features/steps_parser.feature
20
+ #
21
+ namespace :ikvm do
22
+ desc 'Make a .NET .exe'
23
+ task :exe => 'lib/gherkin.jar' do
24
+ mkdir_p 'release' unless File.directory?('release')
25
+ sh("mono /usr/local/ikvm/bin/ikvmc.exe -target:exe lib/gherkin.jar -out:release/gherkin-#{GHERKIN_VERSION}.exe")
26
+ end
27
+
28
+ desc 'Make a .NET .dll'
29
+ task :dll => 'lib/gherkin.jar' do
30
+ mkdir_p 'release' unless File.directory?('release')
31
+ sh("mono /usr/local/ikvm/bin/ikvmc.exe -target:library lib/gherkin.jar -out:release/gherkin-#{GHERKIN_VERSION}.dll")
32
+ cp "release/gherkin-#{GHERKIN_VERSION}.dll", 'lib/gherkin.dll'
33
+ end
34
+
35
+ desc 'Copy the IKVM .dll files over to the pkg dir'
36
+ task :copy_ikvm_dlls do
37
+ Dir['/usr/local/ikvm/bin/{IKVM.OpenJDK.Core,IKVM.OpenJDK.Text,IKVM.OpenJDK.Security,IKVM.Runtime}.dll'].each do |dll|
38
+ cp dll, 'release'
39
+ cp dll, 'lib'
40
+ end
41
+ end
42
+ end
43
+
44
+ task :ikvm => ['ikvm:copy_ikvm_dlls', 'ikvm:exe', 'ikvm:dll'] do
45
+ sh "mono release/gherkin-#{GHERKIN_VERSION}.exe features"
46
+ end
47
+
@@ -0,0 +1,70 @@
1
+ require 'yaml'
2
+ require 'erb'
3
+
4
+ class RagelTask
5
+ RL_OUTPUT_DIR = File.dirname(__FILE__) + "/../ragel/i18n"
6
+
7
+ def initialize(lang, i18n)
8
+ @lang = lang
9
+ @i18n = i18n
10
+ define_tasks
11
+ end
12
+
13
+ def define_tasks
14
+ file target => [lang_ragel, common_ragel] do
15
+ mkdir_p(File.dirname(target)) unless File.directory?(File.dirname(target))
16
+ sh "ragel #{flags} #{lang_ragel} -o #{target}"
17
+ end
18
+
19
+ file lang_ragel => lang_erb do
20
+ write(ERB.new(IO.read(lang_erb)).result(binding), lang_ragel)
21
+ end
22
+
23
+ file common_ragel => common_erb do
24
+ write(ERB.new(IO.read(common_erb)).result(binding), common_ragel)
25
+ end
26
+ end
27
+
28
+ def target
29
+ {
30
+ 'c' => "ext/gherkin_lexer_#{@i18n.underscored_iso_code}/gherkin_lexer_#{@i18n.underscored_iso_code}.c",
31
+ 'java' => "java/src/main/java/gherkin/lexer/#{@i18n.underscored_iso_code.upcase}.java",
32
+ 'rb' => "lib/gherkin/rb_lexer/#{@i18n.underscored_iso_code}.rb"
33
+ }[@lang]
34
+ end
35
+
36
+ def common_ragel
37
+ RL_OUTPUT_DIR + "/lexer_common.#{@i18n.underscored_iso_code}.rl"
38
+ end
39
+
40
+ def common_erb
41
+ File.dirname(__FILE__) + '/../ragel/lexer_common.rl.erb'
42
+ end
43
+
44
+ def lang_ragel
45
+ RL_OUTPUT_DIR + "/#{@i18n.underscored_iso_code}.#{@lang}.rl"
46
+ end
47
+
48
+ def lang_erb
49
+ File.dirname(__FILE__) + "/../ragel/lexer.#{@lang}.rl.erb"
50
+ end
51
+
52
+ def flags
53
+ {
54
+ 'c' => '-C',
55
+ 'java' => '-J',
56
+ 'rb' => '-R'
57
+ }[@lang]
58
+ end
59
+
60
+ def write(content, filename)
61
+ mkdir_p(File.dirname(filename)) unless File.directory?(File.dirname(filename))
62
+ File.open(filename, "wb") do |file|
63
+ file.write(content)
64
+ end
65
+ end
66
+
67
+ def ragel_list(keywords)
68
+ "(#{keywords.map{|keyword| %{"#{keyword}"}}.join(' | ')})"
69
+ end
70
+ end
@@ -0,0 +1,12 @@
1
+ require 'rake/rdoctask'
2
+
3
+ Rake::RDocTask.new do |rdoc|
4
+ config = YAML.load_file('VERSION.yml')
5
+ version = "#{config[:major]}.#{config[:minor]}.#{config[:patch]}"
6
+
7
+ rdoc.rdoc_dir = 'rdoc'
8
+ rdoc.title = "Gherkin #{version}"
9
+ rdoc.rdoc_files.include('README.rdoc')
10
+ rdoc.rdoc_files.include('lib/**/*.rb')
11
+ rdoc.rdoc_files.exclude('lib/gherkin/lexer')
12
+ end
@@ -0,0 +1,26 @@
1
+ namespace :release do
2
+ desc 'Uplad all packages and tag git'
3
+ task :ALL => [:gems, :push_dll, :push_jar, :push_gems, 'git:release']
4
+
5
+ task :push_gems do
6
+ Dir.chdir('release') do
7
+ Dir['*.gem'].each do |gem_file|
8
+ sh("gem push #{gem_file}")
9
+ end
10
+ end
11
+ end
12
+
13
+ task :push_dll => :ikvm do
14
+ Dir.chdir('release') do
15
+ # This requires aslakhellesoy's build of the github gem,
16
+ # which has tekkub's upload command.
17
+ sh("github upload #{Dir['gherkin*.dll'][0]}")
18
+ end
19
+ end
20
+
21
+ task :push_jar do
22
+ Dir.chdir('java') do
23
+ sh("mvn deploy")
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,15 @@
1
+ require 'spec/rake/spectask'
2
+
3
+ Spec::Rake::SpecTask.new(:spec) do |spec|
4
+ spec.libs << 'lib' << 'spec'
5
+ spec.spec_opts << '--color --diff'
6
+ end
7
+ task :spec => [:check_dependencies]
8
+
9
+ Spec::Rake::SpecTask.new(:rcov) do |spec|
10
+ spec.libs << 'lib' << 'spec'
11
+ spec.spec_opts << '--color --diff'
12
+ spec.pattern = 'spec/**/*_spec.rb'
13
+ spec.rcov = true
14
+ spec.rcov_opts = %w{--exclude spec\/}
15
+ end
metadata ADDED
@@ -0,0 +1,257 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: gherkin
3
+ version: !ruby/object:Gem::Version
4
+ hash: 43
5
+ prerelease: false
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 30
10
+ version: 1.0.30
11
+ platform: universal-dotnet
12
+ authors:
13
+ - Mike Sassak
14
+ - Gregory Hnatiuk
15
+ - "Aslak Helles\xC3\xB8y"
16
+ autorequire:
17
+ bindir: bin
18
+ cert_chain: []
19
+
20
+ date: 2010-05-20 00:00:00 +02:00
21
+ default_executable: gherkin
22
+ dependencies:
23
+ - !ruby/object:Gem::Dependency
24
+ name: trollop
25
+ prerelease: false
26
+ requirement: &id001 !ruby/object:Gem::Requirement
27
+ none: false
28
+ requirements:
29
+ - - ">="
30
+ - !ruby/object:Gem::Version
31
+ hash: 83
32
+ segments:
33
+ - 1
34
+ - 16
35
+ - 2
36
+ version: 1.16.2
37
+ type: :runtime
38
+ version_requirements: *id001
39
+ - !ruby/object:Gem::Dependency
40
+ name: rspec
41
+ prerelease: false
42
+ requirement: &id002 !ruby/object:Gem::Requirement
43
+ none: false
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ hash: 27
48
+ segments:
49
+ - 1
50
+ - 3
51
+ - 0
52
+ version: 1.3.0
53
+ type: :development
54
+ version_requirements: *id002
55
+ - !ruby/object:Gem::Dependency
56
+ name: cucumber
57
+ prerelease: false
58
+ requirement: &id003 !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ">="
62
+ - !ruby/object:Gem::Version
63
+ hash: 7
64
+ segments:
65
+ - 0
66
+ - 7
67
+ - 2
68
+ version: 0.7.2
69
+ type: :development
70
+ version_requirements: *id003
71
+ - !ruby/object:Gem::Dependency
72
+ name: rake-compiler
73
+ prerelease: false
74
+ requirement: &id004 !ruby/object:Gem::Requirement
75
+ none: false
76
+ requirements:
77
+ - - ">="
78
+ - !ruby/object:Gem::Version
79
+ hash: 3
80
+ segments:
81
+ - 0
82
+ - 7
83
+ - 0
84
+ version: 0.7.0
85
+ type: :development
86
+ version_requirements: *id004
87
+ description: A fast Gherkin lexer/parser based on the Ragel State Machine Compiler.
88
+ email: cukes@googlegroups.com
89
+ executables:
90
+ - gherkin
91
+ extensions: []
92
+
93
+ extra_rdoc_files:
94
+ - LICENSE
95
+ - README.rdoc
96
+ files:
97
+ - .gitattributes
98
+ - .gitignore
99
+ - .mailmap
100
+ - History.txt
101
+ - LICENSE
102
+ - README.rdoc
103
+ - Rakefile
104
+ - VERSION.yml
105
+ - bin/gherkin
106
+ - cucumber.yml
107
+ - features/escaped_pipes.feature
108
+ - features/feature_parser.feature
109
+ - features/native_lexer.feature
110
+ - features/parser_with_native_lexer.feature
111
+ - features/pretty_printer.feature
112
+ - features/step_definitions/eyeball_steps.rb
113
+ - features/step_definitions/gherkin_steps.rb
114
+ - features/step_definitions/pretty_formatter_steps.rb
115
+ - features/steps_parser.feature
116
+ - features/support/env.rb
117
+ - ikvm/.gitignore
118
+ - java/.gitignore
119
+ - java/src/main/java/gherkin/lexer/.gitignore
120
+ - java/src/main/resources/gherkin/.gitignore
121
+ - lib/.gitignore
122
+ - lib/IKVM.OpenJDK.Core.dll
123
+ - lib/IKVM.OpenJDK.Security.dll
124
+ - lib/IKVM.OpenJDK.Text.dll
125
+ - lib/IKVM.Runtime.dll
126
+ - lib/gherkin.dll
127
+ - lib/gherkin.rb
128
+ - lib/gherkin/c_lexer.rb
129
+ - lib/gherkin/cli/main.rb
130
+ - lib/gherkin/formatter/argument.rb
131
+ - lib/gherkin/formatter/colors.rb
132
+ - lib/gherkin/formatter/escaping.rb
133
+ - lib/gherkin/formatter/monochrome_format.rb
134
+ - lib/gherkin/formatter/pretty_formatter.rb
135
+ - lib/gherkin/i18n.rb
136
+ - lib/gherkin/i18n.yml
137
+ - lib/gherkin/i18n_lexer.rb
138
+ - lib/gherkin/native.rb
139
+ - lib/gherkin/native/ikvm.rb
140
+ - lib/gherkin/native/java.rb
141
+ - lib/gherkin/native/null.rb
142
+ - lib/gherkin/parser/event.rb
143
+ - lib/gherkin/parser/filter_listener.rb
144
+ - lib/gherkin/parser/meta.txt
145
+ - lib/gherkin/parser/parser.rb
146
+ - lib/gherkin/parser/root.txt
147
+ - lib/gherkin/parser/steps.txt
148
+ - lib/gherkin/parser/tag_expression.rb
149
+ - lib/gherkin/rb_lexer.rb
150
+ - lib/gherkin/rb_lexer/.gitignore
151
+ - lib/gherkin/rb_lexer/README.rdoc
152
+ - lib/gherkin/rubify.rb
153
+ - lib/gherkin/tools.rb
154
+ - lib/gherkin/tools/files.rb
155
+ - lib/gherkin/tools/reformat.rb
156
+ - lib/gherkin/tools/stats.rb
157
+ - lib/gherkin/tools/stats_listener.rb
158
+ - ragel/i18n/.gitignore
159
+ - ragel/lexer.c.rl.erb
160
+ - ragel/lexer.java.rl.erb
161
+ - ragel/lexer.rb.rl.erb
162
+ - ragel/lexer_common.rl.erb
163
+ - spec/gherkin/c_lexer_spec.rb
164
+ - spec/gherkin/csharp_lexer_spec.rb
165
+ - spec/gherkin/fixtures/1.feature
166
+ - spec/gherkin/fixtures/comments_in_table.feature
167
+ - spec/gherkin/fixtures/complex.feature
168
+ - spec/gherkin/fixtures/dos_line_endings.feature
169
+ - spec/gherkin/fixtures/i18n_fr.feature
170
+ - spec/gherkin/fixtures/i18n_no.feature
171
+ - spec/gherkin/fixtures/i18n_zh-CN.feature
172
+ - spec/gherkin/fixtures/simple_with_comments.feature
173
+ - spec/gherkin/fixtures/simple_with_tags.feature
174
+ - spec/gherkin/fixtures/with_bom.feature
175
+ - spec/gherkin/formatter/argument_spec.rb
176
+ - spec/gherkin/formatter/colors_spec.rb
177
+ - spec/gherkin/formatter/pretty_formatter_spec.rb
178
+ - spec/gherkin/formatter/spaces.feature
179
+ - spec/gherkin/formatter/tabs.feature
180
+ - spec/gherkin/i18n_lexer_spec.rb
181
+ - spec/gherkin/i18n_spec.rb
182
+ - spec/gherkin/java_lexer_spec.rb
183
+ - spec/gherkin/parser/filter_listener_spec.rb
184
+ - spec/gherkin/parser/parser_spec.rb
185
+ - spec/gherkin/parser/tag_expression_spec.rb
186
+ - spec/gherkin/rb_lexer_spec.rb
187
+ - spec/gherkin/sexp_recorder.rb
188
+ - spec/gherkin/shared/lexer_spec.rb
189
+ - spec/gherkin/shared/py_string_spec.rb
190
+ - spec/gherkin/shared/row_spec.rb
191
+ - spec/gherkin/shared/tags_spec.rb
192
+ - spec/spec_helper.rb
193
+ - tasks/bench.rake
194
+ - tasks/bench/feature_builder.rb
195
+ - tasks/bench/generated/.gitignore
196
+ - tasks/bench/null_listener.rb
197
+ - tasks/compile.rake
198
+ - tasks/cucumber.rake
199
+ - tasks/gems.rake
200
+ - tasks/ikvm.rake
201
+ - tasks/ragel_task.rb
202
+ - tasks/rdoc.rake
203
+ - tasks/release.rake
204
+ - tasks/rspec.rake
205
+ has_rdoc: true
206
+ homepage: http://github.com/aslakhellesoy/gherkin
207
+ licenses: []
208
+
209
+ post_install_message:
210
+ rdoc_options:
211
+ - --charset=UTF-8
212
+ require_paths:
213
+ - lib
214
+ required_ruby_version: !ruby/object:Gem::Requirement
215
+ none: false
216
+ requirements:
217
+ - - ">="
218
+ - !ruby/object:Gem::Version
219
+ hash: 3
220
+ segments:
221
+ - 0
222
+ version: "0"
223
+ required_rubygems_version: !ruby/object:Gem::Requirement
224
+ none: false
225
+ requirements:
226
+ - - ">="
227
+ - !ruby/object:Gem::Version
228
+ hash: 3
229
+ segments:
230
+ - 0
231
+ version: "0"
232
+ requirements: []
233
+
234
+ rubyforge_project:
235
+ rubygems_version: 1.3.7
236
+ signing_key:
237
+ specification_version: 3
238
+ summary: Fast Gherkin lexer/parser
239
+ test_files:
240
+ - spec/gherkin/c_lexer_spec.rb
241
+ - spec/gherkin/csharp_lexer_spec.rb
242
+ - spec/gherkin/formatter/argument_spec.rb
243
+ - spec/gherkin/formatter/colors_spec.rb
244
+ - spec/gherkin/formatter/pretty_formatter_spec.rb
245
+ - spec/gherkin/i18n_lexer_spec.rb
246
+ - spec/gherkin/i18n_spec.rb
247
+ - spec/gherkin/java_lexer_spec.rb
248
+ - spec/gherkin/parser/filter_listener_spec.rb
249
+ - spec/gherkin/parser/parser_spec.rb
250
+ - spec/gherkin/parser/tag_expression_spec.rb
251
+ - spec/gherkin/rb_lexer_spec.rb
252
+ - spec/gherkin/sexp_recorder.rb
253
+ - spec/gherkin/shared/lexer_spec.rb
254
+ - spec/gherkin/shared/py_string_spec.rb
255
+ - spec/gherkin/shared/row_spec.rb
256
+ - spec/gherkin/shared/tags_spec.rb
257
+ - spec/spec_helper.rb