diff options
author | Eric Wong <normalperson@yhbt.net> | 2009-11-12 13:45:10 -0800 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2009-11-12 13:45:10 -0800 |
commit | 680a3827db292bcf34ab0aeb773720562866bc3b (patch) | |
tree | 2c7a02437f9085963dceaf4c1a0de0c8a6d9dac3 /lib | |
parent | dd08acc53b0f17946b47a7a8f5e6b3f219c218fd (diff) | |
download | upr-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 'lib')
-rw-r--r-- | lib/upr/monitor.rb | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/lib/upr/monitor.rb b/lib/upr/monitor.rb index 2ccb447..bcf3f03 100644 --- a/lib/upr/monitor.rb +++ b/lib/upr/monitor.rb @@ -27,22 +27,27 @@ module Upr end def read(upid) - moneta.update_key(upid, OPT) moneta[upid] end def incr(upid, nr) - status = moneta[upid] - status.seen += nr + status = moneta[upid] or return + status.seen += nr if status.seen >= 0 moneta.store(upid, status, OPT) end def finish(upid) - status = moneta[upid] + status = moneta[upid] or return status.length ||= status.seen status.seen = status.length moneta.store(upid, status, OPT) end + def error!(upid) + status = moneta[upid] or return + status.seen = -1 + moneta.store(upid, status, OPT) + end + end end |