From 14d2bc1189e0a22e1ec021b776b5ee16e0b6cc43 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Sat, 24 Jul 2010 21:37:34 +0300 Subject: [PATCH] moved around methods in Redistat::Event --- lib/redistat/event.rb | 72 ++++++++++++++++++++++--------------------- 1 file changed, 37 insertions(+), 35 deletions(-) diff --git a/lib/redistat/event.rb b/lib/redistat/event.rb index c5a1598..4a61fe1 100644 --- a/lib/redistat/event.rb +++ b/lib/redistat/event.rb @@ -26,41 +26,6 @@ module Redistat @new end - def save - return false if !self.new? - - #TODO store sumarized stats - - if @options[:store_event] - @id = self.next_id - db.hmset("#{self.scope}#{KEY_EVENT}#{@id}", - "scope", self.scope, - "label", self.label, - "date", self.date.to_time.to_s, - "stats", self.stats.to_json, - "meta", self.meta.to_json, - "options", self.options.to_json) - db.sadd "#{self.scope}#{KEY_EVENT_IDS}", @id - end - @new = false - self - end - - def self.create(*args) - self.new(*args).save - end - - def self.find(scope, id) - event = db.hgetall "#{scope}#{KEY_EVENT}#{id}" - return nil if event.size == 0 - self.new( event["scope"], event["label"], event["date"], JSON.parse(event["stats"]), - JSON.parse(event["meta"]), JSON.parse(event["options"]), false ) - end - - def next_id - db.incr("#{self.scope}#{KEY_NEXT_ID}") - end - def date @key.date end @@ -88,6 +53,43 @@ module Redistat def label=(input) @key.label = input end + + def next_id + db.incr("#{self.scope}#{KEY_NEXT_ID}") + end + + def save + return false if !self.new? + Summary.update_all(@key, @stats, depth_limit) + if @options[:store_event] + @id = self.next_id + db.hmset("#{self.scope}#{KEY_EVENT}#{@id}", + "scope", self.scope, + "label", self.label, + "date", self.date.to_time.to_s, + "stats", self.stats.to_json, + "meta", self.meta.to_json, + "options", self.options.to_json) + db.sadd("#{self.scope}#{KEY_EVENT_IDS}", @id) + end + @new = false + self + end + + def depth_limit + @options[:depth] ||= @key.depth + end + + def self.create(*args) + self.new(*args).save + end + + def self.find(scope, id) + event = db.hgetall "#{scope}#{KEY_EVENT}#{id}" + return nil if event.size == 0 + self.new( event["scope"], event["label"], event["date"], JSON.parse(event["stats"]), + JSON.parse(event["meta"]), JSON.parse(event["options"]), false ) + end end end \ No newline at end of file