Skip to content

Releases: jnicklas/turnip

Version 4.4.0

14 Nov 14:28
Compare
Choose a tag to compare

Added

  • Add CukeModeler as Gherkin abstraction layer [GH-244]
  • Send step notifications and add metadata for RSpec reporter [GH-249]

Fixed

  • Add "missing step" context when raising error for unimplemented steps [GH-240]
  • Support rspec 3.11 and 3.12 and deprecate EOL rubies [GH-250]

Version 4.1.0

02 Mar 13:29
Compare
Choose a tag to compare

Dependencies

Features

  • Warn when replacing placeholders [GH-219]

Documents

Version 4.0.1

22 Apr 12:57
Compare
Choose a tag to compare

Dependencies

  • add required_ruby_version [GH-212]
  • Add support ruby2.6 by upgrading Gherkin version [GH-214]

Documents

  • Update README.md [GH-211]
  • Add homepage url to gemspec [GH-209]

Version 4.0.0

28 Feb 06:40
Compare
Choose a tag to compare
  • Use Gherkin 6.0 [GH-206] [GH-208]
  • Support RSpec 3.7 and 3.8 (drop 3.6) [GH-203]
  • Drop support Ruby 2.2 [GH-204]
  • Test against Ruby 2.6 (fail yet) [GH-207]

Version 3.1.0

30 Jan 14:53
Compare
Choose a tag to compare

Libraries

Fix

Version 3.0.0

04 Apr 11:17
Compare
Choose a tag to compare

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

21 Nov 15:01
Compare
Choose a tag to compare

Bug Fixes

Occur error when blank feature file [GH-188]

Version 3.0.0 beta.4

13 Oct 14:31
Compare
Choose a tag to compare

Goal of version 3.0.0

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

03 Oct 08:34
Compare
Choose a tag to compare

Goal of version 3.0.0

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

27 Sep 03:56
Compare
Choose a tag to compare

Goal of version 3.0.0

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 and module Turnip::Node::HasTags

    • Change usage:

       class FooNode
      -  include Tag
      +  include HasTags
       end

      FooNode implements tags method.

  • Turnip::Builder::Line
    • Recreate class Turnip::Node::Location and module Turnip::Node::HasLocation

    • Change usage:

       class FooNode
      -  include Line
      +  include HasLocation
       end

      FooNode implements location and line 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 or Turnip::Table)
      • after: step.argument (return nil , String or Turnip::Table)