0
Fork 0
mirror of https://github.com/ninenines/cowboy.git synced 2025-07-14 20:30:23 +00:00

Simplify example instructions and fix broken examples

Also convert to AsciiDoc while we're at it.
This commit is contained in:
Loïc Hoguin 2016-01-14 20:00:50 +01:00
parent 4023e7f4e4
commit 394b4f0bf7
28 changed files with 246 additions and 388 deletions

View file

@ -1,59 +1,46 @@
REST pastebin example
=====================
= REST pastebin example
To try this example, you need GNU `make` and `git` in your PATH.
To build the example, run the following command:
To build and run the example, use the following command:
``` bash
$ make
```
[source,bash]
$ make run
To start the release in the foreground:
Then point your browser to http://localhost:8080
``` bash
$ ./_rel/rest_pastebin_example/bin/rest_pastebin_example console
```
Then point your browser at [http://localhost:8080](http://localhost:8080).
Usage
-----
== Usage
To upload something to the paste application, you can use `curl`:
``` bash
[source,bash]
$ <command> | curl -i --data-urlencode paste@- localhost:8080
```
Or, to upload the file `my_file`:
``` bash
[source,bash]
curl -i --data-urlencode paste@my_file localhost:8080
```
The URL of your data will be in the location header. Alternately, you can visit
http://localhost:8080 with your favorite web browser and submit your paste via
the form.
Code that has been pasted can be highlighted with ?lang=<language> option if
you have [highlight](http://www.andre-simon.de/doku/highlight/en/highlight.html)
you have http://www.andre-simon.de/doku/highlight/en/highlight.html[highlight]
installed (although `pygments` or any other should work just fine).
This will show the contents of the HTML file:
``` bash
[source,bash]
curl -i --data-urlencode paste@priv/index.html localhost:8080
curl <url from location header>
```
If your terminal supports color sequences and `highlight` is installed,
the following command will show the same contents but with HTML syntax
highlighting.
``` bash
[source,bash]
curl <url from location header>?lang=html
```
If you open the same URL in your web browser and your web browser tells
Cowboy that it prefers HTML files, you will see the file highlighted

View file

@ -16,7 +16,7 @@
-export([paste_text/2]).
init(Req, Opts) ->
random:seed(now()),
random:seed(os:timestamp()),
{cowboy_rest, Req, Opts}.
allowed_methods(Req, State) ->
@ -57,13 +57,13 @@ create_paste(Req, State) ->
paste_html(Req, index) ->
{read_file("index.html"), Req, index};
paste_html(Req, Paste) ->
#{lang := Lang} = cowboy_req:match_qs([lang], Req),
#{lang := Lang} = cowboy_req:match_qs([{lang, [], plain}], Req),
{format_html(Paste, Lang), Req, Paste}.
paste_text(Req, index) ->
{read_file("index.txt"), Req, index};
paste_text(Req, Paste) ->
#{lang := Lang} = cowboy_req:match_qs([lang], Req),
#{lang := Lang} = cowboy_req:match_qs([{lang, [], plain}], Req),
{format_text(Paste, Lang), Req, Paste}.
% Private