Compare commits

...

5 Commits

Author SHA1 Message Date
Luna ccac1cf651 Merge remote-tracking branch 'upstream/master' 2020-02-16 21:42:44 -03:00
Serdar Dogruyol 4d6fb0614f Bump version to 0.26.1 2019-12-01 14:14:25 +03:00
maggie a4bdecdc7d Flush io buffer after each write to log (#554) 2019-10-11 12:14:26 +03:00
Sijawusz Pur Rahnama c893172fbf Cleanup ameba warnings (#551) 2019-08-30 14:32:23 +03:00
Sijawusz Pur Rahnama 740cb188a9 Check for KEMAL_ENV variable already in Config#initialize (#552) 2019-08-30 14:20:38 +03:00
10 changed files with 29 additions and 54 deletions

View File

@ -1,5 +1,5 @@
# This configuration file was generated by `ameba --gen-config`
# on 2019-06-14 15:05:57 UTC using Ameba version 0.10.0.
# on 2019-08-25 09:29:24 UTC using Ameba version 0.10.0.
# The point is for the user to remove these configuration records
# one by one as the reported problems are removed from the code base.
@ -11,32 +11,3 @@ Lint/UselessAssign:
Severity: Warning
Excluded:
- spec/view_spec.cr
# Problems found: 1
# Run `ameba --only Lint/ShadowingOuterLocalVar` for details
Lint/ShadowingOuterLocalVar:
Description: Disallows the usage of the same name as outer local variables for block
or proc arguments.
Enabled: true
Severity: Warning
Excluded:
- spec/run_spec.cr
# Problems found: 1
# Run `ameba --only Style/NegatedConditionsInUnless` for details
Style/NegatedConditionsInUnless:
Description: Disallows negated conditions in unless
Enabled: true
Severity: Convention
Excluded:
- src/kemal/ext/response.cr
# Problems found: 1
# Run `ameba --only Metrics/CyclomaticComplexity` for details
Metrics/CyclomaticComplexity:
Description: Disallows methods with a cyclomatic complexity higher than `MaxComplexity`
MaxComplexity: 10
Enabled: true
Severity: Convention
Excluded:
- src/kemal/static_file_handler.cr

View File

@ -1,3 +1,11 @@
# 0.26.1 (01-12-2019)
- Fix process request when a response already closed [#550](https://github.com/kemalcr/kemal/pull/550). Thanks @mamantoha :pray:
- Switch to new Ameba repository [#549](https://github.com/kemalcr/kemal/pull/549). Thanks @mamantoha :pray:
- Check for `KEMAL_ENV` variable already in `Config#initialize`[#552](https://github.com/kemalcr/kemal/pull/552). Thanks @Sija :pray:
- Cleanup Ameba warnings [#551](https://github.com/kemalcr/kemal/pull/551). Thanks @Sija :pray:
- Flush io buffer after each write to log [#554](https://github.com/kemalcr/kemal/pull/554). Thanks @mang :pray:
# 0.26.0 (05-08-2019)
- Crystal 0.30.0 support :tada: [#548](https://github.com/kemalcr/kemal/pull/548) and [#544](https://github.com/kemalcr/kemal/pull/544). Thanks @bcardiff and @straight-shoota :pray:

View File

@ -1,5 +1,5 @@
name: kemal
version: 0.26.0
version: 0.26.1
authors:
- Serdar Dogruyol <dogruyolserdar@gmail.com>

View File

@ -70,7 +70,7 @@ describe "Macros" do
halt env, status_code: 400, response: "Missing origin."
end
get "/" do |env|
get "/" do |_env|
"Hello world"
end

View File

@ -6,12 +6,10 @@ private def run(code)
#{code}
CR
String.build do |stdout|
stderr = String.build do |stderr|
Process.new("crystal", ["eval"], input: IO::Memory.new(code), output: stdout, error: stderr).wait
end
unless stderr.empty?
fail(stderr)
stderr = String.build do |io|
Process.new("crystal", ["eval"], input: IO::Memory.new(code), output: stdout, error: io).wait
end
fail(stderr) unless stderr.empty?
end
end

View File

@ -8,7 +8,6 @@ module Kemal
@key_file = ""
@cert_file = ""
@config = Kemal.config
read_env
if args
parse args
end
@ -42,21 +41,15 @@ module Kemal
private def configure_ssl
{% if !flag?(:without_openssl) %}
if @ssl_enabled
abort "SSL Key Not Found" if !@key_file
abort "SSL Certificate Not Found" if !@cert_file
ssl = Kemal::SSL.new
ssl.key_file = @key_file.not_nil!
ssl.cert_file = @cert_file.not_nil!
Kemal.config.ssl = ssl.context
end
{% end %}
end
private def read_env
if kemal_env = ENV["KEMAL_ENV"]?
@config.env = kemal_env
end
if @ssl_enabled
abort "SSL Key Not Found" if !@key_file
abort "SSL Certificate Not Found" if !@cert_file
ssl = Kemal::SSL.new
ssl.key_file = @key_file.not_nil!
ssl.cert_file = @cert_file.not_nil!
Kemal.config.ssl = ssl.context
end
{% end %}
end
end
end

View File

@ -29,7 +29,7 @@ module Kemal
def initialize
@host_binding = "0.0.0.0"
@port = 3000
@env = "development"
@env = ENV["KEMAL_ENV"]? || "development"
@serve_static = {"dir_listing" => false, "gzip" => true}
@public_folder = "./public"
@logging = true

View File

@ -1,6 +1,7 @@
class HTTP::Server::Response
class Output
def close
# ameba:disable Style/NegatedConditionsInUnless
unless response.wrote_headers? && !response.headers.has_key?("Content-Range")
response.content_length = @out_count
end

View File

@ -8,11 +8,14 @@ module Kemal
elapsed_time = Time.measure { call_next(context) }
elapsed_text = elapsed_text(elapsed_time)
@io << Time.utc << ' ' << context.response.status_code << ' ' << context.request.method << ' ' << context.request.resource << ' ' << elapsed_text << '\n'
@io.flush
context
end
def write(message : String)
@io << message
@io.flush
@io
end
private def elapsed_text(elapsed)

View File

@ -4,6 +4,7 @@
module Kemal
class StaticFileHandler < HTTP::StaticFileHandler
# ameba:disable Metrics/CyclomaticComplexity
def call(context : HTTP::Server::Context)
return call_next(context) if context.request.path.not_nil! == "/"