gherkin 1.0.8 → 1.0.9
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.
- data/.gitignore +2 -1
- data/History.txt +5 -0
- data/VERSION.yml +1 -1
- data/features/step_definitions/{pretty_listener_step.rb → pretty_formatter_steps.rb} +2 -2
- data/lib/gherkin/formatter/argument.rb +3 -11
- data/lib/gherkin/formatter/{pretty_listener.rb → pretty_formatter.rb} +4 -12
- data/lib/gherkin/i18n.rb +10 -2
- data/lib/gherkin/i18n.yml +1 -1
- data/lib/gherkin/i18n_lexer.rb +3 -12
- data/lib/gherkin/java_impl.rb +21 -0
- data/lib/gherkin/parser/parser.rb +4 -10
- data/lib/gherkin/tools/reformat.rb +2 -2
- data/ragel/lexer.c.rl.erb +2 -0
- data/ragel/lexer.java.rl.erb +1 -1
- data/ragel/lexer.rb.rl.erb +1 -1
- data/spec/gherkin/formatter/colors_spec.rb +1 -1
- data/spec/gherkin/formatter/{pretty_listener_spec.rb → pretty_formatter_spec.rb} +4 -4
- data/spec/gherkin/parser/filter_listener_spec.rb +2 -2
- data/spec/gherkin/shared/py_string_spec.rb +20 -0
- data/tasks/cucumber.rake +6 -0
- metadata +8 -8
- data/gherkin.gemspec +0 -251
data/.gitignore
CHANGED
data/History.txt
CHANGED
data/VERSION.yml
CHANGED
@@ -1,11 +1,11 @@
|
|
1
1
|
require 'stringio'
|
2
2
|
require 'gherkin'
|
3
|
-
require 'gherkin/formatter/
|
3
|
+
require 'gherkin/formatter/pretty_formatter'
|
4
4
|
|
5
5
|
module PrettyPlease
|
6
6
|
def pretty(source)
|
7
7
|
io = StringIO.new
|
8
|
-
listener = Gherkin::Formatter::
|
8
|
+
listener = Gherkin::Formatter::PrettyFormatter.new(io)
|
9
9
|
parser = Gherkin::Parser.new(listener, true)
|
10
10
|
lexer = Gherkin::I18nLexer.new(parser)
|
11
11
|
lexer.scan(source)
|
@@ -1,18 +1,10 @@
|
|
1
1
|
module Gherkin
|
2
2
|
module Formatter
|
3
3
|
class Argument
|
4
|
-
|
4
|
+
require 'gherkin/java_impl'
|
5
|
+
java_impl('gherkin.jar')
|
5
6
|
|
6
|
-
|
7
|
-
def new(byte_offset, val)
|
8
|
-
if defined?(JRUBY_VERSION)
|
9
|
-
require 'gherkin.jar'
|
10
|
-
Java::GherkinFormatter::Argument.new(byte_offset, val)
|
11
|
-
else
|
12
|
-
super
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
7
|
+
attr_reader :byte_offset, :val
|
16
8
|
|
17
9
|
def initialize(byte_offset, val)
|
18
10
|
@byte_offset, @val = byte_offset, val
|
@@ -6,19 +6,11 @@ require 'gherkin/formatter/argument'
|
|
6
6
|
|
7
7
|
module Gherkin
|
8
8
|
module Formatter
|
9
|
-
class
|
9
|
+
class PrettyFormatter
|
10
|
+
require 'gherkin/java_impl'
|
11
|
+
java_impl('gherkin.jar')
|
12
|
+
|
10
13
|
include Colors
|
11
|
-
|
12
|
-
class << self
|
13
|
-
def new(io, monochrome=false)
|
14
|
-
if defined?(JRUBY_VERSION)
|
15
|
-
require 'gherkin.jar'
|
16
|
-
Java::GherkinFormatter::PrettyFormatter.new(io, monochrome)
|
17
|
-
else
|
18
|
-
super
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
14
|
|
23
15
|
def initialize(io, monochrome=false)
|
24
16
|
@io = io
|
data/lib/gherkin/i18n.rb
CHANGED
@@ -46,7 +46,7 @@ module Gherkin
|
|
46
46
|
@keywords['grammar_name'] = @keywords['name'].gsub(/\s/, '')
|
47
47
|
end
|
48
48
|
|
49
|
-
def lexer(listener, force_ruby)
|
49
|
+
def lexer(listener, force_ruby=false)
|
50
50
|
begin
|
51
51
|
if force_ruby
|
52
52
|
rb(listener)
|
@@ -54,7 +54,7 @@ module Gherkin
|
|
54
54
|
begin
|
55
55
|
c(listener)
|
56
56
|
rescue NameError, LoadError => e
|
57
|
-
|
57
|
+
raise("WARNING: #{e.message}. Reverting to Ruby lexer.")
|
58
58
|
rb(listener)
|
59
59
|
end
|
60
60
|
end
|
@@ -109,6 +109,7 @@ module Gherkin
|
|
109
109
|
keywords('and', space)
|
110
110
|
end
|
111
111
|
|
112
|
+
# Keywords that can be used in Gherkin source
|
112
113
|
def step_keywords
|
113
114
|
%w{given when then and but}.map{|key| keywords(key, true)}.flatten.uniq
|
114
115
|
end
|
@@ -117,6 +118,13 @@ module Gherkin
|
|
117
118
|
%w{given when then}.map{|key| keywords(key, true)}.flatten.uniq
|
118
119
|
end
|
119
120
|
|
121
|
+
# Keywords that can be used in code
|
122
|
+
def code_keywords
|
123
|
+
result = gwt_keywords.map{|keyword| keyword.gsub(/[\s',]/, '').strip}
|
124
|
+
result.delete('*')
|
125
|
+
result
|
126
|
+
end
|
127
|
+
|
120
128
|
def keywords(key, space=false)
|
121
129
|
raise "No #{key} in #{@keywords.inspect}" if @keywords[key].nil?
|
122
130
|
@keywords[key].split('|').map{|kw| space ? keyword_space(kw) : kw}
|
data/lib/gherkin/i18n.yml
CHANGED
data/lib/gherkin/i18n_lexer.rb
CHANGED
@@ -6,21 +6,12 @@ module Gherkin
|
|
6
6
|
|
7
7
|
# The main entry point to lexing Gherkin source.
|
8
8
|
class I18nLexer
|
9
|
-
|
9
|
+
require 'gherkin/java_impl'
|
10
|
+
java_impl('gherkin.jar')
|
10
11
|
|
12
|
+
LANGUAGE_PATTERN = /language\s*:\s*(.*)/ #:nodoc:
|
11
13
|
attr_reader :i18n_language
|
12
14
|
|
13
|
-
class << self
|
14
|
-
def new(listener, force_ruby)
|
15
|
-
if !force_ruby && defined?(JRUBY_VERSION)
|
16
|
-
require 'gherkin.jar'
|
17
|
-
Java::Gherkin::I18nLexer.new(listener)
|
18
|
-
else
|
19
|
-
super
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
15
|
def initialize(listener, force_ruby)
|
25
16
|
@listener = listener
|
26
17
|
@force_ruby = force_ruby
|
@@ -0,0 +1,21 @@
|
|
1
|
+
class Class
|
2
|
+
# Causes a Java class to be instantiated instead of the Ruby class when
|
3
|
+
# running on JRuby. This is used to test both pure Java and pure Ruby classes
|
4
|
+
# from the same Ruby based test suite. The Java Class must have a package name
|
5
|
+
# that corresponds with the Ruby class.
|
6
|
+
def java_impl(jar)
|
7
|
+
if defined?(JRUBY_VERSION)
|
8
|
+
require jar
|
9
|
+
class << self
|
10
|
+
define_method(:new) do |*args|
|
11
|
+
names = self.name.split('::')
|
12
|
+
package = Java
|
13
|
+
names[0..-2].each do |module_name|
|
14
|
+
package = package.__send__(module_name.downcase)
|
15
|
+
end
|
16
|
+
package.__send__(names[-1]).new(*args)
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -7,17 +7,11 @@ module Gherkin
|
|
7
7
|
end
|
8
8
|
|
9
9
|
class Parser
|
10
|
-
|
11
|
-
|
12
|
-
require 'gherkin.jar'
|
13
|
-
Java::GherkinParser::Parser.new(listener, raise_on_error, machine_name)
|
14
|
-
else
|
15
|
-
super
|
16
|
-
end
|
17
|
-
end
|
10
|
+
require 'gherkin/java_impl'
|
11
|
+
java_impl('gherkin.jar')
|
18
12
|
|
19
13
|
# Initialize the parser. +machine_name+ refers to a state machine table.
|
20
|
-
def initialize(listener, raise_on_error, machine_name)
|
14
|
+
def initialize(listener, raise_on_error=true, machine_name='root')
|
21
15
|
@listener = listener
|
22
16
|
@raise_on_error = raise_on_error
|
23
17
|
@machines = []
|
@@ -121,7 +115,7 @@ module Gherkin
|
|
121
115
|
|
122
116
|
def transition_table(name)
|
123
117
|
state_machine_reader = StateMachineReader.new
|
124
|
-
lexer = Gherkin::I18n.new('en').lexer(state_machine_reader
|
118
|
+
lexer = Gherkin::I18n.new('en').lexer(state_machine_reader)
|
125
119
|
lexer.scan(File.read(File.dirname(__FILE__) + "/#{name}.txt"))
|
126
120
|
state_machine_reader.rows
|
127
121
|
end
|
@@ -1,6 +1,6 @@
|
|
1
1
|
require 'stringio'
|
2
2
|
require 'gherkin/tools/files'
|
3
|
-
require 'gherkin/
|
3
|
+
require 'gherkin/formatter/pretty_formatter'
|
4
4
|
|
5
5
|
module Gherkin
|
6
6
|
module Tools
|
@@ -8,7 +8,7 @@ module Gherkin
|
|
8
8
|
def run
|
9
9
|
each do |file|
|
10
10
|
purdy = StringIO.new
|
11
|
-
listener =
|
11
|
+
listener = PrettyFormatter.new(purdy)
|
12
12
|
scan(file, listener)
|
13
13
|
purdy.rewind
|
14
14
|
File.open(file, 'w') {|io| io.write(purdy.read)}
|
data/ragel/lexer.c.rl.erb
CHANGED
@@ -293,8 +293,10 @@ store_pystring_content(VALUE listener,
|
|
293
293
|
snprintf(pat, 32, "^ {0,%d}", start_col);
|
294
294
|
VALUE re = rb_reg_regcomp(rb_str_new2(pat));
|
295
295
|
VALUE re2 = rb_reg_regcomp(rb_str_new2("\r\\Z"));
|
296
|
+
VALUE unescape_escaped_quotes = rb_reg_regcomp(rb_str_new2("\\\\\"\\\\\"\\\\\""));
|
296
297
|
rb_funcall(con, rb_intern("gsub!"), 2, re, rb_str_new2(""));
|
297
298
|
rb_funcall(con, rb_intern("sub!"), 2, re2, rb_str_new2(""));
|
299
|
+
rb_funcall(con, rb_intern("gsub!"), 2, unescape_escaped_quotes, rb_str_new2("\"\"\""));
|
298
300
|
rb_funcall(listener, rb_intern("py_string"), 2, con, INT2FIX(current_line));
|
299
301
|
}
|
300
302
|
|
data/ragel/lexer.java.rl.erb
CHANGED
@@ -28,7 +28,7 @@ public class <%= @i18n.sanitized_key.upcase %> implements Lexer {
|
|
28
28
|
}
|
29
29
|
|
30
30
|
action store_pystring_content {
|
31
|
-
String con = unindent(startCol, substring(data, contentStart, nextKeywordStart-1).replaceFirst("(\\r?\\n)?( )*\\Z", ""));
|
31
|
+
String con = unindent(startCol, substring(data, contentStart, nextKeywordStart-1).replaceFirst("(\\r?\\n)?( )*\\Z", "").replaceAll("\\\\\"\\\\\"\\\\\"", "\"\"\""));
|
32
32
|
listener.py_string(con, currentLine);
|
33
33
|
}
|
34
34
|
|
data/ragel/lexer.rb.rl.erb
CHANGED
@@ -21,7 +21,7 @@ module Gherkin
|
|
21
21
|
}
|
22
22
|
|
23
23
|
action store_pystring_content {
|
24
|
-
con = unindent(@start_col, data[@content_start...@next_keyword_start-1].utf8_pack("c*").sub(/(\r?\n)?( )*\Z/, ''))
|
24
|
+
con = unindent(@start_col, data[@content_start...@next_keyword_start-1].utf8_pack("c*").sub(/(\r?\n)?( )*\Z/, '').gsub(/\\"\\"\\"/, '"""'))
|
25
25
|
@listener.py_string(con, @current_line)
|
26
26
|
}
|
27
27
|
|
@@ -1,12 +1,12 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
3
|
-
require 'gherkin/formatter/
|
3
|
+
require 'gherkin/formatter/pretty_formatter'
|
4
4
|
require 'gherkin/formatter/argument'
|
5
5
|
require 'stringio'
|
6
6
|
|
7
7
|
module Gherkin
|
8
8
|
module Formatter
|
9
|
-
describe
|
9
|
+
describe PrettyFormatter do
|
10
10
|
def assert_io(s)
|
11
11
|
@io.rewind
|
12
12
|
actual = @io.read
|
@@ -15,7 +15,7 @@ module Gherkin
|
|
15
15
|
|
16
16
|
def assert_pretty(text)
|
17
17
|
io = StringIO.new
|
18
|
-
l =
|
18
|
+
l = PrettyFormatter.new(io, true)
|
19
19
|
parser = Gherkin::Parser::Parser.new(l, true, "root")
|
20
20
|
lexer = Gherkin::I18nLexer.new(parser, true)
|
21
21
|
lexer.scan(text)
|
@@ -26,7 +26,7 @@ module Gherkin
|
|
26
26
|
|
27
27
|
before do
|
28
28
|
@io = StringIO.new
|
29
|
-
@l =
|
29
|
+
@l = PrettyFormatter.new(@io, true)
|
30
30
|
end
|
31
31
|
|
32
32
|
it "should print comments when scenario is longer" do
|
@@ -1,7 +1,7 @@
|
|
1
1
|
# encoding: utf-8
|
2
2
|
require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
|
3
3
|
require 'gherkin/parser/filter_listener'
|
4
|
-
require 'gherkin/formatter/
|
4
|
+
require 'gherkin/formatter/pretty_formatter'
|
5
5
|
require 'stringio'
|
6
6
|
|
7
7
|
module Gherkin
|
@@ -25,7 +25,7 @@ module Gherkin
|
|
25
25
|
|
26
26
|
def verify_output(expected_output, filters)
|
27
27
|
io = StringIO.new
|
28
|
-
scan(Gherkin::Formatter::
|
28
|
+
scan(Gherkin::Formatter::PrettyFormatter.new(io, true), filters)
|
29
29
|
io.rewind
|
30
30
|
io.read.should == expected_output
|
31
31
|
end
|
@@ -125,6 +125,26 @@ EOS
|
|
125
125
|
@listener.should_receive(:py_string).with("Line one\r\nLine two\r\n", 1)
|
126
126
|
@lexer.scan("\"\"\"\r\nLine one\r\nLine two\r\n\r\n\"\"\"")
|
127
127
|
end
|
128
|
+
|
129
|
+
it "should unescape escaped triple quotes" do
|
130
|
+
str = <<EOS
|
131
|
+
"""
|
132
|
+
\\"\\"\\"
|
133
|
+
"""
|
134
|
+
EOS
|
135
|
+
@listener.should_receive(:py_string).with('"""', 1)
|
136
|
+
@lexer.scan(str)
|
137
|
+
end
|
138
|
+
|
139
|
+
it "should not unescape escaped single quotes" do
|
140
|
+
str = <<EOS
|
141
|
+
"""
|
142
|
+
\\" \\"\\"
|
143
|
+
"""
|
144
|
+
EOS
|
145
|
+
@listener.should_receive(:py_string).with('\" \"\"', 1)
|
146
|
+
@lexer.scan(str)
|
147
|
+
end
|
128
148
|
end
|
129
149
|
end
|
130
150
|
end
|
data/tasks/cucumber.rake
CHANGED
@@ -1,3 +1,4 @@
|
|
1
|
+
begin
|
1
2
|
require 'cucumber/rake/task'
|
2
3
|
|
3
4
|
Cucumber::Rake::Task.new(:cucumber) do |t|
|
@@ -18,3 +19,8 @@ namespace :cucumber do
|
|
18
19
|
task :native_lexer => [:check_dependencies, :clean, :compile]
|
19
20
|
end
|
20
21
|
|
22
|
+
rescue LoadError
|
23
|
+
task :cucumber do
|
24
|
+
raise "Cucumber not installed"
|
25
|
+
end
|
26
|
+
end
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 1
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 1.0.
|
8
|
+
- 9
|
9
|
+
version: 1.0.9
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Mike Sassak
|
@@ -16,7 +16,7 @@ autorequire:
|
|
16
16
|
bindir: bin
|
17
17
|
cert_chain: []
|
18
18
|
|
19
|
-
date: 2010-04-
|
19
|
+
date: 2010-04-12 00:00:00 +02:00
|
20
20
|
default_executable: gherkin
|
21
21
|
dependencies:
|
22
22
|
- !ruby/object:Gem::Dependency
|
@@ -182,10 +182,9 @@ files:
|
|
182
182
|
- features/parser_with_native_lexer.feature
|
183
183
|
- features/pretty_printer.feature
|
184
184
|
- features/step_definitions/gherkin_steps.rb
|
185
|
-
- features/step_definitions/
|
185
|
+
- features/step_definitions/pretty_formatter_steps.rb
|
186
186
|
- features/steps_parser.feature
|
187
187
|
- features/support/env.rb
|
188
|
-
- gherkin.gemspec
|
189
188
|
- ikvm/.gitignore
|
190
189
|
- java/.gitignore
|
191
190
|
- java/src/main/java/gherkin/lexer/.gitignore
|
@@ -198,10 +197,11 @@ files:
|
|
198
197
|
- lib/gherkin/formatter/argument.rb
|
199
198
|
- lib/gherkin/formatter/colors.rb
|
200
199
|
- lib/gherkin/formatter/monochrome_format.rb
|
201
|
-
- lib/gherkin/formatter/
|
200
|
+
- lib/gherkin/formatter/pretty_formatter.rb
|
202
201
|
- lib/gherkin/i18n.rb
|
203
202
|
- lib/gherkin/i18n.yml
|
204
203
|
- lib/gherkin/i18n_lexer.rb
|
204
|
+
- lib/gherkin/java_impl.rb
|
205
205
|
- lib/gherkin/parser/filter_listener.rb
|
206
206
|
- lib/gherkin/parser/meta.txt
|
207
207
|
- lib/gherkin/parser/parser.rb
|
@@ -278,7 +278,7 @@ files:
|
|
278
278
|
- spec/gherkin/fixtures/simple_with_tags.feature
|
279
279
|
- spec/gherkin/formatter/argument_spec.rb
|
280
280
|
- spec/gherkin/formatter/colors_spec.rb
|
281
|
-
- spec/gherkin/formatter/
|
281
|
+
- spec/gherkin/formatter/pretty_formatter_spec.rb
|
282
282
|
- spec/gherkin/i18n_lexer_spec.rb
|
283
283
|
- spec/gherkin/i18n_spec.rb
|
284
284
|
- spec/gherkin/java_lexer_spec.rb
|
@@ -339,7 +339,7 @@ test_files:
|
|
339
339
|
- spec/gherkin/csharp_lexer_spec.rb
|
340
340
|
- spec/gherkin/formatter/argument_spec.rb
|
341
341
|
- spec/gherkin/formatter/colors_spec.rb
|
342
|
-
- spec/gherkin/formatter/
|
342
|
+
- spec/gherkin/formatter/pretty_formatter_spec.rb
|
343
343
|
- spec/gherkin/i18n_lexer_spec.rb
|
344
344
|
- spec/gherkin/i18n_spec.rb
|
345
345
|
- spec/gherkin/java_lexer_spec.rb
|
data/gherkin.gemspec
DELETED
@@ -1,251 +0,0 @@
|
|
1
|
-
# Generated by jeweler
|
2
|
-
# DO NOT EDIT THIS FILE DIRECTLY
|
3
|
-
# Instead, edit Jeweler::Tasks in Rakefile, and run the gemspec command
|
4
|
-
# -*- encoding: utf-8 -*-
|
5
|
-
|
6
|
-
Gem::Specification.new do |s|
|
7
|
-
s.name = %q{gherkin}
|
8
|
-
s.version = "1.0.8"
|
9
|
-
|
10
|
-
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
|
-
s.authors = ["Mike Sassak", "Gregory Hnatiuk", "Aslak Helles\303\270y"]
|
12
|
-
s.date = %q{2010-04-11}
|
13
|
-
s.default_executable = %q{gherkin}
|
14
|
-
s.description = %q{A fast Gherkin lexer/parser based on the Ragel State Machine Compiler.}
|
15
|
-
s.email = %q{cukes@googlegroups.com}
|
16
|
-
s.executables = ["gherkin"]
|
17
|
-
s.extensions = ["ext/gherkin_lexer_ar/extconf.rb", "ext/gherkin_lexer_bg/extconf.rb", "ext/gherkin_lexer_ca/extconf.rb", "ext/gherkin_lexer_cs/extconf.rb", "ext/gherkin_lexer_cy_gb/extconf.rb", "ext/gherkin_lexer_da/extconf.rb", "ext/gherkin_lexer_de/extconf.rb", "ext/gherkin_lexer_en/extconf.rb", "ext/gherkin_lexer_en_au/extconf.rb", "ext/gherkin_lexer_en_lol/extconf.rb", "ext/gherkin_lexer_en_scouse/extconf.rb", "ext/gherkin_lexer_en_tx/extconf.rb", "ext/gherkin_lexer_es/extconf.rb", "ext/gherkin_lexer_et/extconf.rb", "ext/gherkin_lexer_fi/extconf.rb", "ext/gherkin_lexer_fr/extconf.rb", "ext/gherkin_lexer_he/extconf.rb", "ext/gherkin_lexer_hr/extconf.rb", "ext/gherkin_lexer_hu/extconf.rb", "ext/gherkin_lexer_id/extconf.rb", "ext/gherkin_lexer_it/extconf.rb", "ext/gherkin_lexer_ja/extconf.rb", "ext/gherkin_lexer_ko/extconf.rb", "ext/gherkin_lexer_lt/extconf.rb", "ext/gherkin_lexer_lv/extconf.rb", "ext/gherkin_lexer_nl/extconf.rb", "ext/gherkin_lexer_no/extconf.rb", "ext/gherkin_lexer_pl/extconf.rb", "ext/gherkin_lexer_pt/extconf.rb", "ext/gherkin_lexer_ro/extconf.rb", "ext/gherkin_lexer_ro_ro/extconf.rb", "ext/gherkin_lexer_ru/extconf.rb", "ext/gherkin_lexer_sk/extconf.rb", "ext/gherkin_lexer_sr_cyrl/extconf.rb", "ext/gherkin_lexer_sr_latn/extconf.rb", "ext/gherkin_lexer_sv/extconf.rb", "ext/gherkin_lexer_tr/extconf.rb", "ext/gherkin_lexer_uk/extconf.rb", "ext/gherkin_lexer_uz/extconf.rb", "ext/gherkin_lexer_vi/extconf.rb", "ext/gherkin_lexer_zh_cn/extconf.rb", "ext/gherkin_lexer_zh_tw/extconf.rb"]
|
18
|
-
s.extra_rdoc_files = [
|
19
|
-
"LICENSE",
|
20
|
-
"README.rdoc"
|
21
|
-
]
|
22
|
-
s.files = [
|
23
|
-
".gitattributes",
|
24
|
-
".gitignore",
|
25
|
-
".mailmap",
|
26
|
-
"History.txt",
|
27
|
-
"LICENSE",
|
28
|
-
"README.rdoc",
|
29
|
-
"Rakefile",
|
30
|
-
"VERSION.yml",
|
31
|
-
"bin/gherkin",
|
32
|
-
"cucumber.yml",
|
33
|
-
"ext/gherkin_lexer_ar/gherkin_lexer_ar.c",
|
34
|
-
"ext/gherkin_lexer_bg/gherkin_lexer_bg.c",
|
35
|
-
"ext/gherkin_lexer_ca/gherkin_lexer_ca.c",
|
36
|
-
"ext/gherkin_lexer_cs/gherkin_lexer_cs.c",
|
37
|
-
"ext/gherkin_lexer_cy_gb/gherkin_lexer_cy_gb.c",
|
38
|
-
"ext/gherkin_lexer_da/gherkin_lexer_da.c",
|
39
|
-
"ext/gherkin_lexer_de/gherkin_lexer_de.c",
|
40
|
-
"ext/gherkin_lexer_en/gherkin_lexer_en.c",
|
41
|
-
"ext/gherkin_lexer_en_au/gherkin_lexer_en_au.c",
|
42
|
-
"ext/gherkin_lexer_en_lol/gherkin_lexer_en_lol.c",
|
43
|
-
"ext/gherkin_lexer_en_scouse/gherkin_lexer_en_scouse.c",
|
44
|
-
"ext/gherkin_lexer_en_tx/gherkin_lexer_en_tx.c",
|
45
|
-
"ext/gherkin_lexer_es/gherkin_lexer_es.c",
|
46
|
-
"ext/gherkin_lexer_et/gherkin_lexer_et.c",
|
47
|
-
"ext/gherkin_lexer_fi/gherkin_lexer_fi.c",
|
48
|
-
"ext/gherkin_lexer_fr/gherkin_lexer_fr.c",
|
49
|
-
"ext/gherkin_lexer_he/gherkin_lexer_he.c",
|
50
|
-
"ext/gherkin_lexer_hr/gherkin_lexer_hr.c",
|
51
|
-
"ext/gherkin_lexer_hu/gherkin_lexer_hu.c",
|
52
|
-
"ext/gherkin_lexer_id/gherkin_lexer_id.c",
|
53
|
-
"ext/gherkin_lexer_it/gherkin_lexer_it.c",
|
54
|
-
"ext/gherkin_lexer_ja/gherkin_lexer_ja.c",
|
55
|
-
"ext/gherkin_lexer_ko/gherkin_lexer_ko.c",
|
56
|
-
"ext/gherkin_lexer_lt/gherkin_lexer_lt.c",
|
57
|
-
"ext/gherkin_lexer_lv/gherkin_lexer_lv.c",
|
58
|
-
"ext/gherkin_lexer_nl/gherkin_lexer_nl.c",
|
59
|
-
"ext/gherkin_lexer_no/gherkin_lexer_no.c",
|
60
|
-
"ext/gherkin_lexer_pl/gherkin_lexer_pl.c",
|
61
|
-
"ext/gherkin_lexer_pt/gherkin_lexer_pt.c",
|
62
|
-
"ext/gherkin_lexer_ro/gherkin_lexer_ro.c",
|
63
|
-
"ext/gherkin_lexer_ro_ro/gherkin_lexer_ro_ro.c",
|
64
|
-
"ext/gherkin_lexer_ru/gherkin_lexer_ru.c",
|
65
|
-
"ext/gherkin_lexer_sk/gherkin_lexer_sk.c",
|
66
|
-
"ext/gherkin_lexer_sr_cyrl/gherkin_lexer_sr_cyrl.c",
|
67
|
-
"ext/gherkin_lexer_sr_latn/gherkin_lexer_sr_latn.c",
|
68
|
-
"ext/gherkin_lexer_sv/gherkin_lexer_sv.c",
|
69
|
-
"ext/gherkin_lexer_tr/gherkin_lexer_tr.c",
|
70
|
-
"ext/gherkin_lexer_uk/gherkin_lexer_uk.c",
|
71
|
-
"ext/gherkin_lexer_uz/gherkin_lexer_uz.c",
|
72
|
-
"ext/gherkin_lexer_vi/gherkin_lexer_vi.c",
|
73
|
-
"ext/gherkin_lexer_zh_cn/gherkin_lexer_zh_cn.c",
|
74
|
-
"ext/gherkin_lexer_zh_tw/gherkin_lexer_zh_tw.c",
|
75
|
-
"features/feature_parser.feature",
|
76
|
-
"features/native_lexer.feature",
|
77
|
-
"features/parser_with_native_lexer.feature",
|
78
|
-
"features/pretty_printer.feature",
|
79
|
-
"features/step_definitions/gherkin_steps.rb",
|
80
|
-
"features/step_definitions/pretty_listener_step.rb",
|
81
|
-
"features/steps_parser.feature",
|
82
|
-
"features/support/env.rb",
|
83
|
-
"gherkin.gemspec",
|
84
|
-
"ikvm/.gitignore",
|
85
|
-
"java/.gitignore",
|
86
|
-
"java/src/main/java/gherkin/lexer/.gitignore",
|
87
|
-
"lib/.gitignore",
|
88
|
-
"lib/gherkin.rb",
|
89
|
-
"lib/gherkin/c_lexer.rb",
|
90
|
-
"lib/gherkin/cli/main.rb",
|
91
|
-
"lib/gherkin/core_ext/array.rb",
|
92
|
-
"lib/gherkin/csharp_lexer.rb",
|
93
|
-
"lib/gherkin/formatter/argument.rb",
|
94
|
-
"lib/gherkin/formatter/colors.rb",
|
95
|
-
"lib/gherkin/formatter/monochrome_format.rb",
|
96
|
-
"lib/gherkin/formatter/pretty_listener.rb",
|
97
|
-
"lib/gherkin/i18n.rb",
|
98
|
-
"lib/gherkin/i18n.yml",
|
99
|
-
"lib/gherkin/i18n_lexer.rb",
|
100
|
-
"lib/gherkin/parser/filter_listener.rb",
|
101
|
-
"lib/gherkin/parser/meta.txt",
|
102
|
-
"lib/gherkin/parser/parser.rb",
|
103
|
-
"lib/gherkin/parser/root.txt",
|
104
|
-
"lib/gherkin/parser/sexp.rb",
|
105
|
-
"lib/gherkin/parser/steps.txt",
|
106
|
-
"lib/gherkin/parser/tag_expression.rb",
|
107
|
-
"lib/gherkin/rb_lexer.rb",
|
108
|
-
"lib/gherkin/rb_lexer/.gitignore",
|
109
|
-
"lib/gherkin/rb_lexer/README.rdoc",
|
110
|
-
"lib/gherkin/rb_lexer/ar.rb",
|
111
|
-
"lib/gherkin/rb_lexer/bg.rb",
|
112
|
-
"lib/gherkin/rb_lexer/ca.rb",
|
113
|
-
"lib/gherkin/rb_lexer/cs.rb",
|
114
|
-
"lib/gherkin/rb_lexer/cy_gb.rb",
|
115
|
-
"lib/gherkin/rb_lexer/da.rb",
|
116
|
-
"lib/gherkin/rb_lexer/de.rb",
|
117
|
-
"lib/gherkin/rb_lexer/en.rb",
|
118
|
-
"lib/gherkin/rb_lexer/en_au.rb",
|
119
|
-
"lib/gherkin/rb_lexer/en_lol.rb",
|
120
|
-
"lib/gherkin/rb_lexer/en_scouse.rb",
|
121
|
-
"lib/gherkin/rb_lexer/en_tx.rb",
|
122
|
-
"lib/gherkin/rb_lexer/es.rb",
|
123
|
-
"lib/gherkin/rb_lexer/et.rb",
|
124
|
-
"lib/gherkin/rb_lexer/fi.rb",
|
125
|
-
"lib/gherkin/rb_lexer/fr.rb",
|
126
|
-
"lib/gherkin/rb_lexer/he.rb",
|
127
|
-
"lib/gherkin/rb_lexer/hr.rb",
|
128
|
-
"lib/gherkin/rb_lexer/hu.rb",
|
129
|
-
"lib/gherkin/rb_lexer/id.rb",
|
130
|
-
"lib/gherkin/rb_lexer/it.rb",
|
131
|
-
"lib/gherkin/rb_lexer/ja.rb",
|
132
|
-
"lib/gherkin/rb_lexer/ko.rb",
|
133
|
-
"lib/gherkin/rb_lexer/lt.rb",
|
134
|
-
"lib/gherkin/rb_lexer/lv.rb",
|
135
|
-
"lib/gherkin/rb_lexer/nl.rb",
|
136
|
-
"lib/gherkin/rb_lexer/no.rb",
|
137
|
-
"lib/gherkin/rb_lexer/pl.rb",
|
138
|
-
"lib/gherkin/rb_lexer/pt.rb",
|
139
|
-
"lib/gherkin/rb_lexer/ro.rb",
|
140
|
-
"lib/gherkin/rb_lexer/ro_ro.rb",
|
141
|
-
"lib/gherkin/rb_lexer/ru.rb",
|
142
|
-
"lib/gherkin/rb_lexer/sk.rb",
|
143
|
-
"lib/gherkin/rb_lexer/sr_cyrl.rb",
|
144
|
-
"lib/gherkin/rb_lexer/sr_latn.rb",
|
145
|
-
"lib/gherkin/rb_lexer/sv.rb",
|
146
|
-
"lib/gherkin/rb_lexer/tr.rb",
|
147
|
-
"lib/gherkin/rb_lexer/uk.rb",
|
148
|
-
"lib/gherkin/rb_lexer/uz.rb",
|
149
|
-
"lib/gherkin/rb_lexer/vi.rb",
|
150
|
-
"lib/gherkin/rb_lexer/zh_cn.rb",
|
151
|
-
"lib/gherkin/rb_lexer/zh_tw.rb",
|
152
|
-
"lib/gherkin/tools.rb",
|
153
|
-
"lib/gherkin/tools/files.rb",
|
154
|
-
"lib/gherkin/tools/reformat.rb",
|
155
|
-
"lib/gherkin/tools/stats.rb",
|
156
|
-
"lib/gherkin/tools/stats_listener.rb",
|
157
|
-
"ragel/i18n/.gitignore",
|
158
|
-
"ragel/lexer.c.rl.erb",
|
159
|
-
"ragel/lexer.java.rl.erb",
|
160
|
-
"ragel/lexer.rb.rl.erb",
|
161
|
-
"ragel/lexer_common.rl.erb",
|
162
|
-
"spec/gherkin/c_lexer_spec.rb",
|
163
|
-
"spec/gherkin/csharp_lexer_spec.rb",
|
164
|
-
"spec/gherkin/fixtures/1.feature",
|
165
|
-
"spec/gherkin/fixtures/comments_in_table.feature",
|
166
|
-
"spec/gherkin/fixtures/complex.feature",
|
167
|
-
"spec/gherkin/fixtures/dos_line_endings.feature",
|
168
|
-
"spec/gherkin/fixtures/i18n_fr.feature",
|
169
|
-
"spec/gherkin/fixtures/i18n_no.feature",
|
170
|
-
"spec/gherkin/fixtures/i18n_zh-CN.feature",
|
171
|
-
"spec/gherkin/fixtures/simple.feature",
|
172
|
-
"spec/gherkin/fixtures/simple_with_comments.feature",
|
173
|
-
"spec/gherkin/fixtures/simple_with_tags.feature",
|
174
|
-
"spec/gherkin/formatter/argument_spec.rb",
|
175
|
-
"spec/gherkin/formatter/colors_spec.rb",
|
176
|
-
"spec/gherkin/formatter/pretty_listener_spec.rb",
|
177
|
-
"spec/gherkin/i18n_lexer_spec.rb",
|
178
|
-
"spec/gherkin/i18n_spec.rb",
|
179
|
-
"spec/gherkin/java_lexer_spec.rb",
|
180
|
-
"spec/gherkin/parser/filter_listener_spec.rb",
|
181
|
-
"spec/gherkin/parser/parser_spec.rb",
|
182
|
-
"spec/gherkin/parser/tag_expression_spec.rb",
|
183
|
-
"spec/gherkin/rb_lexer_spec.rb",
|
184
|
-
"spec/gherkin/sexp_recorder.rb",
|
185
|
-
"spec/gherkin/shared/lexer_spec.rb",
|
186
|
-
"spec/gherkin/shared/py_string_spec.rb",
|
187
|
-
"spec/gherkin/shared/row_spec.rb",
|
188
|
-
"spec/gherkin/shared/tags_spec.rb",
|
189
|
-
"spec/spec_helper.rb",
|
190
|
-
"tasks/bench.rake",
|
191
|
-
"tasks/bench/feature_builder.rb",
|
192
|
-
"tasks/bench/generated/.gitignore",
|
193
|
-
"tasks/bench/null_listener.rb",
|
194
|
-
"tasks/compile.rake",
|
195
|
-
"tasks/cucumber.rake",
|
196
|
-
"tasks/gems.rake",
|
197
|
-
"tasks/ikvm.rake",
|
198
|
-
"tasks/ragel_task.rb",
|
199
|
-
"tasks/rdoc.rake",
|
200
|
-
"tasks/release.rake",
|
201
|
-
"tasks/rspec.rake"
|
202
|
-
]
|
203
|
-
s.homepage = %q{http://github.com/aslakhellesoy/gherkin}
|
204
|
-
s.rdoc_options = ["--charset=UTF-8"]
|
205
|
-
s.require_paths = ["lib"]
|
206
|
-
s.rubygems_version = %q{1.3.6}
|
207
|
-
s.summary = %q{Fast Gherkin lexer/parser}
|
208
|
-
s.test_files = [
|
209
|
-
"spec/gherkin/c_lexer_spec.rb",
|
210
|
-
"spec/gherkin/csharp_lexer_spec.rb",
|
211
|
-
"spec/gherkin/formatter/argument_spec.rb",
|
212
|
-
"spec/gherkin/formatter/colors_spec.rb",
|
213
|
-
"spec/gherkin/formatter/pretty_listener_spec.rb",
|
214
|
-
"spec/gherkin/i18n_lexer_spec.rb",
|
215
|
-
"spec/gherkin/i18n_spec.rb",
|
216
|
-
"spec/gherkin/java_lexer_spec.rb",
|
217
|
-
"spec/gherkin/parser/filter_listener_spec.rb",
|
218
|
-
"spec/gherkin/parser/parser_spec.rb",
|
219
|
-
"spec/gherkin/parser/tag_expression_spec.rb",
|
220
|
-
"spec/gherkin/rb_lexer_spec.rb",
|
221
|
-
"spec/gherkin/sexp_recorder.rb",
|
222
|
-
"spec/gherkin/shared/lexer_spec.rb",
|
223
|
-
"spec/gherkin/shared/py_string_spec.rb",
|
224
|
-
"spec/gherkin/shared/row_spec.rb",
|
225
|
-
"spec/gherkin/shared/tags_spec.rb",
|
226
|
-
"spec/spec_helper.rb"
|
227
|
-
]
|
228
|
-
|
229
|
-
if s.respond_to? :specification_version then
|
230
|
-
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
231
|
-
s.specification_version = 3
|
232
|
-
|
233
|
-
if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
|
234
|
-
s.add_runtime_dependency(%q<trollop>, [">= 1.15"])
|
235
|
-
s.add_development_dependency(%q<rspec>, [">= 1.3.0"])
|
236
|
-
s.add_development_dependency(%q<cucumber>, [">= 0.6.4"])
|
237
|
-
s.add_development_dependency(%q<rake-compiler>, [">= 0.7.0"])
|
238
|
-
else
|
239
|
-
s.add_dependency(%q<trollop>, [">= 1.15"])
|
240
|
-
s.add_dependency(%q<rspec>, [">= 1.3.0"])
|
241
|
-
s.add_dependency(%q<cucumber>, [">= 0.6.4"])
|
242
|
-
s.add_dependency(%q<rake-compiler>, [">= 0.7.0"])
|
243
|
-
end
|
244
|
-
else
|
245
|
-
s.add_dependency(%q<trollop>, [">= 1.15"])
|
246
|
-
s.add_dependency(%q<rspec>, [">= 1.3.0"])
|
247
|
-
s.add_dependency(%q<cucumber>, [">= 0.6.4"])
|
248
|
-
s.add_dependency(%q<rake-compiler>, [">= 0.7.0"])
|
249
|
-
end
|
250
|
-
end
|
251
|
-
|