Class: Snapstats::EventReader::UserActivity

Inherits:
Object
  • Object
show all
Defined in:
lib/event_reader/event_reader.rb

Class Method Summary collapse

Class Method Details

.fetch_allObject



136
137
138
139
140
141
# File 'lib/event_reader/event_reader.rb', line 136

def self.fetch_all
	Snapstats.redis.hgetall(Snapstats.mkey("activity:users")).map do |uid, values|
		values = JSON.parse(values, :symbolize_names => true)
		self.new(email: values[:email], date: Time.at(values[:ts].to_i), path: values[:path], user_id: uid)
	end
end

.fetch_chart_for_user(user_id) ⇒ Object



161
162
163
# File 'lib/event_reader/event_reader.rb', line 161

def self.fetch_chart_for_user user_id
	fetch_for_user(user_id).group_by{ |i| i.date.beginning_of_minute }.map{ |k, v| { date: k.to_i, value: v.count } }
end

.fetch_email_by_uid(user_id) ⇒ Object



156
157
158
159
# File 'lib/event_reader/event_reader.rb', line 156

def self.fetch_email_by_uid user_id
	data = Snapstats.redis.hgetall(Snapstats.mkey("activity:users"))[user_id]
	JSON.parse(data, :symbolize_names => true)[:email] if data
end

.fetch_for_user(user_id, from = '+inf', to = '-inf') ⇒ Object



143
144
145
146
147
148
149
150
151
152
153
154
# File 'lib/event_reader/event_reader.rb', line 143

def self.fetch_for_user user_id, from='+inf', to='-inf'
	Snapstats.redis.zrevrangebyscore(Snapstats.mday("activity:user:#{user_id}"), from, to).map do |i|
					v = JSON.parse(i, :symbolize_names => true)

					self.new(	path: 				v[:path],
				render_time: 	v[:total],
				os: 					v[:os], 
				browser: 			v[:brwsr], 
				version: 			v[:brver],
				date: 				Time.at(v[:ts].to_i))
					end 
end