user_agent_parser 2.1.2 → 2.1.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.
Potentially problematic release.
This version of user_agent_parser might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/bin/user_agent_parser +56 -0
- data/lib/user_agent_parser/cli.rb +54 -0
- metadata +5 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a721f503d9e59cd7813d9c18db733ef6ecb24c5e
|
4
|
+
data.tar.gz: 7acb12c8b075c1f2cae73b8e3ce29023e5bae740
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: d929dfb2af11c55a29a51cb81ae1a3210327275aed9c45c4055374d95d7d1957d6a446ec6cb3c78b9db90911ca7a041d66ca03ecae9e72a0fa423267005d1bc6
|
7
|
+
data.tar.gz: 482194e192ffaac970357316d7ee7976b1add1c18d922de35210d82018d4b3dd003723072abb6f37556c24011a72f20b2cb1820c5af06cad7ec71696485eee01
|
@@ -0,0 +1,56 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$: << File.expand_path('../../lib', File.readlink(__FILE__))
|
4
|
+
|
5
|
+
require 'optparse'
|
6
|
+
|
7
|
+
require 'user_agent_parser'
|
8
|
+
require 'user_agent_parser/cli'
|
9
|
+
|
10
|
+
options = {}
|
11
|
+
|
12
|
+
optparse = OptionParser.new do|opts|
|
13
|
+
opts.on('--name', 'Print name only') do
|
14
|
+
options[:name] = true
|
15
|
+
end
|
16
|
+
|
17
|
+
opts.on('--version', 'Print version only') do
|
18
|
+
options[:version] = true
|
19
|
+
end
|
20
|
+
|
21
|
+
opts.on('--major', 'Print major version only') do
|
22
|
+
options[:major] = true
|
23
|
+
end
|
24
|
+
|
25
|
+
opts.on('--minor', 'Print minor version only') do
|
26
|
+
options[:minor] = true
|
27
|
+
end
|
28
|
+
|
29
|
+
opts.on('--os', 'Print operating system only') do
|
30
|
+
options[:os] = true
|
31
|
+
end
|
32
|
+
|
33
|
+
opts.on('--format format',
|
34
|
+
'Print output in specified format. The available formatters are:',
|
35
|
+
' - %n: name',
|
36
|
+
' - %v: version',
|
37
|
+
' - %M: major version',
|
38
|
+
' - %m: minor version',
|
39
|
+
' - %o: operating system'
|
40
|
+
) do |format|
|
41
|
+
options[:format] = format
|
42
|
+
end
|
43
|
+
|
44
|
+
opts.on('-h', '--help', 'Display this screen') do
|
45
|
+
puts opts
|
46
|
+
exit
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
optparse.parse!
|
51
|
+
|
52
|
+
parser = UserAgentParser::Parser.new
|
53
|
+
|
54
|
+
ARGF.each do |line|
|
55
|
+
puts UserAgentParser::Cli.new(parser.parse(line), options).run!
|
56
|
+
end
|
@@ -0,0 +1,54 @@
|
|
1
|
+
module UserAgentParser
|
2
|
+
class Cli
|
3
|
+
def initialize(user_agent, options = {})
|
4
|
+
@user_agent = user_agent
|
5
|
+
@options = options
|
6
|
+
end
|
7
|
+
|
8
|
+
def run!
|
9
|
+
if @options[:name]
|
10
|
+
@user_agent.name
|
11
|
+
elsif @options[:version]
|
12
|
+
with_version do |version|
|
13
|
+
version.to_s
|
14
|
+
end
|
15
|
+
elsif @options[:major]
|
16
|
+
major
|
17
|
+
elsif @options[:minor]
|
18
|
+
minor
|
19
|
+
elsif @options[:os]
|
20
|
+
@user_agent.os.to_s
|
21
|
+
elsif format = @options[:format]
|
22
|
+
format.gsub('%n', @user_agent.name).
|
23
|
+
gsub('%v', version.to_s).
|
24
|
+
gsub('%M', major.to_s).
|
25
|
+
gsub('%m', minor.to_s).
|
26
|
+
gsub('%o', @user_agent.os.to_s)
|
27
|
+
else
|
28
|
+
@user_agent.to_s
|
29
|
+
end
|
30
|
+
end
|
31
|
+
|
32
|
+
private
|
33
|
+
|
34
|
+
def major
|
35
|
+
with_version do |version|
|
36
|
+
version.major
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def minor
|
41
|
+
with_version do |version|
|
42
|
+
version.minor
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def version
|
47
|
+
@version ||= @user_agent.version
|
48
|
+
end
|
49
|
+
|
50
|
+
def with_version(&block)
|
51
|
+
block.call(version) if version
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: user_agent_parser
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Tim Lucas
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-
|
11
|
+
date: 2014-03-13 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: A simple, comprehensive Ruby gem for parsing user agent strings with
|
14
14
|
the help of BrowserScope's UA database
|
@@ -19,7 +19,9 @@ extra_rdoc_files: []
|
|
19
19
|
files:
|
20
20
|
- MIT-LICENSE
|
21
21
|
- Readme.md
|
22
|
+
- bin/user_agent_parser
|
22
23
|
- lib/user_agent_parser.rb
|
24
|
+
- lib/user_agent_parser/cli.rb
|
23
25
|
- lib/user_agent_parser/device.rb
|
24
26
|
- lib/user_agent_parser/operating_system.rb
|
25
27
|
- lib/user_agent_parser/parser.rb
|
@@ -46,7 +48,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
46
48
|
version: '0'
|
47
49
|
requirements: []
|
48
50
|
rubyforge_project:
|
49
|
-
rubygems_version: 2.2.
|
51
|
+
rubygems_version: 2.2.2
|
50
52
|
signing_key:
|
51
53
|
specification_version: 4
|
52
54
|
summary: A simple, comprehensive Ruby gem for parsing user agent strings with the
|