Class: ActionController::Flash::FlashHash
- Inherits:
-
Hash
- Object
- Hash
- ActionController::Flash::FlashHash
- Defined in:
- lib/rails_4_session_flash_backport/rails2/flash_hash.rb,
lib/rails_4_session_flash_backport/rails4/flash_hash.rb,
lib/rails_4_session_flash_backport/rails3-0/flash_hash.rb,
lib/rails_4_session_flash_backport/rails3-1/flash_hash.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
._load(args) ⇒ Object
45 46 47 |
# File 'lib/rails_4_session_flash_backport/rails4/flash_hash.rb', line 45 def self._load(args) {} end |
.from_session_value(value) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 |
# File 'lib/rails_4_session_flash_backport/rails2/flash_hash.rb', line 9 def self.from_session_value(value) case value when FlashHash # Rails 2.3 value.tap(&:sweep) when ::ActionDispatch::Flash::FlashHash # Rails 3.2 flashes = value.instance_variable_get(:@flashes) if discard = value.instance_variable_get(:@used).presence flashes.except!(*discard) end new_from_session(flashes) when Hash # Rails 4.0 flashes = value['flashes'] || {} if discard = value['discard'].presence flashes.except!(*discard) end new_from_session(flashes) else new end end |
Instance Method Details
#hashify(selected) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/rails_4_session_flash_backport/rails2/flash_hash.rb', line 38 def hashify(selected) if selected.respond_to?(:to_h) selected.to_h else selected end end |
#store(session, key = "flash") ⇒ Object
46 47 48 |
# File 'lib/rails_4_session_flash_backport/rails2/flash_hash.rb', line 46 def store(session, key = "flash") session[key] = to_session_value end |
#to_session_value ⇒ Object
32 33 34 35 36 |
# File 'lib/rails_4_session_flash_backport/rails2/flash_hash.rb', line 32 def to_session_value return nil if empty? discard = hashify(@used.select { |_, used| used }).keys {'flashes' => Hash[to_a].except(*discard)} end |