diff options
Diffstat (limited to 'examples/rails_app-2.3.4/app')
-rw-r--r-- | examples/rails_app-2.3.4/app/models/upr_status.rb | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/examples/rails_app-2.3.4/app/models/upr_status.rb b/examples/rails_app-2.3.4/app/models/upr_status.rb index 61d39bc..eeefd8b 100644 --- a/examples/rails_app-2.3.4/app/models/upr_status.rb +++ b/examples/rails_app-2.3.4/app/models/upr_status.rb @@ -4,11 +4,7 @@ class UprStatus < ActiveRecord::Base class << self def read(upid) - if rv = find_by_upid(upid) - rv.time = Time.now.to_i - rv.save - rv - end + find_by_upid(upid) end def start(upid, length) @@ -23,7 +19,18 @@ class UprStatus < ActiveRecord::Base def incr(upid, nr) update_all("seen = seen + #{nr.to_i}, time = #{Time.now.to_i}", - { :upid => upid }) + [ "upid = ? AND seen >= 0", upid ]) + end + + def error!(upid) + transaction do + if rv = find_by_upid(upid) + rv.time = Time.now.to_i + rv.seen = -1 + rv.save + rv + end + end end def finish(upid) @@ -44,4 +51,5 @@ class UprStatus < ActiveRecord::Base end end + include Upr::StatusMethods end |