Ohm を使っていると色々と不満な点が見えてきます
- @attributes
を得る手段がない (#attributes が column_nam es を返す) - create!, save! がない
- first, all がない
- ...
これは AR 脳というよりも、ARの洗練されたAPIと比べてしまうと、 Ohm の未成熟さが浮き彫りになってしまうためだと思います。
ohm-arfrea ks
そこで、ARのメソッドをOhm上で使えるようにしたラッパーを作成しました。
http://git
インストール
1 % gem install ohm-arfreaks
例
1 require 'ohm' 2 require 'ohm-arfreaks' # これを追加 3 4 class Video < Ohm::Model 5 attribute :url 6 set :tags 7 end 8 9 Video.create!(:url=>"a") 10 Video.first.attributes 11 => {:url=>"a", :tags=>[]}
以下のメソッドが利用可能です (0.1.0 現在)
- self.prima
ry_key - self.colum
ns - self.colum
n_names - self.conte
nt_columns - self.colum
ns_hash - self.creat
e! - save!
- self.first
- self.last
- self.count
- self.delet
e_all - new_record
? - attributes
ARと比べると使えるメソッドは少ないですが、 これだけでも随分Ohmが快適になると思います。
backup
例えば、redis はどこに DB を作っているかわかり辛いので
時々バックアップが欲しくなるのですが、
昔懐かしのar_fixture
1 File.open("videos.yml", "w+") do |f| 2 hash = Video.all.inject({}){|h,v| h[v.id]=v.attributes ;h} 3 f.print hash.to_yaml 4 end
posted by
maiha
on Tue 16 Mar 2010
at 19:16