katapult 0.4.1 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/CHANGELOG.md +34 -12
- data/README.md +154 -114
- data/Rakefile +3 -3
- data/bin/katapult +34 -8
- data/features/application_model.feature +8 -44
- data/features/authenticate.feature +21 -4
- data/features/basics.feature +16 -89
- data/features/binary.feature +37 -4
- data/features/model.feature +40 -24
- data/features/navigation.feature +2 -0
- data/features/step_definitions/katapult_steps.rb +48 -16
- data/features/step_definitions/test_steps.rb +2 -0
- data/features/templates.feature +74 -0
- data/lib/generators/katapult/app_model/templates/lib/katapult/application_model.rb +2 -2
- data/lib/generators/katapult/basics/basics_generator.rb +12 -1
- data/lib/generators/katapult/basics/templates/Capfile +5 -0
- data/lib/generators/katapult/basics/templates/Gemfile +3 -1
- data/lib/generators/katapult/basics/templates/Gemfile.lock +376 -0
- data/lib/generators/katapult/basics/templates/app/models/application_record.rb +28 -0
- data/lib/generators/katapult/basics/templates/app/webpack/assets/javascripts/bootstrap.js +2 -2
- data/lib/generators/katapult/basics/templates/config/deploy.rb +2 -3
- data/lib/generators/katapult/basics/templates/config/deploy/production.rb +2 -2
- data/lib/generators/katapult/basics/templates/config/deploy/staging.rb +1 -1
- data/lib/generators/katapult/basics/templates/lib/capistrano/tasks/deploy.rake +1 -4
- data/lib/generators/katapult/clearance/clearance_generator.rb +13 -4
- data/lib/generators/katapult/clearance/templates/features/authentication.feature +3 -3
- data/lib/generators/katapult/model/model_generator.rb +14 -4
- data/lib/generators/katapult/templates/templates_generator.rb +35 -0
- data/lib/generators/katapult/transform/transform_generator.rb +3 -3
- data/lib/generators/katapult/views/views_generator.rb +1 -1
- data/lib/generators/katapult/web_ui/web_ui_generator.rb +1 -1
- data/lib/katapult/application_model.rb +7 -7
- data/lib/katapult/elements/attribute.rb +16 -0
- data/lib/katapult/elements/authentication.rb +9 -6
- data/lib/katapult/elements/model.rb +8 -4
- data/lib/katapult/elements/navigation.rb +2 -2
- data/lib/katapult/elements/web_ui.rb +2 -2
- data/lib/katapult/generator.rb +12 -2
- data/lib/katapult/support/generator_goodies.rb +14 -0
- data/lib/katapult/version.rb +1 -1
- data/script/update +5 -1
- metadata +8 -8
- data/features/configuration.feature +0 -24
- data/lib/generators/katapult/basics/templates/lib/capistrano/tasks/passenger.rake +0 -8
- data/lib/generators/katapult/basics/templates/lib/ext/active_record/find_by_anything.rb +0 -20
- data/lib/generators/katapult/basics/templates/lib/ext/active_record/these.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: da5e56a99ddf91445aed9d85f07c27e0fba63090536dcc13724b73be1d64c0fb
|
4
|
+
data.tar.gz: dc2a5956825e7624c9c6942a3b94cfcc028370e553ca14178847a6d87f22f625
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 24ae3501b48b18939d4fe22f4236976bf249a5af74878933bcbc5385c8fe10e0032258205fca340a8d2a1a01387bdf232ab458003facc5948e5ceab19d6f1baa
|
7
|
+
data.tar.gz: 3802474a2ae1a8818b076d2aa3109b91de0c871ff728086baf0ad6a82af07a4ff75ab6399c60888abcd5e61412f978dccde60c8fed72614cea3fd8941a0529cd
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
@@ -1,30 +1,52 @@
|
|
1
1
|
# Changelog
|
2
2
|
|
3
|
-
|
3
|
+
All notable changes to this project will be documented in this file. Changes are
|
4
|
+
segmented into: New Features / Improvements.
|
4
5
|
|
5
|
-
|
6
|
+
This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
|
7
|
+
|
8
|
+
|
9
|
+
## 0.5.0
|
10
|
+
|
11
|
+
### New Features
|
12
|
+
- Deployment ready for Opscomplete
|
13
|
+
- Copying view and controller templates over to target application via new
|
14
|
+
command `katapult template` or generator `katapult:templates`.
|
15
|
+
|
16
|
+
### Improvements
|
17
|
+
- Generating a fixed Gemfile.lock. Run `bundle update` after code generation to
|
18
|
+
update all gems to recent versions.
|
19
|
+
- Better deployment with Webpack
|
20
|
+
- Navigation only rendered if requested
|
21
|
+
- "Usage" section in README rewritten
|
22
|
+
- Some minor fixes
|
23
|
+
|
24
|
+
## 0.4.1 - 2018-02-16
|
25
|
+
|
26
|
+
### Improvements
|
27
|
+
- Changed CHANGELOG to satisfy [How to write a good changelog](https://makandracards.com/makandra/54223-how-to-write-a-good-changelog) format
|
28
|
+
- Minor fixes and improvements
|
29
|
+
|
30
|
+
## 0.4.0 - 2018-01-15
|
31
|
+
|
32
|
+
### New Features
|
6
33
|
- Support for has_many/belongs_to associations
|
7
34
|
- Create a project README
|
8
35
|
- New CHANGELOG
|
9
|
-
|
10
|
-
### Fixes
|
11
36
|
- Models now inherit from `ApplicationRecord`
|
12
37
|
|
38
|
+
## 0.3.0 2018-01-11
|
13
39
|
|
14
|
-
|
15
|
-
|
16
|
-
### Features
|
40
|
+
### New Features
|
17
41
|
- Generating a Rails 5.1.4 app on Ruby 2.5.0
|
18
42
|
- Dropped asset pipeline in favor of Webpacker
|
19
|
-
- The generated application now has a sleek, simple design based on Bootstrap
|
20
43
|
- Employing [Unpoly](https://unpoly.com)
|
21
44
|
- New DSL command `crud` for creating Model plus WebUI
|
22
45
|
- The generated application model is now a transformable example of katapult's features
|
23
|
-
|
24
|
-
### Development improvements
|
46
|
+
- The generated application now has a sleek, simple design based on Bootstrap
|
25
47
|
- Add katapult update script
|
48
|
+
|
49
|
+
### Improvements
|
26
50
|
- Speed up tests (now running in about 9 min)
|
27
51
|
- Improve development workflow (see README)
|
28
52
|
- No bundler issues in tests any more
|
29
|
-
|
30
|
-
See [all changes](https://github.com/makandra/katapult/compare/v0.2.0...v0.3.0).
|
data/README.md
CHANGED
@@ -1,100 +1,132 @@
|
|
1
|
-
# Katapult
|
1
|
+
# Katapult 0.4.1
|
2
|
+
Generating a Rails 5.1.4 app on Ruby 2.5.0.
|
2
3
|
|
3
4
|
<img src="katapult.png" width="200px" align="right" />
|
4
5
|
|
5
6
|
|
6
|
-
|
7
|
-
|
7
|
+
Katapult is a kickstart generator for Rails. It prepares a new
|
8
|
+
application with [lots of pre-configuration](https://github.com/makandra/katapult/blob/master/lib/generators/katapult/basics/basics_generator.rb)
|
8
9
|
and offers [makandra-flavored](https://leanpub.com/growing-rails) code
|
9
|
-
generation from an application model.
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
instantly start implementing the meat of your application.
|
14
|
-
|
15
|
-
`Katapult` only supports a single Ruby and Rails version, currently it's Rails
|
16
|
-
5.1.4 and Ruby 2.5.0.
|
10
|
+
generation from an application model. This significantly speeds up the initial
|
11
|
+
phase of Rails development by doing in minutes what would cost you weeks. When
|
12
|
+
Katapult has finished, you can instantly start implementing the interesting
|
13
|
+
parts of your application.
|
17
14
|
|
18
15
|
|
19
16
|
## Prerequisites
|
20
17
|
|
21
18
|
Katapult uses *PostgreSQL* as database, so you'll need to install that upfront.
|
22
|
-
Also, it drops the asset pipeline in favor of *Webpacker*, so you'll need
|
23
|
-
and Yarn (see <https://makandracards.com/makandra/47477>).
|
19
|
+
Also, it drops the Rails asset pipeline in favor of *Webpacker*, so you'll need
|
20
|
+
*Node* and *Yarn* (see <https://makandracards.com/makandra/47477>).
|
24
21
|
|
25
|
-
|
26
|
-
installed on your system.
|
22
|
+
The required *Ruby* version is 2.5.0. You'll need the *Bundler* and *Rake* gems,
|
23
|
+
which are probably already installed on your system.
|
27
24
|
|
25
|
+
When you're using the `katapult` binary (you should), you'll also need *Git*.
|
28
26
|
|
29
|
-
## Installation
|
30
27
|
|
31
|
-
|
28
|
+
## Installation
|
32
29
|
|
33
30
|
gem install katapult
|
34
31
|
|
35
|
-
If you intend to extend an existing application, add it to the development group
|
36
|
-
in your Gemfile.
|
37
|
-
|
38
32
|
|
39
33
|
## Usage
|
40
34
|
|
41
|
-
|
35
|
+
There are two usage scenarios for Katapult:
|
42
36
|
|
43
|
-
1.
|
44
|
-
|
45
|
-
2. It generates code from an application model, i.e. it creates models and
|
46
|
-
views, controllers, styles etc.
|
37
|
+
1. Starting a fresh Rails application
|
38
|
+
2. Extending an existing Rails application
|
47
39
|
|
48
|
-
|
40
|
+
Choose your use case and read on below.
|
49
41
|
|
50
42
|
|
51
|
-
##
|
43
|
+
## Starting a fresh Rails application
|
52
44
|
|
53
|
-
|
45
|
+
To create a new Rails application with Katapult, run the following command:
|
54
46
|
|
55
47
|
katapult new $APPLICATION_NAME
|
56
48
|
|
57
|
-
This will create a new Rails application and
|
58
|
-
|
59
|
-
|
60
|
-
|
49
|
+
This will create a new Rails application, prepared and configured: bundled,
|
50
|
+
database set up, RSpec, Cucumber and Capistrano installed and much more.
|
51
|
+
Please read the [BasicsGenerator](https://github.com/makandra/katapult/blob/master/lib/generators/katapult/basics/basics_generator.rb)
|
52
|
+
for details (its methods are executed one-by-one from top to bottom).
|
53
|
+
|
54
|
+
When Katapult is done, you will find a default application model in
|
55
|
+
`lib/katapult/application_model.rb`. It contains a full example of Katapult's
|
56
|
+
DSL that you can use as an inspiration for creating your own application model.
|
57
|
+
|
58
|
+
Next, check the templates in `lib/templates/katapult`. They will be used
|
59
|
+
to generate the corresponding files, e.g. HAML views. Please modify the templates
|
60
|
+
to match your requirements. (Actually, you can customize much more templates.
|
61
|
+
Each template in Katapult's `lib/generators/katapult/<generator>/templates/` can
|
62
|
+
be overridden with a file at `lib/templates/katapult/<generator>/` in your
|
63
|
+
application.)
|
64
|
+
|
65
|
+
When your application model and the templates are ready, let Katapult generate
|
66
|
+
your code:
|
67
|
+
|
68
|
+
katapult fire
|
69
|
+
|
70
|
+
This will create models, migrations, views, styles, controllers, routes,
|
71
|
+
Cucumber features, specs, factories and more. It will also commit the results
|
72
|
+
and migrate the database.
|
73
|
+
|
74
|
+
When this is done, your application is ready to use! Start a development
|
75
|
+
server and try it out.
|
76
|
+
|
77
|
+
|
78
|
+
## Extending an existing Rails application
|
61
79
|
|
62
|
-
|
63
|
-
`katapult` expects a fresh application (which it would usually generate itself).
|
64
|
-
If you have an existing Rails application, you *may* use `katapult`, but be
|
65
|
-
warned: it is not designed to respect existing files, although it will usually
|
66
|
-
ask before overwriting something.
|
80
|
+
You can use Katapult for code generation in an existing application as well.
|
67
81
|
|
68
|
-
|
82
|
+
First, add Katapult to the development group in your Gemfile:
|
83
|
+
```
|
84
|
+
gem 'katapult'
|
85
|
+
```
|
69
86
|
|
70
|
-
|
87
|
+
Next, generate the default application model:
|
71
88
|
|
89
|
+
```
|
90
|
+
bundle exec rails generate katapult:app_model
|
91
|
+
```
|
72
92
|
|
73
|
-
|
93
|
+
You'll find the application model at `lib/katapult/application_model.rb`. It
|
94
|
+
contains a full example of Katapult's features: Use it as an inspiration for
|
95
|
+
modeling your own application. (When you're used to the application model DSL,
|
96
|
+
you don't need to generate the default model. Just create a Ruby file and start
|
97
|
+
modeling.)
|
74
98
|
|
75
|
-
|
76
|
-
`lib/katapult/application_model.rb`. It contains a full example of `katapult`'s
|
77
|
-
features that you should replace with _your_ application model.
|
99
|
+
Next, copy Katapult's template files to your application:
|
78
100
|
|
79
|
-
|
101
|
+
```
|
102
|
+
katapult templates
|
103
|
+
```
|
80
104
|
|
81
|
-
|
105
|
+
This will copy some of Katapult's file templates to `lib/templates/katapult`.
|
106
|
+
Modify them, especially the view templates, to match the current state of your
|
107
|
+
application. You can customize even more templates, see the "Starting …" section
|
108
|
+
above.
|
82
109
|
|
83
|
-
|
84
|
-
application model file. Note that you may well use separate model files for
|
85
|
-
separate runs.
|
110
|
+
When model and templates are ready, trigger code generation with:
|
86
111
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
of a generator tell what it does.
|
112
|
+
```
|
113
|
+
katapult fire path/to/your_model.rb
|
114
|
+
```
|
91
115
|
|
92
|
-
### Generic DSL syntax example
|
93
|
-
The DSL consists of _elements_, e.g. `Model` or `WebUI`. Each `katapult` element
|
94
|
-
has the following syntax, taking a name, options, and a block:
|
95
116
|
|
96
|
-
|
97
|
-
|
117
|
+
## DSL reference
|
118
|
+
|
119
|
+
Below you find an overview of the application model DSL. The respective sections
|
120
|
+
hold examples of what options are available to each element. For details, dive
|
121
|
+
into the respective generator at `lib/generators/katapult/*/*_generator.rb`. The
|
122
|
+
method names of a generator tell what it does.
|
123
|
+
|
124
|
+
### Crud
|
125
|
+
Shortcut for creating a model together with a WebUI with CRUD actions. The block
|
126
|
+
is passed the model instance.
|
127
|
+
|
128
|
+
crud 'Customer' do |customer|
|
129
|
+
# customer.attr :name
|
98
130
|
end
|
99
131
|
|
100
132
|
|
@@ -115,7 +147,7 @@ needed.
|
|
115
147
|
# Default type :string
|
116
148
|
model.attr :name
|
117
149
|
|
118
|
-
# Inferred type :email (
|
150
|
+
# Inferred type :email (attribute name matches /email/)
|
119
151
|
model.attr :email
|
120
152
|
|
121
153
|
# Inferred type :password. Password fields are rendered as password_field in
|
@@ -139,9 +171,9 @@ needed.
|
|
139
171
|
model.attr :avoid, type: :plain_json # PostgreSQL "json"
|
140
172
|
|
141
173
|
|
142
|
-
|
143
|
-
Defined on Model; takes the name of another model just
|
144
|
-
model. Adds a foreign key attribute to the model and `belongs_to`/`has_many`
|
174
|
+
#### Association
|
175
|
+
Defined on Model; takes the name of another model (just as you called it in the
|
176
|
+
application model). Adds a foreign key attribute to the model and `belongs_to`/`has_many`
|
145
177
|
calls to the respective models.
|
146
178
|
|
147
179
|
model 'Customer' do |customer|
|
@@ -157,7 +189,6 @@ passing Cucumber feature.
|
|
157
189
|
|
158
190
|
web_ui 'Customer', model: 'User' do |web_ui|
|
159
191
|
web_ui.crud # Create all the standard rails actions
|
160
|
-
|
161
192
|
# web_ui.action :custom etc, see Action element
|
162
193
|
end
|
163
194
|
|
@@ -180,13 +211,6 @@ and a route as needed.
|
|
180
211
|
web_ui.action :custom_action, method: :post, scope: :member
|
181
212
|
web_ui.action :other_action, method: :get, scope: :collection
|
182
213
|
|
183
|
-
### Crud
|
184
|
-
Shortcut for creating a model together with a WebUI with CRUD actions.
|
185
|
-
|
186
|
-
crud 'Customer' do |customer|
|
187
|
-
customer.attr :name
|
188
|
-
end
|
189
|
-
|
190
214
|
|
191
215
|
### Navigation
|
192
216
|
Generates a main menu with links to the index pages of all WebUIs.
|
@@ -206,65 +230,78 @@ Rails, including Clearance mails like password reset requests.
|
|
206
230
|
|
207
231
|
## Development
|
208
232
|
|
209
|
-
### Getting started
|
233
|
+
### Getting started
|
210
234
|
`Katapult` is tested with [RSpec](http://rspec.info/) and
|
211
235
|
[Cucumber](https://cucumber.io/) + [Aruba](https://github.com/cucumber/aruba)
|
212
|
-
([API
|
236
|
+
([API documentation](http://www.rubydoc.info/github/cucumber/aruba/master/)).
|
213
237
|
|
214
|
-
For its full-stack integration tests,
|
238
|
+
For its full-stack integration tests, Katapult requires a PostgreSQL account.
|
215
239
|
Create a dedicated account on your local PostgreSQL server:
|
216
240
|
|
217
241
|
$> sudo -u postgres psql
|
218
242
|
postgres=# CREATE ROLE katapult WITH createdb LOGIN;
|
219
243
|
|
220
|
-
|
244
|
+
|
245
|
+
### Continuing Development
|
246
|
+
Whenever you start working on Katapult, you should run `script/update`, which
|
221
247
|
will guide you through a quick update process.
|
222
248
|
|
223
249
|
### Architecture
|
224
|
-
|
250
|
+
Katapult's code is roughly split into three parts: the `katapult` binary in bin/,
|
225
251
|
the model in lib/katapult/ and the generators in lib/generators. Also, there
|
226
|
-
is a script/ directory that holds some scripts to
|
227
|
-
|
228
|
-
|
229
|
-
The generators of
|
230
|
-
from generating migration files or scaffolds
|
231
|
-
|
232
|
-
of plain text
|
233
|
-
model
|
234
|
-
|
235
|
-
There are
|
236
|
-
|
237
|
-
|
238
|
-
- `basics
|
239
|
-
configuration
|
240
|
-
- `app_model
|
241
|
-
a starting point for modeling
|
242
|
-
- `
|
252
|
+
is a script/ directory that holds some scripts to simplify development. It is not
|
253
|
+
included in the `katapult` gem.
|
254
|
+
|
255
|
+
The generators of Katapult extend the `rails/generators` you probably know
|
256
|
+
from generating migration files or scaffolds. However, Katapult lifts them on a
|
257
|
+
higher level by passing them a model object instead
|
258
|
+
of plain text arguments. This way, the Katapult generators can explore the whole
|
259
|
+
application model and are not restricted to a few strings they've been given.
|
260
|
+
|
261
|
+
There are a few "public" Rails generators. They can be considered the next API
|
262
|
+
level after the `katapult` binary:
|
263
|
+
|
264
|
+
- `katapult:basics`: Enhances a pristine Rails app with all of the
|
265
|
+
basic configuration.
|
266
|
+
- `katapult:app_model`: Installs a boilerplate application model that
|
267
|
+
serves as a starting point for modeling an application.
|
268
|
+
- `katapult:templates`: Copies some generator templates to the target
|
269
|
+
application.
|
270
|
+
- `katapult:transform`: Parses the application model into an internal
|
243
271
|
representation, which will be turned into code by all the other generators.
|
244
272
|
|
245
|
-
Note that the `katapult` binary is the only Rails-independent part of Katapult
|
246
|
-
|
273
|
+
Note that the `katapult` binary is the only Rails-independent part of Katapult.
|
274
|
+
Everything else runs in the context of the Rails application.
|
247
275
|
|
248
276
|
### Suggested workflow
|
249
|
-
When adding a feature to
|
277
|
+
When adding a feature to Katapult, it will usually take you some time to
|
250
278
|
figure out how exactly the generated code should look like. You'll be switching
|
251
|
-
between
|
279
|
+
between Katapult's tests, its generators and the generated code.
|
252
280
|
|
253
|
-
Here's a
|
281
|
+
Here's a process for building larger code generation features:
|
254
282
|
|
255
|
-
1)
|
256
|
-
|
257
|
-
|
283
|
+
1) **Start with a test:** Create a Cucumber scenario that creates and transforms
|
284
|
+
an application model. Also, write a first draft of the code that generates
|
285
|
+
what you expect.
|
286
|
+
2) Run your scenario. This will transform your test application model.
|
258
287
|
3) Make a commit inside the generated test application, so you'll have a clean
|
259
288
|
working directory: `script/kta git add --all && script/kta git commit -m 'x'`
|
260
|
-
4) Modify the
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
289
|
+
4) **Modify the generated code** inside the generated test application until it
|
290
|
+
meets your expectations. If you like, boot a development server with
|
291
|
+
`script/kta rails s`.
|
292
|
+
5) **Finish your test:** Once you've figured how the generated code should look
|
293
|
+
like, it's time to write steps that test it. For this purpose, tag your
|
294
|
+
scenario with @no-clobber and comment out the model transformation step. This
|
295
|
+
will leave the generated test app untouched in subsequent test runs, so you
|
296
|
+
will be able to run your scenario repeatedly, without losing what you've
|
297
|
+
built, until you have covered every change. Use `git diff` in the test app to
|
298
|
+
see your changes.
|
299
|
+
6) **Write code:** When you've completed your scenario, write the code that
|
300
|
+
generates what is needed to satisfy the test.
|
301
|
+
7) Remove the @no-clobber tag and uncomment the transformation step. Stop the
|
302
|
+
development server if you've started one.
|
303
|
+
8) Run your scenario normally and iterate over your code generation code until
|
304
|
+
your scenario is green.
|
268
305
|
|
269
306
|
### Guidelines
|
270
307
|
Please respect the following guidelines during development:
|
@@ -272,21 +309,24 @@ Please respect the following guidelines during development:
|
|
272
309
|
- The application model should be order-agnostic. There is a #prepare_render
|
273
310
|
method in `ApplicationModel` for things that need to happen between parsing
|
274
311
|
and rendering the application model.
|
312
|
+
- Transformation should be idempotent: it should be possible to generate the
|
313
|
+
application model over and over again without crashing or breaking things.
|
275
314
|
|
276
315
|
### Debugging
|
277
|
-
Add the `@announce-output` tag to
|
316
|
+
Add the `@announce-output` tag to Katapult scenarios in order to have output
|
278
317
|
logged to your terminal. Note that each step will print all output to date, so
|
279
318
|
you will see things multiple times.
|
280
319
|
|
281
320
|
To precisely debug errors occurring _inside_ the generated application, use
|
282
|
-
`script/kta`.
|
283
|
-
|
284
|
-
|
321
|
+
`script/kta`. It is a helper script that will execute whatever command you pass
|
322
|
+
it, but in the directory of the generated application. While you could cd to the
|
323
|
+
test app and run your command there, you'd need to `cd ../../aruba/katapult_test_app`
|
324
|
+
between test runs, because the tmp/aruba directory gets wiped before each test.
|
285
325
|
|
286
326
|
When fixing issues in the generated app, make a commit in the app first. When
|
287
327
|
you've fixed it, the diff will show you what you need to port back to katapult.
|
288
328
|
|
289
|
-
|
329
|
+
#### Typical issues
|
290
330
|
Be sure to check this list when you encounter strange issues during development.
|
291
331
|
|
292
332
|
- Spring was running in a directory that does not exist any more. This will
|
@@ -295,10 +335,10 @@ Be sure to check this list when you encounter strange issues during development.
|
|
295
335
|
- An outdated Rails application in `tmp/cached_*`
|
296
336
|
- Timeout error because of a script waiting for user input
|
297
337
|
|
298
|
-
|
338
|
+
#### Fast tests
|
299
339
|
Generating basics and transforming the application model take quite some time
|
300
340
|
(about 20s), because it boots the Rails application, resolves Yarn dependencies
|
301
|
-
and migrates databases. To speed that up,
|
341
|
+
and migrates databases. To speed that up, Katapult tests cache prepared Rails
|
302
342
|
applications in tmp/.
|
303
343
|
|
304
344
|
When debugging test suite speed, `bundle exec cucumber --format usage` is your
|