gherkin 1.0.8 → 1.0.9

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -5,4 +5,5 @@ rdoc
5
5
  pkg
6
6
  ext
7
7
  tmp
8
- release
8
+ release
9
+ gherkin.gemspec
@@ -1,3 +1,8 @@
1
+ == 1.0.9 (2010-04-12)
2
+
3
+ === Bugfixes
4
+ * Triple escaped quotes (\"\"\") in PyStrings are unescaped to """. (Aslak Hellesøy)
5
+
1
6
  == 1.0.8 (2010-04-10)
2
7
 
3
8
  === Bugfixes
@@ -1,4 +1,4 @@
1
1
  ---
2
2
  :minor: 0
3
- :patch: 8
3
+ :patch: 9
4
4
  :major: 1
@@ -1,11 +1,11 @@
1
1
  require 'stringio'
2
2
  require 'gherkin'
3
- require 'gherkin/formatter/pretty_listener'
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::PrettyListener.new(io)
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
- attr_reader :byte_offset, :val
4
+ require 'gherkin/java_impl'
5
+ java_impl('gherkin.jar')
5
6
 
6
- class << self
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 PrettyListener
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
@@ -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
- warn("WARNING: #{e.message}. Reverting to Ruby lexer.")
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}
@@ -503,7 +503,7 @@
503
503
  scenario: Сценарій
504
504
  scenario_outline: Структура сценарію
505
505
  examples: Приклади
506
- given: "*|Припустимо|Припустимо що|Нехай"
506
+ given: "*|Припустимо|Припустимо, що|Нехай"
507
507
  when: "*|Якщо"
508
508
  then: "*|То"
509
509
  and: "*|І"
@@ -6,21 +6,12 @@ module Gherkin
6
6
 
7
7
  # The main entry point to lexing Gherkin source.
8
8
  class I18nLexer
9
- LANGUAGE_PATTERN = /language\s*:\s*(.*)/ #:nodoc:
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
- def self.new(listener, raise_on_error=true, machine_name='root')
11
- if defined?(JRUBY_VERSION)
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, false)
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/tools/pretty_listener'
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 = PrettyListener.new(purdy)
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)}
@@ -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
 
@@ -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
 
@@ -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,5 +1,5 @@
1
1
  require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
2
- require 'gherkin/formatter/pretty_listener'
2
+ require 'gherkin/formatter/pretty_formatter'
3
3
 
4
4
 
5
5
  module Gherkin
@@ -1,12 +1,12 @@
1
1
  # encoding: utf-8
2
2
  require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper')
3
- require 'gherkin/formatter/pretty_listener'
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 PrettyListener do
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 = PrettyListener.new(io, true)
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 = PrettyListener.new(@io, true)
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/pretty_listener'
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::PrettyListener.new(io, true), filters)
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
@@ -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
- - 8
9
- version: 1.0.8
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-11 00:00:00 +02:00
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/pretty_listener_step.rb
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/pretty_listener.rb
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/pretty_listener_spec.rb
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/pretty_listener_spec.rb
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
@@ -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
-