cucumber-core 3.1.0 → 3.2.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 47cd08b6e3d6df7ffef0782538481a560b3434c8
4
- data.tar.gz: a8a4cf61a292b873b9b1eb53ae4058458afeb0e3
3
+ metadata.gz: def2f4af0efb06a5de6bca015b7459e1a53e20c1
4
+ data.tar.gz: 9ed2ba01df834b8d3459c5c7355c88e07b8a3376
5
5
  SHA512:
6
- metadata.gz: 6bf8cf9e11baa952d2daf7cc70a483c8472f4acb6a73b38c7578ec68d1e49bf130a7fb31ca0e775624152a630c3a900df7c677d07ef4933c2eceef264da50dac
7
- data.tar.gz: ba2a915a99d6991cc982757dc331340ed3f3938c77514732dfb3d95955ed3747f1ecfa19b0a8bd330f473b53e379dc0792cf531f86bfa3ef80eb471936e2cf4c
6
+ metadata.gz: e4a7e7bdda20e2cc93169f9ae804d602e2b988441eef65ea41897dbc9b4903a9149d15285e1e38f98dda1b4b547b495e54b32e4e4a209d55f18f0e6d3e3114fe
7
+ data.tar.gz: 0037d709bd4b60ea7d5f7366d32c2e8e569f2021fef5141037f08220e75668b2e96ca209e114fc54130ff0141cfcd89ba159c16e6cce786dcc2a1354f54fa1bd
@@ -1,22 +1,22 @@
1
1
  Please see [CONTRIBUTING.md](https://github.com/cucumber/cucumber/blob/master/CONTRIBUTING.md) on how to contribute to Cucumber.
2
2
 
3
- ## [In Git](https://github.com/cucumber/cucumber-ruby-core/compare/v3.0.0...master) (targetting 3.1.0)
4
-
5
- ### Changed
6
-
7
- * N/A
3
+ ## [3.2.0](https://github.com/cucumber/cucumber-ruby-core/compare/v3.1.0...v3.2.0)
8
4
 
9
5
  ### Added
10
6
 
11
- * N/A
7
+ * Add the GherkinSourceParsedEvent ([#155](https://github.com/cucumber/cucumber-ruby-core/pull/155) @brasmusson)
8
+ * Add #original_location to Cucumber::Core::Ast::Step and Cucumber::Core::Test::Step ([#150](https://github.com/cucumber/cucumber-ruby-core/pull/150), [#149](https://github.com/cucumber/cucumber-ruby-core/issues/149) @brasmusson)
12
9
 
13
10
  ### Fixed
14
11
 
15
- * N/A
12
+ * Set message and backtrace for undefined result also when skipping (@brasmusson)
16
13
 
17
- ### Improved
14
+ ## [3.1.0](https://github.com/cucumber/cucumber-ruby-core/compare/v3.0.0...3.1.0)
15
+
16
+ ### Changed
18
17
 
19
- * N/A
18
+ * Upgraded to `cucumber-tag_expressions` 1.1.0
19
+ * Upgraded to `gherkin` 5.0.0
20
20
 
21
21
  ## [3.0.0](https://github.com/cucumber/cucumber-ruby-core/compare/v3.0.0.pre.2...v3.0.0) (2017-09-27)
22
22
 
@@ -15,17 +15,17 @@ module Cucumber
15
15
  self
16
16
  end
17
17
 
18
- def compile(gherkin_documents, last_receiver, filters = [])
18
+ def compile(gherkin_documents, last_receiver, filters = [], event_bus = EventBus.new)
19
19
  first_receiver = compose(filters, last_receiver)
20
20
  compiler = Compiler.new(first_receiver)
21
- parse gherkin_documents, compiler
21
+ parse gherkin_documents, compiler, event_bus
22
22
  self
23
23
  end
24
24
 
25
25
  private
26
26
 
27
- def parse(gherkin_documents, compiler)
28
- parser = Core::Gherkin::Parser.new(compiler)
27
+ def parse(gherkin_documents, compiler, event_bus)
28
+ parser = Core::Gherkin::Parser.new(compiler, event_bus)
29
29
  gherkin_documents.each do |document|
30
30
  parser.document document
31
31
  end
@@ -35,11 +35,16 @@ module Cucumber
35
35
  end
36
36
  end
37
37
 
38
+ def original_location
39
+ location
40
+ end
41
+
38
42
  def inspect
39
43
  keyword_and_text = [keyword, text].join(": ")
40
44
  %{#<#{self.class} "#{keyword_and_text}" (#{location})>}
41
45
  end
42
46
 
47
+
43
48
  private
44
49
 
45
50
  def children
@@ -61,6 +66,10 @@ module Cucumber
61
66
  @outline_step.all_locations
62
67
  end
63
68
 
69
+ def original_location
70
+ @outline_step.location
71
+ end
72
+
64
73
  alias :step_backtrace_line :backtrace_line
65
74
 
66
75
  def backtrace_line
@@ -1,9 +1,20 @@
1
+ # coding: utf-8
1
2
  require 'cucumber/core/event'
2
3
 
3
4
  module Cucumber
4
5
  module Core
5
6
  module Events
6
7
 
8
+ # Signals that a gherkin source has been parsed
9
+ class GherkinSourceParsed < Event.new(:uri, :gherkin_document)
10
+ # The uri of the file
11
+ attr_reader :uri
12
+
13
+ # @return [GherkinDocument] the GherkinDocument Ast Node
14
+ attr_reader :gherkin_document
15
+
16
+ end
17
+
7
18
  # Signals that a {Test::Case} is about to be executed
8
19
  class TestCaseStarted < Event.new(:test_case)
9
20
 
@@ -43,10 +54,11 @@ module Cucumber
43
54
 
44
55
  end
45
56
 
46
- # The registry contains all the events registered in the core,
57
+ # The registry contains all the events registered in the core,
47
58
  # that will be used by the {EventBus} by default.
48
59
  def self.registry
49
60
  build_registry(
61
+ GherkinSourceParsed,
50
62
  TestCaseStarted,
51
63
  TestStepStarted,
52
64
  TestStepFinished,
@@ -11,11 +11,12 @@ module Cucumber
11
11
  ParseError = Class.new(StandardError)
12
12
 
13
13
  class Parser
14
- attr_reader :receiver
15
- private :receiver
14
+ attr_reader :receiver, :event_bus
15
+ private :receiver, :event_bus
16
16
 
17
- def initialize(receiver)
17
+ def initialize(receiver, event_bus)
18
18
  @receiver = receiver
19
+ @event_bus = event_bus
19
20
  end
20
21
 
21
22
  def document(document)
@@ -26,6 +27,7 @@ module Cucumber
26
27
 
27
28
  begin
28
29
  result = parser.parse(scanner, token_matcher)
30
+ event_bus.gherkin_source_parsed(document.uri, result.dup)
29
31
 
30
32
  receiver.feature core_builder.feature(result)
31
33
  rescue *PARSER_ERRORS => e
@@ -126,7 +126,12 @@ module Cucumber
126
126
 
127
127
  class Failing < Base
128
128
  def execute(test_step, monitor, &continue)
129
- test_step.skip(monitor.result)
129
+ result = test_step.skip(monitor.result)
130
+ if result.undefined?
131
+ result = result.with_message(%(Undefined step: "#{test_step.text}"))
132
+ result = result.with_appended_backtrace(test_step.source.last)
133
+ end
134
+ result
130
135
  end
131
136
 
132
137
  def result(duration)
@@ -48,6 +48,10 @@ module Cucumber
48
48
  source.last.location
49
49
  end
50
50
 
51
+ def original_location
52
+ source.last.original_location
53
+ end
54
+
51
55
  def action_location
52
56
  @action.location
53
57
  end
@@ -3,7 +3,7 @@ module Cucumber
3
3
  module Core
4
4
  class Version
5
5
  def self.to_s
6
- "3.1.0"
6
+ "3.2.0"
7
7
  end
8
8
  end
9
9
  end
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: 3.1.0
4
+ version: 3.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: 2017-11-28 00:00:00.000000000 Z
15
+ date: 2018-07-13 00:00:00.000000000 Z
16
16
  dependencies:
17
17
  - !ruby/object:Gem::Dependency
18
18
  name: gherkin
@@ -229,8 +229,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
229
229
  version: '0'
230
230
  requirements: []
231
231
  rubyforge_project:
232
- rubygems_version: 2.6.8
232
+ rubygems_version: 2.5.2
233
233
  signing_key:
234
234
  specification_version: 4
235
- summary: cucumber-core-3.1.0
235
+ summary: cucumber-core-3.2.0
236
236
  test_files: []