Module: Tractor::Model::Dirty

Included in:
Base
Defined in:
lib/tractor/model/base.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.allObject



88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/tractor/model/base.rb', line 88

def self.all
  Tractor.redis.smembers(Dirty.key).each do |k|
    klass, id = k.split(',')
    data = {:id => id, :klass => klass, :data => eval(klass).find_by_id(id).send(:attribute_store)}
    begin
      yield data
      Tractor.redis.srem(Dirty.key, k)
    rescue Exception => e
      # Something went wrong, this should be handled on the callers end, but this prevents us from 
      # removing the dirty record from our list while continuing to process other dirty items.
    end
  end
end

.keyObject



80
81
82
# File 'lib/tractor/model/base.rb', line 80

def self.key
  "Tractor::Model::Dirty:all"
end

Instance Method Details

#markObject



84
85
86
# File 'lib/tractor/model/base.rb', line 84

def mark
  Tractor.redis.sadd Dirty.key, "#{self.class},#{id}"
end