Update docs

This commit is contained in:
Sdogruyol 2015-12-07 22:03:35 +02:00
parent c258003b8e
commit d825b2316a
6 changed files with 29 additions and 31 deletions

View File

@ -14,7 +14,7 @@ Crystal is a programming language based on *Ruby* syntax.
- Easy to learn and start to develop.
- Since it's working on LLVM, it's too fast.
- Easy deploment to *Heroku*.
- Easy deployment to *Heroku*.
## The Name
@ -24,7 +24,7 @@ Kemal means *Mature, grown up* in Turkish.
- [Getting Started Tutorial](./tutorial.md)
- [Using Dynamic Views](./views.md)
- [Parsing HTTP requests and Form Data](./http-requests.md)
- [HTTP Requests and Responses](./http-requests.md)
- [Uploading Files](./upload.md)
- [Serving Static Files](./statics.md)
- [Serving JSON API](./json.md)

View File

@ -1,6 +1,6 @@
# HTTP Requests
# Handling HTTP Request/Response
You should use `env` variable to handle HTTP params. For both `get` and `post` (and others) methods, you should use `env` object.
You should use `env` variable to handle HTTP Request/Response. For both `get` and `post` (and others) methods, you should use the yielded `env` object.
```ruby
# Matches /hello/kemal

View File

@ -1,6 +1,6 @@
# Serving JSON API
Just use `to_json` method to return.
You need to return a ```JSON``` object or need to convert the existing object via `to_json`.
```ruby
require "kemal"

View File

@ -5,13 +5,13 @@ Add your files to `public` directory and Kemal will serve these files immediatel
```
app/
src/
awesome_web_project.cr
your_app.cr
public/
js/
jquery.js
awesome_web_project.js
your_app.js
css/
awesome_web_project.css
your_app.css
index.html
```
@ -21,8 +21,8 @@ Open index.html and add
<html>
<head>
<script src="/js/jquery.js"></script>
<script src="/js/awesome_web_project.js"></script>
<link rel="stylesheet" href="/css/awesome_web_project.css"/>
<script src="/js/your_app.js"></script>
<link rel="stylesheet" href="/css/your_app.css"/>
</head>
<body>
...

View File

@ -12,8 +12,8 @@ brew install crystal-lang
You should create your application first:
```
crystal init app awesome_web_project
cd awesome_web_project
crystal init app your_app
cd your_app
```
Then add *kemal* to the `shard.yml` file as a dependency.
@ -41,7 +41,7 @@ Installing kemal (master)
## 3. Include Kemal into your project
Open `awesome_web_project/src/awesome_web_project.cr` and require `kemal` to use Kemal.
Open `your_app/src/your_app.cr` and require `kemal` to use Kemal.
```ruby
require 'kemal'
@ -60,21 +60,18 @@ end
All the code should look like this:
```ruby
require "./crystal_test/*"
require "kemal"
module AwesomeWebProject
get "/" do
"Hello World!"
end
get "/" do
"Hello World!"
end
```
## 5. Run your awesome web project.
```
crystal build --release src/awesome_web_project.cr
./awesome_web_project
crystal build --release src/your_app.cr
./your_app
```
You should see some logs like these:

View File

@ -1,11 +1,21 @@
# Views
You can use ECR to build views. Kemal serves a `render` macro to use built-in `ECR`
You can use ECR to build views. Kemal serves a `render` macro to use Crystal's built-in `ECR`
library.
## Embedding View File
```crystal
get '/' do |env|
your_name = "Kemal"
render "views/hello.ecr"
end
```
## Writing Views
The ECR is actually ERB.
ECR is pretty similar ERB(from Ruby). As you can see you can easily access the block variables in your view. In this
example `your_name` is available for use in the view.
```
src/
@ -17,12 +27,3 @@ Write `hello.ecr`
```erb
Hello <%= your_name %>
```
## Embedding View File
```crystal
get '/' do |env|
your_name = "Kemal"
render "views/hello.ecr"
end
```