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::Tag
class Turnip::Node::Tag
module Turnip::Node::HasTags
Usage:
class FooNode include HasTags end
FooNode
implements#tags
method. -
Turnip::Builder::Line
class Turnip::Node::Location
module Turnip::Node::HasLocation
Usage:
class FooNode include HasLocation end
FooNode
implements#location
and#line
methods.
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::HasTags
API [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::Step
API [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::Builder
API [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 Node
v3.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::Tag
andmodule Turnip::Node::HasTags
-
Change usage:
class FooNode - include Tag + include HasTags end
FooNode
implementstags
method.
-
Turnip::Builder::Line
-
Recreate
class Turnip::Node::Location
andmodule Turnip::Node::HasLocation
-
Change usage:
class FooNode - include Line + include HasLocation end
FooNode
implementslocation
andline
methods.
-
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
,String
orTurnip::Table
)
- before:
- ➡️