リア充爆発日記

You don't even know what ria-ju really is.

Titanium AlloyのSync Adapterでナイススケルトン2

前回で、サーバサイドとクライアントサイドの分業がしやすくなった!とおもったけど、あれだと1種類のmodelにしか対応できていない。articleの開発は問題なく進められても、author絡みの開発をするには、また別のアダプターをつくらないといけなくなっちゃう。アダプタはモデルごとに指定するから、それでも別にダメじゃない気がしてきたけど。それはさておき。

で、要は前回のapp/assets/alloy/sync/sample.js内でモデル判別してif書いときゃいいんだけど、あそこでmodelを判別する手段がなかった。modelが引数にあるから、それで判別できるべーとか思ってたけど実際は空だった。

名前がないなら足せばいいじゃない、ということで各モデルに名前をあげましょう。
models/article.coffee

exports.definition =
  config:
    adapter:
      type: "sample",
      collection_name: "articles"
      idAttribute: "id"

  extendModel: (Model) ->
    _.extend(Model.prototype,
      myName: 'article'
    )
    Model

  extendCollection: (Collection) ->
    _.extend(Collection.prototype,
      myName: 'articles'
    )
    Collection

assets/alloy/sync/sample.js

module.exports.sync = function(method, model, options) {
    console.log(model.myName);
~snip~

とりあえず、こんな感じでうまくいきそう。

寄生獣 完全版全8巻 完結コミックセット

寄生獣 完全版全8巻 完結コミックセット