session_logger 1.0.2 → 1.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.
data/README.rdoc CHANGED
@@ -40,11 +40,13 @@ Finally add 'enable_session_logger' to Application controller (or any controller
40
40
 
41
41
  1 Create metadata columns on the models you want metadata recorded on
42
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
43
+ add_column :users, :sl_campaign, :string
44
+ add_column :users, :sl_source, :string
45
+ add_column :users, :sl_medium, :string
46
+ add_column :users, :sl_term, :string
47
+ add_column :users, :sl_content, :string
48
+ add_column :users, :sl_landing_page, :string
49
+ add_column :users, :sl_session_id, :string
48
50
 
49
51
  2 Be sure to prefix metadata columns with the model prefix ("sl_" by default)
50
52
 
@@ -58,8 +60,29 @@ Finally add 'enable_session_logger' to Application controller (or any controller
58
60
  before_filter :pull_campaign_data
59
61
 
60
62
  def pull_campaign_data
61
- session[:sl_campaign] = params[:sl_campaign]
62
- ...
63
+ first_time = session['meta_stored'].blank?
64
+ mapping = {"utm_source" => "sl_source", "utm_medium" => "sl_medium",
65
+ "utm_term" => "sl_term", "utm_content" => "sl_content",
66
+ "utm_campaign" =>"sl_campaign"}
67
+
68
+ new_values = {}
69
+ mapping.each do |param_key, session_key|
70
+ value = params[param_key]
71
+ if value.present? && session[session_key] != value
72
+ new_values[session_key] = value
73
+ end
74
+ end
75
+
76
+ #Override all the campaign values when new ones come in
77
+ #new values will be empty when link doesn't have utm params
78
+ if (new_values.present? || first_time)
79
+ #Store the landingpage with the utm params, and session id
80
+ new_values["sl_landing_uri"] = request.env["REQUEST_URI"]
81
+ new_values["sl_session_id"] = request.session_options[:id]
82
+ session.merge!(new_values)
83
+ end
84
+
85
+ session['meta_stored'] = true
63
86
  end
64
87
 
65
88
  end
@@ -1,6 +1,6 @@
1
1
  # The configure step must be run after the rails app has finished initializing
2
2
  # for the models to respond to observer registration requests
3
- Rails.application.config.after_initialize do
3
+ Rails.application.config.to_prepare do
4
4
  SessionLogger.configure do |config|
5
5
 
6
6
  # Default is to observe all models in the models dir
@@ -1,3 +1,3 @@
1
1
  module SessionLogger
2
- VERSION = "1.0.2"
2
+ VERSION = "1.0.3"
3
3
  end
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.2
5
+ version: 1.0.3
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-08 00:00:00 Z
13
+ date: 2012-01-25 00:00:00 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: rails
@@ -235,7 +235,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
235
235
  requirements: []
236
236
 
237
237
  rubyforge_project:
238
- rubygems_version: 1.8.11
238
+ rubygems_version: 1.8.15
239
239
  signing_key:
240
240
  specification_version: 3
241
241
  summary: Logs rails model updates with session info