Sha256: 06966deb2d34029d1b15ca073c8609d649abbc0734ad5303751a8bf8f9ddc7f8

Contents?: true

Size: 1.5 KB

Versions: 2

Compression:

Stored size: 1.5 KB

Contents

require 'json'
require 'stackable_flash'

module CacheableFlash
  if defined?(Rails) && (::Rails::VERSION::MAJOR >= 3)
    require 'cacheable_flash/middleware'
    require 'cacheable_flash/engine' if (::Rails::VERSION::MAJOR == 3 && ::Rails::VERSION::MINOR >= 1) || ::Rails::VERSION::MAJOR > 3
    require 'cacheable_flash/railtie'
  else
    # For older rails use generator
  end

  # By default stacking is false, but it can be turned on with:
  # CacheableFlash.configure do |config|
  #   config[:stacking] = true
  #   config[:append_as] = :br # Pick a value, set your own proc, or don't: passes the JSON'd array to the cookie
  # end
  StackableFlash.stacking = false

  # The configure will override the above defaults
  require 'cacheable_flash/config'
  require 'cacheable_flash/cookie_flash'
  include CacheableFlash::CookieFlash

  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?


    # Base must define cookies, as in Rails
    domain = CacheableFlash::Config.config[:domain]
    cookies['flash'] = { :value => cookie_flash(flash, cookies), :domain => domain }
    # Base must define flash, as in Rails
    # TODO: Does not support flash.now feature of the FlashHash in Rails,
    #       because flashes are only removed from cookies when they are used.
    flash.clear
  end

  # simply abstracts the StackableFlash.stacking method
  def self.stacking
    StackableFlash.stacking
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
cacheable_flash-0.3.4 lib/cacheable_flash.rb
cacheable_flash-0.3.3 lib/cacheable_flash.rb