From 312ee8637366572425c9b3147a6477583333cf34 Mon Sep 17 00:00:00 2001 From: brainopia Date: Mon, 30 Apr 2012 15:42:25 +0400 Subject: Use more appropriate one-liner for class declaration --- actionpack/lib/action_dispatch/middleware/cookies.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'actionpack/lib') diff --git a/actionpack/lib/action_dispatch/middleware/cookies.rb b/actionpack/lib/action_dispatch/middleware/cookies.rb index e1016977ab..4b91515df4 100644 --- a/actionpack/lib/action_dispatch/middleware/cookies.rb +++ b/actionpack/lib/action_dispatch/middleware/cookies.rb @@ -82,7 +82,7 @@ module ActionDispatch TOKEN_KEY = "action_dispatch.secret_token".freeze # Raised when storing more than 4K of session data. - class CookieOverflow < StandardError; end + CookieOverflow = Class.new StandardError class CookieJar #:nodoc: include Enumerable -- cgit v1.2.3 From dbe5162496623c919457da1db7b5843f3dbe733f Mon Sep 17 00:00:00 2001 From: brainopia Date: Mon, 30 Apr 2012 15:50:54 +0400 Subject: Simplify matching with array of possible domains --- actionpack/lib/action_dispatch/middleware/cookies.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'actionpack/lib') diff --git a/actionpack/lib/action_dispatch/middleware/cookies.rb b/actionpack/lib/action_dispatch/middleware/cookies.rb index 4b91515df4..9b9227b659 100644 --- a/actionpack/lib/action_dispatch/middleware/cookies.rb +++ b/actionpack/lib/action_dispatch/middleware/cookies.rb @@ -154,7 +154,7 @@ module ActionDispatch end elsif options[:domain].is_a? Array # if host matches one of the supplied domains without a dot in front of it - options[:domain] = options[:domain].find {|domain| @host.include? domain[/^\.?(.*)$/, 1] } + options[:domain] = options[:domain].find {|domain| @host.include? domain.sub(/^\./, '') } end end -- cgit v1.2.3 From ff2667d21a2c183d031acce44d95d06a8c99c035 Mon Sep 17 00:00:00 2001 From: brainopia Date: Mon, 30 Apr 2012 16:32:53 +0400 Subject: Dont set cookie header for deletion of unexisting data --- actionpack/lib/action_dispatch/middleware/cookies.rb | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'actionpack/lib') diff --git a/actionpack/lib/action_dispatch/middleware/cookies.rb b/actionpack/lib/action_dispatch/middleware/cookies.rb index 9b9227b659..ecb336bb4e 100644 --- a/actionpack/lib/action_dispatch/middleware/cookies.rb +++ b/actionpack/lib/action_dispatch/middleware/cookies.rb @@ -182,8 +182,9 @@ module ActionDispatch # and setting its expiration date into the past. Like []=, you can pass in # an options hash to delete cookies with extra data such as a :path. def delete(key, options = {}) - options.symbolize_keys! + return unless @cookies.has_key? key.to_s + options.symbolize_keys! handle_options(options) value = @cookies.delete(key.to_s) -- cgit v1.2.3 From 2d18dd34719b1f9a3d2e3a516ccb83e7067dcd91 Mon Sep 17 00:00:00 2001 From: brainopia Date: Mon, 30 Apr 2012 16:55:06 +0400 Subject: Dont stream back cookie value if it was set to the same value --- actionpack/lib/action_dispatch/middleware/cookies.rb | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'actionpack/lib') diff --git a/actionpack/lib/action_dispatch/middleware/cookies.rb b/actionpack/lib/action_dispatch/middleware/cookies.rb index ecb336bb4e..c66bcf2cc9 100644 --- a/actionpack/lib/action_dispatch/middleware/cookies.rb +++ b/actionpack/lib/action_dispatch/middleware/cookies.rb @@ -169,12 +169,14 @@ module ActionDispatch options = { :value => value } end - @cookies[key.to_s] = value - handle_options(options) - @set_cookies[key.to_s] = options - @delete_cookies.delete(key.to_s) + if @cookies[key.to_s] != value or options[:expires] + @cookies[key.to_s] = value + @set_cookies[key.to_s] = options + @delete_cookies.delete(key.to_s) + end + value end -- cgit v1.2.3