〜Gauche on Railsへの道〜 2. ActiveRecord 風のものを作る。その1
いよいよ Railsらしい ActiveRecordを作る事にしました。今日はイントロ・・・・
Gauche のオブジェクトシステム
Gauche のオブジェクトシステムは、CLOS(Common Lisp Object System)を影響を大きく受けています。CLOSの考え方は C++, Java, Ruby 等とは大きく違います。
→ http://practical-scheme.net/gauche/man/gauche-refj_62.html#SEC167
Gauche on Railsの active-record の仕様
クラス名は lisp っぽく - でつなぐ事にします。active-record の仕様ですがこんな感じになると思います。
(define-class <todo> (<active-record>)) (set! todo (make <todo> :due "2008/02/12" :task "打ち合わせ")) (task-of todo) # => "打ち合わせ" (set! (due-of todo) "2008/02/22") (save todo) # todoをtodosテーブルに格納 (find <todo> 1) # todosテーブルのid=1のレコードを取得
これは、以下の Ruby コードに対応します
class Todo << ActiveRecord; end todo = Todo.new(:due => "2008/02/12", :task =>"打ち合わせ") todo.task # => "打ち合わせ" todo.due = "2008/02/22" todo.save # todoをtodosテーブルに格納 Todo.find(1) # todosテーブルのid=1のレコードを取得
.