browserino 0.3.2 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +0 -4
- data/README.md +38 -7
- data/bin/console +21 -3
- data/lib/browserino/alias.rb +7 -0
- data/lib/browserino/version.rb +1 -1
- data/lib/browserino.rb +12 -3
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 903638619bac70152006ad3f7f4f81f42ff912a2
|
4
|
+
data.tar.gz: e44bda5c85019d19eee5565c3fc3a984638b8a94
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3812f76cdca55381905d31f99b203cbf77f1e90e56ab1d88bbab87796afdc0d9e8c38a42cc810ba59d0e20589849e73ebbd332139a5d4f268da0e48c11da4188
|
7
|
+
data.tar.gz: 63eb1ce3ff47b142ad6bf04479445eb9c0b9f941b5fe2ae718d4cf613a2775b01c5df66eef394caeb6737de34e9e9decfcd23c48da46161579fc4197dbbe4258
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -30,19 +30,50 @@ Or install it yourself as:
|
|
30
30
|
|
31
31
|
## Usage
|
32
32
|
|
33
|
-
*Currently this gem has
|
33
|
+
*Currently this gem has only functionality - On my list of tasks so far:*
|
34
34
|
|
35
35
|
- Extract browser
|
36
|
-
* name
|
37
|
-
* version
|
36
|
+
* name __- done__
|
37
|
+
* version __- done__
|
38
38
|
- Extract engine
|
39
|
-
* name
|
40
|
-
* version
|
39
|
+
* name __- done__
|
40
|
+
* version __- done__
|
41
41
|
- Extract operating system
|
42
|
-
* name
|
43
|
-
* version
|
42
|
+
* name __- done__
|
43
|
+
* version __- done__
|
44
44
|
* architecture
|
45
45
|
|
46
|
+
After installing the gem globally or in your application you'll have to `require` the gem before being able to use it.
|
47
|
+
|
48
|
+
```ruby
|
49
|
+
require 'browserino'
|
50
|
+
```
|
51
|
+
|
52
|
+
Afterwards you can simply call
|
53
|
+
```ruby
|
54
|
+
Browserino::parse('<user agent>')
|
55
|
+
```
|
56
|
+
|
57
|
+
Which will return a `Browserino::Agent` object containing all the information parsed out of the supplied user agent.
|
58
|
+
On this object there are a few method calls you can do to retrieve information.
|
59
|
+
|
60
|
+
### general
|
61
|
+
```ruby
|
62
|
+
require 'browserino'
|
63
|
+
|
64
|
+
agent = Browserino::parse('Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25')
|
65
|
+
|
66
|
+
agent.browser_name # => safari
|
67
|
+
agent.browser_version # => 6.0
|
68
|
+
|
69
|
+
agent.engine_name # => applewebkit
|
70
|
+
agent.engine_version # => 536.26
|
71
|
+
|
72
|
+
agent.system_name # => ios
|
73
|
+
agent.system_version # => 6.0
|
74
|
+
agent.system_architecture # => unknown (though it will make an attempt)
|
75
|
+
```
|
76
|
+
|
46
77
|
## Development
|
47
78
|
|
48
79
|
*Should you want to contribute to the project the instructions for it will be here when version 1 releases*
|
data/bin/console
CHANGED
@@ -3,9 +3,27 @@
|
|
3
3
|
require "bundler/setup"
|
4
4
|
require "browserino"
|
5
5
|
require "pry"
|
6
|
+
ua = 'Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/6.0 Mobile/10A5355d Safari/8536.25'
|
7
|
+
@agent = Browserino::parse(ua)
|
6
8
|
|
7
|
-
|
8
|
-
|
9
|
-
puts
|
9
|
+
puts "parsed #{ua} with results:"
|
10
|
+
puts '------------------'
|
11
|
+
puts '| browser |'
|
12
|
+
puts '------------------'
|
13
|
+
puts @agent.browser_name
|
14
|
+
puts @agent.browser_version
|
15
|
+
puts '------------------'
|
16
|
+
puts '| engine |'
|
17
|
+
puts '------------------'
|
18
|
+
puts @agent.engine_name
|
19
|
+
puts @agent.engine_version
|
20
|
+
puts '------------------'
|
21
|
+
puts '| system |'
|
22
|
+
puts '------------------'
|
23
|
+
puts @agent.system_name
|
24
|
+
puts @agent.system_version
|
25
|
+
puts @agent.system_architecture
|
26
|
+
puts '================='
|
27
|
+
puts 'the @agent variable will be available at your disposal'
|
10
28
|
|
11
29
|
Pry.start
|
data/lib/browserino/version.rb
CHANGED
data/lib/browserino.rb
CHANGED
@@ -3,6 +3,7 @@ require "browserino/maps/ios"
|
|
3
3
|
require "browserino/maps/android"
|
4
4
|
require "browserino/maps/windows"
|
5
5
|
|
6
|
+
require "browserino/alias"
|
6
7
|
require "browserino/agent_manipulator"
|
7
8
|
require "browserino/agent"
|
8
9
|
require "browserino/version"
|
@@ -16,7 +17,7 @@ module Browserino
|
|
16
17
|
def self.parse ua
|
17
18
|
ua = AgentManipulator.new(ua).ua
|
18
19
|
name = find_browser_name(ua)
|
19
|
-
Agent.new({
|
20
|
+
Agent.new(check_for_aliases({
|
20
21
|
browser_name: name,
|
21
22
|
browser_version: Browser::version(ua, PATTERNS[:browser][name]),
|
22
23
|
engine_name: Engine::name(ua),
|
@@ -24,12 +25,20 @@ module Browserino
|
|
24
25
|
system_name: OperatingSystem::name(ua),
|
25
26
|
system_version: OperatingSystem::version(ua),
|
26
27
|
system_architecture: OperatingSystem::architecture(ua)
|
27
|
-
})
|
28
|
+
}))
|
28
29
|
end
|
29
30
|
|
30
31
|
private
|
31
32
|
|
32
|
-
def self.
|
33
|
+
def self.check_for_aliases(hash)
|
34
|
+
h = {}
|
35
|
+
hash.each do |prop, val|
|
36
|
+
h[prop] = ALIAS.select { |key, matches| true if matches.include?(val) }.keys.first || val
|
37
|
+
end
|
38
|
+
h
|
39
|
+
end
|
40
|
+
|
41
|
+
def self.find_browser_name(ua)
|
33
42
|
name = nil
|
34
43
|
browsers = PATTERNS[:browser].keys
|
35
44
|
until browsers.empty? || !name.nil?
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: browserino
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sidney Liebrand
|
@@ -131,6 +131,7 @@ files:
|
|
131
131
|
- lib/browserino.rb
|
132
132
|
- lib/browserino/agent.rb
|
133
133
|
- lib/browserino/agent_manipulator.rb
|
134
|
+
- lib/browserino/alias.rb
|
134
135
|
- lib/browserino/browser.rb
|
135
136
|
- lib/browserino/engine.rb
|
136
137
|
- lib/browserino/maps/android.rb
|