snapstats 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|