katapult 0.4.1 → 0.5.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 +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
|