gherkin 2.2.1 → 2.2.3

Sign up to get free protection for your applications and to get access to all the features.
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)