initial commit
[upr.git] / examples / rails_app-2.3.4 / app / models / upr_status.rb
blob81031c2a9bef6f51fdbd4084f55a945597267db4
1 class UprStatus < ActiveRecord::Base
2   cattr_accessor :gc_cutoff
3   @@gc_cutoff = 10
5   class << self
6     def read(upid)
7       if rv = find_by_upid(upid)
8         rv.time = Time.now.to_i
9         rv.save
10         rv
11       end
12     end
14     def start(upid, length)
15       # this must be a find_or_create_by since some users have twitchy
16       # fingers and hit the upload button prematurely
17       find_or_create_by_upid(upid) do |x|
18         x.length = length
19         x.time = Time.now.to_i
20         x.seen = 0
21       end
22     end
24     def incr(upid, nr)
25       update_all("seen = seen + #{nr.to_i}, time = #{Time.now.to_i}",
26                  { :upid => upid })
27     end
29     def gc
30       cutoff = Time.now.to_i - @@gc_cutoff
31       delete_all "time < #{cutoff}"
32     end
33   end
35 end