content_signals 0.1.0 → 0.1.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.
@@ -0,0 +1,48 @@
1
+ class CreateContentSignalsPageViews < ActiveRecord::Migration<%= migration_version %>
2
+ def change
3
+ create_table :content_signals_page_views do |t|
4
+ # Multi-tenancy support (optional)
5
+ t.integer :tenant_id, index: true
6
+
7
+ # Polymorphic trackable (Page, Profile, Event, etc.)
8
+ t.string :trackable_type, null: false
9
+ t.bigint :trackable_id, null: false
10
+
11
+ t.integer :user_id
12
+ t.string :visitor_id, null: false
13
+ t.string :ip_address
14
+ t.string :user_agent
15
+ t.string :referrer
16
+
17
+ # Demographics
18
+ t.string :country_code, limit: 2
19
+ t.string :country_name
20
+ t.string :city
21
+ t.string :region
22
+ t.decimal :latitude, precision: 10, scale: 6
23
+ t.decimal :longitude, precision: 10, scale: 6
24
+ t.string :locale, limit: 10
25
+
26
+ # Device info
27
+ t.string :device_type, limit: 20
28
+ t.string :browser, limit: 50
29
+ t.string :os, limit: 50
30
+
31
+ # Hybrid app support
32
+ t.string :app_platform, limit: 20
33
+ t.string :app_version, limit: 20
34
+ t.string :device_id
35
+
36
+ t.datetime :viewed_at, null: false
37
+ t.timestamps
38
+
39
+ t.index [:trackable_type, :trackable_id, :viewed_at], name: "index_page_views_on_trackable_and_date"
40
+ t.index [:trackable_type, :trackable_id, :country_code], name: "index_page_views_on_trackable_and_country"
41
+ t.index [:trackable_type, :trackable_id, :city], name: "index_page_views_on_trackable_and_city"
42
+ t.index [:trackable_type, :trackable_id, :device_type], name: "index_page_views_on_trackable_and_device"
43
+ t.index [:tenant_id, :viewed_at], name: "index_page_views_on_tenant_and_date"
44
+ t.index [:visitor_id, :viewed_at]
45
+ t.index [:device_id]
46
+ end
47
+ end
48
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: content_signals
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ionuț Munteanu Alexandru
@@ -24,33 +24,33 @@ dependencies:
24
24
  - !ruby/object:Gem::Version
25
25
  version: '7.0'
26
26
  - !ruby/object:Gem::Dependency
27
- name: maxminddb
27
+ name: maxmind-geoip2
28
28
  requirement: !ruby/object:Gem::Requirement
29
29
  requirements:
30
30
  - - "~>"
31
31
  - !ruby/object:Gem::Version
32
- version: '1.0'
32
+ version: '1.1'
33
33
  type: :runtime
34
34
  prerelease: false
35
35
  version_requirements: !ruby/object:Gem::Requirement
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '1.0'
39
+ version: '1.1'
40
40
  - !ruby/object:Gem::Dependency
41
41
  name: browser
42
42
  requirement: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '6.0'
46
+ version: '5.0'
47
47
  type: :runtime
48
48
  prerelease: false
49
49
  version_requirements: !ruby/object:Gem::Requirement
50
50
  requirements:
51
51
  - - "~>"
52
52
  - !ruby/object:Gem::Version
53
- version: '6.0'
53
+ version: '5.0'
54
54
  - !ruby/object:Gem::Dependency
55
55
  name: rspec
56
56
  requirement: !ruby/object:Gem::Requirement
@@ -69,16 +69,16 @@ dependencies:
69
69
  name: sqlite3
70
70
  requirement: !ruby/object:Gem::Requirement
71
71
  requirements:
72
- - - "~>"
72
+ - - ">="
73
73
  - !ruby/object:Gem::Version
74
- version: '1.4'
74
+ version: '2.1'
75
75
  type: :development
76
76
  prerelease: false
77
77
  version_requirements: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - "~>"
79
+ - - ">="
80
80
  - !ruby/object:Gem::Version
81
- version: '1.4'
81
+ version: '2.1'
82
82
  - !ruby/object:Gem::Dependency
83
83
  name: pg
84
84
  requirement: !ruby/object:Gem::Requirement
@@ -102,23 +102,40 @@ extensions: []
102
102
  extra_rdoc_files: []
103
103
  files:
104
104
  - ".rspec"
105
+ - ".rubocop.yml"
106
+ - ".rubocop_todo.yml"
105
107
  - CHANGELOG.md
106
108
  - CODE_OF_CONDUCT.md
109
+ - COUNTERS.MD
107
110
  - LICENSE.txt
108
111
  - README.md
112
+ - READY_TO_GEM.md
109
113
  - Rakefile
114
+ - STRUCTURE.md
110
115
  - lib/content_signals.rb
116
+ - lib/content_signals/concerns/trackable_page_views.rb
117
+ - lib/content_signals/configuration.rb
118
+ - lib/content_signals/engine.rb
119
+ - lib/content_signals/jobs/track_page_view_job.rb
120
+ - lib/content_signals/models/page_view.rb
121
+ - lib/content_signals/services/device_detector_service.rb
122
+ - lib/content_signals/services/page_view_tracker.rb
123
+ - lib/content_signals/services/visitor_location_service.rb
111
124
  - lib/content_signals/version.rb
125
+ - lib/generators/content_signals/install_generator.rb
126
+ - lib/generators/content_signals/templates/README
127
+ - lib/generators/content_signals/templates/content_signals.rb.erb
128
+ - lib/generators/content_signals/templates/create_content_signals_page_views.rb.erb
112
129
  - sig/content_signals.rbs
113
130
  homepage: https://github.com/imunteanu/content_signals
114
131
  licenses:
115
132
  - MIT
116
133
  metadata:
117
134
  homepage_uri: https://github.com/imunteanu/content_signals
118
- source_code_uri: https://github.com/imunteanu/content_signals
119
- changelog_uri: https://github.com/imunteanu/content_signals/blob/main/CHANGELOG.md
120
- bug_tracker_uri: https://github.com/imunteanu/content_signals/issues
121
- documentation_uri: https://github.com/imunteanu/content_signals#readme
135
+ source_code_uri: https://github.com/eventya/content_signals
136
+ changelog_uri: https://github.com/eventya/content_signals/blob/main/CHANGELOG.md
137
+ bug_tracker_uri: https://github.com/eventya/content_signals/issues
138
+ documentation_uri: https://github.com/eventya/content_signals#readme
122
139
  rdoc_options: []
123
140
  require_paths:
124
141
  - lib