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 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