lib/ohm.rb in ohm-0.0.21 vs lib/ohm.rb in ohm-0.0.22
- old
+ new
@@ -1,5 +1,7 @@
+# encoding: UTF-8
+
require "base64"
require File.join(File.dirname(__FILE__), "ohm", "redis")
require File.join(File.dirname(__FILE__), "ohm", "validations")
module Ohm
@@ -471,22 +473,22 @@
return unless valid?
initialize_id
mutex do
create_model_membership
- add_to_indices
write
+ add_to_indices
end
end
def save
return create if new?
return unless valid?
mutex do
- update_indices
write
+ update_indices
end
end
def update(attrs)
update_attributes(attrs)
@@ -561,11 +563,10 @@
self.class.key(id, *args)
end
def write
attributes.each { |att| write_remote(att, send(att)) }
- self
end
private
def self.db
@@ -646,10 +647,12 @@
def read_remote(att)
id && db.get(key(att))
end
def write_remote(att, value)
- db.set(key(att), value)
+ value.nil? ?
+ db.del(key(att)) :
+ db.set(key(att), value)
end
def read_locals(attrs)
attrs.map do |att|
send(att)