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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: e01d2ba2f3f5b56e44fa016d8f0eb16e669b499d
4
- data.tar.gz: 9f243b939b05458432e3651d7f75728bbd592ab8
3
+ metadata.gz: 88585fca53275cb8e3a5662bc3f8ce19f0ed03be
4
+ data.tar.gz: 4233b9426a7cb9ec82151058ddcd1f5368b45f68
5
5
  SHA512:
6
- metadata.gz: 10c69828ab683a8a0048e22a62f83d1c920d811e7e723658c8e90d954e2f7221b695a91038dae105bfecabb04b5470d45d9a9108b2b784663a377f4eed02a43c
7
- data.tar.gz: 6200522f9ede3ce32ab07bd02fcfc5e179b874cea692ea6ade74f62cbd7b7642870ad568a7115408b01976a9dc29e04f716048d71f833ade6a0c86434a4602ab
6
+ metadata.gz: d3782506355427578b2994012a0ddd51744214523b161490dac9c585b2354ec193054a0ac9081f03c506378896f73457707f5171f646bd032b72df6ed3f0e27c
7
+ data.tar.gz: 7bf4c75cb2ae81274bf889514e509f3453328236cde9e92836c889085a5fe6fc8ed0d0ddbe9e66d7e8667dede7bdd92a7d7ae17a832e164506af38595b6c17f2
@@ -1,3 +1,7 @@
1
+ ## 0.1.6
2
+
3
+ - Better user agent parser
4
+
1
5
  ## 0.1.5
2
6
 
3
7
  - Added support for Doorkeeper
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
@@ -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"
@@ -29,30 +29,12 @@ module Ahoy
29
29
 
30
30
  def set_technology
31
31
  if respond_to?(:user_agent)
32
- browser = Browser.new(ua: user_agent)
33
-
34
- self.browser = browser.name if respond_to?(:browser=)
32
+ agent = Ahoy.user_agent_parser.parse(user_agent)
35
33
 
36
- # TODO add more
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"
@@ -1,3 +1,3 @@
1
1
  module Ahoy
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
@@ -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.5
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-02 00:00:00.000000000 Z
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