DataMapperパターンのRuby実装。RDB、KVS、NoSQL系DBをサポートしてて、1.0.0なので結構枯れてる。
調べる必要があったヤツだけをメモ。
スラッグ型(URLの中で使える文字列)
String型のサブクラスだから安心。
require 'dm-types'
Class Post
include DataMapper::Resource
property :slug, Slug
end
デフォルトスコープ
Class Post
include DataMapper::Resource
property :id, Serial
default_scope(:default).update(:order => [:id.desc])
end
手抜き全文検索
Class Post
include DataMapper::Resource
property :id, Serial
property :title, String
property :body, Text
def self.search(str)
all(:title.like => "%#{str}%") |
all(:body.like => "%#{str}%")
end
end
Post.search('unk').all(:limit => 5)
「でたー!クラウザーさんのLIKE '%foo%'だー!」
真面目にやるならdm-is-searchableでインデックスを別のストレージ(DM用語ではrepository)に保存する。