user_agent_decoder 0.0.2 → 0.0.3

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- ZjNhMGNmMGZkNWI2YTY5OWM5YjU1NGYxYzc4OWM3NjY2YzdjNzMzMw==
4
+ N2NjM2RjYTE2NGYwYzllMjg4OGNlMzMzM2ViOTkyYWZjMDM4OGJkMg==
5
5
  data.tar.gz: !binary |-
6
- ZDIwYWRmN2FiZTAxOThlM2ZlOTZhM2FlYTAwOTgxOGYwNDU2ZjFlMQ==
6
+ ZTg1MjdhYzc2NDlkOWRlMzIwODVjOTNmNWFhNDBmNWExZDMxNThiYQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- MDUxYTI3ZDIzYWUzNjQ1ZTZjNGRkMjBjNjA0NTUwMGY5ZTNlMzk0MDI1ZDc5
10
- MGU3ZGRjZTJiYjU4ODk1YjdmZDljYTRhZGJhYjlkY2E3MzY0N2FkZjFhYzM4
11
- ZWY4NzAwYmUyODcyNGU0NzgwYzMyNjdmMzg4MjI2OWMxODBmYjM=
9
+ YTg4OTA4M2Y2YjkxNDRjMzA1NGNjMmYzNmM0MjcyYjcyZjZlODdlZGNmNjIw
10
+ MzJhNjY1YmE1NDQzYjY2ZThjYjdkYTBkYTUzNmRhNmZlODcxYWFjNDM5MzU5
11
+ YjQxY2NhNjM4ODFiMjBiNmJlYjFjOTg3NDM2N2Q2NmFlN2MyZTI=
12
12
  data.tar.gz: !binary |-
13
- MWQxM2ZjMGQ0ZWI5MzgyZWI3MjBhYjAzYjIwNTc2NDQwZWZlNDc3NDU3OTlk
14
- Yzc2NjAyZTM4OWI0ODU1Y2U5ZTI5MDI5NDEzY2FiYmFjMjc3ZWRjYWRkYzM5
15
- ZDFmMzRiNmNmZGI4NTdiZjFmMTg4NDEzZmIyYTkzNzJkZjYzZWQ=
13
+ MDJiZGIxZDJkODk4OTJkMmNmZjE1ZGZlNTY1YzRjYWFlN2Y4NmRlZjhkNDli
14
+ Yzk2N2U2MzExODhhZjI2Nzc0MjU3ZDY1MWM2M2NhMGRjZWJhZjczNmFhMmU1
15
+ OGE0ZmFiYWRmNjgyZmI5ZDg1MDYwODA2MjA3NjJjMjRkMzEwZTg=
@@ -94,7 +94,7 @@ class UserAgentDecoder
94
94
  end
95
95
 
96
96
  def load_rules
97
- @rules = YAML.load_file "lib/user_agent_rules.yml"
97
+ @rules = YAML.load_file(File.join(File.dirname(File.expand_path(__FILE__)), 'user_agent_rules.yml'))
98
98
 
99
99
  # Add fallbacks
100
100
  # OS fallback
