lib/cacheable_flash.rb in cacheable_flash-0.2.3 vs lib/cacheable_flash.rb in cacheable_flash-0.2.4
- old
+ new
@@ -1,25 +1,29 @@
+require 'json'
+
module CacheableFlash
- require 'rails'
- if ::Rails::VERSION::MAJOR == 3 && ::Rails::VERSION::MINOR == 0
- require 'cacheable_flash/rails/railtie'
- elsif ::Rails.version >= "3.1"
- require 'cacheable_flash/rails/engine'
- require 'cacheable_flash/rails/railtie'
+ if defined?(Rails) && ::Rails::VERSION::MAJOR == 3
+ if ::Rails::VERSION::MINOR >= 1
+ require "cacheable_flash/engine"
+ require 'cacheable_flash/railtie'
+ elsif ::Rails::VERSION::MINOR == 0
+ require 'cacheable_flash/railtie'
+ end
else
# For older rails use generator
end
def self.included(base)
+ #base must define around_filter, as in Rails
base.around_filter :write_flash_to_cookie
end
def write_flash_to_cookie
yield if block_given?
cookie_flash = if cookies['flash']
begin
- ActiveSupport::JSON.decode(cookies['flash'])
+ JSON(cookies['flash'])
rescue
{}
end
else
{}
@@ -30,10 +34,11 @@
cookie_flash[key.to_s] = value.kind_of?(Numeric) ? value.to_s : value
else
cookie_flash[key.to_s] << "<br/>#{value}"
end
end
-
+ # Base must define cookies, as in Rails
cookies['flash'] = cookie_flash.to_json.gsub("+", "%2B")
+ # Base must define flash, as in Rails
flash.clear
end
end