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.mday("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.mday("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