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

class PStore

クラス・モジュールの継承リスト: PStore < Object < Kernel < BasicObject

要約

Rubyのオブジェクトを外部ファイルに格納するためのクラスです。内部で Marshal を使っています。

使い方

データベースにアクセスするためには、 transaction のブロック内である必要があります。インターフェースは Hash に似ています。

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 do
  p db["root"]     # => [[1, 1.5], 2, 3, 4]
end

特異メソッド

定義 説明
new(file, thread_safe = false) -> PStore

ファイル名 file に対してデータベースを読み書きします。

インスタンスメソッド

定義 説明
self[name] -> object

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

self[name] = value

ルート name に対応する値 value をセットします。

abort -> ()

データベースの読み書きを終了します。

commit -> ()

データベースの読み書きを終了します。

delete(name) -> object

ルートnameに対応する値を削除します。

fetch(name, default = PStore::Error) -> object

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

path -> String

データベースのファイル名を得ます。

root?(name) -> bool

ルート name がデータベースに格納されている場合に真を返します。

roots -> Array

ルートの集合を配列で返します。

transaction(read_only = false) {|pstore| ... } -> object

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

ultra_safe -> bool

真であれば、パフォーマンスと引き換えにファイル更新の衝突を避けることができます。デフォルトは偽です。

ultra_safe=(flag)

真をセットすると、パフォーマンスと引き換えにファイル更新の衝突を避けることができます。

privateメソッド

定義 説明
in_transaction -> ()

トランザクションの中でなければ例外を発生させます。

定数

定義 説明
EMPTY_MARSHAL_CHECKSUM -> String

内部で利用する定数です。

EMPTY_MARSHAL_DATA -> String

内部で利用する定数です。

EMPTY_STRING -> String

内部で利用する定数です。

RDWR_ACCESS -> Integer

内部で利用する定数です。

RD_ACCESS -> Integer

内部で利用する定数です。

WR_ACCESS -> Integer

内部で利用する定数です。

継承したメソッド

! != __id__ __send__ instance_eval instance_exec method_missing singleton_method_added singleton_method_removed singleton_method_undefined !~ <=> == === =~ _dump class clone define_singleton_method display enum_for eql? equal? extend freeze frozen? hash initialize initialize_copy inspect instance_of? instance_variable_defined? instance_variable_get instance_variable_set instance_variables is_a? itself marshal_dump marshal_load method methods nil? object_id pretty_inspect pretty_print pretty_print_cycle pretty_print_inspect pretty_print_instance_variables private_methods protected_methods psych_to_yaml public_method public_methods public_send remove_instance_variable respond_to? respond_to_missing? send singleton_class singleton_method singleton_methods taint tainted? tap to_a to_ary to_hash to_int to_io to_proc to_regexp to_s to_str trust untaint untrust untrusted? .yaml_tag ::ARGF ::ARGV ::DATA ::ENV ::FALSE ::NIL ::RUBY_COPYRIGHT ::RUBY_DESCRIPTION ::RUBY_ENGINE ::RUBY_ENGINE_VERSION ::RUBY_PATCHLEVEL ::RUBY_PLATFORM ::RUBY_RELEASE_DATE ::RUBY_REVISION ::RUBY_VERSION ::SCRIPT_LINES__ ::STDERR ::STDIN ::STDOUT ::TOPLEVEL_BINDING ::TRUE