about summary refs log tree commit homepage
path: root/examples/rails_app-2.3.4/app
diff options
context:
space:
mode:
authorEric Wong <normalperson@yhbt.net>2009-11-12 13:45:10 -0800
committerEric Wong <normalperson@yhbt.net>2009-11-12 13:45:10 -0800
commit680a3827db292bcf34ab0aeb773720562866bc3b (patch)
tree2c7a02437f9085963dceaf4c1a0de0c8a6d9dac3 /examples/rails_app-2.3.4/app
parentdd08acc53b0f17946b47a7a8f5e6b3f219c218fd (diff)
downloadupr-680a3827db292bcf34ab0aeb773720562866bc3b.tar.gz
backends: internal API updates/cleanups
Return values for class methods for Upr::Monitor and UprStatus
should synched.

Class methods:
  * error!(upid) method added:
    sets seen = -1, updates time and returns Status(-like) object
  * read(upid) no longer updates time
  * incr(upid, nr) does up increment errored statuses
  * incr(upid, nr) returns nil on invalid upids
  * finish(upid) returns nil on invalid upids

Additionally the AR example has been updated to include
Upr::StatusMethods for instance methods.
Diffstat (limited to 'examples/rails_app-2.3.4/app')
-rw-r--r--examples/rails_app-2.3.4/app/models/upr_status.rb20
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