ActiveRecord on Gears
Gears を使うには
- gears_init.js の読み込み
- 低レベルAPIを駆使
という面倒な作業が必要になる。
具体的には
html>>
<<--
javascript>>
var db = google.gears.factory.create('beta.database');
db.open("database-demo");
var rs = db.execute("select name from users");
while(rs.isValidRow()) {
name = rs.fieldByName('name');
rs.next();
}
rs.close();
db.close();
<<--
のようなコードが必要になり、今日日こういうのは書きたくない。
そこで、
active_record.js を使う
Aptana が提供してる activejs プロジェクトの ActiveRecord ライブラリを利用すると、以下のようにすっきりする。
html>>
<<--
javascript>>
ActiveRecord.connect(ActiveRecord.Adapters.Gears,'database-demo');
var User = ActiveRecord.create('users', {name:''});
User.create({name:'maiha'});
<<--
RailsのARを忠実にJavaScriptへ移植してあるため、
ARに慣れていればほぼドキュメントなしで使えるのが嬉しい。
javascript>>
maiha = User.findByName('maiha'); // Dynamic Finder
name = maiha.name; // Accessor methods
maiha.name = 'foo';
maiha.save();
User.count();
User.find({all: true, order: 'name'});
<<--
他にも
- Validation
- Callback
- Relation (hasOne, hasMany, belongsTo)
- Migration
といった機能が実装されており、
ARの移植物としてみても完成度が非常に高い。
ちなみに、js のサイズは compaction なしで200KB程度。