ahoy_matey 3.0.0 → 3.0.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/CHANGELOG.md +7 -0
- data/README.md +1 -1
- data/lib/ahoy/base_store.rb +1 -1
- data/lib/ahoy/database_store.rb +1 -1
- data/lib/ahoy/tracker.rb +11 -6
- data/lib/ahoy/version.rb +1 -1
- data/lib/generators/ahoy/activerecord_generator.rb +2 -16
- data/lib/generators/ahoy/base_generator.rb +1 -1
- data/lib/generators/ahoy/install_generator.rb +1 -1
- data/lib/generators/ahoy/mongoid_generator.rb +1 -1
- metadata +31 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d90d64ae8641aa0bae1bc44acf29379a585ebbad0bbb87325380508d5a8ffcc7
|
4
|
+
data.tar.gz: 7c01ce8cbd2e92e3555479b251889d171b54be9d5c369fca51f413fdc912ab01
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fe62cce407d17f736b616f11a742fefe338cdedd2457665cb3e578bafe0bd6fbb889dd315382dcb70d563a35dd5c5e05de908c069e12d21ab92e0cee637e42d7
|
7
|
+
data.tar.gz: f399c7708f6c1071c72db3d9164ab77bd3377fdc0eab7064707fb1202b240156be03669070763bf2f13bcf0bfcac134286eb9e9f9fb988d78267c71da9603386
|
data/CHANGELOG.md
CHANGED
@@ -1,3 +1,10 @@
|
|
1
|
+
## 3.0.1
|
2
|
+
|
3
|
+
- Made `Ahoy::Tracker` work outside of requests
|
4
|
+
- Fixed storage of `false` values with customized store
|
5
|
+
- Fixed error with `user_method` and `Rails::InfoController`
|
6
|
+
- Gracefully handle `ActionDispatch::RemoteIp::IpSpoofAttackError`
|
7
|
+
|
1
8
|
## 3.0.0
|
2
9
|
|
3
10
|
- Made Device Detector the default user agent parser
|
data/README.md
CHANGED
@@ -181,7 +181,7 @@ Order.joins(:ahoy_visit).group("device_type").count
|
|
181
181
|
Here’s what the migration to add the `ahoy_visit_id` column should look like:
|
182
182
|
|
183
183
|
```ruby
|
184
|
-
class AddVisitIdToOrders < ActiveRecord::Migration[
|
184
|
+
class AddVisitIdToOrders < ActiveRecord::Migration[6.0]
|
185
185
|
def change
|
186
186
|
add_column :orders, :ahoy_visit_id, :bigint
|
187
187
|
end
|
data/lib/ahoy/base_store.rb
CHANGED
data/lib/ahoy/database_store.rb
CHANGED
@@ -76,7 +76,7 @@ module Ahoy
|
|
76
76
|
|
77
77
|
def slice_data(model, data)
|
78
78
|
column_names = model.try(:column_names) || model.attribute_names
|
79
|
-
data.slice(*column_names.map(&:to_sym)).select { |_, v| v }
|
79
|
+
data.slice(*column_names.map(&:to_sym)).select { |_, v| !v.nil? }
|
80
80
|
end
|
81
81
|
|
82
82
|
def unique_exception?(e)
|
data/lib/ahoy/tracker.rb
CHANGED
@@ -11,6 +11,7 @@ module Ahoy
|
|
11
11
|
@controller = options[:controller]
|
12
12
|
@request = options[:request] || @controller.try(:request)
|
13
13
|
@visit_token = options[:visit_token]
|
14
|
+
@user = options[:user]
|
14
15
|
@options = options
|
15
16
|
end
|
16
17
|
|
@@ -57,7 +58,7 @@ module Ahoy
|
|
57
58
|
|
58
59
|
@store.track_visit(data)
|
59
60
|
|
60
|
-
Ahoy::GeocodeV2Job.perform_later(visit_token, data[:ip]) if Ahoy.geocode
|
61
|
+
Ahoy::GeocodeV2Job.perform_later(visit_token, data[:ip]) if Ahoy.geocode && data[:ip]
|
61
62
|
end
|
62
63
|
end
|
63
64
|
true
|
@@ -128,7 +129,7 @@ module Ahoy
|
|
128
129
|
end
|
129
130
|
|
130
131
|
def visit_properties
|
131
|
-
@visit_properties ||= Ahoy::VisitProperties.new(request, api: api?).generate
|
132
|
+
@visit_properties ||= request ? Ahoy::VisitProperties.new(request, api: api?).generate : {}
|
132
133
|
end
|
133
134
|
|
134
135
|
def visit_token
|
@@ -168,7 +169,7 @@ module Ahoy
|
|
168
169
|
|
169
170
|
def set_cookie(name, value, duration = nil, use_domain = true)
|
170
171
|
# safety net
|
171
|
-
return unless Ahoy.cookies
|
172
|
+
return unless Ahoy.cookies && request
|
172
173
|
|
173
174
|
cookie = {
|
174
175
|
value: value
|
@@ -180,7 +181,7 @@ module Ahoy
|
|
180
181
|
end
|
181
182
|
|
182
183
|
def delete_cookie(name)
|
183
|
-
request.cookie_jar.delete(name) if request.cookie_jar[name]
|
184
|
+
request.cookie_jar.delete(name) if request && request.cookie_jar[name]
|
184
185
|
end
|
185
186
|
|
186
187
|
def trusted_time(time = nil)
|
@@ -196,8 +197,12 @@ module Ahoy
|
|
196
197
|
end
|
197
198
|
|
198
199
|
def report_exception(e)
|
199
|
-
|
200
|
-
|
200
|
+
if defined?(ActionDispatch::RemoteIp::IpSpoofAttackError) && e.is_a?(ActionDispatch::RemoteIp::IpSpoofAttackError)
|
201
|
+
debug "Tracking excluded due to IP spoofing"
|
202
|
+
else
|
203
|
+
raise e if !defined?(Rails) || Rails.env.development? || Rails.env.test?
|
204
|
+
Safely.report_exception(e)
|
205
|
+
end
|
201
206
|
end
|
202
207
|
|
203
208
|
def generate_id
|
data/lib/ahoy/version.rb
CHANGED
@@ -1,27 +1,13 @@
|
|
1
|
-
# taken from https://github.com/collectiveidea/audited/blob/master/lib/generators/audited/install_generator.rb
|
2
|
-
require "rails/generators"
|
3
|
-
require "rails/generators/migration"
|
4
|
-
require "active_record"
|
5
1
|
require "rails/generators/active_record"
|
6
2
|
|
7
3
|
module Ahoy
|
8
4
|
module Generators
|
9
5
|
class ActiverecordGenerator < Rails::Generators::Base
|
10
|
-
include
|
11
|
-
source_root File.
|
6
|
+
include ActiveRecord::Generators::Migration
|
7
|
+
source_root File.join(__dir__, "templates")
|
12
8
|
|
13
9
|
class_option :database, type: :string, aliases: "-d"
|
14
10
|
|
15
|
-
# Implement the required interface for Rails::Generators::Migration.
|
16
|
-
def self.next_migration_number(dirname) #:nodoc:
|
17
|
-
next_migration_number = current_migration_number(dirname) + 1
|
18
|
-
if ::ActiveRecord::Base.timestamped_migrations
|
19
|
-
[Time.now.utc.strftime("%Y%m%d%H%M%S"), "%.14d" % next_migration_number].max
|
20
|
-
else
|
21
|
-
"%.3d" % next_migration_number
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
11
|
def copy_templates
|
26
12
|
template "database_store_initializer.rb", "config/initializers/ahoy.rb"
|
27
13
|
template "active_record_visit_model.rb", "app/models/ahoy/visit.rb"
|
@@ -3,7 +3,7 @@ require "rails/generators"
|
|
3
3
|
module Ahoy
|
4
4
|
module Generators
|
5
5
|
class BaseGenerator < Rails::Generators::Base
|
6
|
-
source_root File.
|
6
|
+
source_root File.join(__dir__, "templates")
|
7
7
|
|
8
8
|
def copy_templates
|
9
9
|
template "base_store_initializer.rb", "config/initializers/ahoy.rb"
|
@@ -3,7 +3,7 @@ require "rails/generators"
|
|
3
3
|
module Ahoy
|
4
4
|
module Generators
|
5
5
|
class InstallGenerator < Rails::Generators::Base
|
6
|
-
source_root File.
|
6
|
+
source_root File.join(__dir__, "templates")
|
7
7
|
|
8
8
|
def copy_templates
|
9
9
|
activerecord = defined?(ActiveRecord)
|
@@ -3,7 +3,7 @@ require "rails/generators"
|
|
3
3
|
module Ahoy
|
4
4
|
module Generators
|
5
5
|
class MongoidGenerator < Rails::Generators::Base
|
6
|
-
source_root File.
|
6
|
+
source_root File.join(__dir__, "templates")
|
7
7
|
|
8
8
|
def copy_templates
|
9
9
|
template "database_store_initializer.rb", "config/initializers/ahoy.rb"
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ahoy_matey
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0.
|
4
|
+
version: 3.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-09-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -109,7 +109,35 @@ dependencies:
|
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
|
-
name:
|
112
|
+
name: combustion
|
113
|
+
requirement: !ruby/object:Gem::Requirement
|
114
|
+
requirements:
|
115
|
+
- - ">="
|
116
|
+
- !ruby/object:Gem::Version
|
117
|
+
version: '0'
|
118
|
+
type: :development
|
119
|
+
prerelease: false
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
requirements:
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: rails
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: sqlite3
|
113
141
|
requirement: !ruby/object:Gem::Requirement
|
114
142
|
requirements:
|
115
143
|
- - ">="
|