rails_4_session_flash_backport 0.0.4 → 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
 - checksums.yaml.gz.sig +3 -0
 - data.tar.gz.sig +0 -0
 - data/.travis.yml +2 -0
 - data/Gemfile +0 -8
 - data/README.md +7 -5
 - data/Rakefile +35 -10
 - data/gemfiles/Gemfile.rails2 +8 -0
 - data/gemfiles/Gemfile.rails2.lock +60 -0
 - data/gemfiles/Gemfile.rails3 +7 -0
 - data/gemfiles/Gemfile.rails3.lock +115 -0
 - data/gemfiles/Gemfile.rails4 +7 -0
 - data/gemfiles/Gemfile.rails4.lock +110 -0
 - data/lib/rails_4_session_flash_backport.rb +2 -0
 - data/lib/rails_4_session_flash_backport/rails2/flash_hash.rb +29 -27
 - data/lib/rails_4_session_flash_backport/rails3/flash_hash.rb +23 -10
 - data/lib/rails_4_session_flash_backport/rails4/flash_hash.rb +51 -0
 - data/lib/rails_4_session_flash_backport/version.rb +1 -1
 - data/rails_4_session_flash_backport.gemspec +9 -5
 - data/spec/rails2/flash_hash_spec.rb +46 -29
 - data/spec/rails3/flash_hash_spec.rb +44 -30
 - data/spec/rails4/flash_hash_spec.rb +62 -0
 - metadata +87 -7
 - metadata.gz.sig +0 -0
 
    
        checksums.yaml
    CHANGED
    
    | 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            ---
         
     | 
| 
       2 
2 
     | 
    
         
             
            SHA1:
         
     | 
| 
       3 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       4 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 3 
     | 
    
         
            +
              metadata.gz: 63cb81e1721af494a2b7ae4f05715d8f7c3d3e2a
         
     | 
| 
      
 4 
     | 
    
         
            +
              data.tar.gz: b774150f014fb78bf4b0c964ddc3d78c87b155ab
         
     | 
| 
       5 
5 
     | 
    
         
             
            SHA512:
         
     | 
| 
       6 
     | 
    
         
            -
              metadata.gz:  
     | 
| 
       7 
     | 
    
         
            -
              data.tar.gz:  
     | 
| 
      
 6 
     | 
    
         
            +
              metadata.gz: 01b2eeb5c36ebff671e5521b8905545d97f5956c6f5a52fd2cddacb250336757015417be93cede9cbd838b551cf388003a9a130247ddb8b87c96dd59f1a83d4e
         
     | 
| 
      
 7 
     | 
    
         
            +
              data.tar.gz: 92f2a7a0e6e711e7a01fb4a6f6255e22b536eac7eca0efd232b76adc0fb441b838bbc41a03483867636b7419fc3b5b01b8353e7b95e8e95ed9c5740f278aa624
         
     | 
    
        checksums.yaml.gz.sig
    ADDED
    
    
    
        data.tar.gz.sig
    ADDED
    
    | 
         Binary file 
     | 
    
        data/.travis.yml
    CHANGED
    
    
    
        data/Gemfile
    CHANGED
    
    
    
        data/README.md
    CHANGED
    
    | 
         @@ -9,14 +9,15 @@ good ol' `ActionDispatch::Session::SessionRestoreError` making life difficult. 
     | 
|
| 
       9 
9 
     | 
    
         
             
            This gem was created because we wanted to be able to keep our users Rails 2
         
     | 
| 
       10 
10 
     | 
    
         
             
            sessions working on Rails 3, and we figured as long as we're going to be doing
         
     | 
| 
       11 
11 
     | 
    
         
             
            crazy stuff we might as well go and use the far more sensible practice from
         
     | 
| 
       12 
     | 
    
         
            -
            Rails 4 of storing the flash as basic ruby types 
     | 
| 
      
 12 
     | 
    
         
            +
            Rails 4 of storing the flash as basic ruby types and sweeping the flash before
         
     | 
| 
      
 13 
     | 
    
         
            +
            persisting into the session.
         
     | 
| 
       13 
14 
     | 
    
         | 
| 
       14 
15 
     | 
    
         
             
            For more details of the how and why, check out our blog post 
         
     | 
| 
       15 
