Will Leinweber
5a83522866
allow %w in Handler macros ( #385 )
2017-08-18 10:19:21 +03:00
sdogruyol
1d056b203b
Dynamically insert handlers. Fixes #376
2017-07-11 11:22:35 +03:00
sdogruyol
66612eeb04
Match should eq nil not be
2017-06-05 15:34:27 +03:00
sdogruyol
62946fd987
Modularize handlers
2017-05-12 16:18:50 -07:00
sdogruyol
9f01eb90e1
Format
2017-05-09 10:46:25 +03:00
sdogruyol
e695a491b7
Revert "Modiy HTTP::Params.[] to fetch all params"
...
This reverts commit c0745cc9e25068e9ce832ca5a79519de516ca4e5.
2017-05-08 17:28:21 +03:00
Rimas Silkaitis
0b4856b741
User defined context store types ( #339 )
...
allow the context storage to handle any types
2017-04-06 21:43:41 +03:00
Cris Ward
48128696c6
Prevent send_file returning filesize ( #344 )
...
Prevent send_file returning filesize
2017-03-29 15:09:25 +03:00
Faustino Aguilar
f1edf81d95
Remove duplicate spec ( #340 )
...
Code duplicate: two specs with the same code.
2017-03-25 19:41:58 +02:00
Marwan Rabbâa
34d5200e80
missing context key ( #342 )
2017-03-25 19:20:10 +02:00
Serdar Dogruyol
1177619da9
Modiy HTTP::Params.[] to fetch all params ( #328 )
2017-03-13 16:52:42 +02:00
Sdogruyol
40a8339509
Rename to static_file_handler_spec
2017-02-27 19:28:27 +03:00
Serdar Dogruyol
b7ce53e5ab
Crystal 0.21.0 support ( #304 )
...
Crystal 0.21.0 support
2017-02-21 21:24:11 +02:00
Sdogruyol
476b27892e
Early return from range if request type is not GET
2017-02-04 13:35:46 +03:00
Denys Vitali
0543142a10
Add RFC7233 support ( #299 )
...
Add RFC7233 support a.k.a "Range" headers support
2017-02-04 13:06:43 +03:00
Michael Barrett
c08bf71d88
Allow for disabling the shutdown message ( #292 )
...
Allow for disabling the shutdown message
2017-01-18 15:55:33 +03:00
Michael Barrett
209a9e576c
Add configurable startup logging as a block ( #291 )
...
Add overload for Kemal.run with just a block. This removes default logging.
2017-01-15 21:41:07 +03:00
Sdogruyol
ac8ec0a07b
Remove redundant session stuff
2016-12-10 19:34:46 +03:00
Sdogruyol
eb64b52f84
Actually there's no middleware anymore
2016-12-04 01:43:30 +03:00
Sdogruyol
66e04ecaec
0.17.3
2016-12-03 17:37:58 +03:00
sdogruyol
b4c10a3f59
Remove basic auth middleware
2016-11-26 21:51:06 +03:00
Serdar Dogruyol
cc44710654
Remove session & csrf from core ( #259 )
...
Remove session & CSRF
2016-11-24 16:47:30 +04:00
sdogruyol
6b034c3b2f
Rename MemoryIO to IO::Memory since it's deprecated on Crystal 0.20.0
2016-11-22 23:29:10 +03:00
sdogruyol
012ac8f6b7
Yield error in custom error handlers
2016-11-16 20:27:01 +03:00
sdogruyol
8ec9ed8331
Improve docs
2016-11-10 16:38:29 +03:00
Serdar Dogruyol
ec11698ab1
Only / Exclude Paths in Middleware ( #245 )
...
Add only / exclude paths in Middlewares
2016-11-09 19:18:39 +04:00
sdogruyol
4267a5eea9
Set default exception Content-Type to text/html. Fixes #202
2016-11-06 11:58:18 +03:00
sdogruyol
87d88318de
Rename to Kemal::Exceptions::InvalidPathStartException
2016-11-04 11:49:11 +03:00
sdogruyol
e6810c4516
Route declaration must start with / fixes #242
2016-11-04 11:12:59 +03:00
sdogruyol
d676b559d2
Rename return_with as halt for clear intention
2016-11-01 11:46:13 +03:00
Serdar Dogruyol
922d6de4d1
Middleware ordering ( #236 )
...
Improve and correct request middleware
Request -> Middleware -> Filter -> Route
2016-10-28 11:35:34 +03:00
Sam Eaton
e43b2a3a01
Decodes url parameters ( #229 )
...
Decode url parameters
2016-10-18 16:28:42 +03:00
sdogruyol
7efe69ac31
Add multipart support <3
2016-10-01 18:18:28 +03:00
Sdogruyol
e2c99bcfb8
Remove array support from session for now
2016-09-30 14:03:29 +03:00
Sdogruyol
a8e53fb94e
Session also supports arrays
2016-09-30 14:03:29 +03:00
Sdogruyol
8c600cb26e
Make session name and expire time configurable
2016-09-30 14:03:29 +03:00
Sdogruyol
6d4bf575cb
Make session accept more types
2016-09-30 14:03:29 +03:00
Cris Ward
a8cc4f4177
gzip static files options dir listing and etags
...
format
2016-09-18 01:46:16 +01:00
sdogruyol
4cd30839a5
Add gzip helper to enable/disable HTTP::DeflateHandler
2016-09-15 19:35:34 +03:00
Sdogruyol
aea70fd1e5
No need to dup headers
2016-08-13 17:54:11 +03:00
Sijawusz Pur Rahnama
28859fbdb8
Fix parsing JSON params when "charset" is present in "Content-Type" header ( #193 )
...
Resolves case when `Content-Type` headers is passed in form of `application/json; charset=utf-8`
2016-08-11 22:29:29 +03:00
Sdogruyol
d4e96c7b44
Add spec for send_file binary
2016-08-08 21:49:47 +03:00
Sdogruyol
98efbfe341
Improve logging and specs
2016-07-28 21:12:55 +03:00
Sdogruyol
dc3cc74798
Add more specs to common_exception_handler
2016-07-19 23:29:00 +03:00
Sdogruyol
5e297d86f8
Add send_file to helpers
2016-07-19 20:58:04 +03:00
Sdogruyol
b00bc7a202
Add next handler to init_handler_spec
2016-07-17 20:42:00 +03:00
Sdogruyol
09d9e708f1
Introduce Kemal::InitHandler to initialize HTTP::Server::Context with defaults
2016-07-17 18:11:26 +03:00
Sdogruyol
4edebcf8eb
Format
2016-07-17 14:31:45 +03:00
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
sdogruyol
efcf591581
Remove some unnecessary specs
2016-01-13 10:09:12 +02:00
Sdogruyol
0b4a36953f
Started reimplementing router
2016-01-12 21:37:12 +02:00