forked from cordjs/core
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUserAgent.coffee
32 lines (22 loc) · 877 Bytes
/
UserAgent.coffee
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
define ->
class UserAgent
@inject: ['userAgentText']
# https://developer.mozilla.org/en-US/docs/Browser_detection_using_the_user_agent
constructor: ->
@iOs = false
@firefox = false
@safari = false
@opera = false
@mobile = false
@agents = []
calculate: ->
@agents['iOs'] = @iOs = /(iPad|iPhone)/.test @userAgentText
@agents['firefox'] = @firefox = /Firefox/.test @userAgentText
@agents['safari'] = @safari = (/Safari/.test(@userAgentText) and not (/Chrome/.test(@userAgentText) or /Chromium/.test(@userAgentText)))
@agents['opera'] = @opera = /Opera/.test @userAgentText
@agents['mobile'] = @mobile = /(iPad|iPhone|Android)/.test @userAgentText
toString: ->
agentsString = ''
for name, value of @agents
agentsString += (name + ' ') if value
agentsString