gherkin_system 0.1.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 02e33f186f5d635c9b55fce86ad676377685b1e791d6df0e65eb4289660f7f3a
4
- data.tar.gz: c4d95982a87a4f4e256549e82fe6b9259881852769967482911f7b92af029691
3
+ metadata.gz: ad50fe0b6a9956f4e0ecff3c0ff6b0c7b455226055dd791dabcf2853a7f5cf81
4
+ data.tar.gz: d15894c2deaa1200ada09efa29b62bb27e5411786b813da513813c57c5f82d23
5
5
  SHA512:
6
- metadata.gz: 1618d7d665631a694f721c23047c2d44b94bf3acd0d86ae8f50f9b845cbd0b4941d19ffe300a5d09ba9530d72c97d1e6f43a289a7647dbcef805942c95239e49
7
- data.tar.gz: 7d6a37e09d9a91fb390bab01f39b2eef4ad022cac9bca61d27aef9938712f8f9afb79df777a135c89c6935e199747adfd0daa496493ae08671089fec48095001
6
+ metadata.gz: ee071ef70cfcc2d6b16f39f15b9872e0d93868af72f515c2ab975a00cf21be66c6b83a78d5ad19a5f1001a543b45858ba3b1ab2b1150f8a3d161806e9a3f99dd
7
+ data.tar.gz: e93598761e83e335f88084d156a22813339600cc209835e21eb2cc2401737e049d8c94913ec96189c2833e7f998c4725d6c62a1e97f0b729b40bb02dcd6db243
data/CHANGELOG.md CHANGED
@@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [0.3.0] - 2026-10-04
11
+
12
+ ### Changed
13
+
14
+ - Generator commands use `gherkin:install`, `gherkin:feature NAME`, and `gherkin:steps NAME`, matching the existing `rails gherkin` commands
15
+ - README and application skill use the shorter generator namespace
16
+ - Existing `gherkin_system:` generator commands remain available for compatibility
17
+
18
+ ## [0.2.0] - 2026-10-04
19
+
20
+ ### Changed
21
+
22
+ - Default feature discovery uses `features/**/*.feature`; existing `features/system/` files remain included
23
+ - Install and feature generators write directly under `features/`
24
+
10
25
  ## [0.1.1] - 2026-10-04
11
26
 
12
27
  ### Added
data/README.md CHANGED
@@ -15,12 +15,12 @@ gem "gherkin_system"
15
15
 
16
16
  ```sh
17
17
  bundle install
18
- bin/rails g gherkin_system:install
19
- bin/rails g gherkin_system:feature checkout
20
- bin/rails g gherkin_system:steps checkout
18
+ bin/rails g gherkin:install
19
+ bin/rails g gherkin:feature checkout
20
+ bin/rails g gherkin:steps checkout
21
21
  ```
22
22
 
23
- `install` creates `test/system/gherkin_test.rb`, `features/system/`, and `test/support/gherkin/`. `feature` and `steps` add a `.feature` file and a steps module; wire the module into the loader with `require_relative` and `config.include_steps`.
23
+ `install` creates `test/system/gherkin_test.rb`, `features/`, and `test/support/gherkin/`. `feature` and `steps` add a `.feature` file and a steps module; wire the module into the loader with `require_relative` and `config.include_steps`.
24
24
 
25
25
  ## Agent skill
26
26
 
@@ -42,7 +42,7 @@ require "application_system_test_case"
42
42
  require "gherkin_system/rails"
43
43
 
44
44
  GherkinSystem.configure do |config|
45
- config.features = Rails.root.join("features/system/**/*.feature")
45
+ config.features = Rails.root.join("features/**/*.feature")
46
46
  config.include_steps AuthenticationSteps
47
47
  config.strict = true
48
48
  end
@@ -54,7 +54,7 @@ Generated tests subclass the class you pass. The gem does not install its own sy
54
54
 
55
55
  | Option | ENV variable | Default |
56
56
  | --- | --- | --- |
57
- | `features` | | `features/system/**/*.feature` |
57
+ | `features` | | `features/**/*.feature` |
58
58
  | `tags` | `GHERKIN_TAGS` | unset → every scenario is compiled |
59
59
  | `strict` | | `true`. A broken scenario fails itself. The rest still run |
60
60
  | `base_test_class` | | required by `load!` when `base:` is omitted |
@@ -125,9 +125,9 @@ Rails `setup` runs first. Gherkin hooks and steps run inside the test method. Ra
125
125
 
