only extend main object for top level dsl
This commit is contained in:
parent
57b73e3bda
commit
46bdb7dcf8
|
@ -25,4 +25,6 @@ module Sinatra
|
|||
at_exit { Application.run! if $!.nil? && Application.run? }
|
||||
end
|
||||
|
||||
include Sinatra::Delegator
|
||||
# include would include the module in Object
|
||||
# extend only extends the `main` object
|
||||
extend Sinatra::Delegator
|
||||
|
|
|
@ -1,6 +1,20 @@
|
|||
require 'sinatra'
|
||||
|
||||
configure do
|
||||
set :foo, :bar
|
||||
end
|
||||
|
||||
get '/app_file' do
|
||||
content_type :txt
|
||||
settings.app_file
|
||||
end
|
||||
end
|
||||
|
||||
get '/mainonly' do
|
||||
object = Object.new
|
||||
begin
|
||||
object.send(:get, '/foo') { }
|
||||
'false'
|
||||
rescue NameError
|
||||
'true'
|
||||
end
|
||||
end
|
||||
|
|
|
@ -44,9 +44,13 @@ class IntegrationTest < Test::Unit::TestCase
|
|||
Process.kill("TERM", pipe.pid) if pipe
|
||||
end
|
||||
|
||||
it 'starts a top level application' do
|
||||
def assert_content(url, content)
|
||||
with_server do
|
||||
assert_equal open("http://127.0.0.1:#{port}/app_file").read, app_file
|
||||
response = open("http://127.0.0.1:#{port}#{url}")
|
||||
assert_equal response.read, content
|
||||
end
|
||||
end
|
||||
|
||||
it('sets the app_file') { assert_content "/app_file", app_file }
|
||||
it('only extends main') { assert_content "/mainonly", "true" }
|
||||
end
|
||||
|
|
Loading…
Reference in New Issue