mirror of
				https://gitea.invidious.io/iv-org/shard-kemal.git
				synced 2024-08-15 00:53:36 +00:00 
			
		
		
		
	Update docs
This commit is contained in:
		
							parent
							
								
									c258003b8e
								
							
						
					
					
						commit
						d825b2316a
					
				
					 6 changed files with 29 additions and 31 deletions
				
			
		|  | @ -14,7 +14,7 @@ Crystal is a programming language based on *Ruby* syntax. | ||||||
| 
 | 
 | ||||||
|  - Easy to learn and start to develop. |  - Easy to learn and start to develop. | ||||||
|  - Since it's working on LLVM, it's too fast. |  - Since it's working on LLVM, it's too fast. | ||||||
|  - Easy deploment to *Heroku*. |  - Easy deployment to *Heroku*. | ||||||
| 
 | 
 | ||||||
| ## The Name | ## The Name | ||||||
| 
 | 
 | ||||||
|  | @ -24,7 +24,7 @@ Kemal means *Mature, grown up* in Turkish. | ||||||
| 
 | 
 | ||||||
|  - [Getting Started Tutorial](./tutorial.md) |  - [Getting Started Tutorial](./tutorial.md) | ||||||
|  - [Using Dynamic Views](./views.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) |  - [Uploading Files](./upload.md) | ||||||
|  - [Serving Static Files](./statics.md) |  - [Serving Static Files](./statics.md) | ||||||
|  - [Serving JSON API](./json.md) |  - [Serving JSON API](./json.md) | ||||||
|  |  | ||||||
|  | @ -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 | ```ruby | ||||||
| # Matches /hello/kemal | # Matches /hello/kemal | ||||||
|  |  | ||||||
|  | @ -1,6 +1,6 @@ | ||||||
| # Serving JSON API | # 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 | ```ruby | ||||||
| require "kemal" | require "kemal" | ||||||
|  |  | ||||||
|  | @ -5,13 +5,13 @@ Add your files to `public` directory and Kemal will serve these files immediatel | ||||||
| ``` | ``` | ||||||
| app/ | app/ | ||||||
|   src/ |   src/ | ||||||
|     awesome_web_project.cr |     your_app.cr | ||||||
|   public/ |   public/ | ||||||
|     js/ |     js/ | ||||||
|       jquery.js |       jquery.js | ||||||
|       awesome_web_project.js |       your_app.js | ||||||
|     css/ |     css/ | ||||||
|       awesome_web_project.css |       your_app.css | ||||||
|     index.html |     index.html | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
|  | @ -21,8 +21,8 @@ Open index.html and add | ||||||
| <html> | <html> | ||||||
|  <head> |  <head> | ||||||
|    <script src="/js/jquery.js"></script> |    <script src="/js/jquery.js"></script> | ||||||
|    <script src="/js/awesome_web_project.js"></script> |    <script src="/js/your_app.js"></script> | ||||||
|    <link rel="stylesheet" href="/css/awesome_web_project.css"/> |    <link rel="stylesheet" href="/css/your_app.css"/> | ||||||
|  </head> |  </head> | ||||||
|  <body> |  <body> | ||||||
|    ... |    ... | ||||||
|  |  | ||||||
|  | @ -12,8 +12,8 @@ brew install crystal-lang | ||||||
| You should create your application first: | You should create your application first: | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| crystal init app awesome_web_project | crystal init app your_app | ||||||
| cd awesome_web_project | cd your_app | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| Then add *kemal* to the `shard.yml` file as a dependency. | Then add *kemal* to the `shard.yml` file as a dependency. | ||||||
|  | @ -41,7 +41,7 @@ Installing kemal (master) | ||||||
| 
 | 
 | ||||||
| ## 3. Include Kemal into your project | ## 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 | ```ruby | ||||||
| require 'kemal' | require 'kemal' | ||||||
|  | @ -60,21 +60,18 @@ end | ||||||
| All the code should look like this: | All the code should look like this: | ||||||
| 
 | 
 | ||||||
| ```ruby | ```ruby | ||||||
| require "./crystal_test/*" |  | ||||||
| require "kemal" | require "kemal" | ||||||
| 
 | 
 | ||||||
| module AwesomeWebProject |  | ||||||
| get "/" do | get "/" do | ||||||
|   "Hello World!" |   "Hello World!" | ||||||
| end | end | ||||||
| end |  | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| ## 5. Run your awesome web project. | ## 5. Run your awesome web project. | ||||||
| 
 | 
 | ||||||
| ``` | ``` | ||||||
| crystal build --release src/awesome_web_project.cr | crystal build --release src/your_app.cr | ||||||
| ./awesome_web_project | ./your_app | ||||||
| ``` | ``` | ||||||
| 
 | 
 | ||||||
| You should see some logs like these: | You should see some logs like these: | ||||||
|  |  | ||||||
|  | @ -1,11 +1,21 @@ | ||||||
| # Views | # 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. | library. | ||||||
| 
 | 
 | ||||||
|  | ## Embedding View File | ||||||
|  | 
 | ||||||
|  | ```crystal | ||||||
|  | get '/' do |env| | ||||||
|  |   your_name = "Kemal" | ||||||
|  |   render "views/hello.ecr" | ||||||
|  | end | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
| ## Writing Views | ## 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/ | src/ | ||||||
|  | @ -17,12 +27,3 @@ Write `hello.ecr` | ||||||
| ```erb | ```erb | ||||||
| Hello <%= your_name %> | Hello <%= your_name %> | ||||||
| ``` | ``` | ||||||
| 
 |  | ||||||
| ## Embedding View File |  | ||||||
| 
 |  | ||||||
| ```crystal |  | ||||||
| get '/' do |env| |  | ||||||
|   your_name = "Kemal" |  | ||||||
|   render "views/hello.ecr" |  | ||||||
| end |  | ||||||
| ``` |  | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue