cucumber-core 0.1.0 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ea9227a0b067303f1aa77c9f4f05e75a73a74da6
4
- data.tar.gz: 5ec7e76b3ec7fe9e093e5091a0e7e80156153aea
3
+ metadata.gz: 4c30d51fa9f12c4fb7b91a14006a9a308b652cf0
4
+ data.tar.gz: cb60c3d4d610070a1e8344388900dfb553a10de4
5
5
  SHA512:
6
- metadata.gz: 9b8b2ce54523d97a6107b334342578af32f865281ceccb891f035cd55d0df119f267f510713e3e893ed6cb4a6be4af278648f22f3c77364ec0cc5d7e4ab15635
7
- data.tar.gz: faae23fd3346d6957260ea77836ec6162e15d562017723d6328e5f386eecc3c4628fbe54513d579febcf97118303ece2d2ef9de505f5cab2752a897683c62b9a
6
+ metadata.gz: e34a846062bf14159235cbe27829195e940fc57b465f69b750835fc5b2ffdd41e930e287be8ea2742c300c0ed9ecc093dcb5eca173b1b5da60e1eebd96d21494
7
+ data.tar.gz: fd76c152cc8183f86482f41262ef858b4efb3df34b946a179c2de3e157a7bca52020fa5adff880c975fb775356f06203a5204ee410e6e58db68fa487f81984b8
data/README.md CHANGED
@@ -1,9 +1,9 @@
1
- cucumber-ruby-core
1
+ cucumber-core
2
2
  ==================
3
3
 