16 
     | 
    
         
             
            [Happily upgrading Ruby on Rails at production scale](http://webuild.envato.com/blog/upgrading-ruby-on-rails-at-production-scale/)
         
     | 
| 
       16 
17 
     | 
    
         | 
| 
       17 
18 
     | 
    
         
             
            When using this gem on a Rails 2 or 3 app:
         
     | 
| 
       18 
19 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
             - Flash messages are stored as basic objects in the Rails 4 style.
         
     | 
| 
      
 20 
     | 
    
         
            +
             - Flash messages are stored as basic objects in the Rails 4 style, pre-swept.
         
     | 
| 
       20 
21 
     | 
    
         
             
             - Flash messages in the Rails 2 format can be successfully decoded.
         
     | 
| 
       21 
22 
     | 
    
         
             
             - Flash messages in the Rails 3 format can be successfully decoded.
         
     | 
| 
       22 
23 
     | 
    
         
             
             - Flash messages in the Rails 4 format can be successfully decoded.
         
     | 
| 
         @@ -33,8 +34,9 @@ Rails 3 servers concurrently with your Rails 2 cluster to verify everything is 
     | 
|
| 
       33 
34 
     | 
    
         
             
            fine and performance is acceptable without
         
     | 
| 
       34 
35 
     | 
    
         
             
            having to do the all-in switch.
         
     | 
| 
       35 
36 
     | 
    
         | 
| 
       36 
     | 
    
         
            -
             
     | 
| 
       37 
     | 
    
         
            -
             
     | 
| 
      
 37 
     | 
    
         
            +
            This gem also now backports functionality for Rails 2, 3 and 4 which backports
         
     | 
| 
      
 38 
     | 
    
         
            +
            sweeping the flash before persisting it into the session. This means putting
         
     | 
| 
      
 39 
     | 
    
         
            +
            large objects into `flash.now` shouldn't cause `CookieOverflow` errors.
         
     | 
| 
       38 
40 
     | 
    
         | 
| 
       39 
41 
     | 
    
         
             
            ## Installation
         
     | 
| 
       40 
42 
     | 
    
         | 
| 
         @@ -53,5 +55,5 @@ Or install it yourself as: 
     | 
|
| 
       53 
55 
     | 
    
         
             
            Copyright
         
     | 
| 
       54 
56 
     | 
    
         
             
            ---------
         
     | 
| 
       55 
57 
     | 
    
         | 
| 
       56 
     | 
    
         
            -
            Copyright (c) 2012 [Envato](http://envato.com), [Lucas Parry](http://github.com/lparry), [chendo](http://github.com/chendo). See LICENSE.txt for further details.
         
     | 
| 
      
 58 
     | 
    
         
            +
            Copyright (c) 2012 [Envato](http://envato.com), [Lucas Parry](http://github.com/lparry), [chendo](http://github.com/chendo), [sj26](http://github.com/sj26). See LICENSE.txt for further details.
         
     | 
| 
       57 
59 
     | 
    
         | 
    
        data/Rakefile
    CHANGED
    
    | 
         @@ -1,21 +1,46 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            require "bundler/gem_tasks"
         
     | 
| 
       2 
2 
     | 
    
         | 
| 
       3 
3 
     | 
    
         
             
            namespace :spec do
         
     | 
| 
      
 4 
     | 
    
         
            +
              task :rails2 do
         
     | 
| 
      
 5 
     | 
    
         
            +
                Bundler.with_clean_env do
         
     | 
| 
      
 6 
     | 
    
         
            +
                  ENV["BUNDLE_GEMFILE"] = File.expand_path("../gemfiles/Gemfile.rails2", __FILE__)
         
     | 
| 
      
 7 
     | 
    
         
            +
             
     | 
| 
      
 8 
     | 
    
         
            +
                  system "bundle", "check" or
         
     | 
| 
      
 9 
     | 
    
         
            +
                    system "bundle" or
         
     | 
| 
      
 10 
     | 
    
         
            +
                    raise "Couldn't install bundle from gemfiles/Gemfile.rails2"
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                  system "bundle", "exec", "rspec", "--color", "spec/rails2" or
         
     | 
| 
      
 13 
     | 
    
         
            +
                    fail
         
     | 
| 
      
 14 
     | 
    
         
            +
                end
         
     | 
| 
      
 15 
     | 
    
         
            +
              end
         
     | 
| 
      
 16 
     | 
    
         
            +
             
     | 
| 
       4 
17 
     | 
    
         
             
              task :rails3 do
         
     | 
| 
       5 
     | 
    
         
            -
                 
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
      
 18 
     | 
    
         
            +
                Bundler.with_clean_env do
         
     | 
| 
      
 19 
     | 
    
         
            +
                  ENV["BUNDLE_GEMFILE"] = File.expand_path("../gemfiles/Gemfile.rails3", __FILE__)
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                  system "bundle", "check" or
         
     | 
| 
      
 22 
     | 
    
         
            +
                    system "bundle" or
         
     | 
| 
      
 23 
     | 
    
         
            +
                    raise "Couldn't install bundle from gemfiles/Gemfile.rails3"
         
     | 
| 
      
 24 
     | 
    
         
            +
             
     | 
| 
      
 25 
     | 
    
         
            +
                  system "bundle", "exec", "rspec", "--color", "spec/rails3" or
         
     | 
| 
      
 26 
     | 
    
         
            +
                    fail
         
     | 
| 
      
 27 
     | 
    
         
            +
                end
         
     | 
| 
       9 
28 
     | 
    
         
             
              end
         
     | 
| 
       10 
29 
     | 
    
         | 
| 
       11 
     | 
    
         
            -
              task : 
     | 
| 
       12 
     | 
    
         
            -
                 
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
      
 30 
     | 
    
         
            +
              task :rails4 do
         
     | 
| 
      
 31 
     | 
    
         
            +
                Bundler.with_clean_env do
         
     | 
| 
      
 32 
     | 
    
         
            +
                  ENV["BUNDLE_GEMFILE"] = File.expand_path("../gemfiles/Gemfile.rails4", __FILE__)
         
     | 
| 
      
 33 
     | 
    
         
            +
             
     | 
| 
      
 34 
     | 
    
         
            +
                  system "bundle", "check" or
         
     | 
| 
      
 35 
     | 
    
         
            +
                    system "bundle" or
         
     | 
| 
      
 36 
     | 
    
         
            +
                    raise "Couldn't install bundle from gemfiles/Gemfile.rails4"
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                  system "bundle", "exec", "rspec", "--color", "spec/rails4" or
         
     | 
| 
      
 39 
     | 
    
         
            +
                    fail
         
     | 
| 
      
 40 
     | 
    
         
            +
                end
         
     | 
| 
       16 
41 
     | 
    
         
             
              end
         
     | 
| 
       17 
42 
     | 
    
         
             
            end
         
     | 
| 
       18 
43 
     | 
    
         | 
| 
       19 
     | 
    
         
            -
            task :spec => ["spec:rails2", "spec:rails3"]
         
     | 
| 
      
 44 
     | 
    
         
            +
            task :spec => ["spec:rails2", "spec:rails3", "spec:rails4"]
         
     | 
| 
       20 
45 
     | 
    
         | 
| 
       21 
46 
     | 
    
         
             
            task :default => :spec
         
     | 
| 
         @@ -0,0 +1,60 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            PATH
         
     | 
| 
      
 2 
     | 
    
         
            +
              remote: ..
         
     | 
| 
      
 3 
     | 
    
         
            +
              specs:
         
     | 
| 
      
 4 
     | 
    
         
            +
                rails_4_session_flash_backport (0.0.4)
         
     | 
| 
      
 5 
     | 
    
         
            +
                  rails (< 4.0.0)
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            GEM
         
     | 
| 
      
 8 
     | 
    
         
            +
              remote: https://rubygems.org/
         
     | 
| 
      
 9 
     | 
    
         
            +
              specs:
         
     | 
| 
      
 10 
     | 
    
         
            +
                actionmailer (2.3.18)
         
     | 
| 
      
 11 
     | 
    
         
            +
                  actionpack (= 2.3.18)
         
     | 
| 
      
 12 
     | 
    
         
            +
                actionpack (2.3.18)
         
     | 
| 
      
 13 
     | 
    
         
            +
                  activesupport (= 2.3.18)
         
     | 
| 
      
 14 
     | 
    
         
            +
                  rack (~> 1.1.0)
         
     | 
| 
      
 15 
     | 
    
         
            +
                activerecord (2.3.18)
         
     | 
| 
      
 16 
     | 
    
         
            +
                  activesupport (= 2.3.18)
         
     | 
| 
      
 17 
     | 
    
         
            +
                activeresource (2.3.18)
         
     | 
| 
      
 18 
     | 
    
         
            +
                  activesupport (= 2.3.18)
         
     | 
| 
      
 19 
     | 
    
         
            +
                activesupport (2.3.18)
         
     | 
| 
      
 20 
     | 
    
         
            +
                coderay (1.1.0)
         
     | 
| 
      
 21 
     | 
    
         
            +
                diff-lcs (1.2.5)
         
     | 
| 
      
 22 
     | 
    
         
            +
                iconv (1.0.4)
         
     | 
| 
      
 23 
     | 
    
         
            +
                method_source (0.8.2)
         
     | 
| 
      
 24 
     | 
    
         
            +
                pry (0.10.1)
         
     | 
| 
      
 25 
     | 
    
         
            +
                  coderay (~> 1.1.0)
         
     | 
| 
      
 26 
     | 
    
         
            +
                  method_source (~> 0.8.1)
         
     | 
| 
      
 27 
     | 
    
         
            +
                  slop (~> 3.4)
         
     | 
| 
      
 28 
     | 
    
         
            +
                rack (1.1.6)
         
     | 
| 
      
 29 
     | 
    
         
            +
                rails (2.3.18)
         
     | 
| 
      
 30 
     | 
    
         
            +
                  actionmailer (= 2.3.18)
         
     | 
| 
      
 31 
     | 
    
         
            +
                  actionpack (= 2.3.18)
         
     | 
| 
      
 32 
     | 
    
         
            +
                  activerecord (= 2.3.18)
         
     | 
| 
      
 33 
     | 
    
         
            +
                  activeresource (= 2.3.18)
         
     | 
| 
      
 34 
     | 
    
         
            +
                  activesupport (= 2.3.18)
         
     | 
| 
      
 35 
     | 
    
         
            +
                  rake (>= 0.8.3)
         
     | 
| 
      
 36 
     | 
    
         
            +
                rake (10.4.2)
         
     | 
| 
      
 37 
     | 
    
         
            +
                rspec (3.1.0)
         
     | 
| 
      
 38 
     | 
    
         
            +
                  rspec-core (~> 3.1.0)
         
     | 
| 
      
 39 
     | 
    
         
            +
                  rspec-expectations (~> 3.1.0)
         
     | 
| 
      
 40 
     | 
    
         
            +
                  rspec-mocks (~> 3.1.0)
         
     | 
| 
      
 41 
     | 
    
         
            +
                rspec-core (3.1.7)
         
     | 
| 
      
 42 
     | 
    
         
            +
                  rspec-support (~> 3.1.0)
         
     | 
| 
      
 43 
     | 
    
         
            +
                rspec-expectations (3.1.2)
         
     | 
| 
      
 44 
     | 
    
         
            +
                  diff-lcs (>= 1.2.0, < 2.0)
         
     | 
| 
      
 45 
     | 
    
         
            +
                  rspec-support (~> 3.1.0)
         
     | 
| 
      
 46 
     | 
    
         
            +
                rspec-mocks (3.1.3)
         
     | 
| 
      
 47 
     | 
    
         
            +
                  rspec-support (~> 3.1.0)
         
     | 
| 
      
 48 
     | 
    
         
            +
                rspec-support (3.1.2)
         
     | 
| 
      
 49 
     | 
    
         
            +
                slop (3.6.0)
         
     | 
| 
      
 50 
     | 
    
         
            +
             
     | 
| 
      
 51 
     | 
    
         
            +
            PLATFORMS
         
     | 
| 
      
 52 
     | 
    
         
            +
              ruby
         
     | 
| 
      
 53 
     | 
    
         
            +
             
     | 
| 
      
 54 
     | 
    
         
            +
            DEPENDENCIES
         
     | 
| 
      
 55 
     | 
    
         
            +
              actionpack (~> 2.3)
         
     | 
| 
      
 56 
     | 
    
         
            +
              iconv
         
     | 
| 
      
 57 
     | 
    
         
            +
              pry
         
     | 
| 
      
 58 
     | 
    
         
            +
              rails_4_session_flash_backport!
         
     | 
| 
      
 59 
     | 
    
         
            +
              rake
         
     | 
| 
      
 60 
     | 
    
         
            +
              rspec
         
     | 
| 
         @@ -0,0 +1,115 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            PATH
         
     | 
| 
      
 2 
     | 
    
         
            +
              remote: ..
         
     | 
| 
      
 3 
     | 
    
         
            +
              specs:
         
     | 
| 
      
 4 
     | 
    
         
            +
                rails_4_session_flash_backport (0.0.4)
         
     | 
| 
      
 5 
     | 
    
         
            +
                  rails (< 4.0.0)
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            GEM
         
     | 
| 
      
 8 
     | 
    
         
            +
              remote: https://rubygems.org/
         
     | 
| 
      
 9 
     | 
    
         
            +
              specs:
         
     | 
| 
      
 10 
     | 
    
         
            +
                actionmailer (3.2.21)
         
     | 
| 
      
 11 
     | 
    
         
            +
                  actionpack (= 3.2.21)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  mail (~> 2.5.4)
         
     | 
| 
      
 13 
     | 
    
         
            +
                actionpack (3.2.21)
         
     | 
| 
      
 14 
     | 
    
         
            +
                  activemodel (= 3.2.21)
         
     | 
| 
      
 15 
     | 
    
         
            +
                  activesupport (= 3.2.21)
         
     | 
| 
      
 16 
     | 
    
         
            +
                  builder (~> 3.0.0)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  erubis (~> 2.7.0)
         
     | 
| 
      
 18 
     | 
    
         
            +
                  journey (~> 1.0.4)
         
     | 
| 
      
 19 
     | 
    
         
            +
                  rack (~> 1.4.5)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  rack-cache (~> 1.2)
         
     | 
| 
      
 21 
     | 
    
         
            +
                  rack-test (~> 0.6.1)
         
     | 
| 
      
 22 
     | 
    
         
            +
                  sprockets (~> 2.2.1)
         
     | 
| 
      
 23 
     | 
    
         
            +
                activemodel (3.2.21)
         
     | 
| 
      
 24 
     | 
    
         
            +
                  activesupport (= 3.2.21)
         
     | 
| 
      
 25 
     | 
    
         
            +
                  builder (~> 3.0.0)
         
     | 
| 
      
 26 
     | 
    
         
            +
                activerecord (3.2.21)
         
     | 
| 
      
 27 
     | 
    
         
            +
                  activemodel (= 3.2.21)
         
     | 
| 
      
 28 
     | 
    
         
            +
                  activesupport (= 3.2.21)
         
     | 
| 
      
 29 
     | 
    
         
            +
                  arel (~> 3.0.2)
         
     | 
| 
      
 30 
     | 
    
         
            +
                  tzinfo (~> 0.3.29)
         
     | 
| 
      
 31 
     | 
    
         
            +
                activeresource (3.2.21)
         
     | 
| 
      
 32 
     | 
    
         
            +
                  activemodel (= 3.2.21)
         
     | 
| 
      
 33 
     | 
    
         
            +
                  activesupport (= 3.2.21)
         
     | 
| 
      
 34 
     | 
    
         
            +
                activesupport (3.2.21)
         
     | 
| 
      
 35 
     | 
    
         
            +
                  i18n (~> 0.6, >= 0.6.4)
         
     | 
| 
      
 36 
     | 
    
         
            +
                  multi_json (~> 1.0)
         
     | 
| 
      
 37 
     | 
    
         
            +
                arel (3.0.3)
         
     | 
| 
      
 38 
     | 
    
         
            +
                builder (3.0.4)
         
     | 
| 
      
 39 
     | 
    
         
            +
                coderay (1.1.0)
         
     | 
| 
      
 40 
     | 
    
         
            +
                diff-lcs (1.2.5)
         
     | 
| 
      
 41 
     | 
    
         
            +
                erubis (2.7.0)
         
     | 
| 
      
 42 
     | 
    
         
            +
                hike (1.2.3)
         
     | 
| 
      
 43 
     | 
    
         
            +
                i18n (0.7.0)
         
     | 
| 
      
 44 
     | 
    
         
            +
                journey (1.0.4)
         
     | 
| 
      
 45 
     | 
    
         
            +
                json (1.8.2)
         
     | 
| 
      
 46 
     | 
    
         
            +
                mail (2.5.4)
         
     | 
| 
      
 47 
     | 
    
         
            +
                  mime-types (~> 1.16)
         
     | 
| 
      
 48 
     | 
    
         
            +
                  treetop (~> 1.4.8)
         
     | 
| 
      
 49 
     | 
    
         
            +
                method_source (0.8.2)
         
     | 
| 
      
 50 
     | 
    
         
            +
                mime-types (1.25.1)
         
     | 
| 
      
 51 
     | 
    
         
            +
                multi_json (1.10.1)
         
     | 
| 
      
 52 
     | 
    
         
            +
                polyglot (0.3.5)
         
     | 
| 
      
 53 
     | 
    
         
            +
                pry (0.10.1)
         
     | 
| 
      
 54 
     | 
    
         
            +
                  coderay (~> 1.1.0)
         
     | 
| 
      
 55 
     | 
    
         
            +
                  method_source (~> 0.8.1)
         
     | 
| 
      
 56 
     | 
    
         
            +
                  slop (~> 3.4)
         
     | 
| 
      
 57 
     | 
    
         
            +
                rack (1.4.5)
         
     | 
| 
      
 58 
     | 
    
         
            +
                rack-cache (1.2)
         
     | 
| 
      
 59 
     | 
    
         
            +
                  rack (>= 0.4)
         
     | 
| 
      
 60 
     | 
    
         
            +
                rack-ssl (1.3.4)
         
     | 
| 
      
 61 
     | 
    
         
            +
                  rack
         
     | 
| 
      
 62 
     | 
    
         
            +
                rack-test (0.6.3)
         
     | 
| 
      
 63 
     | 
    
         
            +
                  rack (>= 1.0)
         
     | 
| 
      
 64 
     | 
    
         
            +
                rails (3.2.21)
         
     | 
| 
      
 65 
     | 
    
         
            +
                  actionmailer (= 3.2.21)
         
     | 
| 
      
 66 
     | 
    
         
            +
                  actionpack (= 3.2.21)
         
     | 
| 
      
 67 
     | 
    
         
            +
                  activerecord (= 3.2.21)
         
     | 
| 
      
 68 
     | 
    
         
            +
                  activeresource (= 3.2.21)
         
     | 
| 
      
 69 
     | 
    
         
            +
                  activesupport (= 3.2.21)
         
     | 
| 
      
 70 
     | 
    
         
            +
                  bundler (~> 1.0)
         
     | 
| 
      
 71 
     | 
    
         
            +
                  railties (= 3.2.21)
         
     | 
| 
      
 72 
     | 
    
         
            +
                railties (3.2.21)
         
     | 
| 
      
 73 
     | 
    
         
            +
                  actionpack (= 3.2.21)
         
     | 
| 
      
 74 
     | 
    
         
            +
                  activesupport (= 3.2.21)
         
     | 
| 
      
 75 
     | 
    
         
            +
                  rack-ssl (~> 1.3.2)
         
     | 
| 
      
 76 
     | 
    
         
            +
                  rake (>= 0.8.7)
         
     | 
| 
      
 77 
     | 
    
         
            +
                  rdoc (~> 3.4)
         
     | 
| 
      
 78 
     | 
    
         
            +
                  thor (>= 0.14.6, < 2.0)
         
     | 
| 
      
 79 
     | 
    
         
            +
                rake (10.4.2)
         
     | 
| 
      
 80 
     | 
    
         
            +
                rdoc (3.12.2)
         
     | 
| 
      
 81 
     | 
    
         
            +
                  json (~> 1.4)
         
     | 
| 
      
 82 
     | 
    
         
            +
                rspec (3.1.0)
         
     | 
| 
      
 83 
     | 
    
         
            +
                  rspec-core (~> 3.1.0)
         
     | 
| 
      
 84 
     | 
    
         
            +
                  rspec-expectations (~> 3.1.0)
         
     | 
| 
      
 85 
     | 
    
         
            +
                  rspec-mocks (~> 3.1.0)
         
     | 
| 
      
 86 
     | 
    
         
            +
                rspec-core (3.1.7)
         
     | 
| 
      
 87 
     | 
    
         
            +
                  rspec-support (~> 3.1.0)
         
     | 
| 
      
 88 
     | 
    
         
            +
                rspec-expectations (3.1.2)
         
     | 
| 
      
 89 
     | 
    
         
            +
                  diff-lcs (>= 1.2.0, < 2.0)
         
     | 
| 
      
 90 
     | 
    
         
            +
                  rspec-support (~> 3.1.0)
         
     | 
| 
      
 91 
     | 
    
         
            +
                rspec-mocks (3.1.3)
         
     | 
| 
      
 92 
     | 
    
         
            +
                  rspec-support (~> 3.1.0)
         
     | 
| 
      
 93 
     | 
    
         
            +
                rspec-support (3.1.2)
         
     | 
| 
      
 94 
     | 
    
         
            +
                slop (3.6.0)
         
     | 
| 
      
 95 
     | 
    
         
            +
                sprockets (2.2.3)
         
     | 
| 
      
 96 
     | 
    
         
            +
                  hike (~> 1.2)
         
     | 
| 
      
 97 
     | 
    
         
            +
                  multi_json (~> 1.0)
         
     | 
| 
      
 98 
     | 
    
         
            +
                  rack (~> 1.0)
         
     | 
| 
      
 99 
     | 
    
         
            +
                  tilt (~> 1.1, != 1.3.0)
         
     | 
| 
      
 100 
     | 
    
         
            +
                thor (0.19.1)
         
     | 
| 
      
 101 
     | 
    
         
            +
                tilt (1.4.1)
         
     | 
| 
      
 102 
     | 
    
         
            +
                treetop (1.4.15)
         
     | 
| 
      
 103 
     | 
    
         
            +
                  polyglot
         
     | 
| 
      
 104 
     | 
    
         
            +
                  polyglot (>= 0.3.1)
         
     | 
| 
      
 105 
     | 
    
         
            +
                tzinfo (0.3.42)
         
     | 
| 
      
 106 
     | 
    
         
            +
             
     | 
| 
      
 107 
     | 
    
         
            +
            PLATFORMS
         
     | 
| 
      
 108 
     | 
    
         
            +
              ruby
         
     | 
| 
      
 109 
     | 
    
         
            +
             
     | 
| 
      
 110 
     | 
    
         
            +
            DEPENDENCIES
         
     | 
| 
      
 111 
     | 
    
         
            +
              actionpack (~> 3.2)
         
     | 
| 
      
 112 
     | 
    
         
            +
              pry
         
     | 
| 
      
 113 
     | 
    
         
            +
              rails_4_session_flash_backport!
         
     | 
| 
      
 114 
     | 
    
         
            +
              rake
         
     | 
| 
      
 115 
     | 
    
         
            +
              rspec
         
     | 
| 
         @@ -0,0 +1,110 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            PATH
         
     | 
| 
      
 2 
     | 
    
         
            +
              remote: ..
         
     | 
| 
      
 3 
     | 
    
         
            +
              specs:
         
     | 
| 
      
 4 
     | 
    
         
            +
                rails_4_session_flash_backport (0.0.4)
         
     | 
| 
      
 5 
     | 
    
         
            +
                  rails (< 4.0.0)
         
     | 
| 
      
 6 
     | 
    
         
            +
             
     | 
| 
      
 7 
     | 
    
         
            +
            GEM
         
     | 
| 
      
 8 
     | 
    
         
            +
              remote: https://rubygems.org/
         
     | 
| 
      
 9 
     | 
    
         
            +
              specs:
         
     | 
| 
      
 10 
     | 
    
         
            +
                actionmailer (4.2.0)
         
     | 
| 
      
 11 
     | 
    
         
            +
                  actionpack (= 4.2.0)
         
     | 
| 
      
 12 
     | 
    
         
            +
                  actionview (= 4.2.0)
         
     | 
| 
      
 13 
     | 
    
         
            +
                  activejob (= 4.2.0)
         
     | 
| 
      
 14 
     | 
    
         
            +
                  mail (~> 2.5, >= 2.5.4)
         
     | 
| 
      
 15 
     | 
    
         
            +
                  rails-dom-testing (~> 1.0, >= 1.0.5)
         
     | 
| 
      
 16 
     | 
    
         
            +
                actionpack (4.2.0)
         
     | 
| 
      
 17 
     | 
    
         
            +
                  actionview (= 4.2.0)
         
     | 
| 
      
 18 
     | 
    
         
            +
                  activesupport (= 4.2.0)
         
     | 
| 
      
 19 
     | 
    
         
            +
                  rack (~> 1.6.0)
         
     | 
| 
      
 20 
     | 
    
         
            +
                  rack-test (~> 0.6.2)
         
     | 
| 
      
 21 
     | 
    
         
            +
                  rails-dom-testing (~> 1.0, >= 1.0.5)
         
     | 
| 
      
 22 
     | 
    
         
            +
                  rails-html-sanitizer (~> 1.0, >= 1.0.1)
         
     | 
| 
      
 23 
     | 
    
         
            +
                actionview (4.2.0)
         
     | 
| 
      
 24 
     | 
    
         
            +
                  activesupport (= 4.2.0)
         
     | 
| 
      
 25 
     | 
    
         
            +
                  builder (~> 3.1)
         
     | 
| 
      
 26 
     | 
    
         
            +
                  erubis (~> 2.7.0)
         
     | 
| 
      
 27 
     | 
    
         
            +
                  rails-dom-testing (~> 1.0, >= 1.0.5)
         
     | 
| 
      
 28 
     | 
    
         
            +
                  rails-html-sanitizer (~> 1.0, >= 1.0.1)
         
     | 
| 
      
 29 
     | 
    
         
            +
                activejob (4.2.0)
         
     | 
| 
      
 30 
     | 
    
         
            +
                  activesupport (= 4.2.0)
         
     | 
| 
      
 31 
     | 
    
         
            +
                  globalid (>= 0.3.0)
         
     | 
| 
      
 32 
     | 
    
         
            +
                activemodel (4.2.0)
         
     | 
| 
      
 33 
     | 
    
         
            +
                  activesupport (= 4.2.0)
         
     | 
| 
      
 34 
     | 
    
         
            +
                  builder (~> 3.1)
         
     | 
| 
      
 35 
     | 
    
         
            +
                activerecord (4.2.0)
         
     | 
| 
      
 36 
     | 
    
         
            +
                  activemodel (= 4.2.0)
         
     | 
| 
      
 37 
     | 
    
         
            +
                  activesupport (= 4.2.0)
         
     | 
| 
      
 38 
     | 
    
         
            +
                  arel (~> 6.0)
         
     | 
| 
      
 39 
     | 
    
         
            +
                activesupport (4.2.0)
         
     | 
| 
      
 40 
     | 
    
         
            +
                  i18n (~> 0.7)
         
     | 
| 
      
 41 
     | 
    
         
            +
                  json (~> 1.7, >= 1.7.7)
         
     | 
| 
      
 42 
     | 
    
         
            +
                  minitest (~> 5.1)
         
     | 
| 
      
 43 
     | 
    
         
            +
                  thread_safe (~> 0.3, >= 0.3.4)
         
     | 
| 
      
 44 
     | 
    
         
            +
                  tzinfo (~> 1.1)
         
     | 
| 
      
 45 
     | 
    
         
            +
                arel (6.0.0)
         
     | 
| 
      
 46 
     | 
    
         
            +
                builder (3.2.2)
         
     | 
| 
      
 47 
     | 
    
         
            +
                coderay (1.1.0)
         
     | 
| 
      
 48 
     | 
    
         
            +
                diff-lcs (1.2.5)
         
     | 
| 
      
 49 
     | 
    
         
            +
                erubis (2.7.0)
         
     | 
| 
      
 50 
     | 
    
         
            +
                globalid (0.3.0)
         
     | 
| 
      
 51 
     | 
    
         
            +
                  activesupport (>= 4.1.0)
         
     | 
| 
      
 52 
     | 
    
         
            +
                i18n (0.7.0)
         
     | 
| 
      
 53 
     | 
    
         
            +
                json (1.8.2)
         
     | 
| 
      
 54 
     | 
    
         
            +
                loofah (2.0.1)
         
     | 
| 
      
 55 
     | 
    
         
            +
                  nokogiri (>= 1.5.9)
         
     | 
| 
      
 56 
     | 
    
         
            +
                mail (2.6.3)
         
     | 
| 
      
 57 
     | 
    
         
            +
                  mime-types (>= 1.16, < 3)
         
     | 
| 
      
 58 
     | 
    
         
            +
                method_source (0.8.2)
         
     | 
| 
      
 59 
     | 
    
         
            +
                mime-types (2.4.3)
         
     | 
| 
      
 60 
     | 
    
         
            +
                mini_portile (0.6.2)
         
     | 
| 
      
 61 
     | 
    
         
            +
                minitest (5.5.1)
         
     | 
| 
      
 62 
     | 
    
         
            +
                nokogiri (1.6.6.2)
         
     | 
| 
      
 63 
     | 
    
         
            +
                  mini_portile (~> 0.6.0)
         
     | 
| 
      
 64 
     | 
    
         
            +
                pry (0.10.1)
         
     | 
| 
      
 65 
     | 
    
         
            +
                  coderay (~> 1.1.0)
         
     | 
| 
      
 66 
     | 
    
         
            +
                  method_source (~> 0.8.1)
         
     | 
| 
      
 67 
     | 
    
         
            +
                  slop (~> 3.4)
         
     | 
| 
      
 68 
     | 
    
         
            +
                rack (1.6.0)
         
     | 
| 
      
 69 
     | 
    
         
            +
                rack-test (0.6.3)
         
     | 
| 
      
 70 
     | 
    
         
            +
                  rack (>= 1.0)
         
     | 
| 
      
 71 
     | 
    
         
            +
                rails (0.9.5)
         
     | 
| 
      
 72 
     | 
    
         
            +
                  actionmailer (>= 0.6.1)
         
     | 
| 
      
 73 
     | 
    
         
            +
                  actionpack (>= 1.4.0)
         
     | 
| 
      
 74 
     | 
    
         
            +
                  activerecord (>= 1.6.0)
         
     | 
| 
      
 75 
     | 
    
         
            +
                  rake (>= 0.4.15)
         
     | 
| 
      
 76 
     | 
    
         
            +
                rails-deprecated_sanitizer (1.0.3)
         
     | 
| 
      
 77 
     | 
    
         
            +
                  activesupport (>= 4.2.0.alpha)
         
     | 
| 
      
 78 
     | 
    
         
            +
                rails-dom-testing (1.0.5)
         
     | 
| 
      
 79 
     | 
    
         
            +
                  activesupport (>= 4.2.0.beta, < 5.0)
         
     | 
| 
      
 80 
     | 
    
         
            +
                  nokogiri (~> 1.6.0)
         
     | 
| 
      
 81 
     | 
    
         
            +
                  rails-deprecated_sanitizer (>= 1.0.1)
         
     | 
| 
      
 82 
     | 
    
         
            +
                rails-html-sanitizer (1.0.1)
         
     | 
| 
      
 83 
     | 
    
         
            +
                  loofah (~> 2.0)
         
     | 
| 
      
 84 
     | 
    
         
            +
                rake (10.4.2)
         
     | 
| 
      
 85 
     | 
    
         
            +
                rspec (3.1.0)
         
     | 
| 
      
 86 
     | 
    
         
            +
                  rspec-core (~> 3.1.0)
         
     | 
| 
      
 87 
     | 
    
         
            +
                  rspec-expectations (~> 3.1.0)
         
     | 
| 
      
 88 
     | 
    
         
            +
                  rspec-mocks (~> 3.1.0)
         
     | 
| 
      
 89 
     | 
    
         
            +
                rspec-core (3.1.7)
         
     | 
| 
      
 90 
     | 
    
         
            +
                  rspec-support (~> 3.1.0)
         
     | 
| 
      
 91 
     | 
    
         
            +
                rspec-expectations (3.1.2)
         
     | 
| 
      
 92 
     | 
    
         
            +
                  diff-lcs (>= 1.2.0, < 2.0)
         
     | 
| 
      
 93 
     | 
    
         
            +
                  rspec-support (~> 3.1.0)
         
     | 
| 
      
 94 
     | 
    
         
            +
                rspec-mocks (3.1.3)
         
     | 
| 
      
 95 
     | 
    
         
            +
                  rspec-support (~> 3.1.0)
         
     | 
| 
      
 96 
     | 
    
         
            +
                rspec-support (3.1.2)
         
     | 
| 
      
 97 
     | 
    
         
            +
                slop (3.6.0)
         
     | 
| 
      
 98 
     | 
    
         
            +
                thread_safe (0.3.4)
         
     | 
| 
      
 99 
     | 
    
         
            +
                tzinfo (1.2.2)
         
     | 
| 
      
 100 
     | 
    
         
            +
                  thread_safe (~> 0.1)
         
     | 
| 
      
 101 
     | 
    
         
            +
             
     | 
| 
      
 102 
     | 
    
         
            +
            PLATFORMS
         
     | 
| 
      
 103 
     | 
    
         
            +
              ruby
         
     | 
| 
      
 104 
     | 
    
         
            +
             
     | 
| 
      
 105 
     | 
    
         
            +
            DEPENDENCIES
         
     | 
| 
      
 106 
     | 
    
         
            +
              actionpack (~> 4.0)
         
     | 
| 
      
 107 
     | 
    
         
            +
              pry
         
     | 
| 
      
 108 
     | 
    
         
            +
              rails_4_session_flash_backport!
         
     | 
| 
      
 109 
     | 
    
         
            +
              rake
         
     | 
| 
      
 110 
     | 
    
         
            +
              rspec
         
     | 
| 
         @@ -7,6 +7,8 @@ when 2 
     | 
|
| 
       7 
7 
     | 
    
         
             
              require 'rails_4_session_flash_backport/rails2/session_with_indifferent_access'
         
     | 
| 
       8 
8 
     | 
    
         
             
            when 3
         
     | 
| 
       9 
9 
     | 
    
         
             
              require 'rails_4_session_flash_backport/rails3/flash_hash'
         
     | 
| 
      
 10 
     | 
    
         
            +
            when 4
         
     | 
| 
      
 11 
     | 
    
         
            +
              require 'rails_4_session_flash_backport/rails4/flash_hash'
         
     | 
| 
       10 
12 
     | 
    
         
             
            else
         
     | 
| 
       11 
13 
     | 
    
         
             
              Rails.logger.warn "rails_4_session_flash_backport doesnt yet do anything on Rails #{Rails.version}"
         
     | 
| 
       12 
14 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,4 +1,5 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # encoding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'active_support'
         
     | 
| 
       2 
3 
     | 
    
         
             
            require 'action_controller/flash'
         
     | 
| 
       3 
4 
     | 
    
         
             
            require 'action_controller/test_process'
         
     | 
| 
       4 
5 
     | 
    
         
             
            # Backport Rails 4 style storing the flash as basic ruby types to Rails 2
         
     | 
| 
         @@ -6,30 +7,32 @@ module ActionController #:nodoc: 
     | 
|
| 
       6 
7 
     | 
    
         
             
              module Flash
         
     | 
| 
       7 
8 
     | 
    
         
             
                class FlashHash
         
     | 
| 
       8 
9 
     | 
    
         
             
                  def self.from_session_value(value)
         
     | 
| 
       9 
     | 
    
         
            -
                     
     | 
| 
       10 
     | 
    
         
            -
             
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
             
     | 
| 
      
 10 
     | 
    
         
            +
                    case value
         
     | 
| 
      
 11 
     | 
    
         
            +
                    when FlashHash # Rails 2.3
         
     | 
| 
      
 12 
     | 
    
         
            +
                      value.tap(&:sweep)
         
     | 
| 
      
 13 
     | 
    
         
            +
                    when ::ActionDispatch::Flash::FlashHash # Rails 3.2
         
     | 
| 
      
 14 
     | 
    
         
            +
                      flashes = value.instance_variable_get(:@flashes)
         
     | 
| 
      
 15 
     | 
    
         
            +
                      if discard = value.instance_variable_get(:@used).presence
         
     | 
| 
      
 16 
     | 
    
         
            +
                        flashes.except!(*discard)
         
     | 
| 
      
 17 
     | 
    
         
            +
                      end
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
      
 19 
     | 
    
         
            +
                      new_from_session(flashes)
         
     | 
| 
      
 20 
     | 
    
         
            +
                    when Hash # Rails 4.0
         
     | 
| 
      
 21 
     | 
    
         
            +
                      flashes = value['flashes'] || {}
         
     | 
| 
      
 22 
     | 
    
         
            +
                      if discard = value['discard'].presence
         
     | 
| 
      
 23 
     | 
    
         
            +
                        flashes.except!(*discard)
         
     | 
| 
      
 24 
     | 
    
         
            +
                      end
         
     | 
| 
       21 
25 
     | 
    
         | 
| 
       22 
     | 
    
         
            -
             
     | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
                    flash
         
     | 
| 
      
 26 
     | 
    
         
            +
                      new_from_session(flashes)
         
     | 
| 
      
 27 
     | 
    
         
            +
                    else
         
     | 
| 
      
 28 
     | 
    
         
            +
                      new
         
     | 
| 
      
 29 
     | 
    
         
            +
                    end
         
     | 
| 
       27 
30 
     | 
    
         
             
                  end
         
     | 
| 
       28 
31 
     | 
    
         | 
| 
       29 
32 
     | 
    
         
             
                  def to_session_value
         
     | 
| 
       30 
33 
     | 
    
         
             
                    return nil if empty?
         
     | 
| 
       31 
     | 
    
         
            -
                     
     | 
| 
       32 
     | 
    
         
            -
                    {' 
     | 
| 
      
 34 
     | 
    
         
            +
                    discard = @used.select { |key, used| used }.keys
         
     | 
| 
      
 35 
     | 
    
         
            +
                    {'flashes' => Hash[to_a].except(*discard)}
         
     | 
| 
       33 
36 
     | 
    
         
             
                  end
         
     | 
| 
       34 
37 
     | 
    
         | 
| 
       35 
38 
     | 
    
         
             
                  def store(session, key = "flash")
         
     | 
| 
         @@ -38,12 +41,12 @@ module ActionController #:nodoc: 
     | 
|
| 
       38 
41 
     | 
    
         | 
| 
       39 
42 
     | 
    
         
             
                  private
         
     | 
| 
       40 
43 
     | 
    
         | 
| 
       41 
     | 
    
         
            -
                  def self. 
     | 
| 
       42 
     | 
    
         
            -
                    new.tap do | 
     | 
| 
       43 
     | 
    
         
            -
                      flashes.each do | 
     | 
| 
       44 
     | 
    
         
            -
                         
     | 
| 
      
 44 
     | 
    
         
            +
                  def self.new_from_session(flashes)
         
     | 
| 
      
 45 
     | 
    
         
            +
                    new.tap do |flash|
         
     | 
| 
      
 46 
     | 
    
         
            +
                      flashes.each do |key, value|
         
     | 
| 
      
 47 
     | 
    
         
            +
                        flash[key] = value
         
     | 
| 
      
 48 
     | 
    
         
            +
                        flash.discard key
         
     | 
| 
       45 
49 
     | 
    
         
             
                      end
         
     | 
| 
       46 
     | 
    
         
            -
                      flash_hash.instance_variable_set("@used", used)
         
     | 
| 
       47 
50 
     | 
    
         
             
                    end
         
     | 
| 
       48 
51 
     | 
    
         
             
                  end
         
     | 
| 
       49 
52 
     | 
    
         
             
                end
         
     | 
| 
         @@ -53,7 +56,6 @@ module ActionController #:nodoc: 
     | 
|
| 
       53 
56 
     | 
    
         
             
                  def flash #:doc:
         
     | 
| 
       54 
57 
     | 
    
         
             
                    if !defined?(@_flash)
         
     | 
| 
       55 
58 
     | 
    
         
             
                      @_flash = Flash::FlashHash.from_session_value(session["flash"])
         
     | 
| 
       56 
     | 
    
         
            -
                      @_flash.sweep
         
     | 
| 
       57 
59 
     | 
    
         
             
                    end
         
     | 
| 
       58 
60 
     | 
    
         | 
| 
       59 
61 
     | 
    
         
             
                    @_flash
         
     | 
| 
         @@ -61,9 +63,9 @@ module ActionController #:nodoc: 
     | 
|
| 
       61 
63 
     | 
    
         
             
                end
         
     | 
| 
       62 
64 
     | 
    
         
             
              end
         
     | 
| 
       63 
65 
     | 
    
         
             
              module TestResponseBehavior #:nodoc:
         
     | 
| 
       64 
     | 
    
         
            -
                # A shortcut to the flash. 
     | 
| 
      
 66 
     | 
    
         
            +
                # A shortcut to the flash.
         
     | 
| 
       65 
67 
     | 
    
         
             
                def flash
         
     | 
| 
       66 
     | 
    
         
            -
                  ActionController::Flash::FlashHash.from_session_value(session["flash"]) 
     | 
| 
      
 68 
     | 
    
         
            +
                  ActionController::Flash::FlashHash.from_session_value(session["flash"])
         
     | 
| 
       67 
69 
     | 
    
         
             
                end
         
     | 
| 
       68 
70 
     | 
    
         
             
              end
         
     | 
| 
       69 
71 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,31 +1,45 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            # encoding: utf-8
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'active_support/core_ext/hash/except'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'action_dispatch'
         
     | 
| 
       2 
4 
     | 
    
         
             
            require 'action_dispatch/middleware/flash'
         
     | 
| 
      
 5 
     | 
    
         
            +
             
     | 
| 
       3 
6 
     | 
    
         
             
            # Backport Rails 4 style storing the flash as basic ruby types to Rails 3
         
     | 
| 
       4 
7 
     | 
    
         
             
            module ActionDispatch
         
     | 
| 
       5 
8 
     | 
    
         
             
              class Request < Rack::Request
         
     | 
| 
       6 
9 
     | 
    
         
             
                def flash
         
     | 
| 
       7 
     | 
    
         
            -
                  @env[Flash::KEY] ||= Flash::FlashHash.from_session_value(session["flash"]) 
     | 
| 
      
 10 
     | 
    
         
            +
                  @env[Flash::KEY] ||= Flash::FlashHash.from_session_value(session["flash"])
         
     | 
| 
       8 
11 
     | 
    
         
             
                end
         
     | 
| 
       9 
12 
     | 
    
         
             
              end
         
     | 
| 
      
 13 
     | 
    
         
            +
             
     | 
| 
       10 
14 
     | 
    
         
             
              class Flash
         
     | 
| 
       11 
15 
     | 
    
         
             
                class FlashHash
         
     | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
16 
     | 
    
         
             
                  def self.from_session_value(value)
         
     | 
| 
      
 17 
     | 
    
         
            +
                    flashes = discard = nil
         
     | 
| 
      
 18 
     | 
    
         
            +
             
     | 
| 
       14 
19 
     | 
    
         
             
                    case value
         
     | 
| 
       15 
20 
     | 
    
         
             
                    when ::ActionController::Flash::FlashHash # Rails 2.x
         
     | 
| 
       16 
     | 
    
         
            -
                      new(value 
     | 
| 
      
 21 
     | 
    
         
            +
                      flashes = Hash.new.update(value)
         
     | 
| 
      
 22 
     | 
    
         
            +
                      discard = value.instance_variable_get(:@used).select{|a,b| b}.keys
         
     | 
| 
       17 
23 
     | 
    
         
             
                    when ::ActionDispatch::Flash::FlashHash # Rails 3.1, 3.2
         
     | 
| 
       18 
     | 
    
         
            -
                       
     | 
| 
      
 24 
     | 
    
         
            +
                      flashes = value.instance_variable_get(:@flashes)
         
     | 
| 
      
 25 
     | 
    
         
            +
                      discard = value.instance_variable_get(:@used)
         
     | 
| 
       19 
26 
     | 
    
         
             
                    when Hash # Rails 4.0, we backported to 2.3 too
         
     | 
| 
       20 
     | 
    
         
            -
                       
     | 
| 
       21 
     | 
    
         
            -
             
     | 
| 
       22 
     | 
    
         
            -
                      new
         
     | 
| 
      
 27 
     | 
    
         
            +
                      flashes = value['flashes']
         
     | 
| 
      
 28 
     | 
    
         
            +
                      discard = value['discard']
         
     | 
| 
       23 
29 
     | 
    
         
             
                    end
         
     | 
| 
      
 30 
     | 
    
         
            +
             
     | 
| 
      
 31 
     | 
    
         
            +
                    flashes ||= {}
         
     | 
| 
      
 32 
     | 
    
         
            +
                    if discard
         
     | 
| 
      
 33 
     | 
    
         
            +
                      flashes.except!(*discard)
         
     | 
| 
      
 34 
     | 
    
         
            +
                    end
         
     | 
| 
      
 35 
     | 
    
         
            +
             
     | 
| 
      
 36 
     | 
    
         
            +
                    new(flashes, flashes.keys)
         
     | 
| 
       24 
37 
     | 
    
         
             
                  end
         
     | 
| 
       25 
38 
     | 
    
         | 
| 
       26 
39 
     | 
    
         
             
                  def to_session_value
         
     | 
| 
       27 
     | 
    
         
            -
                     
     | 
| 
       28 
     | 
    
         
            -
                     
     | 
| 
      
 40 
     | 
    
         
            +
                    flashes_to_keep = @flashes.except(*@used)
         
     | 
| 
      
 41 
     | 
    
         
            +
                    return nil if flashes_to_keep.empty?
         
     | 
| 
      
 42 
     | 
    
         
            +
                    {'flashes' => flashes_to_keep}
         
     | 
| 
       29 
43 
     | 
    
         
             
                  end
         
     | 
| 
       30 
44 
     | 
    
         | 
| 
       31 
45 
     | 
    
         
             
                  def initialize(flashes = {}, discard = []) #:nodoc:
         
     | 
| 
         @@ -65,7 +79,6 @@ end 
     | 
|
| 
       65 
79 
     | 
    
         
             
            module ActionController
         
     | 
| 
       66 
80 
     | 
    
         
             
              module Flash
         
     | 
| 
       67 
81 
     | 
    
         
             
                class FlashHash < Hash
         
     | 
| 
       68 
     | 
    
         
            -
             
     | 
| 
       69 
82 
     | 
    
         
             
                  def self._load(args)
         
     | 
| 
       70 
83 
     | 
    
         
             
                    {}
         
     | 
| 
       71 
84 
     | 
    
         
             
                  end
         
     | 
| 
         @@ -0,0 +1,51 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'active_support/core_ext/hash/except'
         
     | 
| 
      
 2 
     | 
    
         
            +
            require 'action_dispatch'
         
     | 
| 
      
 3 
     | 
    
         
            +
            require 'action_dispatch/middleware/flash'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            # Backport discarding before session persist to rails 4
         
     | 
| 
      
 6 
     | 
    
         
            +
            module ActionDispatch
         
     | 
| 
      
 7 
     | 
    
         
            +
              class Flash
         
     | 
| 
      
 8 
     | 
    
         
            +
                class FlashHash
         
     | 
| 
      
 9 
     | 
    
         
            +
                  def self.from_session_value(value)
         
     | 
| 
      
 10 
     | 
    
         
            +
                    flashes = discard = nil
         
     | 
| 
      
 11 
     | 
    
         
            +
             
     | 
| 
      
 12 
     | 
    
         
            +
                    case value
         
     | 
| 
      
 13 
     | 
    
         
            +
                    when ::ActionController::Flash::FlashHash # Rails 2.x
         
     | 
| 
      
 14 
     | 
    
         
            +
                      flashes = Hash.new.update(value)
         
     | 
| 
      
 15 
     | 
    
         
            +
                      discard = value.instance_variable_get(:@used).select{|a,b| b}.keys
         
     | 
| 
      
 16 
     | 
    
         
            +
                    when ::ActionDispatch::Flash::FlashHash # Rails 3.1, 3.2
         
     | 
| 
      
 17 
     | 
    
         
            +
                      flashes = value.instance_variable_get(:@flashes)
         
     | 
| 
      
 18 
     | 
    
         
            +
                      discard = value.instance_variable_get(:@used)
         
     | 
| 
      
 19 
     | 
    
         
            +
                    when Hash # Rails 4.0, we backported to 2.3 too
         
     | 
| 
      
 20 
     | 
    
         
            +
                      flashes = value['flashes']
         
     | 
| 
      
 21 
     | 
    
         
            +
                      discard = value['discard']
         
     | 
| 
      
 22 
     | 
    
         
            +
                    end
         
     | 
| 
      
 23 
     | 
    
         
            +
             
     | 
| 
      
 24 
     | 
    
         
            +
                    flashes ||= {}
         
     | 
| 
      
 25 
     | 
    
         
            +
                    if discard
         
     | 
| 
      
 26 
     | 
    
         
            +
                      flashes.except!(*discard)
         
     | 
| 
      
 27 
     | 
    
         
            +
                    end
         
     | 
| 
      
 28 
     | 
    
         
            +
             
     | 
| 
      
 29 
     | 
    
         
            +
                    new(flashes, flashes.keys)
         
     | 
| 
      
 30 
     | 
    
         
            +
                  end
         
     | 
| 
      
 31 
     | 
    
         
            +
             
     | 
| 
      
 32 
     | 
    
         
            +
                  def to_session_value
         
     | 
| 
      
 33 
     | 
    
         
            +
                    flashes_to_keep = @flashes.except(*@discard)
         
     | 
| 
      
 34 
     | 
    
         
            +
                    return nil if flashes_to_keep.empty?
         
     | 
| 
      
 35 
     | 
    
         
            +
                    {'flashes' => flashes_to_keep}
         
     | 
| 
      
 36 
     | 
    
         
            +
                  end
         
     | 
| 
      
 37 
     | 
    
         
            +
                end
         
     | 
| 
      
 38 
     | 
    
         
            +
              end
         
     | 
| 
      
 39 
     | 
    
         
            +
            end
         
     | 
| 
      
 40 
     | 
    
         
            +
             
     | 
| 
      
 41 
     | 
    
         
            +
            # This magic here allows us to unmarshal the old Rails 2.x ActionController::Flash::FlashHash
         
     | 
| 
      
 42 
     | 
    
         
            +
            module ActionController
         
     | 
| 
      
 43 
     | 
    
         
            +
              module Flash
         
     | 
| 
      
 44 
     | 
    
         
            +
                class FlashHash < Hash
         
     | 
| 
      
 45 
     | 
    
         
            +
                  def self._load(args)
         
     | 
| 
      
 46 
     | 
    
         
            +
                    {}
         
     | 
| 
      
 47 
     | 
    
         
            +
                  end
         
     | 
| 
      
 48 
     | 
    
         
            +
                end
         
     | 
| 
      
 49 
     | 
    
         
            +
              end
         
     | 
| 
      
 50 
     | 
    
         
            +
            end
         
     | 
| 
      
 51 
     | 
    
         
            +
             
     | 
| 
         @@ -6,10 +6,10 @@ require 'rails_4_session_flash_backport/version' 
     | 
|
| 
       6 
6 
     | 
    
         
             
            Gem::Specification.new do |gem|
         
     | 
| 
       7 
7 
     | 
    
         
             
              gem.name          = "rails_4_session_flash_backport"
         
     | 
| 
       8 
8 
     | 
    
         
             
              gem.version       = Rails4SessionFlashBackport::VERSION
         
     | 
| 
       9 
     | 
    
         
            -
              gem.authors       = ["Lucas Parry"]
         
     | 
| 
       10 
     | 
    
         
            -
              gem.email         = ["lparry@gmail.com"]
         
     | 
| 
       11 
     | 
    
         
            -
              gem.description   = %q{Store flash in the session in Rails 4 style on Rails 2/3}
         
     | 
| 
       12 
     | 
    
         
            -
              gem.summary       = %q{Backport of the way Rails 4 stores flash messages in the session to Rails 2 
     | 
| 
      
 9 
     | 
    
         
            +
              gem.authors       = ["Lucas Parry", "Samuel Cochran"]
         
     | 
| 
      
 10 
     | 
    
         
            +
              gem.email         = ["lparry@gmail.com", "sj26@sj26.com"]
         
     | 
| 
      
 11 
     | 
    
         
            +
              gem.description   = %q{Store flash in the session in Rails 4 style on Rails 2/3/4}
         
     | 
| 
      
 12 
     | 
    
         
            +
              gem.summary       = %q{Backport of the way Rails 4 stores flash messages in the session to Rails 2/3/4, so you can safely take a session betweens Rails versions without things exploding.}
         
     | 
| 
       13 
13 
     | 
    
         
             
              gem.homepage      = "https://github.com/envato/rails_4_session_flash_backport"
         
     | 
| 
       14 
14 
     | 
    
         | 
| 
       15 
15 
     | 
    
         
             
              gem.files         = `git ls-files`.split($/)
         
     | 
| 
         @@ -17,5 +17,9 @@ Gem::Specification.new do |gem| 
     | 
|
| 
       17 
17 
     | 
    
         
             
              gem.test_files    = gem.files.grep(%r{^(test|spec|features)/})
         
     | 
| 
       18 
18 
     | 
    
         
             
              gem.require_paths = ["lib"]
         
     | 
| 
       19 
19 
     | 
    
         | 
| 
       20 
     | 
    
         
            -
              gem.add_runtime_dependency 'rails', '< 4. 
     | 
| 
      
 20 
     | 
    
         
            +
              gem.add_runtime_dependency 'rails', '>= 2.0', '< 4.3'
         
     | 
| 
      
 21 
     | 
    
         
            +
             
     | 
| 
      
 22 
     | 
    
         
            +
              gem.add_development_dependency 'rake'
         
     | 
| 
      
 23 
     | 
    
         
            +
              gem.add_development_dependency 'rspec'
         
     | 
| 
      
 24 
     | 
    
         
            +
              gem.add_development_dependency 'pry'
         
     | 
| 
       21 
25 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,45 +1,62 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'base64'
         
     | 
| 
       1 
2 
     | 
    
         
             
            require 'action_controller'
         
     | 
| 
       2 
3 
     | 
    
         
             
            require 'rails_4_session_flash_backport/rails2/flash_hash'
         
     | 
| 
       3 
4 
     | 
    
         | 
| 
       4 
     | 
    
         
            -
            describe ActionController::Flash::FlashHash, " 
     | 
| 
      
 5 
     | 
    
         
            +
            describe ActionController::Flash::FlashHash, "backport" do
         
     | 
| 
      
 6 
     | 
    
         
            +
              context "#from_session_value" do
         
     | 
| 
      
 7 
     | 
    
         
            +
                subject(:flash) { described_class.from_session_value(value) }
         
     | 
| 
       5 
8 
     | 
    
         | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
              let(:rails_3_vanilla)   { Marshal.load(rails_3_marshaled) }
         
     | 
| 
       10 
     | 
    
         
            -
              let(:rails_4_style)     { {'flashes' => {:notice => "I'm a notice", :error => "I'm an error"}, 'discard' => [:notice]} }
         
     | 
| 
      
 9 
     | 
    
         
            +
                context "with rails 4 style session value" do
         
     | 
| 
      
 10 
     | 
    
         
            +
                  context "without discards" do
         
     | 
| 
      
 11 
     | 
    
         
            +
                    let(:value) { {"flashes" => {"greeting" => "Hello"}} }
         
     | 
| 
       11 
12 
     | 
    
         | 
| 
       12 
     | 
    
         
            -
             
     | 
| 
       13 
     | 
    
         
            -
             
     | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
      
 13 
     | 
    
         
            +
                    it "is the expected flash" do
         
     | 
| 
      
 14 
     | 
    
         
            +
                      expect(flash).to eq("greeting" => "Hello")
         
     | 
| 
      
 15 
     | 
    
         
            +
                    end
         
     | 
| 
      
 16 
     | 
    
         
            +
                  end
         
     | 
| 
       15 
17 
     | 
    
         | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
       17 
     | 
    
         
            -
             
     | 
| 
       18 
     | 
    
         
            -
                   rails_2_vanilla.to_session_value.should be_a(Hash)
         
     | 
| 
       19 
     | 
    
         
            -
                   rails_2_vanilla.to_session_value.should == rails_4_style
         
     | 
| 
       20 
     | 
    
         
            -
                 end
         
     | 
| 
       21 
     | 
    
         
            -
               end
         
     | 
| 
      
 18 
     | 
    
         
            +
                  context "with discards" do
         
     | 
| 
      
 19 
     | 
    
         
            +
                    let(:value) { {"flashes" => {"greeting" => "Hello", "farewell" => "Goodbye"}, "discard" => ["farewell"]} }
         
     | 
| 
       22 
20 
     | 
    
         | 
| 
       23 
     | 
    
         
            -
             
     | 
| 
       24 
     | 
    
         
            -
             
     | 
| 
       25 
     | 
    
         
            -
             
     | 
| 
       26 
     | 
    
         
            -
                   
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
       30 
     | 
    
         
            -
                   
     | 
| 
      
 21 
     | 
    
         
            +
                    it "is the expected flash" do
         
     | 
| 
      
 22 
     | 
    
         
            +
                      expect(flash).to eq("greeting" => "Hello")
         
     | 
| 
      
 23 
     | 
    
         
            +
                    end
         
     | 
| 
      
 24 
     | 
    
         
            +
                  end
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                context "with rails 3 style session value" do
         
     | 
| 
      
 28 
     | 
    
         
            +
                  # {"session_id"=>"f8e1b8152ba7609c28bbb17ec9263ba7", "flash"=>#<ActionDispatch::Flash::FlashHash:0x00000000000000 @used=#<Set: {"farewell"}>, @closed=false, @flashes={"greeting"=>"Hello", "farewell"=>"Goodbye"}, @now=nil>}
         
     | 
| 
      
 29 
     | 
    
         
            +
                  let(:cookie) { 'BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWY4ZTFiODE1MmJhNzYwOWMyOGJiYjE3ZWM5MjYzYmE3BjsAVEkiCmZsYXNoBjsARm86JUFjdGlvbkRpc3BhdGNoOjpGbGFzaDo6Rmxhc2hIYXNoCToKQHVzZWRvOghTZXQGOgpAaGFzaHsGSSINZmFyZXdlbGwGOwBUVDoMQGNsb3NlZEY6DUBmbGFzaGVzewdJIg1ncmVldGluZwY7AFRJIgpIZWxsbwY7AFRJIg1mYXJld2VsbAY7AFRJIgxHb29kYnllBjsAVDoJQG5vdzA=' }
         
     | 
| 
      
 30 
     | 
    
         
            +
                  let(:session) { Marshal.load(Base64.decode64(cookie)) }
         
     | 
| 
      
 31 
     | 
    
         
            +
                  let(:value) { session["flash"] }
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                  it "is the expected flash" do
         
     | 
| 
      
 34 
     | 
    
         
            +
                    expect(flash).to eq("greeting" => "Hello")
         
     | 
| 
      
 35 
     | 
    
         
            +
                  end
         
     | 
| 
       31 
36 
     | 
    
         
             
                end
         
     | 
| 
       32 
37 
     | 
    
         | 
| 
       33 
     | 
    
         
            -
                 
     | 
| 
       34 
     | 
    
         
            -
                   
     | 
| 
      
 38 
     | 
    
         
            +
                context "with rails 2 style session value" do
         
     | 
| 
      
 39 
     | 
    
         
            +
                  # {"session_id"=>"f8e1b8152ba7609c28bbb17ec9263ba7", "flash"=>#<ActionController::Flash::FlashHash:0x00000000000000 @used={"farewell"=>true}, {"greeting"=>"Hello", "farewell"=>"Goodbye"}>}
         
     | 
| 
      
 40 
     | 
    
         
            +
                  let(:cookie) { 'BAh7B0kiD3Nlc3Npb25faWQGOgZFVEkiJWY4ZTFiODE1MmJhNzYwOWMyOGJiYjE3ZWM5MjYzYmE3BjsAVEkiCmZsYXNoBjsAVElDOidBY3Rpb25Db250cm9sbGVyOjpGbGFzaDo6Rmxhc2hIYXNoewdJIg1mYXJld2VsbAY7AFRJIgxHb29kYnllBjsAVEkiDWdyZWV0aW5nBjsAVEkiCkhlbGxvBjsAVAY6CkB1c2VkewZJIg1mYXJld2VsbAY7AFRU' }
         
     | 
| 
      
 41 
     | 
    
         
            +
                  let(:session) { Marshal.load(Base64.decode64(cookie)) }
         
     | 
| 
      
 42 
     | 
    
         
            +
                  let(:value) { session["flash"] }
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                  it "is the expected flash" do
         
     | 
| 
      
 45 
     | 
    
         
            +
                    expect(flash).to eq("greeting" => "Hello")
         
     | 
| 
      
 46 
     | 
    
         
            +
                  end
         
     | 
| 
       35 
47 
     | 
    
         
             
                end
         
     | 
| 
      
 48 
     | 
    
         
            +
              end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
              context "#to_session_value" do
         
     | 
| 
      
 51 
     | 
    
         
            +
                subject(:flash) { described_class.new }
         
     | 
| 
       36 
52 
     | 
    
         | 
| 
       37 
     | 
    
         
            -
                 
     | 
| 
       38 
     | 
    
         
            -
                   
     | 
| 
      
 53 
     | 
    
         
            +
                before do
         
     | 
| 
      
 54 
     | 
    
         
            +
                  flash["greeting"] = "Hello"
         
     | 
| 
      
 55 
     | 
    
         
            +
                  flash.now["farewell"] = "Goodbye"
         
     | 
| 
       39 
56 
     | 
    
         
             
                end
         
     | 
| 
       40 
57 
     | 
    
         | 
| 
       41 
     | 
    
         
            -
                it " 
     | 
| 
       42 
     | 
    
         
            -
                   
     | 
| 
      
 58 
     | 
    
         
            +
                it "dumps to basic objects like rails 4" do
         
     | 
| 
      
 59 
     | 
    
         
            +
                  expect(flash.to_session_value).to eq("flashes" => {"greeting" => "Hello"})
         
     | 
| 
       43 
60 
     | 
    
         
             
                end
         
     | 
| 
       44 
61 
     | 
    
         
             
              end
         
     | 
| 
       45 
62 
     | 
    
         
             
            end
         
     | 
| 
         @@ -1,48 +1,62 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require ' 
     | 
| 
      
 1 
     | 
    
         
            +
            require 'base64'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
       2 
3 
     | 
    
         
             
            require 'rails_4_session_flash_backport/rails3/flash_hash'
         
     | 
| 
       3 
4 
     | 
    
         | 
| 
       4 
     | 
    
         
            -
            describe ActionDispatch::Flash::FlashHash, " 
     | 
| 
      
 5 
     | 
    
         
            +
            describe ActionDispatch::Flash::FlashHash, "backport" do
         
     | 
| 
      
 6 
     | 
    
         
            +
              context "#from_session_value" do
         
     | 
| 
      
 7 
     | 
    
         
            +
                subject(:flash) { described_class.from_session_value(value) }
         
     | 
| 
       5 
8 
     | 
    
         | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
             
     | 
| 
       8 
     | 
    
         
            -
             
     | 
| 
       9 
     | 
    
         
            -
              let(:rails_3_vanilla)   { Marshal.load(rails_3_marshaled) }
         
     | 
| 
       10 
     | 
    
         
            -
              let(:rails_4_style)     { {'flashes' => {:notice => "I'm a notice", :error => "I'm an error"}, 'discard' => [:notice]} }
         
     | 
| 
       11 
     | 
    
         
            -
              let(:rails_2_marshaled) { "\x04\bIC:'ActionController::Flash::FlashHash{\a:\vnoticeI\"\x11I'm a notice\x06:\x06ET:\nerrorI\"\x11I'm an error\x06;\aT\x06:\n@used{\a;\x06T;\bF" }
         
     | 
| 
       12 
     | 
    
         
            -
              let(:rails_2_vanilla) { Marshal.load(rails_2_marshaled) }
         
     | 
| 
      
 9 
     | 
    
         
            +
                context "with rails 4 style session value" do
         
     | 
| 
      
 10 
     | 
    
         
            +
                  context "without discards" do
         
     | 
| 
      
 11 
     | 
    
         
            +
                    let(:value) { {"flashes" => {"greeting" => "Hello"}} }
         
     | 
| 
       13 
12 
     | 
    
         | 
| 
       14 
     | 
    
         
            -
             
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
             
     | 
| 
      
 13 
     | 
    
         
            +
                    it "is the expected flash" do
         
     | 
| 
      
 14 
     | 
    
         
            +
                      expect(flash.to_hash).to eq("greeting" => "Hello")
         
     | 
| 
      
 15 
     | 
    
         
            +
                    end
         
     | 
| 
      
 16 
     | 
    
         
            +
                  end
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
             
     | 
| 
       19 
     | 
    
         
            -
             
     | 
| 
       20 
     | 
    
         
            -
                  flash_hash.should be_a(described_class)
         
     | 
| 
       21 
     | 
    
         
            -
                  flash_hash[:notice].should == "I'm a notice"
         
     | 
| 
       22 
     | 
    
         
            -
                  flash_hash[:error].should == "I'm an error"
         
     | 
| 
       23 
     | 
    
         
            -
                  flash_hash.sweep
         
     | 
| 
       24 
     | 
    
         
            -
                  flash_hash[:notice].should be_nil
         
     | 
| 
       25 
     | 
    
         
            -
                  flash_hash[:error].should == "I'm an error"
         
     | 
| 
       26 
     | 
    
         
            -
                end
         
     | 
| 
      
 18 
     | 
    
         
            +
                  context "with discards" do
         
     | 
| 
      
 19 
     | 
    
         
            +
                    let(:value) { {"flashes" => {"greeting" => "Hello", "farewell" => "Goodbye"}, "discard" => ["farewell"]} }
         
     | 
| 
       27 
20 
     | 
    
         | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
             
     | 
| 
      
 21 
     | 
    
         
            +
                    it "is the expected flash" do
         
     | 
| 
      
 22 
     | 
    
         
            +
                      expect(flash.to_hash).to eq("greeting" => "Hello")
         
     | 
| 
      
 23 
     | 
    
         
            +
                    end
         
     | 
| 
      
 24 
     | 
    
         
            +
                  end
         
     | 
| 
       30 
25 
     | 
    
         
             
                end
         
     | 
| 
       31 
26 
     | 
    
         | 
| 
       32 
     | 
    
         
            -
                 
     | 
| 
       33 
     | 
    
         
            -
                   
     | 
| 
      
 27 
     | 
    
         
            +
                context "with rails 3 style session value" do
         
     | 
| 
      
 28 
     | 
    
         
            +
                  # {"session_id"=>"f8e1b8152ba7609c28bbb17ec9263ba7", "flash"=>#<ActionDispatch::Flash::FlashHash:0x00000000000000 @used=#<Set: {"farewell"}>, @closed=false, @flashes={"greeting"=>"Hello", "farewell"=>"Goodbye"}, @now=nil>}
         
     | 
| 
      
 29 
     | 
    
         
            +
                  let(:cookie) { 'BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWY4ZTFiODE1MmJhNzYwOWMyOGJiYjE3ZWM5MjYzYmE3BjsAVEkiCmZsYXNoBjsARm86JUFjdGlvbkRpc3BhdGNoOjpGbGFzaDo6Rmxhc2hIYXNoCToKQHVzZWRvOghTZXQGOgpAaGFzaHsGSSINZmFyZXdlbGwGOwBUVDoMQGNsb3NlZEY6DUBmbGFzaGVzewdJIg1ncmVldGluZwY7AFRJIgpIZWxsbwY7AFRJIg1mYXJld2VsbAY7AFRJIgxHb29kYnllBjsAVDoJQG5vdzA=' }
         
     | 
| 
      
 30 
     | 
    
         
            +
                  let(:session) { Marshal.load(Base64.decode64(cookie)) }
         
     | 
| 
      
 31 
     | 
    
         
            +
                  let(:value) { session["flash"] }
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                  it "is the expected flash" do
         
     | 
| 
      
 34 
     | 
    
         
            +
                    expect(flash.to_hash).to eq("greeting" => "Hello")
         
     | 
| 
      
 35 
     | 
    
         
            +
                  end
         
     | 
| 
       34 
36 
     | 
    
         
             
                end
         
     | 
| 
       35 
37 
     | 
    
         | 
| 
       36 
     | 
    
         
            -
                 
     | 
| 
       37 
     | 
    
         
            -
                   
     | 
| 
      
 38 
     | 
    
         
            +
                context "with rails 2 style session value" do
         
     | 
| 
      
 39 
     | 
    
         
            +
                  # {"session_id"=>"f8e1b8152ba7609c28bbb17ec9263ba7", "flash"=>#<ActionController::Flash::FlashHash:0x00000000000000 @used={"farewell"=>true}, {"greeting"=>"Hello", "farewell"=>"Goodbye"}>}
         
     | 
| 
      
 40 
     | 
    
         
            +
                  let(:cookie) { 'BAh7B0kiD3Nlc3Npb25faWQGOgZFVEkiJWY4ZTFiODE1MmJhNzYwOWMyOGJiYjE3ZWM5MjYzYmE3BjsAVEkiCmZsYXNoBjsAVElDOidBY3Rpb25Db250cm9sbGVyOjpGbGFzaDo6Rmxhc2hIYXNoewdJIg1mYXJld2VsbAY7AFRJIgxHb29kYnllBjsAVEkiDWdyZWV0aW5nBjsAVEkiCkhlbGxvBjsAVAY6CkB1c2VkewZJIg1mYXJld2VsbAY7AFRU' }
         
     | 
| 
      
 41 
     | 
    
         
            +
                  let(:session) { Marshal.load(Base64.decode64(cookie)) }
         
     | 
| 
      
 42 
     | 
    
         
            +
                  let(:value) { session["flash"] }
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                  it "is the expected flash" do
         
     | 
| 
      
 45 
     | 
    
         
            +
                    expect(flash.to_hash).to eq("greeting" => "Hello")
         
     | 
| 
      
 46 
     | 
    
         
            +
                  end
         
     | 
| 
       38 
47 
     | 
    
         
             
                end
         
     | 
| 
       39 
48 
     | 
    
         
             
              end
         
     | 
| 
       40 
49 
     | 
    
         | 
| 
       41 
50 
     | 
    
         
             
              context "#to_session_value" do
         
     | 
| 
      
 51 
     | 
    
         
            +
                subject(:flash) { described_class.new }
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                before do
         
     | 
| 
      
 54 
     | 
    
         
            +
                  flash["greeting"] = "Hello"
         
     | 
| 
      
 55 
     | 
    
         
            +
                  flash.now["farewell"] = "Goodbye"
         
     | 
| 
      
 56 
     | 
    
         
            +
                end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
       42 
58 
     | 
    
         
             
                it "dumps to basic objects like rails 4" do
         
     | 
| 
       43 
     | 
    
         
            -
                   
     | 
| 
       44 
     | 
    
         
            -
                  rails_3_vanilla.to_session_value.should == rails_4_style
         
     | 
| 
      
 59 
     | 
    
         
            +
                  expect(flash.to_session_value).to eq("flashes" => {"greeting" => "Hello"})
         
     | 
| 
       45 
60 
     | 
    
         
             
                end
         
     | 
| 
       46 
61 
     | 
    
         
             
              end
         
     | 
| 
       47 
     | 
    
         
            -
             
     | 
| 
       48 
62 
     | 
    
         
             
            end
         
     | 
| 
         @@ -0,0 +1,62 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            require 'base64'
         
     | 
| 
      
 2 
     | 
    
         
            +
             
     | 
| 
      
 3 
     | 
    
         
            +
            require 'rails_4_session_flash_backport/rails4/flash_hash'
         
     | 
| 
      
 4 
     | 
    
         
            +
             
     | 
| 
      
 5 
     | 
    
         
            +
            describe ActionDispatch::Flash::FlashHash, "backport" do
         
     | 
| 
      
 6 
     | 
    
         
            +
              context "#from_session_value" do
         
     | 
| 
      
 7 
     | 
    
         
            +
                subject(:flash) { described_class.from_session_value(value) }
         
     | 
| 
      
 8 
     | 
    
         
            +
             
     | 
| 
      
 9 
     | 
    
         
            +
                context "with rails 4 style session value" do
         
     | 
| 
      
 10 
     | 
    
         
            +
                  context "without discards" do
         
     | 
| 
      
 11 
     | 
    
         
            +
                    let(:value) { {"flashes" => {"greeting" => "Hello"}} }
         
     | 
| 
      
 12 
     | 
    
         
            +
             
     | 
| 
      
 13 
     | 
    
         
            +
                    it "is the expected flash" do
         
     | 
| 
      
 14 
     | 
    
         
            +
                      expect(flash.to_hash).to eq("greeting" => "Hello")
         
     | 
| 
      
 15 
     | 
    
         
            +
                    end
         
     | 
| 
      
 16 
     | 
    
         
            +
                  end
         
     | 
| 
      
 17 
     | 
    
         
            +
             
     | 
| 
      
 18 
     | 
    
         
            +
                  context "with discards" do
         
     | 
| 
      
 19 
     | 
    
         
            +
                    let(:value) { {"flashes" => {"greeting" => "Hello", "farewell" => "Goodbye"}, "discard" => ["farewell"]} }
         
     | 
| 
      
 20 
     | 
    
         
            +
             
     | 
| 
      
 21 
     | 
    
         
            +
                    it "is the expected flash" do
         
     | 
| 
      
 22 
     | 
    
         
            +
                      expect(flash.to_hash).to eq("greeting" => "Hello")
         
     | 
| 
      
 23 
     | 
    
         
            +
                    end
         
     | 
| 
      
 24 
     | 
    
         
            +
                  end
         
     | 
| 
      
 25 
     | 
    
         
            +
                end
         
     | 
| 
      
 26 
     | 
    
         
            +
             
     | 
| 
      
 27 
     | 
    
         
            +
                context "with rails 3 style session value" do
         
     | 
| 
      
 28 
     | 
    
         
            +
                  # {"session_id"=>"f8e1b8152ba7609c28bbb17ec9263ba7", "flash"=>#<ActionDispatch::Flash::FlashHash:0x00000000000000 @used=#<Set: {"farewell"}>, @closed=false, @flashes={"greeting"=>"Hello", "farewell"=>"Goodbye"}, @now=nil>}
         
     | 
| 
      
 29 
     | 
    
         
            +
                  let(:cookie) { 'BAh7B0kiD3Nlc3Npb25faWQGOgZFRkkiJWY4ZTFiODE1MmJhNzYwOWMyOGJiYjE3ZWM5MjYzYmE3BjsAVEkiCmZsYXNoBjsARm86JUFjdGlvbkRpc3BhdGNoOjpGbGFzaDo6Rmxhc2hIYXNoCToKQHVzZWRvOghTZXQGOgpAaGFzaHsGSSINZmFyZXdlbGwGOwBUVDoMQGNsb3NlZEY6DUBmbGFzaGVzewdJIg1ncmVldGluZwY7AFRJIgpIZWxsbwY7AFRJIg1mYXJld2VsbAY7AFRJIgxHb29kYnllBjsAVDoJQG5vdzA=' }
         
     | 
| 
      
 30 
     | 
    
         
            +
                  let(:session) { Marshal.load(Base64.decode64(cookie)) }
         
     | 
| 
      
 31 
     | 
    
         
            +
                  let(:value) { session["flash"] }
         
     | 
| 
      
 32 
     | 
    
         
            +
             
     | 
| 
      
 33 
     | 
    
         
            +
                  it "is the expected flash" do
         
     | 
| 
      
 34 
     | 
    
         
            +
                    expect(flash.to_hash).to eq("greeting" => "Hello")
         
     | 
| 
      
 35 
     | 
    
         
            +
                  end
         
     | 
| 
      
 36 
     | 
    
         
            +
                end
         
     | 
| 
      
 37 
     | 
    
         
            +
             
     | 
| 
      
 38 
     | 
    
         
            +
                context "with rails 2 style session value" do
         
     | 
| 
      
 39 
     | 
    
         
            +
                  # {"session_id"=>"f8e1b8152ba7609c28bbb17ec9263ba7", "flash"=>#<ActionController::Flash::FlashHash:0x00000000000000 @used={"farewell"=>true}, {"greeting"=>"Hello", "farewell"=>"Goodbye"}>}
         
     | 
| 
      
 40 
     | 
    
         
            +
                  let(:cookie) { 'BAh7B0kiD3Nlc3Npb25faWQGOgZFVEkiJWY4ZTFiODE1MmJhNzYwOWMyOGJiYjE3ZWM5MjYzYmE3BjsAVEkiCmZsYXNoBjsAVElDOidBY3Rpb25Db250cm9sbGVyOjpGbGFzaDo6Rmxhc2hIYXNoewdJIg1mYXJld2VsbAY7AFRJIgxHb29kYnllBjsAVEkiDWdyZWV0aW5nBjsAVEkiCkhlbGxvBjsAVAY6CkB1c2VkewZJIg1mYXJld2VsbAY7AFRU' }
         
     | 
| 
      
 41 
     | 
    
         
            +
                  let(:session) { Marshal.load(Base64.decode64(cookie)) }
         
     | 
| 
      
 42 
     | 
    
         
            +
                  let(:value) { session["flash"] }
         
     | 
| 
      
 43 
     | 
    
         
            +
             
     | 
| 
      
 44 
     | 
    
         
            +
                  it "is the expected flash" do
         
     | 
| 
      
 45 
     | 
    
         
            +
                    expect(flash.to_hash).to eq("greeting" => "Hello")
         
     | 
| 
      
 46 
     | 
    
         
            +
                  end
         
     | 
| 
      
 47 
     | 
    
         
            +
                end
         
     | 
| 
      
 48 
     | 
    
         
            +
              end
         
     | 
| 
      
 49 
     | 
    
         
            +
             
     | 
| 
      
 50 
     | 
    
         
            +
              context "#to_session_value" do
         
     | 
| 
      
 51 
     | 
    
         
            +
                subject(:flash) { described_class.new }
         
     | 
| 
      
 52 
     | 
    
         
            +
             
     | 
| 
      
 53 
     | 
    
         
            +
                before do
         
     | 
| 
      
 54 
     | 
    
         
            +
                  flash["greeting"] = "Hello"
         
     | 
| 
      
 55 
     | 
    
         
            +
                  flash.now["farewell"] = "Goodbye"
         
     | 
| 
      
 56 
     | 
    
         
            +
                end
         
     | 
| 
      
 57 
     | 
    
         
            +
             
     | 
| 
      
 58 
     | 
    
         
            +
                it "dumps to basic objects like rails 4" do
         
     | 
| 
      
 59 
     | 
    
         
            +
                  expect(flash.to_session_value).to eq("flashes" => {"greeting" => "Hello"})
         
     | 
| 
      
 60 
     | 
    
         
            +
                end
         
     | 
| 
      
 61 
     | 
    
         
            +
              end
         
     | 
| 
      
 62 
     | 
    
         
            +
            end
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,32 +1,102 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rails_4_session_flash_backport
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version
         
     | 
| 
       4 
     | 
    
         
            -
              version: 0.0 
     | 
| 
      
 4 
     | 
    
         
            +
              version: 0.1.0
         
     | 
| 
       5 
5 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       6 
6 
     | 
    
         
             
            authors:
         
     | 
| 
       7 
7 
     | 
    
         
             
            - Lucas Parry
         
     | 
| 
      
 8 
     | 
    
         
            +
            - Samuel Cochran
         
     | 
| 
       8 
9 
     | 
    
         
             
            autorequire: 
         
     | 
| 
       9 
10 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       10 
     | 
    
         
            -
            cert_chain: 
     | 
| 
       11 
     | 
    
         
            -
             
     | 
| 
      
 11 
     | 
    
         
            +
            cert_chain:
         
     | 
| 
      
 12 
     | 
    
         
            +
            - |
         
     | 
| 
      
 13 
     | 
    
         
            +
              -----BEGIN CERTIFICATE-----
         
     | 
| 
      
 14 
     | 
    
         
            +
              MIIDKDCCAhCgAwIBAgIBAjANBgkqhkiG9w0BAQUFADA6MQ0wCwYDVQQDDARzajI2
         
     | 
| 
      
 15 
     | 
    
         
            +
              MRQwEgYKCZImiZPyLGQBGRYEc2oyNjETMBEGCgmSJomT8ixkARkWA2NvbTAeFw0x
         
     | 
| 
      
 16 
     | 
    
         
            +
              NDAzMTUwNDM2MTZaFw0xNTAzMTUwNDM2MTZaMDoxDTALBgNVBAMMBHNqMjYxFDAS
         
     | 
| 
      
 17 
     | 
    
         
            +
              BgoJkiaJk/IsZAEZFgRzajI2MRMwEQYKCZImiZPyLGQBGRYDY29tMIIBIjANBgkq
         
     | 
| 
      
 18 
     | 
    
         
            +
              hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr60Eo/ttCk8GMTMFiPr3GoYMIMFvLak
         
     | 
| 
      
 19 
     | 
    
         
            +
              xSmTk9YGCB6UiEePB4THSSA5w6IPyeaCF/nWkDp3/BAam0eZMWG1IzYQB23TqIM0
         
     | 
| 
      
 20 
     | 
    
         
            +
              1xzcNRvFsn0aQoQ00k+sj+G83j3T5OOV5OZIlu8xAChMkQmiPd1NXc6uFv+Iacz7
         
     | 
| 
      
 21 
     | 
    
         
            +
              kj+CMsI9YUFdNoU09QY0b+u+Rb6wDYdpyvN60YC30h0h1MeYbvYZJx/iZK4XY5zu
         
     | 
| 
      
 22 
     | 
    
         
            +
              4O/FL2ChjL2CPCpLZW55ShYyrzphWJwLOJe+FJ/ZBl6YXwrzQM9HKnt4titSNvyU
         
     | 
| 
      
 23 
     | 
    
         
            +
              KzE3L63A3PZvExzLrN9u09kuWLLJfXB2sGOlw3n9t72rJiuBr3/OQQIDAQABozkw
         
     | 
| 
      
 24 
     | 
    
         
            +
              NzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNVHQ4EFgQU99dfRjEKFyczTeIz
         
     | 
| 
      
 25 
     | 
    
         
            +
              m3ZsDWrNC80wDQYJKoZIhvcNAQEFBQADggEBAFVYjABGprFHcomF60jQZojPyBVj
         
     | 
| 
      
 26 
     | 
    
         
            +
              IBUmAKQ2UEserCwV8GbzxKn9/C+cqO109m1KckeGvFDSvUToBUIEzj5xKNMLJCYJ
         
     | 
| 
      
 27 
     | 
    
         
            +
              xjH30ex7X0LDgqI4z4Z9eXiIR61d9haKEDpqVRKrERMcf4HAyvQoNmYtVTesVNJr
         
     | 
| 
      
 28 
     | 
    
         
            +
              rWOeOPhl1Is+NdYcm1c99Y1ltcstn762ROxVCFk9c6Xe9mrDgB5oBW+LKOY2YCjD
         
     | 
| 
      
 29 
     | 
    
         
            +
              HLacq0o6ejD7AFG3HPAVFeYEnrwCYd6siMnzpVrt3pHfZJxsuhbNnteASNcnk9Uk
         
     | 
| 
      
 30 
     | 
    
         
            +
              YIxHmqJUGGnmqwuBfXe8LZHC5ETJLuZlzO2odzNueQlhukD4wdNa/r4pD1o=
         
     | 
| 
      
 31 
     | 
    
         
            +
              -----END CERTIFICATE-----
         
     | 
| 
      
 32 
     | 
    
         
            +
            date: 2015-02-02 00:00:00.000000000 Z
         
     | 
| 
       12 
33 
     | 
    
         
             
            dependencies:
         
     | 
| 
       13 
34 
     | 
    
         
             
            - !ruby/object:Gem::Dependency
         
     | 
| 
       14 
35 
     | 
    
         
             
              name: rails
         
     | 
| 
       15 
36 
     | 
    
         
             
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
       16 
37 
     | 
    
         
             
                requirements:
         
     | 
| 
      
 38 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 39 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 40 
     | 
    
         
            +
                    version: '2.0'
         
     | 
| 
       17 
41 
     | 
    
         
             
                - - "<"
         
     | 
| 
       18 
42 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       19 
     | 
    
         
            -
                    version: 4. 
     | 
| 
      
 43 
     | 
    
         
            +
                    version: '4.3'
         
     | 
| 
       20 
44 
     | 
    
         
             
              type: :runtime
         
     | 
| 
       21 
45 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       22 
46 
     | 
    
         
             
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
       23 
47 
     | 
    
         
             
                requirements:
         
     | 
| 
      
 48 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 49 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 50 
     | 
    
         
            +
                    version: '2.0'
         
     | 
| 
       24 
51 
     | 
    
         
             
                - - "<"
         
     | 
| 
       25 
52 
     | 
    
         
             
                  - !ruby/object:Gem::Version
         
     | 
| 
       26 
     | 
    
         
            -
                    version: 4. 
     | 
| 
       27 
     | 
    
         
            -
             
     | 
| 
      
 53 
     | 
    
         
            +
                    version: '4.3'
         
     | 
| 
      
 54 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 55 
     | 
    
         
            +
              name: rake
         
     | 
| 
      
 56 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 57 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 58 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 59 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 60 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 61 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 62 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 63 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 64 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 65 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 66 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 67 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 68 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 69 
     | 
    
         
            +
              name: rspec
         
     | 
| 
      
 70 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 71 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 72 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 73 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 74 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 75 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 76 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 77 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 78 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 79 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 80 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 81 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 82 
     | 
    
         
            +
            - !ruby/object:Gem::Dependency
         
     | 
| 
      
 83 
     | 
    
         
            +
              name: pry
         
     | 
| 
      
 84 
     | 
    
         
            +
              requirement: !ruby/object:Gem::Requirement
         
     | 
| 
      
 85 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 86 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 87 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 88 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 89 
     | 
    
         
            +
              type: :development
         
     | 
| 
      
 90 
     | 
    
         
            +
              prerelease: false
         
     | 
| 
      
 91 
     | 
    
         
            +
              version_requirements: !ruby/object:Gem::Requirement
         
     | 
| 
      
 92 
     | 
    
         
            +
                requirements:
         
     | 
| 
      
 93 
     | 
    
         
            +
                - - ">="
         
     | 
| 
      
 94 
     | 
    
         
            +
                  - !ruby/object:Gem::Version
         
     | 
| 
      
 95 
     | 
    
         
            +
                    version: '0'
         
     | 
| 
      
 96 
     | 
    
         
            +
            description: Store flash in the session in Rails 4 style on Rails 2/3/4
         
     | 
| 
       28 
97 
     | 
    
         
             
            email:
         
     | 
| 
       29 
98 
     | 
    
         
             
            - lparry@gmail.com
         
     | 
| 
      
 99 
     | 
    
         
            +
            - sj26@sj26.com
         
     | 
| 
       30 
100 
     | 
    
         
             
            executables: []
         
     | 
| 
       31 
101 
     | 
    
         
             
            extensions: []
         
     | 
| 
       32 
102 
     | 
    
         
             
            extra_rdoc_files: []
         
     | 
| 
         @@ -37,14 +107,22 @@ files: 
     | 
|
| 
       37 
107 
     | 
    
         
             
            - LICENSE.txt
         
     | 
| 
       38 
108 
     | 
    
         
             
            - README.md
         
     | 
| 
       39 
109 
     | 
    
         
             
            - Rakefile
         
     | 
| 
      
 110 
     | 
    
         
            +
            - gemfiles/Gemfile.rails2
         
     | 
| 
      
 111 
     | 
    
         
            +
            - gemfiles/Gemfile.rails2.lock
         
     | 
| 
      
 112 
     | 
    
         
            +
            - gemfiles/Gemfile.rails3
         
     | 
| 
      
 113 
     | 
    
         
            +
            - gemfiles/Gemfile.rails3.lock
         
     | 
| 
      
 114 
     | 
    
         
            +
            - gemfiles/Gemfile.rails4
         
     | 
| 
      
 115 
     | 
    
         
            +
            - gemfiles/Gemfile.rails4.lock
         
     | 
| 
       40 
116 
     | 
    
         
             
            - lib/rails_4_session_flash_backport.rb
         
     | 
| 
       41 
117 
     | 
    
         
             
            - lib/rails_4_session_flash_backport/rails2/flash_hash.rb
         
     | 
| 
       42 
118 
     | 
    
         
             
            - lib/rails_4_session_flash_backport/rails2/session_with_indifferent_access.rb
         
     | 
| 
       43 
119 
     | 
    
         
             
            - lib/rails_4_session_flash_backport/rails3/flash_hash.rb
         
     | 
| 
      
 120 
     | 
    
         
            +
            - lib/rails_4_session_flash_backport/rails4/flash_hash.rb
         
     | 
| 
       44 
121 
     | 
    
         
             
            - lib/rails_4_session_flash_backport/version.rb
         
     | 
| 
       45 
122 
     | 
    
         
             
            - rails_4_session_flash_backport.gemspec
         
     | 
| 
       46 
123 
     | 
    
         
             
            - spec/rails2/flash_hash_spec.rb
         
     | 
| 
       47 
124 
     | 
    
         
             
            - spec/rails3/flash_hash_spec.rb
         
     | 
| 
      
 125 
     | 
    
         
            +
            - spec/rails4/flash_hash_spec.rb
         
     | 
| 
       48 
126 
     | 
    
         
             
            homepage: https://github.com/envato/rails_4_session_flash_backport
         
     | 
| 
       49 
127 
     | 
    
         
             
            licenses: []
         
     | 
| 
       50 
128 
     | 
    
         
             
            metadata: {}
         
     | 
| 
         @@ -68,7 +146,9 @@ rubygems_version: 2.2.2 
     | 
|
| 
       68 
146 
     | 
    
         
             
            signing_key: 
         
     | 
| 
       69 
147 
     | 
    
         
             
            specification_version: 4
         
     | 
| 
       70 
148 
     | 
    
         
             
            summary: Backport of the way Rails 4 stores flash messages in the session to Rails
         
     | 
| 
       71 
     | 
    
         
            -
              2 
     | 
| 
      
 149 
     | 
    
         
            +
              2/3/4, so you can safely take a session betweens Rails versions without things exploding.
         
     | 
| 
       72 
150 
     | 
    
         
             
            test_files:
         
     | 
| 
       73 
151 
     | 
    
         
             
            - spec/rails2/flash_hash_spec.rb
         
     | 
| 
       74 
152 
     | 
    
         
             
            - spec/rails3/flash_hash_spec.rb
         
     | 
| 
      
 153 
     | 
    
         
            +
            - spec/rails4/flash_hash_spec.rb
         
     | 
| 
      
 154 
     | 
    
         
            +
            has_rdoc: 
         
     | 
    
        metadata.gz.sig
    ADDED
    
    | 
         Binary file 
     |