Turnip Versions Save

Gherkin extension for RSpec

4.4.0

1 year ago

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]

v4.1.0

4 years ago

Dependencies

  • Update gherkin ( cucumber-gherkin ) to v10.0 [GH-221]
    • v8 [GH-217]
    • v9 [GH-218]

Features

  • Warn when replacing placeholders [GH-219]

Documents

  • Update README.md [GH-216]

v4.0.1

4 years ago

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]

v4.0.0

5 years ago
  • 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]

v3.1.0

6 years ago

Libraries

  • Use gherkin 5.0 [GH-200]
  • Support Ruby 2.5.0 [GH-201]
    • Drop 2.1 [GH-191]
  • Support RSpec 3.7.0 and 3.6.0 [GH-197]

Fix

  • Add license to gemspec [GH-193]
    • Thanks @koic
  • Suppress warning [GH-195]
    • Thanks @swamp09

v3.0.0

6 years ago

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
    

v3.0.0.pre.beta.5

7 years ago

Bug Fixes

Occur error when blank feature file [GH-188]

v3.0.0.pre.beta.4

7 years ago

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)

v3.0.0.pre.beta.3

7 years ago

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']

v3.0.0.pre.beta.2

7 years ago

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
    • :arrow_right: Turnip::Node::Feature
    • Maintain API Compatibility
  • Turnip::Builder::Scenario
    • :arrow_right: Turnip::Node::Scenario
    • Maintain API Compatibility
  • Turnip::Builder::ScenarioOutline
    • :arrow_right: Turnip::Node::ScenarioOutline
    • Maintain API Compatibility
  • Turnip::Builder::Background
    • :arrow_right: Turnip::Node::Background
    • Maintain API Compatibility
  • Turnip::Builder::Step
    • :arrow_right: 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)