universal-track-manager 0.7.0.alpha → 0.7.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/generators/templates/create_universal_track_manager_tables.rb +6 -3
- data/lib/generators/universal_track_manager/install_generator.rb +0 -5
- data/lib/universal_track_manager/controllers/concerns/universal_track_manager_concern.rb +10 -3
- data/lib/universal_track_manager/models/visit.rb +1 -1
- data/lib/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8712d19c21825899298ab6fb39d7d1d97299261003898e730db82e6b72fe44bf
|
4
|
+
data.tar.gz: c215ac7ba9ef0ce32bc9abf0c9d3742ed68e108103725b3b1ef74b71635336d1
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 513b88940fbd32c3e535c4b8e4eb4e43ffc797bbb5df8f8dd90b4b2faa94075557d44975c1a44714eaca871476095ff02ee73bc9f4790e937c4cb93d336e258a
|
7
|
+
data.tar.gz: 42a4c1af1fb267ca4280b3e25028d7a130ca76c0fbd79f4f0ad947eb1d167e5ce6c3f78211763ec7e652fecc09d9b5be6d645a0719606ec0f735aa1b179f5814
|
@@ -4,7 +4,8 @@ class CreateUniversalTrackManagerTables < ActiveRecord::Migration<%= migration_v
|
|
4
4
|
|
5
5
|
create_table :browsers do |t|
|
6
6
|
# this table gets automatically populated by inbound traffic
|
7
|
-
t.string :name,
|
7
|
+
t.string :name, limit: 255
|
8
|
+
t.timestamps
|
8
9
|
end
|
9
10
|
|
10
11
|
add_index :browsers, :name
|
@@ -12,10 +13,11 @@ class CreateUniversalTrackManagerTables < ActiveRecord::Migration<%= migration_v
|
|
12
13
|
create_table :campaigns do |t|
|
13
14
|
# this table gets automatically populated by inbound traffic
|
14
15
|
#GENERATOR INSERTS CAMPAIGN COLUMNS HERE
|
16
|
+
t.string :sha1, limit: 40
|
15
17
|
t.timestamps
|
16
18
|
end
|
17
19
|
|
18
|
-
|
20
|
+
add_index :campaigns, :sha1
|
19
21
|
|
20
22
|
create_table :visits do |t|
|
21
23
|
t.datetime :first_pageload
|
@@ -23,10 +25,11 @@ class CreateUniversalTrackManagerTables < ActiveRecord::Migration<%= migration_v
|
|
23
25
|
t.integer :original_visit_id
|
24
26
|
t.integer :campaign_id
|
25
27
|
t.integer :browser_id
|
26
|
-
t.string :ip_v4_address,
|
28
|
+
t.string :ip_v4_address, limit: 15
|
27
29
|
|
28
30
|
t.integer :viewport_width
|
29
31
|
t.integer :viewport_height
|
32
|
+
t.timestamps
|
30
33
|
end
|
31
34
|
end
|
32
35
|
end
|
@@ -26,13 +26,8 @@ module UniversalTrackManager
|
|
26
26
|
@params.split(',').each do |p|
|
27
27
|
column_defs += " t.string :#{p}, limit:256\n"
|
28
28
|
end
|
29
|
-
|
30
|
-
index_def = "add_index :campaigns, #{@params.split(',').map{|c| c.to_sym}.to_s}, name: 'utm_all_combined'"
|
31
29
|
copy_file "create_universal_track_manager_tables.rb", "#{self.class.source_root}/create_universal_track_manager_tables.rb-staged"
|
32
|
-
byebug
|
33
30
|
gsub_file "#{self.class.source_root}/create_universal_track_manager_tables.rb-staged", "#GENERATOR INSERTS CAMPAIGN COLUMNS HERE", column_defs
|
34
|
-
byebug
|
35
|
-
gsub_file "#{self.class.source_root}/create_universal_track_manager_tables.rb-staged", "#GENERATOR INSERTS CAMPAIGN INDEX HERE", index_def
|
36
31
|
migration_template "create_universal_track_manager_tables.rb-staged", "db/migrate/create_universal_track_manager_tables.rb"
|
37
32
|
end
|
38
33
|
|
@@ -83,9 +83,16 @@ module UniversalTrackManagerConcern
|
|
83
83
|
|
84
84
|
def find_or_create_campaign_by_current
|
85
85
|
return nil if ! UniversalTrackManager.track_utms?
|
86
|
-
|
87
|
-
|
88
|
-
|
86
|
+
gen_sha1 = gen_campaign_key(permitted_utm_params)
|
87
|
+
|
88
|
+
# find_or_create_by finding only by sha1 would be nice here, but how to do so with a dynamic set of columns?
|
89
|
+
# we've got a small chance of dups here due to the non-atomic find/create and sha1, but that's ok for this application.
|
90
|
+
c = UniversalTrackManager::Campaign.find_by(sha1: gen_sha1)
|
91
|
+
c ||= UniversalTrackManager::Campaign.create(*(permitted_utm_params.merge({"sha1": gen_sha1})))
|
92
|
+
end
|
93
|
+
|
94
|
+
def gen_campaign_key(params)
|
95
|
+
Digest::SHA1.hexdigest(params.keys.map{|k| k.downcase()}.sort.map{|k| {"#{k}": params[k]}}.to_s)
|
89
96
|
end
|
90
97
|
|
91
98
|
def evict_visit!(old_visit)
|
@@ -16,7 +16,7 @@ class UniversalTrackManager::Visit < ActiveRecord::Base
|
|
16
16
|
|
17
17
|
# note params are allowed to be missing
|
18
18
|
UniversalTrackManager.campaign_column_symbols.each do |c|
|
19
|
-
if campaign[c] != params[c]
|
19
|
+
if (campaign[c] && (campaign[c] != params[c])) || (!campaign[c] && params[c])
|
20
20
|
return false
|
21
21
|
end
|
22
22
|
end
|
data/lib/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: universal-track-manager
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jason Fleetwood-Boldt
|
@@ -108,9 +108,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
108
108
|
version: '0'
|
109
109
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
110
|
requirements:
|
111
|
-
- - "
|
111
|
+
- - ">="
|
112
112
|
- !ruby/object:Gem::Version
|
113
|
-
version:
|
113
|
+
version: '0'
|
114
114
|
requirements: []
|
115
115
|
rubygems_version: 3.2.7
|
116
116
|
signing_key:
|