Class: ActionController::Flash::FlashHash

Inherits:
Hash
  • Object
show all
Defined in:
lib/rails_4_session_flash_backport/rails2/flash_hash.rb,
lib/rails_4_session_flash_backport/rails3/flash_hash.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

._load(args) ⇒ Object



69
70
71
# File 'lib/rails_4_session_flash_backport/rails3/flash_hash.rb', line 69

def self._load(args)
  {}
end

.from_session_value(value) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'lib/rails_4_session_flash_backport/rails2/flash_hash.rb', line 8

def self.from_session_value(value)
  flash = case value
          when FlashHash # Rails 2.3
            value
          when ::ActionDispatch::Flash::FlashHash # Rails 3.2
            flashes = value.instance_variable_get(:@flashes) || {}
            used_set = value.instance_variable_get(:@used) || []
            used = Hash[flashes.keys.map{|k| [k, used_set.include?(k)] }]
            new_from_values(flashes, used)
          when Hash # Rails 4.0
            flashes = value['flashes'] || {}
            discard = value['discard']
            used = Hash[flashes.keys.map{|k| [k, discard.include?(k)] }]

            new_from_values(flashes, used)
          else
            new
          end
  flash
end

Instance Method Details

#store(session, key = "flash") ⇒ Object



35
36
37
# File 'lib/rails_4_session_flash_backport/rails2/flash_hash.rb', line 35

def store(session, key = "flash")
  session[key] = to_session_value
end

#to_session_valueObject



29
30
31
32
33
# File 'lib/rails_4_session_flash_backport/rails2/flash_hash.rb', line 29

def to_session_value
  return nil if empty?
  rails_3_discard_list = @used.map{|k,v| k if v}.compact
  {'discard' => rails_3_discard_list, 'flashes' => Hash[to_a]}
end