1
0
Fork 0
mirror of https://github.com/sinatra/sinatra synced 2023-03-27 23:18:01 -04:00

Fix namespace extension to support latest sinatra version

This commit is contained in:
Vasiliy Yaklushin 2016-07-14 17:30:35 +02:00
parent eedc923fd8
commit 402dd7cef2
2 changed files with 3 additions and 12 deletions

View file

@ -201,9 +201,10 @@ module Sinatra
end
def error(*codes, &block)
args = Sinatra::Base.send(:compile!, "ERROR", @pattern, block)
args = Sinatra::Base.send(:compile!, "ERROR", /.*/, block)
codes = codes.map { |c| Array(c) }.flatten
codes << Exception if codes.empty?
codes << Sinatra::NotFound if codes.include?(404)
codes.each do |c|
errors = @errors[c] ||= []
@ -264,7 +265,7 @@ module Sinatra
end
def prefixed_path(a, b)
return a || b || // unless a and b
return a || b || /.*/ unless a and b
Mustermann.new(a.to_s + b.to_s)
rescue

View file

@ -159,8 +159,6 @@ describe Sinatra::Namespace do
describe 'conditions' do
context 'when the namespace has no prefix' do
specify 'are accepted in the namespace' do
skip "Sinatra::Namespace accepts namespace without prefix in conditions"
mock_app do
namespace(:host_name => 'example.com') { send(verb) { 'yes' }}
send(verb, '/') { 'no' }
@ -488,8 +486,6 @@ describe Sinatra::Namespace do
describe 'error handling' do
it 'can be customized using the not_found block' do
skip "Sinatra::Namespace allows not_found blocks"
namespace('/de') do
not_found { 'nicht gefunden' }
end
@ -502,8 +498,6 @@ describe Sinatra::Namespace do
end
it 'can be customized for specific error codes' do
skip "Sinatra::Namespace allows custom error handling"
namespace('/de') do
error(404) { 'nicht gefunden' }
end
@ -516,8 +510,6 @@ describe Sinatra::Namespace do
end
it 'falls back to the handler defined in the base app' do
skip "Sinatra::Namespace allows custom error handling"
mock_app do
error(404) { 'not found...' }
namespace('/en') do
@ -535,8 +527,6 @@ describe Sinatra::Namespace do
end
it 'can be customized for specific Exception classes' do
skip "Sinatra::Namespace allows custom error handling"
mock_app do
class AError < StandardError; end
class BError < AError; end