browserino 0.1.0 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/browserino/browser.rb +16 -0
- data/lib/browserino/engine.rb +9 -0
- data/lib/browserino/operating_system.rb +12 -0
- data/lib/browserino/patterns.rb +53 -0
- data/lib/browserino/version.rb +1 -1
- data/lib/browserino.rb +14 -2
- metadata +6 -3
- data/lib/browserino/test.rb +0 -11
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 62aa83f64ee7982eaf6453f3c254167a65bebd70
|
4
|
+
data.tar.gz: 01f75dffa40b326bf0d66c0fef20868e297c7d4e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a46012b967787e15d71ce2aa61482ed50f756de8e02dfd83aa0b7776c8b0c8846cdce704d1792f6fd7f662ad3ca3572d6744115ee8529304209a3b3d2e51cd64
|
7
|
+
data.tar.gz: 29e4edf778b263f13d06e3bfd4facf599746e9f3d457573d3124ef14f6de6e922c5a26846d2e080c2d140235c5b93893fc0adfaac51f594bf7f12aa774c3ff89
|
@@ -0,0 +1,16 @@
|
|
1
|
+
module Browserino
|
2
|
+
module Browser
|
3
|
+
def self.name(ua = nil)
|
4
|
+
name = nil
|
5
|
+
browsers = Browserino::PATTERNS[:browser].keys
|
6
|
+
until browsers.empty? || !name.nil?
|
7
|
+
subject = browsers.shift
|
8
|
+
name = subject if (ua.match(Browserino::PATTERNS[:browser][subject][:name]))
|
9
|
+
end
|
10
|
+
name ||= :unknown
|
11
|
+
end
|
12
|
+
|
13
|
+
def self.version
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
@@ -0,0 +1,53 @@
|
|
1
|
+
# See this as a giant CSS selector.
|
2
|
+
# It will iterate through hashes recursively.
|
3
|
+
# If the :name is set in e.g. :browser then it will be global for all browsers.
|
4
|
+
# However if in :browser there is a hash called :opera with a :name
|
5
|
+
# then that will override the global setting.
|
6
|
+
# This basically follows the 'Cascading Style Sheet' flow
|
7
|
+
|
8
|
+
module Browserino
|
9
|
+
PATTERNS = {
|
10
|
+
browser: {
|
11
|
+
opera: {
|
12
|
+
name: /(?<name>ope?ra?)/i,
|
13
|
+
version: /(ope?ra?|version)(\/|\s)(?<version>[\d\.]+)/i
|
14
|
+
},
|
15
|
+
|
16
|
+
maxthon: {
|
17
|
+
name: /(?<name> maxthon)/i,
|
18
|
+
version: /maxthon(\s|\/)(?<version> [\d\.]+)/i
|
19
|
+
},
|
20
|
+
|
21
|
+
ie: {
|
22
|
+
name: /(?<name> msie|trident)/i,
|
23
|
+
version: /(msie\s|rv\:)(?<version> [\d\.b]+)/i
|
24
|
+
},
|
25
|
+
|
26
|
+
firefox: {
|
27
|
+
name: /(?<name> (fire|water)(fox|bird)|ice(weasel|cat)|netscape)/i,
|
28
|
+
version: /(fire|water)(fox|bird)|ice(weasel|cat)|netscape(?<version> [\d\.]+)/i
|
29
|
+
},
|
30
|
+
|
31
|
+
chrome: {
|
32
|
+
name: /(?<name> chrome?(ium|plus)?)/i,
|
33
|
+
version: /chrome?(ium|plus)?\/(?<version> [\d\.]+)/i
|
34
|
+
},
|
35
|
+
|
36
|
+
safari: {
|
37
|
+
name: /(?<name> safari)/i,
|
38
|
+
version: /(version|safari)\/(?<version> [\d\.]+)/i
|
39
|
+
}
|
40
|
+
},
|
41
|
+
|
42
|
+
engine: {
|
43
|
+
name: /(?<name> ((apple)?webkit|gecko|trident|presto))/i,
|
44
|
+
version: /((apple)?webkit|gecko|trident|presto)(?<version> [\d\.]+)/i
|
45
|
+
},
|
46
|
+
|
47
|
+
operating_system: {
|
48
|
+
name: /(?<name> windows|macintosh|linux)/i,
|
49
|
+
version: /(nt|mac\sos\sx)\s(?<version> [\d\._]+)/i,
|
50
|
+
architecture: /(?<architecture> (x?(86_)?64)|i(3|6)86)/i
|
51
|
+
}
|
52
|
+
}
|
53
|
+
end
|
data/lib/browserino/version.rb
CHANGED
data/lib/browserino.rb
CHANGED
@@ -1,6 +1,18 @@
|
|
1
1
|
require "browserino/version"
|
2
|
-
require "browserino/
|
2
|
+
require "browserino/patterns"
|
3
|
+
require "browserino/browser"
|
4
|
+
require "browserino/engine"
|
5
|
+
require "browserino/operating_system"
|
3
6
|
|
4
7
|
module Browserino
|
5
|
-
|
8
|
+
def self.parse ua
|
9
|
+
ua = self::clean(ua)
|
10
|
+
Browser::name(ua)
|
11
|
+
end
|
12
|
+
|
13
|
+
private
|
14
|
+
|
15
|
+
def self.clean ua
|
16
|
+
ua.gsub(/(Mozilla\/[\d\.]+)/, '').strip
|
17
|
+
end
|
6
18
|
end
|
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: 0.
|
4
|
+
version: 0.2.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: 2015-09-
|
11
|
+
date: 2015-09-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -115,7 +115,10 @@ files:
|
|
115
115
|
- bin/setup
|
116
116
|
- browserino.gemspec
|
117
117
|
- lib/browserino.rb
|
118
|
-
- lib/browserino/
|
118
|
+
- lib/browserino/browser.rb
|
119
|
+
- lib/browserino/engine.rb
|
120
|
+
- lib/browserino/operating_system.rb
|
121
|
+
- lib/browserino/patterns.rb
|
119
122
|
- lib/browserino/version.rb
|
120
123
|
homepage: https://github.com/SidOfc/browserino
|
121
124
|
licenses:
|