lib/fnordmetric/event.rb in fnordmetric-0.5.9 vs lib/fnordmetric/event.rb in fnordmetric-0.6.0

- old
+ new

@@ -1,78 +1,86 @@ -class FnordMetric::Event +module FnordMetric + class Event - attr_accessor :time, :type, :event_id + attr_accessor :time, :type, :event_id - #def self.track!(event_type, event_data) - #end + #def self.track!(event_type, event_data) + #end - def self.all(opts) - range_opts = { :withscores => true } - range_opts.merge!(:limit => [0,opts[:limit]]) if opts[:limit] - opts[:redis].zrevrangebyscore( - "#{opts[:namespace_prefix]}-timeline", - '+inf', opts[:since]||'0', - range_opts - ).in_groups_of(2).map do |event_id, ts| - next if event_id.blank? - find(event_id, opts).tap{ |e| e.time = ts } + def self.all(opts) + range_opts = { :withscores => true } + range_opts.merge!(:limit => [0,opts[:limit]]) if opts[:limit] + opts[:redis].zrevrangebyscore( + "#{opts[:namespace_prefix]}-timeline", + '+inf', opts[:since]||'0', + range_opts + ).in_groups_of(2).map do |event_id, ts| + next if event_id.blank? + find(event_id, opts).tap{ |e| e.time = ts } + end end - end - def self.by_type(_type, opts) - opts[:redis].lrange( - "#{opts[:namespace_prefix]}-type-#{_type}", - 0, 200).map do |event_id| - next if event_id.blank? - find(event_id, opts).tap{ |e| } + def self.by_type(_type, opts) + opts[:redis].lrange( + "#{opts[:namespace_prefix]}-type-#{_type}", + 0, 200).map do |event_id| + next if event_id.blank? + find(event_id, opts).tap{ |e| } + end end - end - def self.find(event_id, opts) - self.new(event_id, opts).tap do |event| - event.fetch! + def self.by_session_key(_session_key, opts) + session = Session.find(_session_key, opts) + session.fetch_event_ids!(200).reject(&:blank?).map do |event_id| + find(event_id, opts) + end end - end - def initialize(event_id, opts) - @opts = opts - @event_id = event_id - end + def self.find(event_id, opts) + self.new(event_id, opts).tap do |event| + event.fetch! + end + end - def fetch! - @data = JSON.parse(fetch_json).tap do |event| - @type = event.delete("_type") + def initialize(event_id, opts) + @opts = opts + @event_id = event_id end - end - def fetch_json - @opts[:redis].get(redis_key) || "{}" - end + def fetch! + @data = JSON.parse(fetch_json).tap do |event| + @type = event.delete("_type") + end + end - def redis_key - [@opts[:redis_prefix], :event, @event_id].join("-") - end + def fetch_json + @opts[:redis].get(redis_key) || "{}" + end - def session_key - @data["_session"] ? Digest::MD5.hexdigest(@data["_session"]) : nil - end + def redis_key + [@opts[:redis_prefix], :event, @event_id].join("-") + end - def id - @event_id - end - - def data(key=nil) - key ? @data[key.to_s] : @data - end + def session_key + @data["_session"] ? Digest::MD5.hexdigest(@data["_session"]) : nil + end - alias :[] :data + def id + @event_id + end + + def data(key=nil) + key ? @data[key.to_s] : @data + end - def to_json - @data.merge!( - :_type => @type, - :_session_key => session_key, - :_eid => @event_id, - :_time => @time - ) - end + alias :[] :data -end \ No newline at end of file + def to_json + @data.merge!( + :_type => @type, + :_session_key => session_key, + :_eid => @event_id, + :_time => @time + ) + end + end +end