wicked-pipeline 0.1.0 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 315fc6476825e5f4e336eb28b3951fdc6851902919916547c0a3f046da73c353
4
- data.tar.gz: 1af17136066174c31e7bed32aa43e477f1b1bbdc1c1e0775a6eb4d256806ac37
3
+ metadata.gz: c59b79336370d4dff4c11d14e81248c309a7621abffec1b4e07252047db97312
4
+ data.tar.gz: 11bb3cbed87f59db523471ccaf24669b375b7122e46a2bbe2b7e91c1fd0c306d
5
5
  SHA512:
6
- metadata.gz: bd19625bc5ee76db912dc057f8f2425c23e423ca9775253701a45884f3a4c734fc013e8dac350cd40df4a000c9c96f3bf3399991f68975cfada8a277a5b23c4f
7
- data.tar.gz: b925b48b9a027cc8cc18b346fe92be23e036c85e44252082768248771daad59b2b98a384eeab631c42d90e598ae31fb1884dca9d38b21cc42e895f9b100aa8ae
6
+ metadata.gz: 5416bd3edb4ecb54735249a6546cce437468c4cc33b925be995236bee843bb4ed054f639e592fdc01acba1f720a4c380a2ce2b16d23aa31d0970c40a65b59a3a
7
+ data.tar.gz: daa012c32f06118c45c8983ad8a08fe12cc9f44f39e9437b46c43264f3524310d12dbc589512e7e004ae527ba2cec9c58395eac3dbadc2328ea48a10d4425501
data/.standard.yml CHANGED
@@ -1,6 +1,6 @@
1
1
  ruby_version: 2.6
2
2
  parallel: true
3
- format: progress
3
+ format: "progress"
4
4
 
5
5
  ignore:
6
6
  - "spec/rails_app/db/schema.rb"
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  [Unreleased]
2
2
  ------------
3
3
 
4
+ [0.1.1] - 2022-04-17
5
+ --------------------
6
+
7
+ - Add pipeline and step generators
8
+
4
9
  [0.1.0] - 2022-04-15
5
10
  --------------------
6
11
 
data/README.md CHANGED
@@ -1,30 +1,34 @@
1
1
  Wicked::Pipeline
2
2
  ================
3
3
 
