class Cookiefilter
Constants
- VERSION
Public Class Methods
delete(cookie)
click to toggle source
# File lib/cookiefilter.rb, line 66 def delete(cookie) cookie[:options] = ' max-age=0; expires=Thu, 01 Jan 1970 00:00:00 -0000;' cookie[:value] = 'unset' cookie end
filter_out_keepers(keepers)
click to toggle source
# File lib/cookiefilter.rb, line 97 def filter_out_keepers(keepers) keepers.select { |keeper| keeper[:type] == :set } end
maintain_limits(sized_cookies, kept_large = [], limited = [])
click to toggle source
# File lib/cookiefilter.rb, line 82 def maintain_limits(sized_cookies, kept_large = [], limited = []) if Cookiefilter.cookie_size_too_large?(kept_large, sized_cookies) removed = sized_cookies.shift if sized_cookies.count > 0 removed = kept_large.shift if removed.nil? if removed[:sacred] && sized_cookies.count > 0 kept_large.push(removed) else limited.push(removed) end return Cookiefilter.maintain_limits(sized_cookies, kept_large, limited) else return [kept_large + sized_cookies, limited] end end
merge_keep_and_set(keep, set)
click to toggle source
# File lib/cookiefilter.rb, line 72 def merge_keep_and_set(keep, set) keep.each do |keeper| keeper[:type] = :keep end set.each do |setter| setter[:type] = :set end return keep + set end
new(app)
click to toggle source
# File lib/cookiefilter.rb, line 152 def initialize(app) Cookiefilter::Validator.validate_safelist(Cookiefilter::Rules.safelist) @app = app @size = 0 end
sort_by_size(cookies)
click to toggle source
# File lib/cookiefilter.rb, line 101 def sort_by_size(cookies) cookies.sort! do |a, b| b[:size] <=> a[:size] end end
Public Instance Methods
call(env)
click to toggle source
entry point, executes directly after initialize
# File lib/cookiefilter.rb, line 159 def call(env) result = Cookiefilter.filter_request_cookies(env['HTTP_COOKIE']) env['HTTP_COOKIE'] = result[:header] status, headers, body = @app.call(env) response = Rack::Response.new body, status, headers header = Cookiefilter.filter_response_cookies( env['HTTP_HOST'], response.header['Set-Cookie'], result ) response.header['Set-Cookie'] = header response.finish end