mirror of
https://github.com/sinatra/sinatra
synced 2023-03-27 23:18:01 -04:00
Merge pull request #207 from 304/fix_namespace_extension
Fix namespace extension to support latest Sinatra version
This commit is contained in:
commit
e9f72ca878
3 changed files with 5 additions and 12 deletions
|
@ -1,5 +1,6 @@
|
|||
require 'backports'
|
||||
require 'sinatra/base'
|
||||
require 'mustermann'
|
||||
|
||||
module Sinatra
|
||||
|
||||
|
@ -201,9 +202,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 +266,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
|
||||
|
|
|
@ -214,6 +214,7 @@ Gem::Specification.new do |s|
|
|||
]
|
||||
|
||||
s.add_dependency "sinatra", "> 1", "< 3"
|
||||
s.add_dependency "mustermann", "~> 0.4"
|
||||
s.add_dependency "backports", ">= 2.0"
|
||||
s.add_dependency "tilt", ">= 1.3", "< 3"
|
||||
s.add_dependency "rack-test"
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue