universal-track-manager 0.7.0.alpha → 0.7.1
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/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:
|