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