Compare commits

...

5 commits

Author SHA1 Message Date
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` # 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 # The point is for the user to remove these configuration records
# one by one as the reported problems are removed from the code base. # one by one as the reported problems are removed from the code base.
@ -11,32 +11,3 @@ Lint/UselessAssign:
Severity: Warning Severity: Warning
Excluded: Excluded:
- spec/view_spec.cr - 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) # 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: - 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 name: kemal
version: 0.26.0 version: 0.26.1
authors: authors:
- Serdar Dogruyol <dogruyolserdar@gmail.com> - Serdar Dogruyol <dogruyolserdar@gmail.com>

View file

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

View file

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

View file

@ -8,7 +8,6 @@ module Kemal
@key_file = "" @key_file = ""
@cert_file = "" @cert_file = ""
@config = Kemal.config @config = Kemal.config
read_env
if args if args
parse args parse args
end end
@ -52,11 +51,5 @@ module Kemal
end end
{% end %} {% end %}
end end
private def read_env
if kemal_env = ENV["KEMAL_ENV"]?
@config.env = kemal_env
end
end
end end
end end

View file

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

View file

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

View file

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

View file

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