ahoy_matey 0.1.5 → 0.1.6
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 +4 -0
- data/README.md +16 -0
- data/ahoy_matey.gemspec +1 -0
- data/lib/ahoy/model.rb +4 -22
- data/lib/ahoy/version.rb +1 -1
- data/lib/ahoy_matey.rb +6 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 88585fca53275cb8e3a5662bc3f8ce19f0ed03be
|
4
|
+
data.tar.gz: 4233b9426a7cb9ec82151058ddcd1f5368b45f68
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d3782506355427578b2994012a0ddd51744214523b161490dac9c585b2354ec193054a0ac9081f03c506378896f73457707f5171f646bd032b72df6ed3f0e27c
|
7
|
+
data.tar.gz: 7bf4c75cb2ae81274bf889514e509f3453328236cde9e92836c889085a5fe6fc8ed0d0ddbe9e66d7e8667dede7bdd92a7d7ae17a832e164506af38595b6c17f2
|
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
@@ -220,6 +220,11 @@ Use a different model
|
|
220
220
|
|
221
221
|
```ruby
|
222
222
|
Ahoy.visit_model = UserVisit
|
223
|
+
|
224
|
+
# fix for Rails reloader in development
|
225
|
+
ActionDispatch::Reloader.to_prepare do
|
226
|
+
Ahoy.visit_model = UserVisit
|
227
|
+
end
|
223
228
|
```
|
224
229
|
|
225
230
|
Change the platform on the web
|
@@ -261,6 +266,17 @@ Customize visitable
|
|
261
266
|
visitable :sign_up_visit, class_name: "Visit"
|
262
267
|
```
|
263
268
|
|
269
|
+
## Upgrading
|
270
|
+
|
271
|
+
In `0.1.6`, a big improvement was made to `browser` and `os`. Update existing visits with:
|
272
|
+
|
273
|
+
```ruby
|
274
|
+
Visit.find_each do |visit|
|
275
|
+
visit.set_technology
|
276
|
+
visit.save! if visit.changed?
|
277
|
+
end
|
278
|
+
```
|
279
|
+
|
264
280
|
## TODO
|
265
281
|
|
266
282
|
- simple dashboard
|
data/ahoy_matey.gemspec
CHANGED
@@ -22,6 +22,7 @@ Gem::Specification.new do |spec|
|
|
22
22
|
spec.add_dependency "browser", ">= 0.4.0"
|
23
23
|
spec.add_dependency "geocoder"
|
24
24
|
spec.add_dependency "referer-parser"
|
25
|
+
spec.add_dependency "user_agent_parser"
|
25
26
|
spec.add_dependency "request_store"
|
26
27
|
|
27
28
|
spec.add_development_dependency "bundler", "~> 1.5"
|
data/lib/ahoy/model.rb
CHANGED
@@ -29,30 +29,12 @@ module Ahoy
|
|
29
29
|
|
30
30
|
def set_technology
|
31
31
|
if respond_to?(:user_agent)
|
32
|
-
|
33
|
-
|
34
|
-
self.browser = browser.name if respond_to?(:browser=)
|
32
|
+
agent = Ahoy.user_agent_parser.parse(user_agent)
|
35
33
|
|
36
|
-
|
37
|
-
self.os =
|
38
|
-
if browser.android?
|
39
|
-
"Android"
|
40
|
-
elsif browser.ios?
|
41
|
-
"iOS"
|
42
|
-
elsif browser.windows_phone?
|
43
|
-
"Windows Phone"
|
44
|
-
elsif browser.blackberry?
|
45
|
-
"Blackberry"
|
46
|
-
elsif browser.chrome_os?
|
47
|
-
"Chrome OS"
|
48
|
-
elsif browser.mac?
|
49
|
-
"Mac"
|
50
|
-
elsif browser.windows?
|
51
|
-
"Windows"
|
52
|
-
elsif browser.linux?
|
53
|
-
"Linux"
|
54
|
-
end if respond_to?(:os=)
|
34
|
+
self.browser = agent.name if respond_to?(:browser=)
|
35
|
+
self.os = agent.os.name if respond_to?(:os=)
|
55
36
|
|
37
|
+
browser = Browser.new(ua: user_agent)
|
56
38
|
self.device_type =
|
57
39
|
if browser.tv?
|
58
40
|
"TV"
|
data/lib/ahoy/version.rb
CHANGED
data/lib/ahoy_matey.rb
CHANGED
@@ -2,6 +2,7 @@ require "addressable/uri"
|
|
2
2
|
require "browser"
|
3
3
|
require "geocoder"
|
4
4
|
require "referer-parser"
|
5
|
+
require "user_agent_parser"
|
5
6
|
require "request_store"
|
6
7
|
require "ahoy/version"
|
7
8
|
require "ahoy/controller"
|
@@ -24,6 +25,11 @@ module Ahoy
|
|
24
25
|
@referrer_parser ||= RefererParser::Referer.new("https://github.com/ankane/ahoy")
|
25
26
|
end
|
26
27
|
|
28
|
+
# performance
|
29
|
+
def self.user_agent_parser
|
30
|
+
@user_agent_parser ||= UserAgentParser::Parser.new
|
31
|
+
end
|
32
|
+
|
27
33
|
def self.fetch_user(controller)
|
28
34
|
if user_method.respond_to?(:call)
|
29
35
|
user_method.call(controller)
|
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: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andrew Kane
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-05-
|
11
|
+
date: 2014-05-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: addressable
|
@@ -66,6 +66,20 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: user_agent_parser
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :runtime
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
69
83
|
- !ruby/object:Gem::Dependency
|
70
84
|
name: request_store
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|