shallot 0.2 → 0.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/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: