Commit Graph

109 Commits

Author SHA1 Message Date
Sdogruyol 09d82ed74b Add context store 2016-07-14 21:56:01 +03:00
Sdogruyol 24e0824a9b Better view_specs for layout variables 2016-07-12 00:09:01 +03:00
Sdogruyol 21b194a901 Add content_for and yield_content helpers <3. Thanks @RX14 2016-07-09 19:54:35 +03:00
Sdogruyol 73d6123f3d WIP 2016-07-09 18:57:35 +03:00
Sdogruyol 3ea6a01afc Remove file handler from CommonLogHandler. Log only to STDOUT. Fixes #159 2016-07-05 22:14:00 +03:00
Sdogruyol 20a174b66e Add extra_options from CLI 2016-07-04 20:23:16 +03:00
Sdogruyol 19581d6e3e Improve common_exception_handler to handler custom 500 errors. Fixes #175. 2016-07-03 11:13:29 +02:00
Mike Perham 22d6c1773e Remove HTTP prefix, this is a Rack impl convention, not a standard. 2016-06-29 14:52:47 -07:00
Mike Perham e407d0195c Implement CSRF protection
This adds a middleware which, when activated, will deny any form submission which does not include a valid `authenticity_token` parameter or `http-x-csrf-token` header with the request.

The header and parameter names are identical to the ones supported by Ruby's rack-protection gem for interoperability purposes.
2016-06-28 15:50:43 -07:00
Mike Perham 46b4dc6524 Add Session#delete, more docs 2016-06-27 16:24:03 -07:00
Mike Perham 94db0c8cb8 Implement basic in-memory session store
Sessions are stored in a non-persistent Hash.  Only String values are allowed.  A reaper fiber regularly removes any sessions which expire due to inactivity.
2016-06-27 14:37:40 -07:00
Sdogruyol 0c46bd65da Add X-Powered-By header 2016-06-19 03:22:55 +03:00
Matthew Gerrior fbbb43dcab Add "headers" helper to make it easier to add headers to response. 2016-06-16 10:33:38 -04:00
Omar Roth ac4a5afc05 Fix ssl and specs for 0.18 2016-06-14 16:18:00 -05:00
Matthew Gerrior d1f9c4394b Opt for built-in HTTP::Params class instead. 2016-06-14 07:32:13 -04:00
Matthew Gerrior a5e4bc21f3 Allow multiple values for a single parameter key. 2016-06-11 16:52:07 -04:00
Sdogruyol 92d7273759 Inherit response.content type from filter if it's given. Fixes #146. 2016-05-14 11:07:19 +03:00
Ben Jolitz b73802df0e resolve merge conflict by trusting sdogruyol/master RE property listings 2016-05-07 17:22:08 -07:00
Ben Jolitz 108e732274 rename on_options -> extra_options 2016-05-07 17:18:42 -07:00
sdogruyol 6611b976a9 Improve exception handler 2016-05-05 23:12:17 +03:00
sdogruyol e6d9311895 Start implementing error block 2016-05-05 22:35:36 +03:00
sdogruyol 40ab34c63d All specs passing 2016-04-12 20:00:37 +03:00
sdogruyol 05e44e68c6 Updating to instance types 2016-04-12 14:41:09 +03:00
Ben Jolitz 1f809c68c8 Support additional options as part of the Config
This commit adds the ability to add a closure suitable for adding
additional options. It is expected to allow someone to set global,
module or class level variables so they can pass changes/options
suitable for making decisions.
2016-03-30 13:33:51 -07:00
Fatih Kadir Akın 8110788a41 Added return_with macro to break response in the middle of the block. 2016-03-30 00:48:58 +03:00
Sdogruyol 87df71a89a Refactor specs 2016-03-21 18:29:48 +02:00
Sdogruyol 664673f125 Set content-type to text/html on errors.Fixes #130 2016-03-18 20:03:04 +02:00
Fatih Kadir Akın 42deb95688 Remove merged params to improve performance 2016-03-06 21:46:35 +02:00
Fatih Kadir Akın 53d12534b7 Remove ParamContainer abstraction to make it faster. 2016-03-06 21:43:13 +02:00
Fatih Kadir Akın 8267ffe2c5 Upgrade ParamParser to make it more convinient.
It now decouples `env.params` to `env.params.query`, `env.params.body`,
`env.params.json` and `env.params.url` and you still can access merged
values using `env.params.all`
2016-03-06 13:22:24 +02:00
Joris Moriau e6d1da6dd2 added small feature 2016-02-17 20:56:19 +01:00
sdogruyol 5a58ee3cbb Format code 2016-02-17 11:52:13 +02:00
Joris Moriau c5201f01ad added verb for filters and minor improvements 2016-02-17 10:34:01 +01:00
Sdogruyol 8c87a3fa67 Replace global macros with methods. Thanks @asterite 2016-02-14 18:52:49 +02:00
Sdogruyol 092f5a2e49 Improve kemal.cr 2016-02-14 15:15:52 +02:00
Joris Moriau f7975d917d decoupled errors from route-handler 2016-02-14 12:52:32 +01:00
sdogruyol 8f5bc755ae Add logger macro to easily setup custom log_handler 2016-02-12 16:09:15 +02:00
sdogruyol 3c75d727ba Complete decoupling logger 2016-02-12 14:11:34 +02:00
Sdogruyol 850af8819e Start decoupling logger 2016-02-11 23:26:47 +02:00
TSUYUSATO Kitsune 55361b3c9a Use 302 to redirect instead of 301
`301` means "Moved Permanently", so browser caches this redirect, it is used when changing server URL.
`302` means "Found", it is used generally (e.g. redirect top page after
login).

Each of `301`, `302`, `303` and `307` means redict, but they are
different. We could choice those status in case.
2016-02-10 00:28:07 +09:00
Werner ab711c22fd Basic filter implementation, similar to Sinatra. 2016-02-07 09:49:38 -04:30
Sdogruyol 467a1b4581 Rename handlers 2016-02-03 22:08:54 +02:00
Fatih Kadir Akın c14fb3de96 Fix view rendering for Crystal 0.11.0 2016-01-24 19:13:10 +02:00
Sdogruyol 94a73e9ade Update built-in exception route handler 2016-01-24 18:25:21 +02:00
Sdogruyol 02af920a0f Make default content-type text/html 2016-01-24 17:52:24 +02:00
Sdogruyol fdf38b23c8 Update kemal.cr 2016-01-24 13:31:07 +02:00
Sdogruyol 17f944ef9d Move redirect macro to context def 2016-01-24 12:52:41 +02:00
Sdogruyol 4dd027eb96 Macros spec passing 2016-01-24 12:27:26 +02:00
Sdogruyol d1f95c0f39 All specs passing except macros 2016-01-24 12:22:25 +02:00
Sdogruyol 2af3648682 Make logger configurable 2016-01-17 13:08:12 +02:00