Move redirect macro to context def

This commit is contained in:
Sdogruyol 2016-01-24 12:52:41 +02:00
parent 4dd027eb96
commit 17f944ef9d
4 changed files with 56 additions and 56 deletions

View file

@ -196,15 +196,15 @@ describe "Kemal::Handler" do
client_response.status_code.should eq(404)
end
# it "redirects user to provided url" do
# kemal = Kemal::Handler.new
# kemal.add_route "GET", "/" do |env|
# redirect "/login"
# end
# request = HTTP::Request.new("GET", "/")
# io_with_context = create_request_and_return_io(kemal, request)
# client_response = HTTP::Client::Response.from_io(io_with_context, decompress: false)
# client_response.status_code.should eq(301)
# client_response.headers.has_key?("Location").should eq(true)
# end
it "redirects user to provided url" do
kemal = Kemal::Handler.new
kemal.add_route "GET", "/" do |env|
env.redirect "/login"
end
request = HTTP::Request.new("GET", "/")
io_with_context = create_request_and_return_io(kemal, request)
client_response = HTTP::Client::Response.from_io(io_with_context, decompress: false)
client_response.status_code.should eq(301)
client_response.headers.has_key?("Location").should eq(true)
end
end

View file

@ -1,40 +1,40 @@
# require "./spec_helper"
#
# macro render_with_base_and_layout(filename)
# render "spec/asset/#{{{filename}}}", "spec/asset/layout.ecr"
# end
#
# describe "Views" do
# it "renders file" do
# kemal = Kemal::Handler.new
# kemal.add_route "GET", "/view/:name" do |env|
# render "spec/asset/hello.ecr"
# end
# request = HTTP::Request.new("GET", "/view/world")
# io_with_context = create_request_and_return_io(kemal, request)
# client_response = HTTP::Client::Response.from_io(io_with_context, decompress: false)
# client_response.body.should contain("Hello world")
# end
#
# it "renders file with dynamic variables" do
# kemal = Kemal::Handler.new
# kemal.add_route "GET", "/view/:name" do |env|
# render_with_base_and_layout "hello.ecr"
# end
# request = HTTP::Request.new("GET", "/view/world")
# io_with_context = create_request_and_return_io(kemal, request)
# client_response = HTTP::Client::Response.from_io(io_with_context, decompress: false)
# client_response.body.should contain("Hello world")
# end
#
# it "renders layout" do
# kemal = Kemal::Handler.new
# kemal.add_route "GET", "/view/:name" do |env|
# render "spec/asset/hello.ecr", "spec/asset/layout.ecr"
# end
# request = HTTP::Request.new("GET", "/view/world")
# io_with_context = create_request_and_return_io(kemal, request)
# client_response = HTTP::Client::Response.from_io(io_with_context, decompress: false)
# client_response.body.should contain("<html>Hello world")
# end
# end
require "./spec_helper"
macro render_with_base_and_layout(filename)
render "spec/asset/#{{{filename}}}", "spec/asset/layout.ecr"
end
describe "Views" do
# it "renders file" do
# kemal = Kemal::Handler.new
# kemal.add_route "GET", "/view/:name" do |env|
# render "spec/asset/hello.ecr"
# end
# request = HTTP::Request.new("GET", "/view/world")
# io_with_context = create_request_and_return_io(kemal, request)
# client_response = HTTP::Client::Response.from_io(io_with_context, decompress: false)
# client_response.body.should contain("Hello world")
# end
# it "renders file with dynamic variables" do
# kemal = Kemal::Handler.new
# kemal.add_route "GET", "/view/:name" do |env|
# render_with_base_and_layout "hello.ecr"
# end
# request = HTTP::Request.new("GET", "/view/world")
# io_with_context = create_request_and_return_io(kemal, request)
# client_response = HTTP::Client::Response.from_io(io_with_context, decompress: false)
# client_response.body.should contain("Hello world")
# end
#
# it "renders layout" do
# kemal = Kemal::Handler.new
# kemal.add_route "GET", "/view/:name" do |env|
# render "spec/asset/hello.ecr", "spec/asset/layout.ecr"
# end
# request = HTTP::Request.new("GET", "/view/world")
# io_with_context = create_request_and_return_io(kemal, request)
# client_response = HTTP::Client::Response.from_io(io_with_context, decompress: false)
# client_response.body.should contain("<html>Hello world")
# end
end

View file

@ -7,5 +7,10 @@ class HTTP::Server
def params
Kemal::ParamParser.new(@route, @request).parse
end
def redirect(url)
@response.headers.add "Location", url
@response.status_code = 301
end
end
end

View file

@ -16,11 +16,6 @@ macro render(filename, layout)
render {{layout}}
end
macro redirect(url)
env.response.headers.add "Location", {{url}}
env.response.status_code = 301
end
macro add_handler(handler)
Kemal.config.add_handler {{handler}}
end