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