@@ -0,0 +1,211 @@
1
+ os:
2
+ # Needs to be at top as it sometimes spoofs as android or os x
3
+ fire_os:
4
+ name: Amazon Fire OS
5
+ regex: ['Silk\/(?:[0-9\.]+)']
6
+ android:
7
+ name: Android
8
+ regex: ['Android(?: ([\d\.]+))?']
9
+ bada:
10
+ name: Samsung Bada
11
+ regex: ['Bada(?:\/([0-9\.]+))?']
12
+ blackberry:
13
+ name: BlackBerry
14
+ regex: ['BlackBerry\w+\/([0-9\.]+)?', 'BlackBerry;.+?Version\/([0-9\.]+)?', 'BB10;.+?Version\/([0-9\.]+)?']
15
+ blackberry_playbook:
16
+ name: BlackBerry PlayBook
17
+ regex: ['PlayBook; U; RIM Tablet OS ([0-9\.]+)']
18
+ chrome_os:
19
+ name: Chrome OS
20
+ regex: ['CrOS.+?Chrome\/([\d\.]+)']
21
+ ios:
22
+ name: Apple iOS
23
+ regex: ['(?:ip(?:[ao]d|hone))(?: Simulator)?;.+?OS ([\d_]+)?']
24
+ java_me:
25
+ name: Java ME
26
+ regex: ['J2ME\/MIDP']
27
+ mac:
28
+ name: Mac OS X
29
+ regex: ['Macintosh.+?OS X ?([\w\.]+)?']
30
+ meego:
31
+ name: MeeGo
32
+ regex: ['MeeGo']
33
+ symbian:
34
+ name: Nokia Symbian
35
+ regex: ['Series 60', 'Symbian', 'SymbOS', 'S60']
36
+ red_hat_linux:
37
+ name: Red Hat Linux
38
+ regex: ['(i686|x86_64).+?Red Hat']
39
+ ubuntu_linux:
40
+ name: Ubuntu Linux
41
+ regex: ['Ubuntu\/([\d\.]+)', '(i686|x86_64).+?Ubuntu']
42
+ playstation_3:
43
+ name: Sony Playstation 3
44
+ regex: ['PLAYSTATION 3 ([\d\.]+)']
45
+ web_os:
46
+ name: WebOS
47
+ regex: ['webOS/([\d\.]+)', 'hpwOS/([\d\.]+)']
48
+ wii:
49
+ name: Nintendo Wii
50
+ regex: ['Nintendo Wii; U; ; 2047-7']
51
+ windows_phone:
52
+ name: Windows Phone
53
+ regex: ['Windows Phone(?: OS)? ([\d\.]+)?']
54
+ windows:
55
+ name: Windows
56
+ regex: ['Windows NT ([\d\.]+)?', 'Windows']
57
+ other_linux:
58
+ name: Linux
59
+ regex: ['X11(?:.+?(i686|x86_64))?', 'Linux']
60
+
61
+ browsers:
62
+ chrome:
63
+ name: Chrome
64
+ regex: ['Chrome(?:frame)?\/([\d\.]+)?', 'CriOS\/([0-9\.]+)?', 'Android.+?Apple ?WebKit.+?Version\/([\d\.]+)']
65
+ dreamweaver:
66
+ name: Adobe Dreamweaver
67
+ regex: ['Dreamweaver\/([\d\.]+)?']
68
+ dolfin:
69
+ name: Dolfin
70
+ regex: ['Dolfin\/([\d\.]+)?']
71
+ firefox:
72
+ name: Firefox
73
+ regex: ['Firefox\/([\d\.]+)?']
74
+ flock:
75
+ name: Flock
76
+ regex: ['Flock\/([\w\.]+)?']
77
+ konqueror:
78
+ name: Konqueror
79
+ regex: ['konqueror\/([\d\.]+)']
80
+ mercury:
81
+ name: Mercury
82
+ regex: ['Mercury\/([\d\.]+)?']
83
+ msie:
84
+ name: Internet Explorer
85
+ regex: ['MSIE ([\d\.]+)?', 'Trident.+?rv:([\d\.]+)?']
86
+ nokia_browser:
87
+ name: Nokia Browser
88
+ regex: ['NokiaBrowser\/([0-9\.]+)?']
89
+ opera_mini:
90
+ name: Opera Mini
91
+ regex: ['Opera\/9\.80.+?Opera Mini\/([0-9\.]+)?', 'Opera Mini\/att\/([0-9\.]+).+?Opera 9\.50']
92
+ opera:
93
+ name: Opera
94
+ regex: ['Opera\/9\.80.+?Version\/([0-9\.]+)?', 'Opera[\/ ]([0-9\.]+)?']
95
+ playstation_3_browser:
96
+ name: Playstation 3 Browser
97
+ regex: ['PLAYSTATION 3 (?:[\d\.]+)'] # Only browser available for PS 3?
98
+ smart_tv:
99
+ name: 'Samsung Smart TV'
100
+ regex: ['SMART-TV.+?Version\/([\d\.]+)']
101
+ safari:
102
+ name: Safari
103
+ regex: ['Version\/([\d\.]+)?.+?Safari', 'Safari\/([\d\.]+)?']
104
+ silk:
105
+ name: Silk
106
+ regex: ['Silk\/([0-9\.]+)']
107
+ uc_browser:
108
+ name: UC Browser
109
+ regex: ['UC Browser([\d\.]+)', 'UCBrowser\/([\d\.]+)']
110
+ web_os_browser:
111
+ name: WebOS Browser
112
+ regex: ['wOSBrowser/([\d\.]+)', 'webOS|hpwOS']
113
+ mobile_safari:
114
+ name: Safari
115
+ regex: ['AppleWebKit(?:\/([\d\.]+))?']
116
+ blackberry_browser:
117
+ name: BlackBerry Browser
118
+ regex: ['AppleWebKit\/([0-9\.]+)?']
119
+
120
+ # Opera first as it can spoof
121
+ # Flock before firefox and chrome otherwise it can be reckognised as them
122
+ # Chrome before safari as chrome user agent includes Safari keyword
123
+ # Mercury before safari as mercury user agent includes Safari keyword
124
+ # Dreamweaver before safari as mercury user agent includes Safari keyword
125
+ os_browsers:
126
+ android: [opera, chrome, firefox]
127
+ bada: [opera_mini, dolfin]
128
+ blackberry: [opera, blackberry_browser]
129
+ blackberry_playbook: [opera, blackberry_browser]
130
+ chrome_os: [chrome]
131
+ fire_os: [silk]
132
+ ios: [opera, chrome, firefox, mercury, safari, mobile_safari]
133
+ java_me: [opera_mini]
134
+ mac: [opera, flock, chrome, firefox, dreamweaver, safari, mobile_safari]
135
+ meego: [nokia_browser]
136
+ symbian: [opera_mini, uc_browser, nokia_browser]
137
+ red_hat_linux: [opera, flock, konqueror, chrome, firefox]
138
+ ubuntu_linux: [opera, flock, konqueror, chrome, firefox]
139
+ other_linux: [opera, flock, konqueror, chrome, firefox, smart_tv]
140
+ playstation_3: [playstation_3_browser]
141
+ web_os: [web_os_browser]
142
+ wii: []
143
+ windows: [opera, flock, chrome, firefox, msie, dreamweaver, safari]
144
+ windows_phone: [msie]
145
+
146
+ os_version_names:
147
+ windows:
148
+ -
149
+ version: '3\.'
150
+ name: 'NT'
151
+ -
152
+ version: '4\.0'
153
+ name: '95'
154
+ -
155
+ version: '4\.1'
156
+ name: '98'
157
+ -
158
+ version: '4\.9'
159
+ name: 'Millenium'
160
+ -
161
+ version: '5\.0'
162
+ name: '2000'
163
+ -
164
+ version: '5\.1'
165
+ name: 'XP'
166
+ -
167
+ version: '5\.2'
168
+ name: 'Server 2003'
169
+ -
170
+ version: '6\.0'
171
+ name: 'Vista'
172
+ -
173
+ version: '6\.1'
174
+ name: '7'
175
+ -
176
+ version: '6\.2'
177
+ name: '8'
178
+ -
179
+ version: '6\.3'
180
+ name: '8.1'
181
+ mac:
182
+ -
183
+ version: '10\.0'
184
+ name: 'Cheeta'
185
+ -
186
+ version: '10\.1'
187
+ name: 'Puma'
188
+ -
189
+ version: '10\.2'
190
+ name: 'Jaguar'
191
+ -
192
+ version: '10\.3'
193
+ name: 'Panther'
194
+ -
195
+ version: '10\.4'
196
+ name: 'Tiger'
197
+ -
198
+ version: '10\.5'
199
+ name: 'Leopard'
200
+ -
201
+ version: '10\.6'
202
+ name: 'Snow Leopard'
203
+ -
204
+ version: '10\.7'
205
+ name: 'Lion'
206
+ -
207
+ version: '10\.8'
208
+ name: 'Mountain Lion'
209
+ -
210
+ version: '10\.9'
211
+ name: 'Mavericks'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: user_agent_decoder
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Matt Bearman
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-07-02 00:00:00.000000000 Z
11
+ date: 2014-07-04 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: Accurately parse User Agent strings using simple, cascading rules - devloped
14
14
  for and by BugMuncher
@@ -18,6 +18,7 @@ extensions: []
18
18
  extra_rdoc_files: []
19
19
  files:
20
20
  - lib/user_agent_decoder.rb
21
+ - lib/user_agent_rules.yml
21
22
  homepage: http://rubygems.org/gems/user_agent_decoder
22
23
  licenses:
23
24
  - MIT