Class | Sinatra::Base |
In: |
lib/sinatra/base.rb
|
Parent: | Object |
app | [RW] | |
conditions | [RW] | |
env | [RW] | |
errors | [RW] | |
filters | [RW] | |
middleware | [RW] | |
params | [RW] | |
request | [RW] | |
response | [RW] | |
routes | [RW] | |
templates | [RW] |
# File lib/sinatra/base.rb, line 669 669: def call(env) 670: construct_middleware if @callsite.nil? 671: @callsite.call(env) 672: end
# File lib/sinatra/base.rb, line 643 643: def configure(*envs, &block) 644: yield if envs.empty? || envs.include?(environment.to_sym) 645: end
# File lib/sinatra/base.rb, line 298 298: def initialize(app=nil) 299: @app = app 300: yield self if block_given? 301: end
# File lib/sinatra/base.rb, line 652 652: def run!(options={}) 653: set options 654: handler = detect_rack_handler 655: handler_name = handler.name.gsub(/.*::/, '') 656: puts "== Sinatra/#{Sinatra::VERSION} has taken the stage " + 657: "on #{port} for #{environment} with backup from #{handler_name}" 658: handler.run self, :Host => host, :Port => port do |server| 659: trap(:INT) do 660: ## Use thins' hard #stop! if available, otherwise just #stop 661: server.respond_to?(:stop!) ? server.stop! : server.stop 662: puts "\n== Sinatra has ended his set (crowd applauds)" 663: end 664: end 665: rescue Errno::EADDRINUSE => e 666: puts "== Someone is already performing on port #{port}!" 667: end
# File lib/sinatra/base.rb, line 647 647: def use(middleware, *args, &block) 648: reset_middleware 649: @middleware << [middleware, args, block] 650: end
# File lib/sinatra/base.rb, line 309 309: def call!(env) 310: @env = env 311: @request = Request.new(env) 312: @response = Response.new 313: @params = nil 314: 315: invoke { dispatch! } 316: invoke { error_block!(response.status) } 317: 318: @response.body = [] if @env['REQUEST_METHOD'] == 'HEAD' 319: @response.finish 320: end