Rocket/examples/todo
Sergio Benitez 9b955747e4 Remove config global state. Use Responder::respond_to.
This commit includes two major changes to core:

  1. Configuration state is no longer global. The `config::active()`
     function has been removed. The active configuration can be
     retrieved via the `config` method on a `Rocket` instance.

  2. The `Responder` trait has changed. `Responder::respond(self)` has
     been removed in favor of `Responder::respond_to(self, &Request)`.
     This allows responders to dynamically adjust their response based
     on the incoming request.

Additionally, it includes the following changes to core and codegen:

  * The `Request::guard` method was added to allow for simple
    retrivial of request guards.
  * The `Request::limits` method was added to retrieve configured
    limits.
  * The `File` `Responder` implementation now uses a fixed size body
    instead of a chunked body.
  * The `Outcome::of<R: Responder>(R)` method was removed while
    `Outcome::from<R: Responder(&Request, R)` was added.
  * The unmounted and unmanaged limits are more cautious: they will only
    emit warnings when the `Rocket` receiver is known.

This commit includes one major change to contrib:

  1. To use contrib's templating, the fairing returned by
     `Template::fairing()` must be attached to the running Rocket
     instance.

Additionally, the `Display` implementation of `Template` was removed. To
directly render a template to a `String`, the new `Template::show`
method can be used.
2017-05-19 03:29:08 -07:00
..
db Fully working todo example. Apparently didn't commit in a while. Need to be better at that. 2016-08-01 19:07:36 -07:00
migrations Fully working todo example. Apparently didn't commit in a while. Need to be better at that. 2016-08-01 19:07:36 -07:00
src Remove config global state. Use Responder::respond_to. 2017-05-19 03:29:08 -07:00
static Remove config global state. Use Responder::respond_to. 2017-05-19 03:29:08 -07:00
bootstrap.sh Use ansi_term::Color, not Colour. 2017-03-08 15:08:13 -08:00
Cargo.toml Upgrade dependencies to Serde 1.0. 2017-04-24 17:37:18 -07:00
README.md Reenable the options decorator. 2017-02-02 15:02:32 -08:00
Rocket.toml Add the [global] psuedo-environment for global configuration. 2016-10-31 17:00:32 +01:00

Rocket Todo Example

This example makes use of a SQLite database via diesel to store todo tasks. As a result, you'll need to have sqlite3 and its headers installed:

  • OS X: brew install sqlite
  • Debian/Ubuntu: apt-get install libsqlite3-dev
  • Arch: pacman -S sqlite

Running

Before running, building, or testing this example, you'll need to ensure the following:

  1. A SQLite database file with the proper schema is present.
On a Unix machine or with bash installed, you can simply run the
`boostrap.sh` script to create the database. The script installs the
`diesel_cli` tools if they're not already installed and runs the migrations.
The script will output a `DATABASE_URL` variable.

You can also run the migrations manually with the following commands:

```
cargo install diesel_cli                      # install diesel CLI tools
DATABASE_URL=db/db.sql diesel migration run   # create db/db.sql
```
  1. A DATABASE_URL environment variable is set that points to the SQLite database file.

    Use the DATABASE_URL variable emitted from the bootstrap.sh script, or enter it manually, as follows:

    • DATABASE_URL=db/db.sql cargo build
    • DATABASE_URL=db/db.sql cargo test
    • DATABASE_URL=db/db.sql cargo run