shallot 0.2 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
data/Rakefile CHANGED
@@ -14,7 +14,7 @@ require 'rake'
14
14
  require 'jeweler'
15
15
  Jeweler::Tasks.new do |gem|
16
16
  gem.name = "shallot"
17
- gem.version = "0.2"
17
+ gem.version = "0.3"
18
18
  gem.homepage = "http://github.com/noblesamurai/shallot"
19
19
  gem.license = "GPL-3"
20
20
  gem.summary = %Q{a lexer/parser for Gherkin}
data/lib/shallot.rb CHANGED
@@ -85,8 +85,8 @@ class Shallot
85
85
  @qqq = nil
86
86
 
87
87
  elsif @qqq.nil? and [nil, ?#].include? line.strip[0]
88
- # Blank or comment; outside triple-quote.
89
- return
88
+ # Blank or comment; outside triple-quote. Process as an empty line.
89
+ line = '' unless [:background, :scenario].include? @state
90
90
  end
91
91
 
92
92
  # Use state.
@@ -117,7 +117,7 @@ class Shallot
117
117
  @state = :feature
118
118
  @feature = feature
119
119
 
120
- else
120
+ elsif line != ''
121
121
  # There shouldn't be anything else in here.
122
122
  raise Error, "unexpected line before feature start"
123
123
  end
@@ -204,7 +204,7 @@ class Shallot
204
204
  # Parses a line of tags, +line+, returning a list of downcased tags sans "@".
205
205
  # Returns +nil+ if the line didn't contain only tags (and at least one).
206
206
  def parse_tag_line line
207
- if (tags = line.strip.split).all? {|w| w[0] == ?@}
207
+ if (tags = line.strip.split).all? {|w| w[0] == ?@} and tags.length > 0
208
208
  tags.map {|t| t[1..-1].downcase}
209
209
  end
210
210
  end
data/shallot.gemspec CHANGED
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = "shallot"
8
- s.version = "0.2"
8
+ s.version = "0.3"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Anneli Cuss"]
12
- s.date = "2011-12-21"
12
+ s.date = "2011-12-29"
13
13
  s.description = "shallot is a lexer/parser for Gherkin, the syntax used by Cucumber. It takes a .feature file and gives you something easy to work with."
14
14
  s.email = "opensource@noblesamurai.com"
15
15
  s.extra_rdoc_files = [
data/test/test_shallot.rb CHANGED
@@ -41,14 +41,16 @@ $parsed =
41
41
  :background=>
42
42
  [" Each step in the background",
43
43
  " But without any additional parsing",
44
- " Or validation"],
44
+ " Or validation",
45
+ ""],
45
46
  :scenarios=>
46
47
  [{:name=>"And each scenario",
47
48
  :outline=>false,
48
49
  :tags=>["shallot", "regression", "bug"],
49
50
  :contents=>
50
51
  [" With tags, including those inherited",
51
- " From the feature level tags"],
52
+ " From the feature level tags",
53
+ ""],
52
54
  :line=>11},
53
55
  {:name=>"As well as scenario outlines",
54
56
  :outline=>true,
@@ -60,6 +62,7 @@ $parsed =
60
62
  " sections",
61
63
  " \"\"\"",
62
64
  " While no extra <kind> for examples",
65
+ "",
63
66
  " Examples:",
64
67
  " | kind |",
65
68
  " | parsing |",
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: shallot
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.2'
4
+ version: '0.3'
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2011-12-21 00:00:00.000000000Z
12
+ date: 2011-12-29 00:00:00.000000000Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: shoulda
16
- requirement: &70242606199500 !ruby/object:Gem::Requirement
16
+ requirement: &70151002790180 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *70242606199500
24
+ version_requirements: *70151002790180
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: bundler
27
- requirement: &70242606199020 !ruby/object:Gem::Requirement
27
+ requirement: &70151002789360 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ~>
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 1.0.0
33
33
  type: :development
34
34
  prerelease: false
35
- version_requirements: *70242606199020
35
+ version_requirements: *70151002789360
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: jeweler
38
- requirement: &70242606198540 !ruby/object:Gem::Requirement
38
+ requirement: &70151002788220 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ~>
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.6.4
44
44
  type: :development
45
45
  prerelease: false
46
- version_requirements: *70242606198540
46
+ version_requirements: *70151002788220
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rcov
49
- requirement: &70242606198060 !ruby/object:Gem::Requirement
49
+ requirement: &70151002786740 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '0'
55
55
  type: :development
56
56
  prerelease: false
57
- version_requirements: *70242606198060
57
+ version_requirements: *70151002786740
58
58
  description: shallot is a lexer/parser for Gherkin, the syntax used by Cucumber. It
59
59
  takes a .feature file and gives you something easy to work with.
60
60
  email: opensource@noblesamurai.com
@@ -89,7 +89,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
89
89
  version: '0'
90
90
  segments:
91
91
  - 0
92
- hash: 2093830947511408019
92
+ hash: -589754811058347744
93
93
  required_rubygems_version: !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements: