Class | Merb::Test::CookieJar |
In: |
merb-core/lib/merb-core/test/helpers/cookie_jar.rb
|
Parent: | Object |
:api: private
# File merb-core/lib/merb-core/test/helpers/cookie_jar.rb, line 75 75: def initialize 76: @jars = {} 77: end
:api: private
# File merb-core/lib/merb-core/test/helpers/cookie_jar.rb, line 102 102: def for(jar, uri) 103: cookies = {} 104: 105: @jars[jar] ||= [] 106: # The cookies are sorted by most specific first. So, we loop through 107: # all the cookies in order and add it to a hash by cookie name if 108: # the cookie can be sent to the current URI. It's added to the hash 109: # so that when we are done, the cookies will be unique by name and 110: # we'll have grabbed the most specific to the URI. 111: @jars[jar].each do |cookie| 112: cookies[cookie.name] = cookie.raw if cookie.matches?(uri) 113: end 114: 115: cookies.values.join(';') 116: end
:api: private
# File merb-core/lib/merb-core/test/helpers/cookie_jar.rb, line 80 80: def update(jar, uri, raw_cookies) 81: return unless raw_cookies 82: # Initialize all the the received cookies 83: cookies = [] 84: raw_cookies.each do |raw| 85: c = Cookie.new(raw, uri.host) 86: cookies << c if c.valid?(uri) 87: end 88: 89: @jars[jar] ||= [] 90: 91: # Remove all the cookies that will be updated 92: @jars[jar].delete_if do |existing| 93: cookies.find { |c| [c.name, c.domain, c.path] == [existing.name, existing.domain, existing.path] } 94: end 95: 96: @jars[jar].concat cookies 97: 98: @jars[jar].sort! 99: end