browserino 2.4.1.1 → 2.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +7 -0
- data/README.md +24 -10
- data/bin/console +1 -1
- data/lib/browserino/agent.rb +2 -3
- data/lib/browserino/alias.rb +1 -1
- data/lib/browserino/maps/blackberry.rb +17 -1
- data/lib/browserino/maps/bsd.rb +5 -0
- data/lib/browserino/patterns.rb +6 -1
- data/lib/browserino/version.rb +1 -1
- data/lib/browserino.rb +3 -1
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2154862ebf93207956b1180fb504e6fc3cb2efd7
|
4
|
+
data.tar.gz: 3260046c27e73c1ea236f1af819290b6777f85e4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 84e21cba9010e33635e6d58cda913519248e495bd230f9d8347a800c5b55aff6d15ddde3ca383ebef8ce9409b86f3297ea617e586806b9780eeefabb4d961c3c
|
7
|
+
data.tar.gz: 766ca8f0f6ec8d4e55a7c272b34c245d7f6b868f1c9c7042c531418b935ed20a087993d0495e245fe41d3e6b99d641efa84f36a1ebe8d8e9951c0c029407d398
|
data/CHANGELOG.md
CHANGED
@@ -1,6 +1,13 @@
|
|
1
1
|
## CHANGELOG
|
2
2
|
_dates are in dd-mm-yyyy format_
|
3
3
|
|
4
|
+
#### 06-01-2016 VERSION 2.3.0
|
5
|
+
|
6
|
+
- Added `#compat?` method to test if IE is in compatibility mode
|
7
|
+
- Extended `#browser_version` to now also take an argument
|
8
|
+
- Added `#locale` method
|
9
|
+
- Empty UA's are identified as bots through `#bot?`
|
10
|
+
|
4
11
|
#### 04-01-2016 VERSION 2.2.0
|
5
12
|
|
6
13
|
- Added more bots
|
data/README.md
CHANGED
@@ -10,7 +10,15 @@ This gem aims to provide information about the browser that your visitor is usin
|
|
10
10
|
_dates are in dd-mm-yyyy format_
|
11
11
|
_older changes can be found in the [CHANGELOG.md](https://github.com/SidOfc/browserino/blob/master/CHANGELOG.md)_
|
12
12
|
|
13
|
-
####
|
13
|
+
#### 12-01-2016 VERSION 2.5.0
|
14
|
+
|
15
|
+
- Added support for the Vivaldi browser
|
16
|
+
- New method `#vivaldi?`
|
17
|
+
- Added support for the bsd family of operating systems
|
18
|
+
- New method `#bsd?`
|
19
|
+
- Fixed using symbols for system version identification (e.g. `:vista` or `:el_capitan`) without a version number
|
20
|
+
|
21
|
+
#### 11-01-2016 VERSION 2.4.1(.1)
|
14
22
|
|
15
23
|
- Caching the agent object in Rails
|
16
24
|
- **DEPRECATE** Using a custom return value for when a property isn't found
|
@@ -19,13 +27,6 @@ _older changes can be found in the [CHANGELOG.md](https://github.com/SidOfc/brow
|
|
19
27
|
|
20
28
|
- Added rails integration
|
21
29
|
|
22
|
-
#### 06-01-2016 VERSION 2.3.0
|
23
|
-
|
24
|
-
- Added `#compat?` method to test if IE is in compatibility mode
|
25
|
-
- Extended `#browser_version` to now also take an argument
|
26
|
-
- Added `#locale` method
|
27
|
-
- Empty UA's are identified as bots through `#bot?`
|
28
|
-
|
29
30
|
## Installation
|
30
31
|
|
31
32
|
*supports ruby 1.9.3+*
|
@@ -220,7 +221,9 @@ agent.macintosh?
|
|
220
221
|
|
221
222
|
agent.blackberry?
|
222
223
|
|
223
|
-
agent.linux?
|
224
|
+
agent.linux? # linux doesn't have versions
|
225
|
+
|
226
|
+
agent.bsd? # bsd also doesn't have versions
|
224
227
|
```
|
225
228
|
|
226
229
|
You could also invert these questions by using the `.not` method
|
@@ -254,6 +257,8 @@ agent.not.macintosh?
|
|
254
257
|
agent.not.blackberry?
|
255
258
|
|
256
259
|
agent.not.linux?
|
260
|
+
|
261
|
+
agent.not.bsd?
|
257
262
|
```
|
258
263
|
|
259
264
|
The `#windows?`, `#macintosh?` and `#blackberry?` each have a shortcut method to allow for easier access, `#win?`, `#osx?`, `#bb?`
|
@@ -261,6 +266,8 @@ The `#windows?`, `#macintosh?` and `#blackberry?` each have a shortcut method to
|
|
261
266
|
##### Supported browsers
|
262
267
|
|
263
268
|
```ruby
|
269
|
+
agent.vivaldi?
|
270
|
+
|
264
271
|
agent.opera?
|
265
272
|
|
266
273
|
agent.opera_mini?
|
@@ -284,6 +291,7 @@ agent.seamonkey?
|
|
284
291
|
agent.safari?
|
285
292
|
|
286
293
|
# or with the .not method (>= 1.4.0)
|
294
|
+
agent.not.vivaldi?
|
287
295
|
|
288
296
|
agent.not.opera?
|
289
297
|
|
@@ -361,10 +369,14 @@ Valid browser names are defined by __/lib/browserino/patterns.rb__ (the keys are
|
|
361
369
|
```ruby
|
362
370
|
'ie'
|
363
371
|
|
372
|
+
`edge`
|
373
|
+
|
364
374
|
'firefox'
|
365
375
|
|
366
376
|
'chrome'
|
367
377
|
|
378
|
+
`vivaldi`
|
379
|
+
|
368
380
|
'opera'
|
369
381
|
|
370
382
|
'opera_mini'
|
@@ -428,7 +440,9 @@ Valid browser names are defined by __/lib/browserino/patterns.rb__ (the keys are
|
|
428
440
|
|
429
441
|
'ios'
|
430
442
|
|
431
|
-
'linux'
|
443
|
+
'linux'
|
444
|
+
|
445
|
+
`bsd`
|
432
446
|
```
|
433
447
|
|
434
448
|
#### system_architecture examples
|
data/bin/console
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
require "bundler/setup"
|
4
4
|
require "browserino"
|
5
5
|
require "pry"
|
6
|
-
ua = 'Mozilla/5.0 (
|
6
|
+
ua = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.80 Safari/537.36 Vivaldi/1.0.344.37'
|
7
7
|
@agent = Browserino::parse(ua)
|
8
8
|
|
9
9
|
puts "> @agent variable available parsed with: '#{ua}'\n\n"
|
data/lib/browserino/agent.rb
CHANGED
@@ -5,7 +5,7 @@ module Browserino
|
|
5
5
|
@unknown = unknown
|
6
6
|
@not = false
|
7
7
|
|
8
|
-
cleansed_ua = Browserino::
|
8
|
+
cleansed_ua = Browserino::strip_lies @ua
|
9
9
|
name = Browserino::agent_id cleansed_ua
|
10
10
|
info = {
|
11
11
|
browser_name: name,
|
@@ -197,8 +197,7 @@ module Browserino
|
|
197
197
|
def correct_system?(name, version = nil)
|
198
198
|
sys_name = name.to_s.downcase.gsub(/\s/, '_')
|
199
199
|
sys_name_compare = system_name(full: true).join.downcase.gsub(/\s/, '_')
|
200
|
-
name_variations = [sys_name_compare, sys_name_compare.gsub(/^[\s_]
|
201
|
-
|
200
|
+
name_variations = [sys_name_compare, sys_name_compare.gsub(/^[\s_]+|[\d\.\s_]+$/, '')]
|
202
201
|
if (name_variations.include?((sys_name + version.to_s).gsub(/\s/, '_').downcase) ||
|
203
202
|
(sys_name == system_name.gsub(/\s/, '_') && compare_versions(version, system_version)) ||
|
204
203
|
(!version && sys_name == system_name.gsub(/\s/, '_')))
|
data/lib/browserino/alias.rb
CHANGED
@@ -3,8 +3,24 @@ module Browserino
|
|
3
3
|
BLACKBERRY = {
|
4
4
|
'9900' => [9900],
|
5
5
|
'9860' => [9860],
|
6
|
+
'9810' => [9810],
|
6
7
|
'9800' => [9800],
|
7
|
-
'
|
8
|
+
'9790' => [9790],
|
9
|
+
'9780' => [9780],
|
10
|
+
'9700' => [9700],
|
11
|
+
'9650' => [9650],
|
12
|
+
'9380' => [9380],
|
13
|
+
'9360' => [9360],
|
14
|
+
'9320' => [9320],
|
15
|
+
'9300' => [9300],
|
16
|
+
'9220' => [9220],
|
17
|
+
'9000' => [9000],
|
18
|
+
'8900' => [8900],
|
19
|
+
'8800' => [8800],
|
20
|
+
'8530' => [8530],
|
21
|
+
'8520' => [8520],
|
22
|
+
'8320' => [8320],
|
23
|
+
'8300' => [8300]
|
8
24
|
}
|
9
25
|
end
|
10
26
|
end
|
data/lib/browserino/patterns.rb
CHANGED
@@ -1,6 +1,11 @@
|
|
1
1
|
module Browserino
|
2
2
|
PATTERNS = {
|
3
3
|
browser: {
|
4
|
+
vivaldi: {
|
5
|
+
name: /(?<name>vivaldi)/i,
|
6
|
+
version: /vivaldi\/(?<version>[\d\.]+)/i
|
7
|
+
},
|
8
|
+
|
4
9
|
ucbrowser: {
|
5
10
|
name: /(?<name>ucbrowser)/i,
|
6
11
|
version: /ucbrowser\/?(?<version>[\d\.]+)/i
|
@@ -79,7 +84,7 @@ module Browserino
|
|
79
84
|
},
|
80
85
|
|
81
86
|
operating_system: {
|
82
|
-
name: /(?<name>windows|macintosh|android|ios|blackberry|linux|ubuntu|x11)/i,
|
87
|
+
name: /(?<name>windows|macintosh|android|ios|blackberry|linux|ubuntu|x11|bsd)/i,
|
83
88
|
version: /(?:nt|mac\sos\sx|android|(cpu\s|i)os|blackberry)\s?(?<version>[\d\._]+)/i,
|
84
89
|
architecture: /(?<architecture>((?:x|x86_|amd|wow)64)|i(3|6)86)/i,
|
85
90
|
mobile: /bolt|nokia|samsung|mobi(?:le)?|android|ip(?:[ao]d|hone)|bb\d+|blackberry|iemobile|fennec|bada|meego|vodafone|t\-mobile|opera\sm(?:ob|in)i/i,
|
data/lib/browserino/version.rb
CHANGED
data/lib/browserino.rb
CHANGED
@@ -1,6 +1,7 @@
|
|
1
1
|
require "browserino/maps/macintosh"
|
2
2
|
require "browserino/maps/blackberry"
|
3
3
|
require "browserino/maps/ios"
|
4
|
+
require "browserino/maps/bsd"
|
4
5
|
require "browserino/maps/linux"
|
5
6
|
require "browserino/maps/android"
|
6
7
|
require "browserino/maps/windows"
|
@@ -31,7 +32,7 @@ module Browserino
|
|
31
32
|
|
32
33
|
private
|
33
34
|
|
34
|
-
def self.
|
35
|
+
def self.strip_lies(ua)
|
35
36
|
#make iphone / ipad / ipod consistent
|
36
37
|
ua = ua.gsub(/ip((a|o)d|hone)/i, 'ios')
|
37
38
|
ua = ua.gsub(/(Mozilla\/[\d\.]+)/i, '')
|
@@ -39,6 +40,7 @@ module Browserino
|
|
39
40
|
ua = ua.gsub(/(?:apple)?webkit\/[\d\.]+/i, '') if /presto/i =~ ua
|
40
41
|
ua = ua.gsub(/(?:ms)?ie/i, '') if /rv\:/i =~ ua
|
41
42
|
ua = ua.gsub(/linux/i, '') if /android/i =~ ua
|
43
|
+
ua = ua.gsub(/x11/i, '') if /bsd/i =~ ua
|
42
44
|
ua
|
43
45
|
end
|
44
46
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: browserino
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sidney Liebrand
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-01-
|
11
|
+
date: 2016-01-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -138,6 +138,7 @@ files:
|
|
138
138
|
- lib/browserino/integrate/rails.rb
|
139
139
|
- lib/browserino/maps/android.rb
|
140
140
|
- lib/browserino/maps/blackberry.rb
|
141
|
+
- lib/browserino/maps/bsd.rb
|
141
142
|
- lib/browserino/maps/ios.rb
|
142
143
|
- lib/browserino/maps/linux.rb
|
143
144
|
- lib/browserino/maps/macintosh.rb
|