ahoy_matey 0.1.5 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- 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
|