session_logger 1.0.1 → 1.0.2
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.
- data/README.rdoc +38 -8
- data/lib/session_logger/session_logging.rb +0 -3
- data/lib/session_logger/version.rb +1 -1
- metadata +2 -2
data/README.rdoc
CHANGED
@@ -30,21 +30,44 @@ And/or add it to your Gemfile
|
|
30
30
|
Then create the initializer:
|
31
31
|
rails generate session_logger:initializer
|
32
32
|
|
33
|
-
As a performance optimization you can add the list of models to observe in the initializer:
|
34
|
-
config.session_logger.logged_models = [MODEL_CONSTANTS,...]
|
35
|
-
|
36
33
|
Finally add 'enable_session_logger' to Application controller (or any controller you want logging to occur)
|
37
34
|
ApplicationController < ActionController::Base
|
38
|
-
|
35
|
+
enable_session_logging
|
39
36
|
end
|
40
37
|
|
41
38
|
|
42
39
|
== Usage
|
43
40
|
|
44
|
-
1
|
45
|
-
|
46
|
-
|
47
|
-
|
41
|
+
1 Create metadata columns on the models you want metadata recorded on
|
42
|
+
|
43
|
+
add_column :users :sl_campaign
|
44
|
+
add_column :users :sl_source
|
45
|
+
add_column :users :sl_medium
|
46
|
+
add_column :users :sl_landing_page
|
47
|
+
add_column :users :sl_session_id
|
48
|
+
|
49
|
+
2 Be sure to prefix metadata columns with the model prefix ("sl_" by default)
|
50
|
+
|
51
|
+
SessionLogger.configure do |config|
|
52
|
+
config.model_prefix = "sl_" # means columns are like: sl_XXXX
|
53
|
+
end
|
54
|
+
3 Simply set that same prefixed name in the session and that metadata will be stored anytime a observed record is created during that session.
|
55
|
+
|
56
|
+
ApplicationController < ActionController::Base
|
57
|
+
enable_session_logging
|
58
|
+
before_filter :pull_campaign_data
|
59
|
+
|
60
|
+
def pull_campaign_data
|
61
|
+
session[:sl_campaign] = params[:sl_campaign]
|
62
|
+
...
|
63
|
+
end
|
64
|
+
|
65
|
+
end
|
66
|
+
|
67
|
+
4 Later segment your data naturally using the columns you defined
|
68
|
+
|
69
|
+
User.where(:sl_campaign => "facebook_ads_1").count
|
70
|
+
...
|
48
71
|
|
49
72
|
== How it works
|
50
73
|
|
@@ -58,6 +81,7 @@ appending the metadata for that users session.
|
|
58
81
|
|
59
82
|
== Gotchas
|
60
83
|
|
84
|
+
|
61
85
|
If you start monitoring a ton of metadata around the user you have to switch
|
62
86
|
to db sessions instead of cookie store.
|
63
87
|
|
@@ -92,5 +116,11 @@ this will give you a bad taste in your mouth but it seems like a better
|
|
92
116
|
solution overall.
|
93
117
|
|
94
118
|
|
119
|
+
== Optimizations
|
120
|
+
|
121
|
+
As a performance optimization you can reduce the list of models to observe in the initializer:
|
122
|
+
config.session_logger.logged_models = [MODEL_CONSTANTS,...]
|
123
|
+
|
124
|
+
|
95
125
|
== License
|
96
126
|
This project rocks and uses MIT-LICENSE.
|
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: session_logger
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 1.0.
|
5
|
+
version: 1.0.2
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Timothy Cardenas
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-11-
|
13
|
+
date: 2011-11-08 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: rails
|