Releases: jnicklas/turnip
Version 4.4.0
Version 4.1.0
Version 4.0.1
Version 4.0.0
Version 3.1.0
Version 3.0.0
Notes
Use Gherkin4 [GH-184]
Fixes
For users (your *.feature and *_steps.rb)
Nothing. No need to change your files.
For developers (core)
Refactoring Modules: split into class and module
[GH-185]
-
Turnip::Builder::Tagclass Turnip::Node::Tagmodule Turnip::Node::HasTags
Usage:
class FooNode include HasTags end
FooNodeimplements#tagsmethod. -
Turnip::Builder::Lineclass Turnip::Node::Locationmodule Turnip::Node::HasLocation
Usage:
class FooNode include HasLocation end
FooNodeimplements#locationand#linemethods.
Refactoring Classes: rename
[GH-185]
| Before class name (v2.1.1) | After class name (v3.0.0) | Maintain API compatibility? |
|---|---|---|
Turnip::Builder::Feature |
Turnip::Node::Feature |
yes |
Turnip::Builder::Scenario |
Turnip::Node::Scenario |
yes |
Turnip::Builder::ScenarioOutline |
Turnip::Node::ScenarioOutline |
yes |
Turnip::Builder::Background |
Turnip::Node::Background |
yes |
Turnip::Builder::Step |
Turnip::Node::Step |
no (under-mentioned) |
Breaking Changes
-
Turnip::Node::HasTagsAPI [GH-186]# before (Turnip::Builder::Tag) node.tags # => ['tag1', 'tag2'] # after (Turnip::Node::HasTags) node.tags # => [<Turnip::Node::Tag>, <Turnip::Node::Tag>] node.tag_names # => ['tag1', 'tag2']
-
Turnip::Node::StepAPI [GH-185]# before (Turnip::Builder::Step) step.extra_args # => `Array<String>` or `Turnip::Table` # after (Turnip::Node::Step) step.argument # => `nil` , `String` or `Turnip::Table`
-
Turnip::BuilderAPI [GH-187]# before builder = Turnip::Builder.build(feature_file) builder.features # => Array<Turnip::Builder::Feature> # after feature = Turnip::Builder.build(feature_file) # => Turnip::Node::Feature
Version 3.0.0 beta.5
Bug Fixes
Occur error when blank feature file [GH-188]
Version 3.0.0 beta.4
Goal of version 3.0.0
- Use Gherkin 4
- Class reconstruction
Turnip::Builder::XXX===Gherkin::Ast::XXX- refs: https://github.com/cucumber/gherkin#ast
3.0.0-beta.4
A feature node is created per a gherkin document. [GH-187]
Breaking Changes (For users)
Nothing 🎉 (No change of *.feature and *_.steps.rb)
Breaking Changes (For developers)
Until v2.1.1:
builder = Turnip::Builder.build(feature_file)
builder.features # Array of Feature Nodev3.0.0:
feature = Turnip::Builder.build(feature_file)Version 3.0.0 beta.3
Goal of version 3.0.0
- Use Gherkin 4
- Class reconstruction
Turnip::Builder::XXX===Gherkin::Ast::XXX- refs: https://github.com/cucumber/gherkin#ast
3.0.0-beta.3
Add Turnip::Node::Tag#tag_names [GH-186]
Breaking Changes (For developers)
Until v2.1.1:
feature.tags # => ['tag1', 'tag2']v3.0.0:
feature.tags # => [<Turnip::Node::Tag>, <Turnip::Node::Tag>]
feature.tag_names # => ['tag1', 'tag2']Version 3.0.0 beta.2
Goal of version 3.0.0
- Use Gherkin 4
- Class reconstruction
Turnip::Builder::XXX===Gherkin::Ast::XXX- refs: https://github.com/cucumber/gherkin#ast
3.0.0-beta.2
[Refactoring] Turnip::Node that is corresponding to Gherkin4 nodes in AST [GH-185]
Breaking Changes (For users)
Nothing 🎉 (No change of *.feature and *_.steps.rb)
Breaking Changes (For developers)
Modules
Turnip::Builder::Tag-
Recreate
class Turnip::Node::Tagandmodule Turnip::Node::HasTags -
Change usage:
class FooNode - include Tag + include HasTags end
FooNodeimplementstagsmethod.
-
Turnip::Builder::Line-
Recreate
class Turnip::Node::Locationandmodule Turnip::Node::HasLocation -
Change usage:
class FooNode - include Line + include HasLocation end
FooNodeimplementslocationandlinemethods.
-
Turnip::Builder::Name- Each node have as attribute.
Classes
Turnip::Builder::Feature- ➡️
Turnip::Node::Feature - Maintain API Compatibility
- ➡️
Turnip::Builder::Scenario- ➡️
Turnip::Node::Scenario - Maintain API Compatibility
- ➡️
Turnip::Builder::ScenarioOutline- ➡️
Turnip::Node::ScenarioOutline - Maintain API Compatibility
- ➡️
Turnip::Builder::Background- ➡️
Turnip::Node::Background - Maintain API Compatibility
- ➡️
Turnip::Builder::Step- ➡️
Turnip::Node::Step - Change API
- before:
step.extra_args(return Array of String orTurnip::Table) - after:
step.argument(returnnil,StringorTurnip::Table)
- before:
- ➡️