universal-track-manager 0.4 → 0.5.beta1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d48794e98ac66bd550a5f0bc89582f60b5bb82c439c45f6e3d0a8390826ccf2b
4
- data.tar.gz: d7d09b5ac92ece9105755d45bb96a122ce3c1c7e71b3f784bc8ee63fbe25d1fe
3
+ metadata.gz: 43693a18583e3b5ccc95cb28c40779daa45011729adaeafce81cef6f7df86aa3
4
+ data.tar.gz: 36e57d01d10a045d2d39851295c95a4d692be3adc519f9d53083309e5b1f61ce
5
5
  SHA512:
6
- metadata.gz: 4605e21f5e796428900637174281783678d29fa178fb6d328bb66f052669de39a37deffad718fdcbc3331f04656e9d09e26384c7ba4d86feedfba693afc15e51
7
- data.tar.gz: 12d8bbca72e630abf4753fa8fe5f5bf736db2b0cf2fad35187a4b53a2a272fc5d7aaae06db2f27d840ded2a375824b46aa1abc9b4d10d5849b38a713e28476bf
6
+ metadata.gz: ddb26a46cb9ae25cdf2b34bdaa9b03fcfbf51f7c97c918c8174ff06787fbba93f5a66f129064dc203348d5ead9e499e8ff88103c143ae942f3c160e89ab0eb4d
7
+ data.tar.gz: f182f25911b1f3bc9b0e87597214ae4b2b1018c3fd2a1fe39d982c8dcf6a91e45f7531fdd08fdd51b6281182dc3b3ebcd3f0a3006873b948e95e69d3aa01bcfd
@@ -0,0 +1,9 @@
1
+ UniversalTrackManager.configure do |config|
2
+ config.track_ips = true
3
+ config.track_utms = true
4
+ config.track_user_agent = true
5
+
6
+
7
+ # config.track_referrer = false
8
+
9
+ end
@@ -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 copy_initializer
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
- module UniversalTrackManager
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
@@ -1,3 +1,3 @@
1
1
  module UniversalTrackManager
2
- VERSION = "0.4"
2
+ VERSION = "0.5.beta1"
3
3
  end
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: '0.4'
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-23 00:00:00.000000000 Z
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/base.rb
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: '0'
97
+ version: 1.3.1
97
98
  requirements: []
98
99
  rubygems_version: 3.0.3
99
100
  signing_key:
@@ -1,7 +0,0 @@
1
- module UniversalTrackManager
2
- def self.config(options)
3
- # set the config options
4
-
5
-
6
- end
7
- end