Module: Rack::CleanCookies

Defined in:
lib/rack/cleancookies.rb

Defined Under Namespace

Classes: Middleware

Class Method Summary collapse

Class Method Details

.clean?(cookie) ⇒ Boolean

Tests whether a cookie is clean, that is its key and value may be decoded as a form components

Returns:

  • (Boolean)


19
20
21
22
# File 'lib/rack/cleancookies.rb', line 19

def clean?(cookie)
  key, value = cookie.split('=', 2)
  decodable?(key) && decodable?(value)
end

.decodable?(string) ⇒ Boolean

Tests whether a string may be decoded as a form component

Returns:

  • (Boolean)


9
10
11
12
13
14
# File 'lib/rack/cleancookies.rb', line 9

def decodable?(string)
  URI.decode_www_form_component(string)
  true
rescue ArgumentError => e
  /^invalid %-encoding \(.*\)$/.match(e.message) ? false : raise
end