snapstats 0.0.2 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/views/snapstats/mains/show.html.erb +2 -2
- data/app/views/snapstats/users/show.html.erb +1 -1
- data/lib/event_logger/event_logger_static.rb +26 -7
- data/lib/event_logger/event_logger_store.rb +1 -1
- data/lib/event_reader/event_reader.rb +5 -5
- data/lib/ext/redis.rb +5 -1
- data/lib/snapstats/version.rb +1 -1
- data/lib/snapstats.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: eece7c49770b47faa4ddbbcfceac38deac8b3609
|
4
|
+
data.tar.gz: 472bdc6c237d80e9013309acbaf0ec4b8ea48f23
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: bceab64fbc63c1e0ae7c677b6d949605b8b3940a6dd9fbecd55f1ca7025ebe61a636aed6267345e9b02e76c7b04338232ee297ed868879d9e7f6b9b6f4689bec
|
7
|
+
data.tar.gz: 780d1c312e68e970ce374165c8456b82cb7528ba85e40b6ad7696b77a4b325d544a1401682ecc5f4b2fac5340fb5453e889af19a9d8d92f9e6d63e21844f45e6
|
@@ -4,11 +4,15 @@ module Snapstats
|
|
4
4
|
|
5
5
|
@@is_started = false
|
6
6
|
|
7
|
-
def self.start
|
7
|
+
def self.start opt={}
|
8
8
|
unless @@is_started
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
|
10
|
+
Snapstats.set_redis opt[:redis]
|
11
|
+
|
12
|
+
unless opt[:disable_logging] == true
|
13
|
+
init_events opt
|
14
|
+
subscribe
|
15
|
+
end
|
12
16
|
|
13
17
|
@@is_started = true
|
14
18
|
end
|
@@ -18,10 +22,25 @@ module Snapstats
|
|
18
22
|
ActiveSupport::Notifications.subscribe('process_action.action_controller', self.new)
|
19
23
|
end
|
20
24
|
|
21
|
-
def self.init_events
|
25
|
+
def self.init_events opt={}
|
22
26
|
|
23
27
|
ActionController::Instrumentation.send(:define_method, "process_action") do |arg|
|
24
28
|
|
29
|
+
fetch_user_id = -> params {
|
30
|
+
model = params.try(:[], :devise_model).try(:[], :model) || :user
|
31
|
+
request.env['warden'].try(model.to_sym).try(:id)
|
32
|
+
}
|
33
|
+
|
34
|
+
fetch_user_email = -> params {
|
35
|
+
model = params.try(:[], :devise_model).try(:[], :model) || :user
|
36
|
+
|
37
|
+
if params[:devise_model].present? && params[:devise_model].try(:[], :login_fields).present?
|
38
|
+
return params[:devise_model][:login_fields].map{ |field| request.env['warden'].try(model.to_sym).try(field.to_sym) }.compact.first
|
39
|
+
else
|
40
|
+
return request.env['warden'].try(model.to_sym).try(:email)
|
41
|
+
end
|
42
|
+
}
|
43
|
+
|
25
44
|
raw_payload = {
|
26
45
|
:controller => self.class.name,
|
27
46
|
:action => self.action_name,
|
@@ -33,8 +52,8 @@ module Snapstats
|
|
33
52
|
:ip => request.remote_ip,
|
34
53
|
:stash => request.session['flash'] && request.session['flash'][:log],
|
35
54
|
|
36
|
-
:user_id =>
|
37
|
-
:user_email =>
|
55
|
+
:user_id => fetch_user_id.call(opt),
|
56
|
+
:user_email => fetch_user_email.call(opt),
|
38
57
|
:user_agent => request.user_agent
|
39
58
|
}
|
40
59
|
|
@@ -109,10 +109,10 @@ module Snapstats
|
|
109
109
|
cpm = data[Time.now.beginning_of_minute.to_i.to_s] || 0
|
110
110
|
cpd = data.values.reduce(0){ |sum, i| sum + i.to_i }
|
111
111
|
|
112
|
-
cph = data.group_by{ |k, v| Time.at(k.to_i).beginning_of_hour }.reduce({}){|sum, (k, v)| sum[k] = v.map{|i| i.last.to_i}.reduce(:+); sum }
|
113
|
-
cph = cph.values.reduce(:+) / cph.keys.count
|
112
|
+
# cph = data.group_by{ |k, v| Time.at(k.to_i).beginning_of_hour }.reduce({}){|sum, (k, v)| sum[k] = v.map{|i| i.last.to_i}.reduce(:+); sum }
|
113
|
+
# cph = cph.values.reduce(:+) / cph.keys.count
|
114
114
|
|
115
|
-
{ cpm: cpm, cph:
|
115
|
+
{ cpm: cpm, cph: 0, cpd: cpd }
|
116
116
|
end
|
117
117
|
|
118
118
|
def self.fetch_all_chart
|
@@ -134,7 +134,7 @@ module Snapstats
|
|
134
134
|
attribute :version, String
|
135
135
|
|
136
136
|
def self.fetch_all
|
137
|
-
Snapstats.redis.hgetall(Snapstats.
|
137
|
+
Snapstats.redis.hgetall(Snapstats.mday("activity:users")).map do |uid, values|
|
138
138
|
values = JSON.parse(values, :symbolize_names => true)
|
139
139
|
self.new(email: values[:email], date: Time.at(values[:ts].to_i), path: values[:path], user_id: uid)
|
140
140
|
end
|
@@ -154,7 +154,7 @@ module Snapstats
|
|
154
154
|
end
|
155
155
|
|
156
156
|
def self.fetch_email_by_uid user_id
|
157
|
-
data = Snapstats.redis.hgetall(Snapstats.
|
157
|
+
data = Snapstats.redis.hgetall(Snapstats.mday("activity:users"))[user_id]
|
158
158
|
JSON.parse(data, :symbolize_names => true)[:email] if data
|
159
159
|
end
|
160
160
|
|
data/lib/ext/redis.rb
CHANGED
@@ -1,7 +1,11 @@
|
|
1
1
|
module Snapstats
|
2
2
|
|
3
3
|
def self.redis
|
4
|
-
@@redis ||= Redis.new(:host => 'localhost', :port => 6379)
|
4
|
+
@@redis # ||= Redis.new(:host => 'localhost', :port => 6379)
|
5
|
+
end
|
6
|
+
|
7
|
+
def self.set_redis opt={}
|
8
|
+
@@redis = Redis.new( opt.present? ? opt : { :host => 'localhost', :port => 6379 } )
|
5
9
|
end
|
6
10
|
|
7
11
|
def self.mkey name
|
data/lib/snapstats/version.rb
CHANGED
data/lib/snapstats.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: snapstats
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- s3k
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-03-
|
11
|
+
date: 2015-03-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|