From 84c9f4164bbd5f3d2697949bdd2cdbd15ce6091e Mon Sep 17 00:00:00 2001 From: Damien Mathieu <42@dmathieu.com> Date: Tue, 29 Oct 2013 17:00:45 +0100 Subject: add the fetch method to sessions --- actionpack/lib/action_dispatch/request/session.rb | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'actionpack/lib') 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 -- cgit v1.2.3