Commit graph

751 commits

Author SHA1 Message Date
Serdar Dogruyol
88c19f0051 Remove unnecessary handler 2015-12-16 17:06:06 +02:00
Sdogruyol
06ced7790b Adding websocket support :) 2015-12-15 23:11:21 +02:00
Sdogruyol
0cc66cc9de Bump version to 0.3.0 2015-12-14 20:38:14 +02:00
Sdogruyol
66c8b6d857 Move macros from view to macros 2015-12-14 20:05:46 +02:00
Sdogruyol
5c97942707 Add more documentation 2015-12-13 10:25:04 +02:00
Sdogruyol
8522fd2f56 Fix binding 2015-12-12 21:35:17 +02:00
Sdogruyol
58f9d8c590 Add read config from yml 2015-12-12 20:27:46 +02:00
Sdogruyol
85a383b328 Fix static file handler 2015-12-10 21:20:32 +02:00
Sdogruyol
e4da65f1f2 Refactor static file handler 2015-12-10 21:15:28 +02:00
Sdogruyol
21a3c6ad3c Add static file handler 2015-12-10 20:40:39 +02:00
Serdar Dogruyol
12c6af7d79 Merge pull request #32 from ilatif/master
Removed env from redirect and changed redirect from method to macro.
2015-12-09 22:27:04 +02:00
Imran Latif
4d1e31cb41 Removed env from redirect and changed redirect from method to macro.
Removed `env.redirect` in-favor of `redirect` in-order to make Kemal's
API look more like Sinatra.

Thanks @sdogruyol and @f for introducing me to macros :-).

Binding HTTP::Server to 0.0.0.0
2015-12-10 01:24:49 +05:00
Serdar Dogruyol
ef3c16b2c0 Merge pull request #31 from f/master
Add layout support for render macro.
2015-12-09 21:57:01 +02:00
Fatih Kadir Akın
9ade49ae20 Add layout support for render macro. It should be improved in the future. 2015-12-09 17:54:49 +02:00
Serdar Dogruyol
c05db1f643 Remove unnecessary log on exit 2015-12-09 17:36:13 +02:00
Sdogruyol
a67a8508cf Add worker support (experimental) 2015-12-08 22:15:13 +02:00
Sdogruyol
d825b2316a Update docs 2015-12-07 22:03:35 +02:00
Serdar Dogruyol
c258003b8e Merge pull request #24 from f/patch-2
Add more code examples to tutorial
2015-12-07 21:54:14 +02:00
Serdar Dogruyol
a2a082b58f Merge pull request #29 from askn/master
fix default log color
2015-12-07 10:27:16 +02:00
Sdogruyol
bee7ce2452 Bind host to 0.0.0.0 2015-12-07 09:17:00 +02:00
Aşkın Gedik
fd80fd2f1b fix default log color 2015-12-07 00:21:50 +02:00
Serdar Dogruyol
2ffb4dccdf Merge pull request #27 from f/master
Add render macro to kemal core.
2015-12-06 20:45:53 +02:00
Sdogruyol
aa0d97aa42 Update .travis.yml 2015-12-06 17:56:04 +02:00
Fatih Kadir Akın
945fa59a6c Add render macro to kemal core to have dynamic rendering mechanism. It actually binds built-in ecr parser to the Kemal as a macro. 2015-12-06 16:55:35 +02:00
Serdar Dogruyol
692939dfe8 Merge pull request #26 from gitter-badger/gitter-badge
Add a Gitter chat badge to README.md
2015-12-05 23:15:30 +02:00
The Gitter Badger
15b996b117 Add Gitter badge 2015-12-05 21:14:12 +00:00
Sdogruyol
265e75be21 Update docs 2015-12-05 22:47:18 +02:00
Fatih Kadir Akın
aa70e72192 Update tutorial.md 2015-12-05 13:52:07 +02:00
Serdar Dogruyol
af9c9ba3af Merge pull request #23 from ilatif/master
Adding method for doing browser redirection from inside any route.
2015-12-04 23:28:10 +02:00
Imran Latif
cd69a866d5 Adding method for doing browser redirection from inside any route.
Made some small changes
2015-12-05 02:23:18 +05:00
Serdar Dogruyol
a37d45cd22 Merge pull request #20 from ilatif/master
Implemented HTTP `HEAD` method.
2015-12-04 16:38:13 +02:00
Imran Latif
d25a611fbd Implemented HTTP HEAD method.
First I tried implementing this solution in such a way that it
explicitly clears body and set `Content-Length` header to body's size.
But for some reason, if I call the URL from cURL then `Content-Length`
header was blank which defeats the very purpose of `HEAD` requests.

I then later anticipated that since `HEAD` would be by-default
implemented by `HTTP::Server` module, there is no need to explicit
clears body and setting `Content-Length` but the way we have written
our previous specs were returning body as well. We could have used some
TestServer kind of thing but if we go to that route we explicitly need
to test non-existent route which I thought would create some
inconsistency among specs.

Crystal has clearly written specs for HEAD requests to make sure body
is not read for them. See
https://github.com/manastech/crystal/commit/acd0b6afb5af438a30529c36b11b
e7954336f23f. I decided to write simple specs which are easy to
maintain in long-run.

We are adding identical HEAD route for every GET route which will make
HEAD requests available for all defined GET requests.

https://github.com/sdogruyol/kemal/issues/19

Added comment for code line which is adding HEAD routes for defined GET routes.
2015-12-04 19:35:14 +05:00
Serdar Dogruyol
564cdcac0b Merge pull request #22 from f/master
Add documentation.
2015-12-04 14:26:55 +02:00
Fatih Kadir Akın
60c3a15ee4 Update README.md 2015-12-04 14:06:18 +02:00
Fatih Kadir Akın
6c1dd90611 Create json.md 2015-12-04 13:54:12 +02:00
Fatih Kadir Akın
eb546315d1 Create http-requests.md 2015-12-04 13:52:39 +02:00
Fatih Kadir Akın
e1f05d316c Update README.md 2015-12-04 13:46:14 +02:00
Fatih Kadir Akın
b5e98f2f9d Create statics.md 2015-12-04 13:45:35 +02:00
Fatih Kadir Akın
4465ed9965 Create rest.md 2015-12-04 13:38:56 +02:00
Fatih Kadir Akın
da4e38ab0f Update tutorial.md 2015-12-04 13:36:06 +02:00
Fatih Kadir Akın
e4c6b12411 Update README.md 2015-12-04 13:35:35 +02:00
Fatih Kadir Akın
51e8c19975 Update README.md 2015-12-04 13:33:43 +02:00
Fatih Kadir Akın
d33e367ece Update README.md 2015-12-04 13:26:50 +02:00
Fatih Kadir Akın
880d2c1430 Create tutorial.md 2015-12-04 13:26:15 +02:00
Fatih Kadir Akın
17ff97307d Create README.md 2015-12-04 13:14:15 +02:00
Serdar Dogruyol
7e04f51e3c Merge pull request #18 from ilatif/master
Added support for magic param `_method` just like Rails, Sinatra.
2015-12-02 22:43:39 +02:00
Imran Latif
c42f1f88e9 Added support for magic param _method just like Rails, Sinatra.
Following are the changes made in this commit:

- Added support for magic param `_method` just like Rails, Sinatra
etc.. Browsers which don't support `PUT`, `PATCH` and `DELETE` methods
can simulate them by sending `method` param in request body.

- The default Content-Type to parse request body submitted via forms
etc. is `application/x-www-form-urlencoded`. But if we send Ajax
request in Chrome ($.post) then by-default Content-Type is set to
`application/x-www-form-urlencoded; charset utf-8` which was not
getting matched. I changed the code from `==` to match against a
regular expression using `=~`.

- Print name and color of overridden HTTP method via Logger instead of
printing name and color or request's incoming HTTP method.

Making necessary changes as pointed by @sdogruyol

- Changed method name from`is_override_method_valid?` to
`override_method_valid?`.

- Refactored `if` condition in `override_method_valid?`.
2015-12-03 01:34:16 +05:00
Sdogruyol
dfea8df0f7 Clearer installation instructions 2015-12-02 21:02:39 +02:00
Sdogruyol
171459eee9 Add 500 exception spec 2015-12-01 21:52:44 +02:00
Sdogruyol
7f198cab3b Remove unnecessary check 2015-12-01 21:47:49 +02:00