gherkin 2.2.1 → 2.2.3

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 CHANGED
@@ -7,4 +7,5 @@ pkg
7
7
  ext
8
8
  tmp
9
9
  release
10
- .bundle
10
+ .bundle
11
+ Gemfile.lock
data/Gemfile CHANGED
@@ -1,4 +1,5 @@
1
1
  source "http://rubygems.org"
2
2
  gemspec
3
3
 
4
+ @dependencies.reject!{|dep| dep.name == 'cucumber'}
4
5
  gem 'cucumber', :path => '../cucumber'
@@ -1,4 +1,15 @@
1
- == 2.2.1
1
+ == 2.2.3 (2010-09-21)
2
+
3
+ === Bugfixes
4
+ * Add back missing development dependency on cucumber (Aslak Hellesøy)
5
+
6
+ == 2.2.2 (2010-09-21)
7
+
8
+ === New Features
9
+ * Use json instead of json_pure (Aslak Hellesøy)
10
+ * JSON formatter and parser can now omit JSON serialization (for speed) and work directly on objects (Aslak Hellesøy)
11
+
12
+ == 2.2.1 (2010-09-12)
2
13
 
3
14
  === New Features
4
15
  * 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)
@@ -28,11 +28,9 @@ E.g. in Bash, export RL_LANG="en,fr,no". This can be quite helpful when modifyin
28
28
 
29
29
  == Release process
30
30
 
31
- * Bump version in the VERSION.yml file and:
31
+ * Bump version in the VERSION file and:
32
32
  ** java/pom.xml
33
33
  ** ikvm/Gherkin/Gherkin.csproj
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
- ** Install cucumber without gherkin dep: gem install --ignore-dependencies pkg/cucumber
36
34
  * rake gems:prepare && ./build_native_gems.sh && rake release:ALL
37
35
  * Announce on Cucumber list, IRC and Twitter.
38
36
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.2.1
1
+ 2.2.3
@@ -50,8 +50,11 @@ Gem::Specification.new do |s|
50
50
  end
51
51
 
52
52
  s.add_dependency('trollop', '~> 1.16.2')
53
+ s.add_dependency('json', '~> 1.4.6')
54
+ s.add_dependency('term-ansicolor','~> 1.0.5')
55
+
53
56
  s.add_development_dependency('rake', '~> 0.8.7')
54
57
  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'))
58
+ s.add_development_dependency('rspec', '~> 2.0.0.beta.22')
59
+ s.add_development_dependency('cucumber', '~> 0.9.0')
57
60
  end
@@ -1,5 +1,4 @@
1
1
  require 'json'
2
- require 'json/pure' # Needed to make JSON.generate work.
3
2
  require 'gherkin/formatter/model'
4
3
  require 'gherkin/native'
5
4
 
@@ -8,15 +7,22 @@ module Gherkin
8
7
  class JSONFormatter
9
8
  native_impl('gherkin')
10
9
 
10
+ attr_reader :gherkin_object
11
+
12
+ # Creates a new instance that writes the resulting JSON to +io+.
13
+ # If +io+ is nil, the JSON will not be written, but instead a Ruby
14
+ # object can be retrieved with #gherkin_object
11
15
  def initialize(io)
12
16
  @io = io
13
17
  end
14
18
 
15
19
  def uri(uri)
20
+ # We're ignoring the uri - we don't want it as part of the JSON
21
+ # (The pretty formatter uses it just for visual niceness - comments)
16
22
  end
17
23
 
18
24
  def feature(feature)
19
- @feature_hash = feature.to_hash
25
+ @gherkin_object = feature.to_hash
20
26
  end
21
27
 
22
28
  def background(background)
@@ -40,13 +46,13 @@ module Gherkin
40
46
  end
41
47
 
42
48
  def eof
43
- @io.write(@feature_hash.to_json)
49
+ @io.write(@gherkin_object.to_json) if @io
44
50
  end
45
51
 
46
52
  private
47
53
 
48
54
  def feature_elements
49
- @feature_hash['elements'] ||= []
55
+ @gherkin_object['elements'] ||= []
50
56
  end
51
57
 
52
58
  def feature_element
@@ -10,9 +10,11 @@ module Gherkin
10
10
  @formatter = formatter
11
11
  end
12
12
 
13
- def parse(src, feature_uri='unknown.json', line_offset=0)
13
+ # Parse a gherkin object +o+, which can either be a JSON String,
14
+ # or a Hash (from a parser JSON String).
15
+ def parse(o, feature_uri='unknown.json', line_offset=0)
16
+ o = JSON.parse(o) if String === o
14
17
  @formatter.uri(feature_uri)
15
- o = JSON.parse(src)
16
18
 
17
19
  Formatter::Model::Feature.new(comments(o), tags(o), keyword(o), name(o), description(o), line(o)).replay(@formatter)
18
20
  (o["elements"] || []).each do |feature_element|
@@ -3,11 +3,13 @@ require 'spec_helper'
3
3
  module Gherkin
4
4
  module Parser
5
5
  describe Parser do
6
- it "should raise when feature doesn't parse" do
7
- p = Parser.new(mock('formatter').as_null_object)
8
- lambda do
9
- p.parse("Feature: f\nFeature: f", __FILE__, __LINE__-1)
10
- end.should raise_error(/Parse error at/)
6
+ unless defined?(JRUBY_VERSION)
7
+ it "should raise when feature doesn't parse" do
8
+ p = Parser.new(mock('formatter').as_null_object)
9
+ lambda do
10
+ p.parse("Feature: f\nFeature: f", __FILE__, __LINE__-1)
11
+ end.should raise_error(/Parse error at/)
12
+ end
11
13
  end
12
14
  end
13
15
  end
@@ -2,7 +2,6 @@ require 'rubygems'
2
2
  require 'bundler'
3
3
  Bundler.setup
4
4
 
5
- require 'rspec/autorun'
6
5
  require 'gherkin'
7
6
  require 'stringio'
8
7
  require 'gherkin/sexp_recorder'
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: 5
4
+ hash: 1
5
5
  prerelease: false
6
6
  segments:
7
7
  - 2
8
8
  - 2
9
- - 1
10
- version: 2.2.1
9
+ - 3
10
+ version: 2.2.3
11
11
  platform: ruby
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-09-13 00:00:00 +02:00
20
+ date: 2010-09-21 00:00:00 +02:00
21
21
  default_executable: gherkin
22
22
  dependencies:
23
23
  - !ruby/object:Gem::Dependency
@@ -54,6 +54,38 @@ dependencies:
54
54
  prerelease: false
55
55
  - !ruby/object:Gem::Dependency
56
56
  version_requirements: &id003 !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ~>
60
+ - !ruby/object:Gem::Version
61
+ hash: 11
62
+ segments:
63
+ - 1
64
+ - 4
65
+ - 6
66
+ version: 1.4.6
67
+ requirement: *id003
68
+ type: :runtime
69
+ name: json
70
+ prerelease: false
71
+ - !ruby/object:Gem::Dependency
72
+ version_requirements: &id004 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ hash: 29
78
+ segments:
79
+ - 1
80
+ - 0
81
+ - 5
82
+ version: 1.0.5
83
+ requirement: *id004
84
+ type: :runtime
85
+ name: term-ansicolor
86
+ prerelease: false
87
+ - !ruby/object:Gem::Dependency
88
+ version_requirements: &id005 !ruby/object:Gem::Requirement
57
89
  none: false
58
90
  requirements:
59
91
  - - ~>
@@ -64,12 +96,12 @@ dependencies:
64
96
  - 8
65
97
  - 7
66
98
  version: 0.8.7
67
- requirement: *id003
99
+ requirement: *id005
68
100
  type: :development
69
101
  name: rake
70
102
  prerelease: false
71
103
  - !ruby/object:Gem::Dependency
72
- version_requirements: &id004 !ruby/object:Gem::Requirement
104
+ version_requirements: &id006 !ruby/object:Gem::Requirement
73
105
  none: false
74
106
  requirements:
75
107
  - - ~>
@@ -80,28 +112,44 @@ dependencies:
80
112
  - 2
81
113
  - 1
82
114
  version: 0.2.1
83
- requirement: *id004
115
+ requirement: *id006
84
116
  type: :development
85
117
  name: awesome_print
86
118
  prerelease: false
87
119
  - !ruby/object:Gem::Dependency
88
- version_requirements: &id005 !ruby/object:Gem::Requirement
120
+ version_requirements: &id007 !ruby/object:Gem::Requirement
89
121
  none: false
90
122
  requirements:
91
123
  - - ~>
92
124
  - !ruby/object:Gem::Version
93
- hash: 62196427
125
+ hash: 62196431
94
126
  segments:
95
127
  - 2
96
128
  - 0
97
129
  - 0
98
130
  - beta
99
- - 20
100
- version: 2.0.0.beta.20
101
- requirement: *id005
131
+ - 22
132
+ version: 2.0.0.beta.22
133
+ requirement: *id007
102
134
  type: :development
103
135
  name: rspec
104
136
  prerelease: false
137
+ - !ruby/object:Gem::Dependency
138
+ version_requirements: &id008 !ruby/object:Gem::Requirement
139
+ none: false
140
+ requirements:
141
+ - - ~>
142
+ - !ruby/object:Gem::Version
143
+ hash: 59
144
+ segments:
145
+ - 0
146
+ - 9
147
+ - 0
148
+ version: 0.9.0
149
+ requirement: *id008
150
+ type: :development
151
+ name: cucumber
152
+ prerelease: false
105
153
  description: A fast Gherkin lexer/parser based on the Ragel State Machine Compiler.
106
154
  email: cukes@googlegroups.com
107
155
  executables:
@@ -163,7 +211,6 @@ files:
163
211
  - .rspec
164
212
  - .rvmrc
165
213
  - Gemfile
166
- - Gemfile.lock
167
214
  - History.txt
168
215
  - LICENSE
169
216
  - README.rdoc
@@ -457,7 +504,7 @@ rubyforge_project:
457
504
  rubygems_version: 1.3.7
458
505
  signing_key:
459
506
  specification_version: 3
460
- summary: gherkin-2.2.1
507
+ summary: gherkin-2.2.3
461
508
  test_files:
462
509
  - features/escaped_pipes.feature
463
510
  - features/feature_parser.feature
@@ -1,49 +0,0 @@
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)