universal-track-manager 0.4 → 0.5.beta1
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/lib/generators/templates/universal_track_manager.rb +9 -0
- data/lib/generators/universal_track_manager/install_generator.rb +6 -2
- data/lib/universal-track-manager.rb +6 -7
- data/lib/universal_track_manager.rb +34 -0
- data/lib/universal_track_manager/controllers/concerns/universal_track_manager_concern.rb +12 -2
- data/lib/version.rb +1 -1
- metadata +6 -5
- data/lib/universal_track_manager/base.rb +0 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 43693a18583e3b5ccc95cb28c40779daa45011729adaeafce81cef6f7df86aa3
|
4
|
+
data.tar.gz: 36e57d01d10a045d2d39851295c95a4d692be3adc519f9d53083309e5b1f61ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ddb26a46cb9ae25cdf2b34bdaa9b03fcfbf51f7c97c918c8174ff06787fbba93f5a66f129064dc203348d5ead9e499e8ff88103c143ae942f3c160e89ab0eb4d
|
7
|
+
data.tar.gz: f182f25911b1f3bc9b0e87597214ae4b2b1018c3fd2a1fe39d982c8dcf6a91e45f7531fdd08fdd51b6281182dc3b3ebcd3f0a3006873b948e95e69d3aa01bcfd
|
@@ -8,18 +8,22 @@ module UniversalTrackManager
|
|
8
8
|
|
9
9
|
source_root File.expand_path('../templates', __dir__)
|
10
10
|
|
11
|
-
|
12
11
|
class_option :orm, type: 'boolean'
|
13
12
|
|
13
|
+
|
14
14
|
def self.next_migration_number(path)
|
15
15
|
Time.now.utc.strftime("%Y%m%d%H%M%S")
|
16
16
|
end
|
17
17
|
|
18
18
|
desc "Creates an initializer for Universal Track Manager and copy files to your application."
|
19
|
-
def
|
19
|
+
def create_universal_track_manager_migration
|
20
20
|
migration_template "create_universal_track_manager_tables.rb", "db/migrate/create_universal_track_manager_tables.rb"
|
21
21
|
end
|
22
22
|
|
23
|
+
def create_universal_track_manager_initializer
|
24
|
+
copy_file 'universal_track_manager.rb', 'config/initializers/universal_track_manager.rb'
|
25
|
+
end
|
26
|
+
|
23
27
|
def migration_version
|
24
28
|
"[#{ActiveRecord::Migration.current_version}]" if ActiveRecord::Migration.respond_to?(:current_version)
|
25
29
|
end
|
@@ -1,3 +1,8 @@
|
|
1
|
+
# note this file must be named identically to the gem's name (using hyphen)
|
2
|
+
# for it to be picked up in the Gem build
|
3
|
+
#
|
4
|
+
# THIS FILE IS NOT in the specs and is for the gem builder
|
5
|
+
|
1
6
|
$LOAD_PATH.unshift __dir__
|
2
7
|
|
3
8
|
def require_all(path)
|
@@ -7,15 +12,9 @@ def require_all(path)
|
|
7
12
|
end
|
8
13
|
end
|
9
14
|
|
10
|
-
|
11
15
|
# require_all("generators/templates")
|
12
|
-
|
13
16
|
require_all("generators/universal_track_manager")
|
14
17
|
require_all("universal_track_manager/controllers/concerns")
|
15
18
|
require_all("universal_track_manager/models")
|
16
19
|
|
17
|
-
|
18
|
-
require "railtie.rb" if defined?(Rails)
|
19
|
-
end
|
20
|
-
|
21
|
-
|
20
|
+
require("universal_track_manager")
|
@@ -0,0 +1,34 @@
|
|
1
|
+
# primary module for UTM. note this file is included in the specs
|
2
|
+
|
3
|
+
module UniversalTrackManager
|
4
|
+
require "railtie.rb" if defined?(Rails)
|
5
|
+
|
6
|
+
class Settings
|
7
|
+
attr_accessor :track_ips, :track_utms, :track_user_agent, :track_http_referrer
|
8
|
+
end
|
9
|
+
|
10
|
+
def self.configure(&block)
|
11
|
+
@_settings = Settings.new
|
12
|
+
|
13
|
+
block.call(@_settings)
|
14
|
+
end
|
15
|
+
|
16
|
+
|
17
|
+
def self.track_ips?
|
18
|
+
@_settings.track_ips
|
19
|
+
end
|
20
|
+
|
21
|
+
def self.track_utms?
|
22
|
+
@_settings.track_utms
|
23
|
+
end
|
24
|
+
|
25
|
+
def self.track_user_agent?
|
26
|
+
@_settings.track_user_agent
|
27
|
+
end
|
28
|
+
|
29
|
+
def self.track_http_referrer?
|
30
|
+
@_settings.track_http_referrer
|
31
|
+
end
|
32
|
+
end
|
33
|
+
|
34
|
+
|
@@ -13,31 +13,38 @@ module UniversalTrackManagerConcern
|
|
13
13
|
|
14
14
|
|
15
15
|
def ip_address
|
16
|
+
return nil if ! UniversalTrackManager.track_ips?
|
16
17
|
request.ip
|
17
18
|
end
|
18
19
|
|
19
20
|
def user_agent
|
21
|
+
return nil if ! UniversalTrackManager.track_user_agent?
|
20
22
|
request.user_agent[0..255]
|
21
23
|
end
|
22
24
|
|
23
25
|
|
24
26
|
def utm_campaign
|
27
|
+
return nil if ! UniversalTrackManager.track_utms?
|
25
28
|
permitted_utm_params[:utm_campaign]
|
26
29
|
end
|
27
30
|
|
28
31
|
def utm_source
|
32
|
+
return nil if ! UniversalTrackManager.track_utms?
|
29
33
|
permitted_utm_params[:utm_source]
|
30
34
|
end
|
31
35
|
|
32
36
|
def utm_term
|
37
|
+
return nil if ! UniversalTrackManager.track_utms?
|
33
38
|
permitted_utm_params[:utm_term]
|
34
39
|
end
|
35
40
|
|
36
41
|
def utm_content
|
42
|
+
return nil if ! UniversalTrackManager.track_utms?
|
37
43
|
permitted_utm_params[:utm_content]
|
38
44
|
end
|
39
45
|
|
40
46
|
def utm_medium
|
47
|
+
return nil if ! UniversalTrackManager.track_utms?
|
41
48
|
permitted_utm_params[:utm_medium]
|
42
49
|
end
|
43
50
|
|
@@ -47,7 +54,6 @@ module UniversalTrackManagerConcern
|
|
47
54
|
|
48
55
|
def track_visitor
|
49
56
|
if !session['visit_id']
|
50
|
-
|
51
57
|
visit = UniversalTrackManager::Visit.create!(
|
52
58
|
first_pageload: now,
|
53
59
|
last_pageload: now,
|
@@ -59,6 +65,7 @@ module UniversalTrackManagerConcern
|
|
59
65
|
# existing visit, maybe
|
60
66
|
existing_visit = UniversalTrackManager::Visit.find(session['visit_id'])
|
61
67
|
|
68
|
+
|
62
69
|
evict_visit!(existing_visit) if any_utm_params? && !existing_visit.matches_all_utms?({utm_campaign: utm_campaign,
|
63
70
|
utm_source: utm_source,
|
64
71
|
utm_term: utm_term,
|
@@ -66,7 +73,7 @@ module UniversalTrackManagerConcern
|
|
66
73
|
utm_medium: utm_medium})
|
67
74
|
|
68
75
|
evict_visit!(existing_visit) if existing_visit.ip_v4_address != ip_address
|
69
|
-
evict_visit!(existing_visit) if existing_visit.browser.name != user_agent
|
76
|
+
evict_visit!(existing_visit) if existing_visit.browser && existing_visit.browser.name != user_agent
|
70
77
|
|
71
78
|
existing_visit.update_columns(:last_pageload => Time.now) if !@visit_evicted
|
72
79
|
|
@@ -75,16 +82,19 @@ module UniversalTrackManagerConcern
|
|
75
82
|
|
76
83
|
|
77
84
|
def any_utm_params?
|
85
|
+
return false if ! UniversalTrackManager.track_utms?
|
78
86
|
[:utm_campaign, :utm_source, :utm_medium, :utm_term, :utm_content].any? do |key|
|
79
87
|
params[key].present?
|
80
88
|
end
|
81
89
|
end
|
82
90
|
|
83
91
|
def find_or_create_browser_by_current
|
92
|
+
return nil if ! UniversalTrackManager.track_user_agent?
|
84
93
|
browser = UniversalTrackManager::Browser.find_or_create_by(name: user_agent)
|
85
94
|
end
|
86
95
|
|
87
96
|
def find_or_create_campaign_by_current
|
97
|
+
return nil if ! UniversalTrackManager.track_utms?
|
88
98
|
campaign = UniversalTrackManager::Campaign.find_or_create_by(
|
89
99
|
utm_campaign: utm_campaign,
|
90
100
|
utm_source: utm_source,
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: universal-track-manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 0.5.beta1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Fleetwood-Boldt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-12-
|
11
|
+
date: 2019-12-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -60,10 +60,11 @@ extensions: []
|
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
62
|
- lib/generators/templates/create_universal_track_manager_tables.rb
|
63
|
+
- lib/generators/templates/universal_track_manager.rb
|
63
64
|
- lib/generators/universal_track_manager/install_generator.rb
|
64
65
|
- lib/railtie.rb
|
65
66
|
- lib/universal-track-manager.rb
|
66
|
-
- lib/universal_track_manager
|
67
|
+
- lib/universal_track_manager.rb
|
67
68
|
- lib/universal_track_manager/controllers/concerns/universal_track_manager_concern.rb
|
68
69
|
- lib/universal_track_manager/models/browser.rb
|
69
70
|
- lib/universal_track_manager/models/campaign.rb
|
@@ -91,9 +92,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
91
92
|
version: '0'
|
92
93
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
94
|
requirements:
|
94
|
-
- - "
|
95
|
+
- - ">"
|
95
96
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
97
|
+
version: 1.3.1
|
97
98
|
requirements: []
|
98
99
|
rubygems_version: 3.0.3
|
99
100
|
signing_key:
|