--- layout: old_post title: RESTなRails向けのJavaScriptライブラリ Jester まとめ permalink: /tatsuya/show/303-rest-rails-javascript-jester ---
昨日のエントリJesterについて補足。
Jester.jsソースを見ると本当にシンプルで、まだ欲しい機能もありそうなので一通りまとめてみた。
基本的な登場人物はBaseクラス (prototype) だけ、あとXML.ObjTreというライブラリを使用してXML → DOM → XMLの変換を行ってるみたい。このライブラリ何気に日本人が作者なんだね、初めて知った。 以下まとめ
主なメソッド
Base.model(モデル名, サーバURL, 単数形の名前, 複数形の名前)
modelクラスの宣言。もしモデル名がBookなどで、単数形book & 複数形books のように単純な変化なら暗黙的に行ってくれる。 Base.model("Book") でOK。
例;Base.model("Book");
Base.find(目的のID)
モデル名Book & 引数のidが1だとすれば http://localhost:3000/books/1.xml へGETリクエストして結果XMLをJavaScriptのオブジェクトにパースする。
例:var book = Book.find(6);
Base.対象プロパティ
モデルBookのtitleを編集する場合、 Book.title = "新しいタイトル" のように直接編集
例:book.title="新しいタイトル"
Base.save()
オブジェクトの保存、新規か更新かでPOSTとPUTを切り替えてくれる。正確にはPOSTリクエストに _method=put を付けた疑似PUTアクセス
例;book.save();
Base.destroy()
オブジェクトの削除、DELETEリクエストを投げる(_method=delete)
例:book.destroy();
Base.build({属性: 値, 属性: 値})
オブジェクトを引数の属性&値で新規作成、newがJavaScriptの予約語なので"build"らしい。saveはされない。
例:var book = Book.build({title: "オブジェクト指向スクリプト言語Ruby"})
Base.create({属性: 値, 属性: 値})
オブジェクトを引数の属性&値で新規作成してsaveも行う。build -> save
例:var book = Book.create({title: "オブジェクト指向スクリプト言語Ruby"})
その他
Base.new_record()
そのオブジェクトが新規の物か?サーバへ保存済みか?をbooleanで返す。Base.buildの後はtrue
Base.singular_url()
オブジェクトの単数形のURL。http://localhost:3000/books/1.xml
Base.plural_url()
オブジェクトの複数形のURL。http://localhost:3000/books.xml
Base.valid()
オブジェクトの保存でエラーがあった場合trueを返す。入力チェック等
Base.errors[]
オブジェクト保存でエラーがあった場合、エラーメッセージ保存