4
4
  [![Build Status](https://secure.travis-ci.org/cucumber/cucumber-ruby-core.png)](http://travis-ci.org/cucumber/cucumber-ruby-core)
5
- [![Code
6
- Climate](https://codeclimate.com/github/cucumber/cucumber-ruby-core.png)](https://codeclimate.com/github/cucumber/cucumber-ruby-core)
5
+ [![Code Climate](https://codeclimate.com/github/cucumber/cucumber-ruby-core.png)](https://codeclimate.com/github/cucumber/cucumber-ruby-core)
7
6
  [![Coverage Status](https://coveralls.io/repos/cucumber/cucumber-ruby-core/badge.png?branch=master)](https://coveralls.io/r/cucumber/cucumber-ruby-core?branch=master)
7
+ [![Dependency Status](https://gemnasium.com/cucumber/cucumber-ruby-core.png)](https://gemnasium.com/cucumber/cucumber-ruby-core)
8
8
 
9
- Core library for the Ruby flavour of Cucumber
9
+ Core library for the Ruby flavour of Cucumber.
@@ -2,6 +2,7 @@ require 'cucumber/core/ast/comment'
2
2
  require 'cucumber/core/ast/tag'
3
3
  require 'cucumber/core/ast/feature'
4
4
  require 'cucumber/core/ast/empty_background'
5
+ require 'cucumber/core/ast/empty_multiline_argument'
5
6
  require 'cucumber/core/ast/background'
6
7
  require 'cucumber/core/ast/scenario'
7
8
  require 'cucumber/core/ast/step'
@@ -51,10 +51,6 @@ module Cucumber
51
51
 
52
52
  attr_accessor :file
53
53
 
54
- def self.default_arg_name #:nodoc:
55
- "table"
56
- end
57
-
58
54
  def self.parse(text, uri, location)
59
55
  builder = Builder.new
60
56
  lexer = ::Gherkin::Lexer::I18nLexer.new(builder)
@@ -257,7 +253,7 @@ module Cucumber
257
253
  end
258
254
 
259
255
  def description_for_visitors
260
- :table
256
+ :data_table
261
257
  end
262
258
 
263
259
  # Represents a row of cells or columns of cells
@@ -23,10 +23,6 @@ module Cucumber
23
23
  include DescribesItself
24
24
  attr_accessor :file
25
25
 
26
- def self.default_arg_name
27
- "string"
28
- end
29
-
30
26
  attr_reader :content_type, :content
31
27
 
32
28
  def initialize(string, content_type, location)
@@ -0,0 +1,24 @@
1
+ module Cucumber
2
+ module Core
3
+ module Ast
4
+ class EmptyMultilineArgument
5
+ def describe_to(*)
6
+ self
7
+ end
8
+
9
+ def map(&block)
10
+ self
11
+ end
12
+
13
+ def match_locations?(*args)
14
+ false
15
+ end
16
+
17
+ def to_sexp
18
+ []
19
+ end
20
+ end
21
+ end
22
+ end
23
+ end
24
+
@@ -118,8 +118,7 @@ module Cucumber
118
118
  end
119
119
 
120
120
  def attributes
121
- # TODO: Remove compact when we have a null multiline arg object
122
- [tags, comments, multiline_arg].flatten.compact
121
+ [tags, comments, multiline_arg].flatten
123
122
  end
124
123
 
125
124
  def tags
@@ -128,10 +127,13 @@ module Cucumber
128
127
  end
129
128
 
130
129
  def comments
130
+ # will be overriden by nodes that actually have comments
131
131
  []
132
132
  end
133
133
 
134
134
  def multiline_arg
135
+ # will be overriden by nodes that actually have a multiline_argument
136
+ EmptyMultilineArgument.new
135
137
  end
136
138
 
137
139
  end
@@ -8,8 +8,9 @@ module Cucumber
8
8
  class << self
9
9
  include Gherkin::Rubify
10
10
 
11
+ # TODO: move this up to the front-end
11
12
  def from(argument, parent_location)
12
- return unless argument
13
+ return EmptyMultilineArgument.new unless argument
13
14
  return argument if argument.respond_to?(:to_step_definition_arg)
14
15
 
15
16
  argument = rubify(argument)
@@ -12,7 +12,7 @@ module Cucumber
12
12
 
13
13
  attr_reader :language, :location, :keyword, :name, :multiline_arg
14
14
 
15
- def initialize(language, location, keyword, name, multiline_arg=nil)
15
+ def initialize(language, location, keyword, name, multiline_arg)
16
16
  @language, @location, @keyword, @name, @multiline_arg = language, location, keyword, name, multiline_arg
17
17
  @language || raise("Language is required!")
18
18
  end
@@ -32,10 +32,8 @@ module Cucumber
32
32
  end
33
33
 
34
34
  def children
35
- # TODO use a null object
36
35
  # TODO remove duplication with Step
37
36
  # TODO spec
38
- return [] unless @multiline_arg
39
37
  [@multiline_arg]
40
38
  end
41
39
 
@@ -10,7 +10,7 @@ module Cucumber
10
10
 
11
11
  attr_reader :keyword, :name, :language, :exception, :multiline_arg
12
12
 
13
- def initialize(language, location, keyword, name, multiline_arg=nil)
13
+ def initialize(language, location, keyword, name, multiline_arg)
14
14
  @location, @keyword, @name, @multiline_arg = location, keyword, name, multiline_arg
15
15
  end
16
16
 
@@ -19,13 +19,12 @@ module Cucumber
19
19
  end
20
20
 
21
21
  def to_sexp
22
- [:step, line, keyword, name, (@multiline_arg.nil? ? nil : @multiline_arg.to_sexp)].compact
22
+ [:step, line, keyword, name, @multiline_arg.to_sexp]
23
23
  end
24
24
 
25
25
  private
26
26
 
27
27
  def children
28
- return [] unless @multiline_arg # TODO: use a null object
29
28
  [@multiline_arg]
30
29
  end
31
30
 
@@ -2,7 +2,7 @@ module Cucumber
2
2
  module Core
3
3
  class Version
4
4
  def self.to_s
5
- "0.1.0"
5
+ "0.2.0"
6
6
  end
7
7
  end
8
8
  end
@@ -7,11 +7,12 @@ module Cucumber
7
7
  module Core
8
8
  module Ast
9
9
  describe OutlineStep do
10
- let(:outline_step) { OutlineStep.new(language, location, keyword, name) }
10
+ let(:outline_step) { OutlineStep.new(language, location, keyword, name, multiline_arg) }
11
11
  let(:language) { double }
12
12
  let(:location) { double }
13
13
  let(:keyword) { double }
14
14
  let(:name) { 'anything' }
15
+ let(:multiline_arg) { EmptyMultilineArgument.new }
15
16
 
16
17
  describe 'location' do
17
18
  it "has a location" do
@@ -5,8 +5,9 @@ module Cucumber
5
5
  module Ast
6
6
  describe Step do
7
7
  let(:step) do
8
- language, location, keyword, name = double, double, double, double
9
- Step.new(language, location, keyword, name)
8
+ language, location, keyword, name = *double
9
+ multiline_arg = EmptyMultilineArgument.new
10
+ Step.new(language, location, keyword, name, multiline_arg)
10
11
  end
11
12
 
12
13
  describe "describing itself" do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cucumber-core
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Aslak Hellesøy
@@ -12,7 +12,7 @@ authors:
12
12
  autorequire:
13
13
  bindir: bin
14
14
  cert_chain: []
15
- date: 2014-02-12 00:00:00.000000000 Z
15
+ date: 2014-02-28 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: gherkin
@@ -121,6 +121,7 @@ files:
121
121
  - lib/cucumber/core/ast/describes_itself.rb
122
122
  - lib/cucumber/core/ast/doc_string.rb
123
123
  - lib/cucumber/core/ast/empty_background.rb
124
+ - lib/cucumber/core/ast/empty_multiline_argument.rb
124
125
  - lib/cucumber/core/ast/examples_table.rb
125
126
  - lib/cucumber/core/ast/feature.rb
126
127
  - lib/cucumber/core/ast/location.rb
@@ -192,10 +193,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
192
193
  version: '0'
193
194
  requirements: []
194
195
  rubyforge_project:
195
- rubygems_version: 2.2.1
196
+ rubygems_version: 2.0.14
196
197
  signing_key:
197
198
  specification_version: 4
198
- summary: cucumber-core-0.1.0
199
+ summary: cucumber-core-0.2.0
199
200
  test_files:
200
201
  - spec/capture_warnings.rb
201
202
  - spec/coverage.rb
@@ -218,4 +219,3 @@ test_files:
218
219
  - spec/cucumber/core/test/timer_spec.rb
219
220
  - spec/cucumber/core_spec.rb
220
221
  - spec/cucumber/initializer_spec.rb
221
- has_rdoc: