class Sinatra::Request
The request object. See Rack::Request for more info: rubydoc.info/github/rack/rack/main/Rack/Request
Constants
- HEADER_PARAM
- HEADER_VALUE_WITH_PARAMS
Public Instance Methods
accept()
click to toggle source
Returns an array of acceptable media types for the response
# File lib/sinatra/base.rb 28 def accept 29 @env['sinatra.accept'] ||= if @env.include?('HTTP_ACCEPT') && (@env['HTTP_ACCEPT'].to_s != '') 30 @env['HTTP_ACCEPT'] 31 .to_s 32 .scan(HEADER_VALUE_WITH_PARAMS) 33 .map! { |e| AcceptEntry.new(e) } 34 .sort 35 else 36 [AcceptEntry.new('*/*')] 37 end 38 end
accept?(type)
click to toggle source
# File lib/sinatra/base.rb 40 def accept?(type) 41 preferred_type(type).to_s.include?(type) 42 end
forwarded?()
click to toggle source
# File lib/sinatra/base.rb 58 def forwarded? 59 @env.include? 'HTTP_X_FORWARDED_HOST' 60 end
idempotent?()
click to toggle source
# File lib/sinatra/base.rb 66 def idempotent? 67 safe? || put? || delete? || link? || unlink? 68 end
link?()
click to toggle source
# File lib/sinatra/base.rb 70 def link? 71 request_method == 'LINK' 72 end
params()
click to toggle source
Calls superclass method
# File lib/sinatra/base.rb 78 def params 79 super 80 rescue Rack::Utils::ParameterTypeError, Rack::Utils::InvalidParameterError => e 81 raise BadRequest, "Invalid query parameters: #{Rack::Utils.escape_html(e.message)}" 82 rescue EOFError => e 83 raise BadRequest, "Invalid multipart/form-data: #{Rack::Utils.escape_html(e.message)}" 84 end
preferred_type(*types)
click to toggle source
# File lib/sinatra/base.rb 44 def preferred_type(*types) 45 return accept.first if types.empty? 46 47 types.flatten! 48 return types.first if accept.empty? 49 50 accept.detect do |accept_header| 51 type = types.detect { |t| MimeTypeEntry.new(t).accepts?(accept_header) } 52 return type if type 53 end 54 end
safe?()
click to toggle source
# File lib/sinatra/base.rb 62 def safe? 63 get? || head? || options? || trace? 64 end
unlink?()
click to toggle source
# File lib/sinatra/base.rb 74 def unlink? 75 request_method == 'UNLINK' 76 end