126
126
  ```sh
127
127
  bin/rails gherkin
128
- bin/rails gherkin features/system
129
- bin/rails gherkin features/system/checkout.feature
130
- bin/rails gherkin features/system/checkout.feature:42
128
+ bin/rails gherkin features
129
+ bin/rails gherkin features/checkout.feature
130
+ bin/rails gherkin features/checkout.feature:42
131
131
  bin/rails gherkin --tags "@critical and not @slow"
132
132
  bin/rails gherkin:check
133
133
  bin/rails gherkin:list
@@ -0,0 +1,18 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/generators"
4
+
5
+ module Gherkin
6
+ module Generators
7
+ # Creates a Gherkin feature under features.
8
+ class FeatureGenerator < Rails::Generators::NamedBase
9
+ source_root File.expand_path("templates", __dir__)
10
+
11
+ desc "Creates a Gherkin feature file under features"
12
+
13
+ def create_feature
14
+ template "feature.feature.tt", File.join("features", "#{file_path}.feature")
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/generators"
4
+
5
+ module Gherkin
6
+ module Generators
7
+ # Scaffolds the loader, feature directory, and steps support directory.
8
+ class InstallGenerator < Rails::Generators::Base
9
+ source_root File.expand_path("templates", __dir__)
10
+
11
+ desc "Creates a Gherkin loader, features, and test/support/gherkin"
12
+
13
+ def create_loader
14
+ template "gherkin_test.rb", "test/system/gherkin_test.rb"
15
+ end
16
+
17
+ def create_features_directory
18
+ empty_directory "features"
19
+ create_file "features/.keep", ""
20
+ end
21
+
22
+ def create_steps_directory
23
+ empty_directory "test/support/gherkin"
24
+ create_file "test/support/gherkin/.keep", ""
25
+ end
26
+ end
27
+ end
28
+ end
@@ -0,0 +1,28 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/generators"
4
+
5
+ module Gherkin
6
+ module Generators
7
+ # Creates a step definition module under test/support/gherkin.
8
+ class StepsGenerator < Rails::Generators::NamedBase
9
+ source_root File.expand_path("templates", __dir__)
10
+
11
+ desc "Creates a Gherkin steps module under test/support/gherkin"
12
+
13
+ def create_steps
14
+ template "steps.rb.tt", File.join("test/support/gherkin", "#{file_path}_steps.rb")
15
+ end
16
+
17
+ def remind_loader_wiring
18
+ say "Remember to require and include #{steps_module_name} in test/system/gherkin_test.rb", :green
19
+ end
20
+
21
+ private
22
+
23
+ def steps_module_name
24
+ "#{class_name}Steps"
25
+ end
26
+ end
27
+ end
28
+ end
@@ -1,18 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "rails/generators"
3
+ require "generators/gherkin/feature/feature_generator"
4
4
 
5
5
  module GherkinSystem
6
6
  module Generators
7
- # Creates a Gherkin feature under features/system.
8
- class FeatureGenerator < Rails::Generators::NamedBase
9
- source_root File.expand_path("templates", __dir__)
10
-
11
- desc "Creates a Gherkin feature file under features/system"
12
-
13
- def create_feature
14
- template "feature.feature.tt", File.join("features/system", "#{file_path}.feature")
15
- end
7
+ # Keeps the original generator command available.
8
+ class FeatureGenerator < Gherkin::Generators::FeatureGenerator
9
+ source_root Gherkin::Generators::FeatureGenerator.source_root
16
10
  end
17
11
  end
18
12
  end
@@ -1,28 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "rails/generators"
3
+ require "generators/gherkin/install/install_generator"
4
4
 
5
5
  module GherkinSystem
6
6
  module Generators
7
- # Scaffolds the loader, feature directory, and steps support directory.
8
- class InstallGenerator < Rails::Generators::Base
9
- source_root File.expand_path("templates", __dir__)
10
-
11
- desc "Creates gherkin_system loader, features/system, and test/support/gherkin"
12
-
13
- def create_loader
14
- template "gherkin_test.rb", "test/system/gherkin_test.rb"
15
- end
16
-
17
- def create_features_directory
18
- empty_directory "features/system"
19
- create_file "features/system/.keep", ""
20
- end
21
-
22
- def create_steps_directory
23
- empty_directory "test/support/gherkin"
24
- create_file "test/support/gherkin/.keep", ""
25
- end
7
+ # Keeps the original generator command available.
8
+ class InstallGenerator < Gherkin::Generators::InstallGenerator
9
+ source_root Gherkin::Generators::InstallGenerator.source_root
26
10
  end
27
11
  end
28
12
  end
@@ -1,28 +1,12 @@
1
1
  # frozen_string_literal: true
2
2
 
3
- require "rails/generators"
3
+ require "generators/gherkin/steps/steps_generator"
4
4
 
5
5
  module GherkinSystem
6
6
  module Generators
7
- # Creates a step definition module under test/support/gherkin.
8
- class StepsGenerator < Rails::Generators::NamedBase
9
- source_root File.expand_path("templates", __dir__)
10
-
11
- desc "Creates a gherkin_system steps module under test/support/gherkin"
12
-
13
- def create_steps
14
- template "steps.rb.tt", File.join("test/support/gherkin", "#{file_path}_steps.rb")
15
- end
16
-
17
- def remind_loader_wiring
18
- say "Remember to require and include #{steps_module_name} in test/system/gherkin_test.rb", :green
19
- end
20
-
21
- private
22
-
23
- def steps_module_name
24
- "#{class_name}Steps"
25
- end
7
+ # Keeps the original generator command available.
8
+ class StepsGenerator < Gherkin::Generators::StepsGenerator
9
+ source_root Gherkin::Generators::StepsGenerator.source_root
26
10
  end
27
11
  end
28
12
  end
@@ -52,7 +52,7 @@ module GherkinSystem
52
52
  private
53
53
 
54
54
  def default_features
55
- File.join(root.to_s, "features/system/**/*.feature")
55
+ File.join(root.to_s, "features/**/*.feature")
56
56
  end
57
57
 
58
58
  def root
@@ -2,5 +2,5 @@
2
2
 
3
3
  module GherkinSystem
4
4
  # Gem version.
5
- VERSION = "0.1.1"
5
+ VERSION = "0.3.0"
6
6
  end
@@ -14,7 +14,7 @@ Do not add cucumber-rails, a Cucumber World, or a second test runner. Do not use
14
14
 
15
15
  ## Add a scenario
16
16
 
17
- 1. Scaffold with `bin/rails g gherkin_system:feature NAME` and `bin/rails g gherkin_system:steps NAME` (or write the files by hand under `features/system/**/*.feature` and `test/support/gherkin/*_steps.rb`).
17
+ 1. Scaffold with `bin/rails g gherkin:feature NAME` and `bin/rails g gherkin:steps NAME` (or write the files by hand under `features/**/*.feature` and `test/support/gherkin/*_steps.rb`).
18
18
  2. Require the steps file from `test/system/gherkin_test.rb` before `GherkinSystem.load!`.
19
19
  3. Run `bin/rails gherkin:check`.
20
20
  4. Run the scenario with `bin/rails gherkin path/to/file.feature:LINE`.
@@ -22,7 +22,7 @@ Do not add cucumber-rails, a Cucumber World, or a second test runner. Do not use
22
22
  Create the loader once if it is missing:
23
23
 
24
24
  ```sh
25
- bin/rails g gherkin_system:install
25
+ bin/rails g gherkin:install
26
26
  ```
27
27
 
28
28
  Then require step modules and register them before `load!`:
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gherkin_system
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Paluy
@@ -98,12 +98,15 @@ files:
98
98
  - LICENSE
99
99
  - LICENSE.txt
100
100
  - README.md
101
+ - lib/generators/gherkin/feature/feature_generator.rb
102
+ - lib/generators/gherkin/feature/templates/feature.feature.tt
103
+ - lib/generators/gherkin/install/install_generator.rb
104
+ - lib/generators/gherkin/install/templates/gherkin_test.rb
105
+ - lib/generators/gherkin/steps/steps_generator.rb
106
+ - lib/generators/gherkin/steps/templates/steps.rb.tt
101
107
  - lib/generators/gherkin_system/feature/feature_generator.rb
102
- - lib/generators/gherkin_system/feature/templates/feature.feature.tt
103
108
  - lib/generators/gherkin_system/install/install_generator.rb
104
- - lib/generators/gherkin_system/install/templates/gherkin_test.rb
105
109
  - lib/generators/gherkin_system/steps/steps_generator.rb
106
- - lib/generators/gherkin_system/steps/templates/steps.rb.tt
107
110
  - lib/gherkin_system.rb
108
111
  - lib/gherkin_system/checker.rb
109
112
  - lib/gherkin_system/cli.rb