Module: Doze::Utils
- Extended by:
- Utils
- Included in:
- Application, Responder, Responder::Resource, Response, Utils
- Defined in:
- lib/doze/utils.rb
Overview
Various stateless utility functions which aid the conversion back and forth between HTTP syntax and the more abstracted ruby representations we use.
Constant Summary collapse
- URI_SCHEMES =
Hash.new(URI::Generic).merge!( 'http' => URI::HTTP, 'https' => URI::HTTPS )
Instance Method Summary collapse
- #escape(s) ⇒ Object
- #quote(str) ⇒ Object
- #request_base_uri(request) ⇒ Object
-
#unescape(s) ⇒ Object
Rack::Utils.unescape, but without turning ‘+’ into ‘ ’ Also must be passed a string.
Instance Method Details
#escape(s) ⇒ Object
42 43 44 |
# File 'lib/doze/utils.rb', line 42 def escape(s) s.gsub(/([^a-zA-Z0-9_.-]+)/n) {'%'+$1.unpack('H2'*$1.bytesize).join('%').upcase} end |
#quote(str) ⇒ Object
24 25 26 |
# File 'lib/doze/utils.rb', line 24 def quote(str) '"' << str.gsub(/[\\\"]/o, "\\\1") << '"' end |
#request_base_uri(request) ⇒ Object
16 17 18 19 20 21 22 |
# File 'lib/doze/utils.rb', line 16 def request_base_uri(request) URI_SCHEMES[request.scheme].build( :scheme => request.scheme, :port => request.port, :host => request.host ) end |
#unescape(s) ⇒ Object
Rack::Utils.unescape, but without turning ‘+’ into ‘ ’ Also must be passed a string.
34 35 36 |
# File 'lib/doze/utils.rb', line 34 def unescape(s) s.gsub(/((?:%[0-9a-fA-F]{2})+)/n) {[$1.delete('%')].pack('H*')} end |