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)