diff options
author | Guillermo Iguaran <guilleiguaran@gmail.com> | 2013-10-29 12:59:40 -0700 |
---|---|---|
committer | Guillermo Iguaran <guilleiguaran@gmail.com> | 2013-10-29 12:59:40 -0700 |
commit | a5e2800221b29eb5b2a3f3b831e6bc8ce4e7d534 (patch) | |
tree | 446f7c51aab281ed8f6e2b8d6b5e2c191376236e /actionpack/lib | |
parent | 671af0716de6b8991b15e2d2cb56ed6c555cb343 (diff) | |
parent | 84c9f4164bbd5f3d2697949bdd2cdbd15ce6091e (diff) | |
download | rails-a5e2800221b29eb5b2a3f3b831e6bc8ce4e7d534.tar.gz rails-a5e2800221b29eb5b2a3f3b831e6bc8ce4e7d534.tar.bz2 rails-a5e2800221b29eb5b2a3f3b831e6bc8ce4e7d534.zip |
Merge pull request #12692 from dmathieu/session_fetch
Add session#fetch
Diffstat (limited to 'actionpack/lib')
-rw-r--r-- | actionpack/lib/action_dispatch/request/session.rb | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/actionpack/lib/action_dispatch/request/session.rb b/actionpack/lib/action_dispatch/request/session.rb index 7bc812fd22..6d911a75f1 100644 --- a/actionpack/lib/action_dispatch/request/session.rb +++ b/actionpack/lib/action_dispatch/request/session.rb @@ -127,6 +127,18 @@ module ActionDispatch @delegate.delete key.to_s end + def fetch(key, default=nil) + if self.key?(key) + self[key] + elsif default + self[key] = default + elsif block_given? + self[key] = yield(key) + else + raise KeyError + end + end + def inspect if loaded? super |