4
- A step by step pipeline is comprised of multiple "blocks" that will be described here:
4
+ [![RSpec](https://github.com/RobertAudi/wicked-pipeline/actions/workflows/rspec.yml/badge.svg)](https://github.com/RobertAudi/wicked-pipeline/actions/workflows/rspec.yml)
5
+ [![Standard](https://github.com/RobertAudi/wicked-pipeline/actions/workflows/standard.yml/badge.svg)](https://github.com/RobertAudi/wicked-pipeline/actions/workflows/standard.yml)
5
6
 
6
- - Step objects for each step
7
- - A step pipeline class that encapsulates all the steps in a pipeline
8
- - A step controller
7
+ A step by step pipeline system built on top of [Wicked](https://github.com/zombocom/wicked).
9
8
 
10
9
  Table of Contents
11
10
  -----------------
12
11
 
12
+ - [Table of Contents](#table-of-contents)
13
13
  - [Installation](#installation)
14
- - [Step objects](#step-objects)
15
- - [Attributes](#attributes)
16
- - [Validations](#validations)
17
- - [Blocking](#blocking)
18
- * [Blocking reason](#blocking-reason)
19
- - [Step pipelines](#step-pipelines)
20
- - [Steps controllers](#steps-controllers)
21
- - [Routes](#routes)
22
- - [Nested routes](#nested-routes)
23
- - [Actions](#actions)
24
- - [Flash messages](#flash-messages)
25
- - [Views](#views)
26
- - [Forms](#forms)
27
- - [Breadcrumbs](#breadcrumbs)
14
+ - [Usage](#usage)
15
+ - [Step objects](#step-objects)
16
+ - [Attributes](#attributes)
17
+ - [Validations](#validations)
18
+ - [Blocking](#blocking)
19
+ - [Blocking reason](#blocking-reason)
20
+ - [Step pipelines](#step-pipelines)
21
+ - [Steps controllers](#steps-controllers)
22
+ - [Routes](#routes)
23
+ - [Nested routes](#nested-routes)
24
+ - [Actions](#actions)
25
+ - [Flash messages](#flash-messages)
26
+ - [Views](#views)
27
+ - [Forms](#forms)
28
+ - [Breadcrumbs](#breadcrumbs)
29
+ - [Development](#development)
30
+ - [Contributing](#contributing)
31
+ - [License](#license)
28
32
 
29
33
  Installation
30
34
  ------------
@@ -41,8 +45,26 @@ If bundler is not being used to manage dependencies, install the gem by executin
41
45
  $ gem install wicked-pipeline
42
46
  ```
43
47
 
44
- Step objects
45
- ------------
48
+ Usage
49
+ -----
50
+
51
+ You can generate a pipeline using the dedicated generator:
52
+
53
+ ```console
54
+ $ rails generate wicked:pipeline Registration identification profile preferences
55
+ ```
56
+
57
+ This will geneate the `RegistrationPipeline`, `IdentificationStep`, `ProfileStep`, and `PreferencesStep` classes under `app/steps`. It will also generate test files under `spec/steps` if RSpec is installed.
58
+
59
+ You can also generate individual steps:
60
+
61
+ ```console
62
+ $ rails generate wicked:pipeline:step identification email subscribe_to_newsletter:boolean interests:array
63
+ ```
64
+
65
+ This will generate the `IdentificationStep` with the `email`, `subscribe_to_newsletter` and `interests` attributes. It will also generate a test file under `spec/steps` if RSpec is installed.
66
+
67
+ ### Step objects
46
68
 
47
69
  A step object is very similar to a form object. It takes a "resource" (the `ActiveRecord` model) and optional params as arguments and will contain attribute definitions, validations for the step, a list of permitted params and a `#save` method. The validations are specific to the step but the resource will also be validated before being saved.
48
70
 
@@ -50,10 +72,10 @@ Step objects are subclasses of the `BaseStep` class, and they live in the `app/s
50
72
 
51
73
  - The name of a step class must end with `Step`
52
74
  - Attributes must be defined using the `ActiveModel::Attributes` API (more on that later)
53
- * Nested attributes must **not** be defined as attributes in the step object.
75
+ - Nested attributes must **not** be defined as attributes in the step object.
54
76
  - The class must implement the `permitted_params` method which returns an array of attributes.
55
77
  - If the `#save` method is overridden, `super` must be called and its value must be used.
56
- * The `#save` method **must** return a boolean value.
78
+ - The `#save` method **must** return a boolean value.
57
79
 
58
80
  The only method that needs to be implemented is the `permitted_params` private method, everything else is optional. Here is the most basic step object that can exist:
59
81
 
@@ -77,7 +99,7 @@ As mentioned before, step objects require a resource:
77
99
  Users::ProfileStep.new(User.last)
78
100
  ```
79
101
 
80
- ### Attributes
102
+ #### Attributes
81
103
 
82
104
  The attributes of a step object are defined using the `.attribute` method. The first argument is the name of the attribute, and the second argument is the type of the attribute. The type argument is optional but it **must** be specified for boolean attributes.
83
105
 
@@ -103,7 +125,7 @@ end
103
125
 
104
126
  The attributes **must** be in the list of permitted parameters!
105
127
 
106
- ### Validations
128
+ #### Validations
107
129
 
108
130
  Validations are used the same way as in `ActiveRecord` models. One exception is the uniqueness validation which is **not** available in step objects.
109
131
 
@@ -133,7 +155,7 @@ end
133
155
 
134
156
  Custom validation errors must be added to the step object **not** the resource itself, they will be merged into the resource's errors automatically.
135
157
 
136
- ### Blocking
158
+ #### Blocking
137
159
 
138
160
  A blocking step will short-circuit a pipeline. In other words, all step following a blocking step will be inaccessible.
139
161
 
@@ -185,8 +207,7 @@ module Users
185
207
  end
186
208
  ```
187
209
 
188
- Step pipelines
189
- --------------
210
+ ### Step pipelines
190
211
 
191
212
  A step pipeline class is a subclass of the `BasePipeline` class and live in `app/steps`. At the most basic level should contain a list of step classes.
192
213
 
@@ -225,8 +246,7 @@ Finally, pipelines are also used to check if all steps are valid for a given res
225
246
  UserAccountPipeline.valid?(User.last)
226
247
  ```
227
248
 
228
- Steps controllers
229
- -----------------
249
+ ### Steps controllers
230
250
 
231
251
  A steps controller is a subclass of `BaseStepsController`, it can have any name and can be placed anywhere under the `app/controllers` directory. Unlike a regular controller, the `:id` parameter references the current step **not** the ID of a resource. For this reason, the name of the resource ID parameter must be specified using the `#resource_param_name` private method.
232
252
 
@@ -262,7 +282,7 @@ end
262
282
  - The `#find_resource` method must only retrieve the record associated with the resource ID (`#includes` is allowed), **not** a collection of records.
263
283
  - The `#find_resource` method must return the record.
264
284
 
265
- ### Routes
285
+ #### Routes
266
286
 
267
287
  The `param` option must be specified when defining resource routes:
268
288
 
@@ -272,7 +292,7 @@ resources :users, only: [:show, :update], param: :user_id
272
292
 
273
293
  **DO NOT** use nested routes with the step routes.
274
294
 
275
- ### Nested routes
295
+ #### Nested routes
276
296
 
277
297
  When the controller has an `index` action, nested routes can be defined in the following way:
278
298
 
@@ -294,7 +314,7 @@ scope path: "users/:user_id" do
294
314
  end
295
315
  ```
296
316
 
297
- ### Actions
317
+ #### Actions
298
318
 
299
319
  A step controller has the `show` and `update` actions. **It cannot have the `new`, `edit` and `create` actions!** The `index` and `destroy` actions can be implemented but they will be independent of the pipeline.
300
320
 
@@ -336,7 +356,7 @@ end
336
356
  - `@next_step`
337
357
  - `@previous_step`
338
358
 
339
- ### Flash messages
359
+ #### Flash messages
340
360
 
341
361
  Flash messages can be set manually **after** calling `super`. Step objects have a `#saved?` method which can be used to verify that it was successfully saved. The method should be used before setting a flash messages:
342
362
 
@@ -359,7 +379,7 @@ class UsersController < BaseStepsController
359
379
  end
360
380
  ```
361
381
 
362
- ### Views
382
+ #### Views
363
383
 
364
384
  There must be a view for each step, **not** a partial, it must have the name of the step and it should live in the root directory of the controller's view directory:
365
385
 
@@ -377,7 +397,7 @@ app
377
397
  - **DO NOT** create a view for the `show` action.
378
398
  - **DO NOT** create views named `new` or `edit`.
379
399
 
380
- ### Forms
400
+ #### Forms
381
401
 
382
402
  The form in step view must be declared in the following way:
383
403
 
@@ -400,7 +420,7 @@ The form in step view must be declared in the following way:
400
420
  - The resource object must be passed to `form_for`, **not** the step processor
401
421
  - The form's method must be either `:put` or `:patch`
402
422
 
403
- ### Breadcrumbs
423
+ #### Breadcrumbs
404
424
 
405
425
  Step controllers provide a extended version of their pipeline's steps metadata with the following added info:
406
426
 
@@ -443,6 +463,8 @@ Contributing
443
463
 
444
464
  Bug reports and pull requests are welcome on GitHub at https://github.com/RobertAudi/wicked-pipeline.
445
465
 
466
+ The code is linted using [Standard](https://github.com/testdouble/standard). To lint the code run `bundle exec rake standard` or `bundle exec rake standard:fix` to autocorrect offenses.
467
+
446
468
  License
447
469
  -------
448
470
 
@@ -0,0 +1,12 @@
1
+ Description:
2
+ Generates a spec file for a Pipeline. Pass the pipeline name, either CamelCased
3
+ or under_scored.
4
+
5
+ To create a pipeline within a module, specify the pipeline name as a
6
+ path like "parent_module/pipeline_name".
7
+
8
+ Example:
9
+ `bin/rails generate rspec:wicked:pipeline Registration
10
+
11
+ Registration spec.
12
+ RSpec: spec/steps/registration_pipeline_spec.rb
@@ -0,0 +1,25 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/generators/named_base"
4
+
5
+ module Rspec
6
+ module Wicked
7
+ class PipelineGenerator < Rails::Generators::NamedBase
8
+ source_root File.expand_path("templates", __dir__)
9
+
10
+ def create_spec_file
11
+ template "pipeline_spec.rb", File.join("spec/steps", class_path, "#{file_name}_pipeline_spec.rb")
12
+ end
13
+
14
+ private
15
+
16
+ def file_name
17
+ @_file_name ||= remove_possible_suffix(super)
18
+ end
19
+
20
+ def remove_possible_suffix(name)
21
+ name.sub(/_?pipeline\z/i, "")
22
+ end
23
+ end
24
+ end
25
+ end
@@ -0,0 +1,12 @@
1
+ Description:
2
+ Generates a spec file for a Step. Pass the step name, either CamelCased
3
+ or under_scored.
4
+
5
+ To create a step within a module, specify the step name as a
6
+ path like "parent_module/step_name".
7
+
8
+ Example:
9
+ `bin/rails generate rspec:wicked:pipeline:step UserIdendification
10
+
11
+ UserIdentificationStep spec.
12
+ RSpec: spec/steps/user_identification_step_spec.rb
@@ -0,0 +1,27 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/generators/named_base"
4
+
5
+ module Rspec
6
+ module Wicked
7
+ module Pipeline
8
+ class StepGenerator < Rails::Generators::NamedBase
9
+ source_root File.expand_path("templates", __dir__)
10
+
11
+ def create_spec_file
12
+ template "step_spec.rb", File.join("spec/steps", class_path, "#{file_name}_step_spec.rb")
13
+ end
14
+
15
+ private
16
+
17
+ def file_name
18
+ @_file_name ||= remove_possible_suffix(super)
19
+ end
20
+
21
+ def remove_possible_suffix(name)
22
+ name.sub(/_?step\z/i, "")
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -0,0 +1,9 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails_helper"
4
+
5
+ RSpec.describe <%= class_name %>Step do
6
+ subject { described_clas.new(spy) }
7
+
8
+ pending "add some examples to (or delete) #{__FILE__}"
9
+ end
@@ -0,0 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails_helper"
4
+
5
+ RSpec.describe <%= class_name %>Pipeline do
6
+ pending "add some examples to (or delete) #{__FILE__}"
7
+ end
@@ -0,0 +1,15 @@
1
+ Description:
2
+ Generates a new pipeline. Pass the pipeline name, either CamelCased or
3
+ under_scored, and an optional list of steps.
4
+
5
+ To create a pipeline within a module, specify the pipeline name as a
6
+ path like "parent_module/pipeline_name".
7
+
8
+ Example:
9
+ `bin/rails generate wicked:pipeline Registration identification profile preferences
10
+
11
+ RegistrationPipeline.
12
+ Pipeline: app/steps/registration_pipeline.rb
13
+ Step: app/steps/identification_step.rb
14
+ Step: app/steps/profile_step.rb
15
+ Step: app/steps/preferences_step.rb
@@ -0,0 +1,54 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/generators/named_base"
4
+
5
+ module Wicked
6
+ class PipelineGenerator < Rails::Generators::NamedBase
7
+ check_class_collision suffix: "Pipeline"
8
+
9
+ source_root File.expand_path("templates", __dir__)
10
+
11
+ argument :steps, type: :array, default: [], banner: "step_name step_name"
12
+
13
+ def create_pipeline_file
14
+ template "pipeline.rb", File.join("app/steps", class_path, "#{file_name}_pipeline.rb")
15
+ end
16
+
17
+ hook_for :test_framework, as: "wicked:pipeline"
18
+
19
+ def create_step_files
20
+ step_classes.each do |step_class|
21
+ Rails::Generators.invoke "wicked:pipeline:step", [step_class, *options_as_switches], behavior: behavior
22
+ end
23
+ end
24
+
25
+ private
26
+
27
+ def file_name
28
+ @_file_name ||= remove_possible_suffix(super)
29
+ end
30
+
31
+ def remove_possible_suffix(name)
32
+ name.sub(/_?pipeline\z/i, "")
33
+ end
34
+
35
+ def step_classes
36
+ @step_classes ||= steps.map do |step_name|
37
+ if step_name.match?(/\/|::/)
38
+ String.new(step_name.sub(/_?step\z/i, "").camelize) << "Step"
39
+ else
40
+ String.new((class_path + [step_name.sub(/_?step\z/i, "")]).map!(&:camelize).join("::")) << "Step"
41
+ end
42
+ end
43
+ end
44
+
45
+ def options_as_switches
46
+ @options_as_switches ||= options.compact_blank.each_with_object([]) do |(option, value), obj|
47
+ next unless value
48
+
49
+ obj << "--#{option.to_s.dasherize}"
50
+ obj << value.presence unless value == true
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,15 @@
1
+ Description:
2
+ Generates a new step. Pass the step name, either CamelCased or
3
+ under_scored, and an optional list of attribute pairs as arguments.
4
+
5
+ Attribute pairs are name:type arguments specifying the
6
+ step's attributes.
7
+
8
+ To create a step within a module, specify the step name as a
9
+ path like "parent_module/step_name".
10
+
11
+ Example:
12
+ `bin/rails generate wicked:pipeline:step UserIdendification name is_active:boolean hobbies:array`
13
+
14
+ UserIdentificationStep.
15
+ Step: app/steps/user_identification_step.rb
@@ -0,0 +1,39 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "rails/generators/named_base"
4
+
5
+ module Wicked
6
+ module Pipeline
7
+ class StepGenerator < Rails::Generators::NamedBase
8
+ check_class_collision suffix: "Step"
9
+
10
+ source_root File.expand_path("templates", __dir__)
11
+
12
+ argument :attributes, type: :array, default: [], banner: "attribute[:type] attribute[:type]"
13
+
14
+ def create_step_file
15
+ template "step.rb", File.join("app/steps", class_path, "#{file_name}_step.rb")
16
+ end
17
+
18
+ hook_for :test_framework, as: "wicked:pipeline:step"
19
+
20
+ private
21
+
22
+ def file_name
23
+ @_file_name ||= remove_possible_suffix(super)
24
+ end
25
+
26
+ def remove_possible_suffix(name)
27
+ name.sub(/_?step\z/i, "")
28
+ end
29
+
30
+ def array_attributes
31
+ @array_attributes ||= attributes.select { |attribute| attribute.type == :array }
32
+ end
33
+
34
+ def boolean_attributes
35
+ @boolean_attributes ||= attributes.select { |attribute| attribute.type == :boolean }
36
+ end
37
+ end
38
+ end
39
+ end
@@ -0,0 +1,79 @@
1
+ # frozen_string_literal: true
2
+
3
+ <% module_namespacing do -%>
4
+ class <%= class_name %>Step < Wicked::Pipeline::BaseStep
5
+ # -------------------------------------------- #
6
+ # Attributes #
7
+ # -------------------------------------------- #
8
+
9
+ <% if attributes.present? -%>
10
+ <% attributes.each do |attribute| -%>
11
+ <% if attribute.type == :array -%>
12
+ attribute :<%= attribute.name %>, array: true
13
+ <% elsif attribute.type != :string -%>
14
+ attribute :<%= attribute.name %>, :<%= attribute.type %>
15
+ <% else -%>
16
+ attribute :<%= attribute.name %>
17
+ <% end -%>
18
+ <% end -%>
19
+ <% else -%>
20
+ # ...
21
+ <% end -%>
22
+
23
+ # -------------------------------------------- #
24
+ # Validations #
25
+ # -------------------------------------------- #
26
+
27
+ <% if boolean_attributes.present? -%>
28
+ <% boolean_attributes.each do |attribute| -%>
29
+ validates :<%= attribute.name %>, inclusion: {in: [true, false]}
30
+ <% end -%>
31
+
32
+ # ...
33
+ <% else -%>
34
+ # ...
35
+ <% end -%>
36
+
37
+ # -------------------------------------------- #
38
+
39
+ <% array_attributes.each do |attribute| -%>
40
+ def <%= attribute.name %>=(value)
41
+ super(Array(value).compact_blank)
42
+ end
43
+
44
+ <% end -%>
45
+ # def blocking?
46
+ # false
47
+ # end
48
+
49
+ private
50
+
51
+ def permitted_params
52
+ <% if attributes.present? -%>
53
+ [
54
+ <% attributes.each_with_index do |attribute, index| -%>
55
+ <% next if attribute.type == :array -%>
56
+ :<%= attribute.name %><%= "," if index < attributes.size - 1 %>
57
+ <% end -%>
58
+ <% array_attributes.each_with_index do |attribute, index| -%>
59
+ <%= attribute.name %>: []<%= "," if index < array_attributes.size - 1 %>
60
+ <% end -%>
61
+ ]
62
+ <% else -%>
63
+ []
64
+ <% end -%>
65
+ end
66
+
67
+ # def regenerate_blocking_reasons!
68
+ # super
69
+ # end
70
+
71
+ # def stale_attributes
72
+ # stale_attributes = []
73
+ #
74
+ # # ...
75
+ #
76
+ # stale_attributes
77
+ # end
78
+ end
79
+ <% end -%>
@@ -0,0 +1,17 @@
1
+ # frozen_string_literal: true
2
+
3
+ <% module_namespacing do -%>
4
+ class <%= class_name %>Pipeline < Wicked::Pipeline::BasePipeline
5
+ def steps
6
+ <% if step_classes.present? -%>
7
+ [
8
+ <% step_classes.each_with_index do |step_class, index| -%>
9
+ <%= step_class %><%= "," if index < step_classes.size - 1 %>
10
+ <% end -%>
11
+ ]
12
+ <% else -%>
13
+ []
14
+ <% end -%>
15
+ end
16
+ end
17
+ <% end -%>
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Wicked
4
4
  module Pipeline
5
- VERSION = "0.1.0"
5
+ VERSION = "0.1.1"
6
6
  end
7
7
  end
@@ -8,7 +8,7 @@ Gem::Specification.new do |spec|
8
8
  spec.authors = ["Robert Audi"]
9
9
  spec.email = ["robert@robertaudi.com"]
10
10
 
11
- spec.summary = "Multi-step forms with step objects using Wicked"
11
+ spec.summary = "A step by step pipeline system built on top of Wicked"
12
12
  spec.license = "MIT"
13
13
  spec.required_ruby_version = ">= 2.6.0"
14
14
 
@@ -23,7 +23,6 @@ Gem::Specification.new do |spec|
23
23
  end
24
24
  end
25
25
 
26
- spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
27
26
  spec.require_paths = ["lib"]
28
27
 
29
28
  spec.add_dependency "railties", ">= 6.1", "< 7"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wicked-pipeline
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Robert Audi
@@ -120,13 +120,24 @@ files:
120
120
  - README.md
121
121
  - Rakefile
122
122
  - app/controllers/wicked/pipeline/base_steps_controller.rb
123
+ - lib/generators/rspec/wicked/pipeline/USAGE
124
+ - lib/generators/rspec/wicked/pipeline/pipeline_generator.rb
125
+ - lib/generators/rspec/wicked/pipeline/step/USAGE
126
+ - lib/generators/rspec/wicked/pipeline/step/step_generator.rb
127
+ - lib/generators/rspec/wicked/pipeline/step/templates/step_spec.rb.tt
128
+ - lib/generators/rspec/wicked/pipeline/templates/pipeline_spec.rb.tt
129
+ - lib/generators/wicked/pipeline/USAGE
130
+ - lib/generators/wicked/pipeline/pipeline_generator.rb
131
+ - lib/generators/wicked/pipeline/step/USAGE
132
+ - lib/generators/wicked/pipeline/step/step_generator.rb
133
+ - lib/generators/wicked/pipeline/step/templates/step.rb.tt
134
+ - lib/generators/wicked/pipeline/templates/pipeline.rb.tt
123
135
  - lib/wicked/pipeline.rb
124
136
  - lib/wicked/pipeline/base_pipeline.rb
125
137
  - lib/wicked/pipeline/base_step.rb
126
138
  - lib/wicked/pipeline/engine.rb
127
139
  - lib/wicked/pipeline/readonly_step.rb
128
140
  - lib/wicked/pipeline/version.rb
129
- - sig/wicked/pipeline.rbs
130
141
  - wicked-pipeline.gemspec
131
142
  homepage: https://github.com/RobertAudi/wicked-pipeline
132
143
  licenses:
@@ -153,5 +164,5 @@ requirements: []
153
164
  rubygems_version: 3.3.11
154
165
  signing_key:
155
166
  specification_version: 4
156
- summary: Multi-step forms with step objects using Wicked
167
+ summary: A step by step pipeline system built on top of Wicked
157
168
  test_files: []
@@ -1,5 +0,0 @@
1
- module Wicked
2
- module Pipeline
3
- VERSION: String
4
- end
5
- end