-
Notifications
You must be signed in to change notification settings - Fork 2
/
patterns.rb
79 lines (66 loc) · 2.23 KB
/
patterns.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
module Browserino
PATTERNS = {
browser: {
ucbrowser: {
name: /(?<name>ucbrowser)/i,
version: /ucbrowser\/?(?<version>[\d\.]+)/i
},
bolt: {
name: /(?<name>bolt)/i,
version: /bolt\/(?<version>[\d\.]+)/i
},
opera_mini: {
name: /(?<name>ope?ra?\smini)/i,
version: /(?:ope?ra?\smini)\/(?<version>[\d\.]+)/i
},
opera: {
name: /(?<name>ope?ra?)/i,
version: /(?:ope?ra?|version)(\/|\s)(?<version>[\d\.]+)/i
},
maxthon: {
name: /(?<name>maxthon)/i,
version: /maxthon(?:\s|\/)(?<version>[\d\.]+)/i
},
edge: {
name: /(?<name>edge)/i,
version: /(?:edge\/)(?<version>[\d\.b]+)/i
},
ie: {
name: /(?<name>msie|trident)/i,
version: /(?:(?:ms)?ie\s|rv\:)(?<version>[\d\.b]+)/i
},
seamonkey: {
name: /(?<name>seamonkey)/i,
version: /seamonkey\/(?<version>[\d\.]+)/i
},
firefox: {
name: /(?<name>(?:fire|water)(?:fox|bird)|ice(?:weasel|cat)|netscape)/i,
version: /(?:(?:fire|water)(?:fox|bird)|ice(?:weasel|cat)|netscape)[\/]?(?<version>[\d\.]+)/i
},
chrome: {
name: /(?<name>chrome?(ium|plus)?)/i,
version: /chrome?(?:ium|plus)?\/(?<version>[\d\.]+)/i
},
safari: {
name: /(?<name>safari)/i,
version: /(?:version|safari)\/(?<version>[\d\.]+)/i
}
},
bot: {
googlebot: { name: /(?<name>googlebot)/i },
yahoo_slurp: { name: /(?<name>yahoo\!\sslurp)/i },
msnbot: { name: /(?<name>msnbot)/i },
bingbot: { name: /(?<name>bingbot)/i }
},
engine: {
name: /(?<name>((apple)?webkit|presto|gecko|trident))/i,
version: /(?:(?:apple)?webkit|presto|rv:|trident)[\/\s]?(?<version>[\d\.]+)/i
},
operating_system: {
name: /(?<name>windows|macintosh|android|ios|blackberry|linux|ubuntu|x11)/i,
version: /(?:nt|mac\sos\sx|android|(cpu\s|i)os|blackberry)\s?(?<version>[\d\._]+)/i,
architecture: /(?<architecture>((?:x|x86_|amd|wow)64)|i(3|6)86)/i,
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
}
}
end