Sha256: a45614ef1f90440f9cb94281294a84926ca955fd6437c7ef93b244ef9990c000
Contents?: true
Size: 1.91 KB
Versions: 17
Compression:
Stored size: 1.91 KB
Contents
module Shoulda module Matchers module ActionController # @private class FlashStore def self.future new end def self.now new.use_now! end attr_accessor :controller def initialize @use_now = false end def name if @use_now 'flash.now' else 'flash' end end def has_key?(key) values_to_check.include?(key.to_s) end def has_value?(expected_value) values_to_check.values.any? do |actual_value| expected_value === actual_value end end def empty? flash.empty? end def use_now! @use_now = true self end private def flash @_flash ||= copy_of_flash_from_controller end def copy_of_flash_from_controller controller.flash.dup.tap do |flash| copy_flashes(controller.flash, flash) copy_discard_if_necessary(controller.flash, flash) end end def copy_flashes(original_flash, new_flash) flashes = original_flash.instance_variable_get('@flashes').dup new_flash.instance_variable_set('@flashes', flashes) end def copy_discard_if_necessary(original_flash, new_flash) discard = original_flash.instance_variable_get('@discard').dup new_flash.instance_variable_set('@discard', discard) end def set_values flash.instance_variable_get('@flashes') end def keys_to_discard flash.instance_variable_get('@discard') end def values_to_check if @use_now set_values.slice(*keys_to_discard.to_a) else set_values.except(*keys_to_discard.to_a) end end end end end end
Version data entries
17 entries across 17 versions & 1 rubygems