class Person << TinyDS::Base
property :user_name, :string
end
# 作成
Person.create({:user_name => "hoge"})
# idから検索
hoge = Person.get_by_id(id)
puts hoge.user_name #=> hoge
メソッド名 | 説明 |
initialize(attrs={}, opts={} | コンストラクタ
attrs:このエンティティに設定したいプロパティのHash(key=>name, value=>値)
opts:オプションのHash :id, :name, :key, :parentと:entityが指定できる。
:id:このエンティティのidに指定したい整数値
:name:このエンティティのKeyのnameに指定したい文字列
:key:このエンティティのKeyに指定したいKey
:id, :name, :keyはいずれか1つだけ指定可能。2以上指定すると例外
:id, :name, :keyを指定しない場合は:id自動発番
:parent:Hashの値にエンティティを入れておくと、それを親エンティティとして作成する。
:entity:Hashの値にエンティティ(生のEntity)を入れておくと、それを元にエンティティを作成する。
:entityを指定しない場合、newで作成した場合は新規レコード扱い(new_record==true)になり、saveするまでDatastoreには格納されない。
|
self.property(name, type, opts={}) | プロパティを定義する。
name:プロパティの名前
type:プロパティの型
opts:オプション opts[:default]=デフォルト値とすることでデフォルト値を渡せる。
デフォルト値はProcオブジェクトでもよく、Procの場合はそれをcallした結果がデフォルト値になる。
|
self.property_definitions | 定義されているプロパティを取得する(key=>name, value=>PropertyDefinitionsのHash) |
>self.property_definitions(name) | nameで指定されたプロパティ定義を取得する。存在しない場合は例外 |
self.valid_property?(name, context) | nameで指定されたプロパティが存在すればtrue。contextは使っていないっぽい |
self.has_property?(name) | nameで指定されたプロパティが存在すればtrue。 |
self.default_attrs | デフォルト値の一覧を返す(key=>name, value=>デフォルト値のHash) |
self.kind | このエンティティのKindを返す |
key | このエンティティのKeyを返す |
id | このエンティティのidを返す |
name | このエンティティのnameを返す |
parent_key | このエンティティの親のKeyを返す |
self.to_key(m) | 渡されたオブジェクトをKeyとして返す。mの種類によって以下の動作となる。
Key=>そのまま
Entity=>m.key
String=>KeyFactory.stringToKey(m)で生成したKey
Base=>m.key
それ以外=>例外
|
self.allocate_ids(num) | Datastore.allocate_ids(kind, num)の結果(KeyRange) |
self.allocate_id | Datstore.allocate_ids(1).startの結果(Key) |
self.create(attrs={}, opts={}) | エンティティの作成と同時にDatastoreに保存する。
引数はinitializeと同じ。保存する前にvalid?が呼ばれ、不正なエンティティの場合falseが返る。 |
self.create! | エンティティの作成と同時にDatastoreに保存する。
引数はinitializeと同じ。保存する前にvalid?が呼ばれ、不正なエンティティの場合RecordInvalid例外がスローされる。 |
self.new_from_entity(_entity) | 既存のエンティティ(生Entity)からエンティティを生成する。 |
valid? | このエンティティが有効かをチェックする。デフォルト実装では常にtrueを返す。createやsaveのときに暗黙的に呼ばれる。 |
new_record? | 新規レコード(まだDatastoreに格納されていない)の場合trueを返す。 |
save | Datastoreに保存する。保存する前にvalid?が実行され、不正なエンティティの場合falseを返す。 |
save! | Datastoreに保存する。保存する前にvalid?が実行され、不正なエンティティの場合RecordInvalid例外がスローされる。 |
self.get!(key) | 指定したkeyのエンティティを取得する。エンティティが見つからない場合EntityNotFound例外をスロー |
self.get(key) | 指定したkeyのエンティティを取得する。エンティティが見つからない場合nil |
self.build_key(id_or_name, parent) | Keyを生成する。 |
self._get_by_id_or_name!(id_or_name, parent) | 指定したidまたはnameのエンティティを取得する。エンティティが見つからない場合EntityNotFound例外 |
self.get_by_id!(id, parent=nil) | 指定したidのエンティティを取得する。エンティティが見つからない場合EntityNotFound例外 |
self.get_by_id(id, parent=nil) | 指定したidのエンティティを取得する。エンティティが見つからない場合nil |
self.get_by_name!(name, parent=nil) | 指定したnameのエンティティを取得する。エンティティが見つからない場合EntityNotFound例外 |
self.get_by_name(name, parent=nil) | 指定したnameのエンティティを取得する。エンティティが見つからない場合nil |
self.get_by_ids(ids, parent=nil) | 指定したidのエンティティを取得する。idsはidのArray。 |
self.get_by_names(names, parent=nil) | 指定したnameのエンティティを取得する。namesはnameのArray |
self.query | Queryオブジェクトを返す。詳しくはQueryについてを参照。 |
self.count | このKindの件数を返す |
destroy | このエンティティを削除する |
self.destroy(array) | 指定されたArrayに含まれるエンティティを削除する |
self.destroy_all | このKindのすべてのエンティティを削除する |
read_only | このエンティティを読み取り専用にする |
reget | Datastoreから再度読み込み直す。トランザクション用らしい? |
tx(opts={}, &block) | トランザクション内でblockを実行する。
optsには:retritesと:force_beginが指定可能。
:retriesはトランザクションの再試行回数(Datastore.transaction(retries)を参照)
:force_beginはDatastore.current_transaction(nil)で強制的にトランザクションを開始する |
attributes=(attrs) | 属性を設定する |
set_property(k,v) | プロパティを設定する |
get_property(k) | プロパティを取得する |