Ruby 2.6.0 リファレンスマニュアル > ライブラリ一覧 > pstoreライブラリ > PStoreクラス > transaction

instance method PStore#transaction

transaction(read_only = false) {|pstore| ... } -> object[permalink][rdoc]

トランザクションに入ります。 このブロックの中でのみデータベースの読み書きができます。

読み込み専用のトランザクションが使用可能です。

[PARAM] read_only:
真を指定すると、読み込み専用のトランザクションになります。
[RETURN]
ブロックで最後に評価した値を返します。
[EXCEPTION] PStore::Error:
read_only を真にしたときに、データベースを変更しようした場合に発生します。

例:

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["root"] = 'aaa' # => ここで例外発生
end