Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Convert to use the Gherkin compiler and Pickles #156

Merged
merged 1 commit into from
Jul 26, 2018
Merged

Conversation

brasmusson
Copy link
Contributor

Summary

Convert to use the Gherkin compiler and Pickles

Details

  • Cucumber::Core::Ast is removed.
  • Cucumber::Core::Case/Step need to own all data necessary for execution, there is not #source which refers to any Ast data. This also mean that some classes Tag, Location, DataTable, DocString etc are moved the the Cucumber::Core::Ast to Cucumber::Core::Test.
  • The class Cucumber::Core::Compiler still exists, but it creates Test::Cases/Steps from Pickles (instead of from the Ast).
  • The locations of Test::Case/Step mimics the locations of the Pickle(/Step), so a Case/Step from an Scenario Outline will have two lines in the location.
  • The LocationsFilter can only match the lines of the Test::Case/Step, which is more limited than previously when the lines from all Ast object contained in the Test::Case/Step#source could be matched.

Motivation and Context

Use the full capabilities of the Gherkin library, consistency with other Cucumber implementations, and
as a preparation for moving to Gherkin v6 (which has the new Rule keyword).

How Has This Been Tested?

The automated test suite has been updated to verify the new behavior.
These changes has been tested together with the corresponding changes in Cucumber-Ruby.

Types of changes

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to not work as expected)

Checklist:

  • I've added tests for my code
  • My change requires a change to the documentation.
  • I have updated the documentation accordingly.

* Cucumber::Core::Ast is removed.
* Cucumber::Core::Case/Step need to own all data necessary for
  execution, there is not #source which refers to any Ast data.
  This also mean that some classes Tag, Location, DataTable, DocString
  etc are moved the the Cucumber::Core::Ast to Cucumber::Core::Test.
* The class Cucumber::Core::Compiler still exists, but it creates
  Test::Cases/Steps from Pickles (instead of from the Ast).
* The locations of Test::Case/Step mimics the locations of the
  Pickle(/Step), so a Case/Step from an Scenario Outline will have
  two lines in the location.
* The LocationsFilter can only match the lines of the Test::Case/Step,
  which is more limited than previously when the lines from all Ast
  object contained in the Test::Case/Step#source could be matched.
@brasmusson brasmusson merged commit 4747217 into master Jul 26, 2018
brasmusson added a commit that referenced this pull request Jul 26, 2018
Also update the gemspec and Changelog.md.
@brasmusson brasmusson deleted the use-pickles branch July 26, 2018 13:14
netbsd-srcmastr pushed a commit to NetBSD/pkgsrc that referenced this pull request Jan 20, 2019
## [4.0.0](cucumber/cucumber-ruby-core@v3.2.0...v4.0.0)

### Changed

* Update to use Gherkin v6
  ([#158](cucumber/cucumber-ruby-core#158)
  @brasmusson)
* Let Scenarios with no Steps get the result status Undefined
  ([#157](cucumber/cucumber-ruby-core#157)
  @brasmusson)
* Convert to use the Gherkin compiler and Pickles
  ([#156](cucumber/cucumber-ruby-core#156)
  @brasmusson)

### Added

* N/A

### Fixed

* N/A

### Removed

* Remove the support for old style tag expressions
  ([#159](cucumber/cucumber-ruby-core#159)
  @brasmusson)
@lock
Copy link

lock bot commented Jul 26, 2019

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@lock lock bot locked as resolved and limited conversation to collaborators Jul 26, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant