mirror of
https://github.com/sinatra/sinatra
synced 2023-03-27 23:18:01 -04:00
taking out for now
This commit is contained in:
parent
3580217b52
commit
4e1fffc061
3 changed files with 0 additions and 85 deletions
17
vendor/respond_to/README
vendored
17
vendor/respond_to/README
vendored
|
@ -1,17 +0,0 @@
|
|||
Respond_to
|
||||
|
||||
Allows for different methods to be called upon in the event context block
|
||||
|
||||
from
|
||||
|
||||
get 'index' do
|
||||
body "hey"
|
||||
end
|
||||
|
||||
to
|
||||
|
||||
get 'index' do
|
||||
html {"hi"}
|
||||
end
|
||||
|
||||
If there is a block with the extension, that will be used as the output, otherwise the body of the block will be used.
|
5
vendor/respond_to/init.rb
vendored
5
vendor/respond_to/init.rb
vendored
|
@ -1,5 +0,0 @@
|
|||
require File.dirname(__FILE__) + '/lib/responder'
|
||||
|
||||
Sinatra::EventContext.send(:include, Sinatra::Responder)
|
||||
Sinatra::Event.send(:include, Sinatra::EventResponder)
|
||||
Sinatra::EventManager.send(:extend, Sinatra::DispatcherResponder)
|
63
vendor/respond_to/lib/responder.rb
vendored
63
vendor/respond_to/lib/responder.rb
vendored
|
@ -1,63 +0,0 @@
|
|||
module Sinatra
|
||||
module Responder
|
||||
|
||||
module InstanceMethods
|
||||
def method_missing(id, *args, &block)
|
||||
if block
|
||||
@responds_to[id] = block unless @responds_to.has_key? id
|
||||
else
|
||||
super
|
||||
end
|
||||
end
|
||||
def initialize_with_responds_to(i)
|
||||
initialize_without_responds_to(i)
|
||||
@responds_to = {}
|
||||
end
|
||||
end
|
||||
|
||||
def self.included(base)
|
||||
base.send :include, InstanceMethods
|
||||
base.instance_eval do
|
||||
alias_method :initialize_without_responds_to, :initialize
|
||||
alias_method :initialize, :initialize_with_responds_to
|
||||
end
|
||||
attr_accessor :responds_to
|
||||
end
|
||||
end
|
||||
module EventResponder
|
||||
def self.included(base)
|
||||
base.send :include, InstanceMethods
|
||||
base.instance_eval do
|
||||
alias_method :attend_without_respond_to, :attend
|
||||
alias_method :attend, :attend_with_respond_to
|
||||
end
|
||||
end
|
||||
module InstanceMethods
|
||||
# Pulls the request info from the REQUEST_PATH
|
||||
# it looks for the path extension
|
||||
# For instance, index.html will respond to the html block
|
||||
def respond_request(request)
|
||||
request.env['REQUEST_PATH'].include?('.') ? request.env['REQUEST_PATH'].split('.')[-1].to_sym : :html
|
||||
end
|
||||
def attend_with_respond_to(request)
|
||||
context = EventContext.new(request)
|
||||
begin
|
||||
context.instance_eval(&@block) if @block
|
||||
context.responds_to[respond_request(request)].call if context.responds_to.has_key? respond_request(request)
|
||||
rescue => e
|
||||
context.error e
|
||||
end
|
||||
run_through_after_filters(context)
|
||||
context
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
module DispatcherResponder
|
||||
def determine_event(verb, path)
|
||||
EventManager.events.detect(method(:not_found)) do |e|
|
||||
e.path =~ Regexp.new(path.split(".")[0..-2].join("|").gsub(/\//, '')) && e.verb == verb
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
Loading…
Add table
Reference in a new issue