diff options
Diffstat (limited to 'lib/pstore.rb')
-rw-r--r-- | lib/pstore.rb | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/lib/pstore.rb b/lib/pstore.rb index 23b2d878a3..dfec76e470 100644 --- a/lib/pstore.rb +++ b/lib/pstore.rb @@ -42,10 +42,17 @@ class PStore def [](name) in_transaction + @table[name] + end + def fetch(name, default=PStore::Error) unless @table.key? name - raise PStore::Error, format("undefined root name `%s'", name) + if default==PStore::Error + raise PStore::Error, format("undefined root name `%s'", name) + else + default + end end - @table[name] + self[name] end def []=(name, value) in_transaction |