lib/ohm.rb in ohm-0.0.27 vs lib/ohm.rb in ohm-0.0.28
- old
+ new
@@ -608,11 +608,16 @@
def key(*args)
self.class.key(id, *args)
end
def write
- attributes.each { |att| write_remote(att, send(att)) }
+ unless attributes.empty?
+ rems, adds = attributes.map { |a| [key(a), send(a)] }.partition { |t| t.last.nil? }
+
+ db.del(*rems.flatten.compact) unless rems.empty?
+ db.mset(adds.flatten) unless adds.empty?
+ end
end
private
def self.db
@@ -690,15 +695,9 @@
@_attributes[att] = value
end
def read_remote(att)
db.get(key(att)) unless new?
- end
-
- def write_remote(att, value)
- value.nil? ?
- db.del(key(att)) :
- db.set(key(att), value)
end
def read_locals(attrs)
attrs.map do |att|
send(att)