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 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