instance method PStore#fetch

fetch(name, default = PStore::Error) -> object[permalink][rdoc][edit]

ルートnameに対応する値を得ます。

該当するルートが登録されていない時には、引数 default が与えられていればその値を返し、与えられていなければ例外 PStore::Error が発生します。

[PARAM] name:
探索するルート。
[PARAM] default:
name に対応するルートが登録されていない場合に返す値を指定する。
[EXCEPTION] PStore::Error:
name に対応するルートが登録されていないかつ、 default が与えられていない場合に発生します。また、トランザクション外でこのメソッドが呼び出された場合に発生します。

例:

require 'pstore'
db = PStore.new("/tmp/foo")
db.transaction do
  p db.roots       # => []
  ary = db["root"] = [1,2,3,4]
  ary[0] = [1,1.5]
end

db.transaction(true) do |pstore|
  pstore.fetch("root")        # => [[1, 1.5], 2, 3, 4]
  pstore.fetch("root", 'aaa') # => [[1, 1.5], 2, 3, 4]
  pstore.fetch("not_root")    # => 例外発生
end

[SEE_ALSO] Hash#fetch, PStore#[]