asciinema.org/README.md
2017-04-12 14:43:30 +02:00

141 lines
2.4 KiB
Markdown

# asciinema
FIXME: description
## Developing
### Setup
When you first clone this repository, run:
```sh
lein setup
```
This will create files for local configuration, and prep your system
for the project.
### Environment
To begin developing, start with a REPL.
```sh
lein repl
```
Then load the development environment.
```clojure
user=> (dev)
:loaded
```
Run `go` to initiate and start the system.
```clojure
dev=> (go)
:started
```
By default this creates a web server at <http://localhost:3000>.
When you make changes to your source files, use `reset` to reload any
modified files and reset the server.
```clojure
dev=> (reset)
:reloading (...)
:resumed
```
### Testing
Testing is fastest through the REPL, as you avoid environment startup
time.
```clojure
dev=> (test)
...
```
But you can also run tests through Leiningen.
```sh
lein test
```
### Migrations
Migrations are handled by [ragtime][]. Migration files are stored in
the `resources/migrations` directory, and are applied in alphanumeric
order.
To update the database to the latest migration, open the REPL and run:
```clojure
dev=> (migrate)
Applying 20150815144312-create-users
Applying 20150815145033-create-posts
```
To rollback the last migration, run:
```clojure
dev=> (rollback)
Rolling back 20150815145033-create-posts
```
Note that the system needs to be setup with `(init)` or `(go)` before
migrations can be applied.
[ragtime]: https://github.com/weavejester/ragtime
### Generators
This project has several generator functions to help you create files.
To create a new endpoint:
```clojure
dev=> (gen/endpoint "bar")
Creating file src/foo/endpoint/bar.clj
Creating file test/foo/endpoint/bar_test.clj
Creating directory resources/foo/endpoint/bar
nil
```
To create a new component:
```clojure
dev=> (gen/component "baz")
Creating file src/foo/component/baz.clj
Creating file test/foo/component/baz_test.clj
nil
```
To create a new boundary:
```clojure
dev=> (gen/boundary "quz" foo.component.baz.Baz)
Creating file src/foo/boundary/quz.clj
Creating file test/foo/boundary/quz_test.clj
nil
```
To create a new SQL migration:
```clojure
dev=> (gen/sql-migration "create-users")
Creating file resources/foo/migrations/20160519143643-create-users.up.sql
Creating file resources/foo/migrations/20160519143643-create-users.down.sql
nil
```
## Deploying
FIXME: steps to deploy
## Legal
Copyright © 2017 FIXME