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
36 def accept
37   @env['sinatra.accept'] ||= if @env.include?('HTTP_ACCEPT') && (@env['HTTP_ACCEPT'].to_s != '')
38                                @env['HTTP_ACCEPT']
39                                  .to_s
40                                  .scan(HEADER_VALUE_WITH_PARAMS)
41                                  .map! { |e| AcceptEntry.new(e) }
42                                  .sort
43                              else
44                                [AcceptEntry.new('*/*')]
45                              end
46 end
accept?(type) click to toggle source
   # File lib/sinatra/base.rb
48 def accept?(type)
49   preferred_type(type).to_s.include?(type)
50 end
forwarded?() click to toggle source
   # File lib/sinatra/base.rb
66 def forwarded?
67   !forwarded_authority.nil?
68 end
idempotent?() click to toggle source
   # File lib/sinatra/base.rb
74 def idempotent?
75   safe? || put? || delete? || link? || unlink?
76 end
params() click to toggle source
Calls superclass method
   # File lib/sinatra/base.rb
86 def params
87   super
88 rescue Rack::Utils::ParameterTypeError, Rack::Utils::InvalidParameterError => e
89   raise BadRequest, "Invalid query parameters: #{Rack::Utils.escape_html(e.message)}"
90 rescue EOFError => e
91   raise BadRequest, "Invalid multipart/form-data: #{Rack::Utils.escape_html(e.message)}"
92 end
preferred_type(*types) click to toggle source
   # File lib/sinatra/base.rb
52 def preferred_type(*types)
53   return accept.first if types.empty?
54 
55   types.flatten!
56   return types.first if accept.empty?
57 
58   accept.detect do |accept_header|
59     type = types.detect { |t| MimeTypeEntry.new(t).accepts?(accept_header) }
60     return type if type
61   end
62 end
safe?() click to toggle source
   # File lib/sinatra/base.rb
70 def safe?
71   get? || head? || options? || trace?
72 end