browserino 1.0.0 → 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 903638619bac70152006ad3f7f4f81f42ff912a2
4
- data.tar.gz: e44bda5c85019d19eee5565c3fc3a984638b8a94
3
+ metadata.gz: 0f08ae3900de04e818da158b3f213e35d7ea8559
4
+ data.tar.gz: d9a2ae06194faf027c91de73569e2d9054e8e970
5
5
  SHA512:
6
- metadata.gz: 3812f76cdca55381905d31f99b203cbf77f1e90e56ab1d88bbab87796afdc0d9e8c38a42cc810ba59d0e20589849e73ebbd332139a5d4f268da0e48c11da4188
7
- data.tar.gz: 63eb1ce3ff47b142ad6bf04479445eb9c0b9f941b5fe2ae718d4cf613a2775b01c5df66eef394caeb6737de34e9e9decfcd23c48da46161579fc4197dbbe4258
6
+ metadata.gz: bac6047a73c354f69e1a3b6d95747381e61d8fa69e3773c231432d0b7f8b2adfa3db760bdbcb61d6bcc20f8a104235caf895c642fb9876be603a8f5776afbd6d
7
+ data.tar.gz: 654765d84f9e822dd886ceb393bd7e4ba12831aaece76851689a27ffd4e7d320516769dac020ff4756b9a3759ce620102e249617585e7a816e05611fea42b5ec
data/README.md CHANGED
@@ -66,7 +66,7 @@ agent = Browserino::parse('Mozilla/5.0 (iPad; CPU OS 6_0 like Mac OS X) AppleWeb
66
66
  agent.browser_name # => safari
67
67
  agent.browser_version # => 6.0
68
68
 
69
- agent.engine_name # => applewebkit
69
+ agent.engine_name # => webkit
70
70
  agent.engine_version # => 536.26
71
71
 
72
72
  agent.system_name # => ios
@@ -76,7 +76,7 @@ agent.system_architecture # => unknown (though it will make an attempt)
76
76
 
77
77
  ## Development
78
78
 
79
- *Should you want to contribute to the project the instructions for it will be here when version 1 releases*
79
+ *Should you want to contribute to the project the instructions for it will be here when version 1 releases (PENDING)*
80
80
 
81
81
  ## Contributing
82
82
 
data/bin/console CHANGED
@@ -21,6 +21,7 @@ puts '------------------'
21
21
  puts '| system |'
22
22
  puts '------------------'
23
23
  puts @agent.system_name
24
+ puts @agent.system_name(full: true)[1]
24
25
  puts @agent.system_version
25
26
  puts @agent.system_architecture
26
27
  puts '================='
@@ -7,51 +7,53 @@ module Browserino
7
7
  end
8
8
 
9
9
  def browser_name
10
- @info[:browser_name]
10
+ @info[:browser_name].downcase
11
11
  end
12
12
 
13
13
  def browser_version
14
- @info[:browser_version].gsub('_', '.')
14
+ @info[:browser_version].gsub('_', '.').downcase
15
15
  end
16
16
 
17
17
  def engine_name
18
- @info[:engine_name]
18
+ @info[:engine_name].downcase
19
19
  end
20
20
 
21
21
  def engine_version
22
- @info[:engine_version].gsub('_', '.')
22
+ @info[:engine_version].gsub('_', '.').downcase
23
23
  end
24
24
 
25
25
  def system_name(opts = {})
26
- opts = {full: false}.merge(opts)
27
- name = @info[:system_name]
26
+ opts = {full: true}.merge(opts)
27
+ name = @info[:system_name].downcase
28
28
  if opts[:full]
29
- [name, fetch_system_version_name(name)]
29
+ [name, fetch_system_version_name(name).downcase]
30
30
  else
31
31
  name
32
32
  end
33
33
  end
34
34
 
35
35
  def system_version
36
- @info[:system_version].gsub('_', '.')
36
+ @info[:system_version].gsub('_', '.').downcase
37
37
  end
38
38
 
39
39
  def system_architecture
40
- @info[:system_architecture]
40
+ @info[:system_architecture].downcase
41
41
  end
42
42
 
43
43
  private
44
44
 
45
45
  def fetch_system_version_name(name)
46
- codename = Browserino::Mapping.const_get(name.upcase)
46
+ const = name.upcase
47
47
  name.downcase!
48
48
  if name.match(/mac|ios/i)
49
49
  version = system_version.split('.').first(2).join.to_i
50
- elsif name.start_with?('win') || name.start_with?('android')
50
+ elsif name.match(/win|android/i)
51
51
  version = system_version.gsub('.', '').to_i
52
52
  end
53
- if version
54
- codename.select { |k, v| v if k.include?(version) }.values.first
53
+ if version && defined? const
54
+ Browserino::Mapping.const_get(const).select { |name, versions| true if versions.include?(version) }.keys.first
55
+ else
56
+ 'unknown'
55
57
  end
56
58
  end
57
59
  end
@@ -1,7 +1,29 @@
1
1
  module Browserino
2
2
  ALIAS = {
3
- 'webkit' => ['applewebkit'],
4
- 'ie' => ['msie'],
5
- 'unknown' => ['unknown', :unknown, '']
3
+ browser_name: {
4
+ 'ie' => ['msie'],
5
+ 'unknown' => ['unknown', :unknown, '']
6
+ },
7
+ browser_version: {
8
+ 'unknown' => ['unknown', :unknown, '']
9
+ },
10
+ engine_name: {
11
+ 'webkit' => ['applewebkit'],
12
+ 'unknown' => ['unknown', :unknown, '']
13
+ },
14
+ engine_version: {
15
+ 'unknown' => ['unknown', :unknown, '']
16
+ },
17
+ system_name: {
18
+ 'unknown' => ['unknown', :unknown, '']
19
+ },
20
+ system_version: {
21
+ 'unknown' => ['unknown', :unknown, '']
22
+ },
23
+ system_architecture: {
24
+ 'x64' => ['64', 'x86_64'],
25
+ 'x32' => ['32', 'i686', 'i383'],
26
+ 'unknown' => ['unknown', :unknown, '', nil]
27
+ }
6
28
  }
7
29
  end
@@ -4,27 +4,27 @@
4
4
  module Browserino
5
5
  module Mapping
6
6
  ANDROID = {
7
- [10] => '1.0',
8
- [11] => '1.1',
9
- [15] => 'Cupcake 3',
10
- [16] => 'Cupcake 4',
11
- [20] => 'Eclair 5',
12
- [201] => 'Eclair 6',
13
- [21] => 'Eclair 7',
14
- [22, 221, 222, 223] => 'Froyo 8',
15
- [23, 231, 232] => 'Gingerbread 9',
16
- [233, 234, 235, 236, 237] => 'Gingerbread 10',
17
- [30] => 'Honeycomb 11',
18
- [31] => 'honeycomb 12',
19
- [32, 321, 322, 323, 324, 325, 326] => 'Honeycomb 13',
20
- [40, 401, 402] => 'Ice Cream Sandwich 14',
21
- [403, 404] => 'Ice Cream Sandwich 15',
22
- [41, 411, 412] => 'Jelly Bean 16',
23
- [42, 421, 422] => 'Jelly Bean 17',
24
- [43, 431] => 'Jelly Bean 18',
25
- [44, 441, 442, 443, 444] => 'KitKat 19',
26
- [50, 501, 502] => 'Lollipop 21',
27
- [51, 511] => 'Lollipop 22',
7
+ '1.0' => [10],
8
+ '1.1' => [11],
9
+ 'Cupcake 3' => [15],
10
+ 'Cupcake 4' => [16],
11
+ 'Eclair 5' => [20],
12
+ 'Eclair 6' => [201],
13
+ 'Eclair 7' => [21],
14
+ 'Froyo 8' => [22, 221, 222, 223],
15
+ 'Gingerbread 9' => [23, 231, 232],
16
+ 'Gingerbread 10' => [233, 234, 235, 236, 237],
17
+ 'Honeycomb 11' => [30],
18
+ 'honeycomb 12' => [31],
19
+ 'Honeycomb 13' => [32, 321, 322, 323, 324, 325, 326],
20
+ 'Ice Cream Sandwich 14' => [40, 401, 402],
21
+ 'Ice Cream Sandwich 15' => [403, 404],
22
+ 'Jelly Bean 16' => [41, 411, 412],
23
+ 'Jelly Bean 17' => [42, 421, 422],
24
+ 'Jelly Bean 18' => [43, 431],
25
+ 'KitKat 19' => [44, 441, 442, 443, 444],
26
+ 'Lollipop 21' => [50, 501, 502],
27
+ 'Lollipop 22' => [51, 511]
28
28
  }
29
29
  end
30
30
  end
@@ -4,8 +4,8 @@
4
4
  module Browserino
5
5
  module Mapping
6
6
  IOS = {
7
- [20, 21, 22, 30, 31] => 'iPhone OS',
8
- [40, 41, 42, 43, 50, 51, 60, 61, 70, 71, 80, 81, 82, 83, 84, 90, 91] => 'iOS'
7
+ 'iPhone OS' => [20, 21, 22, 30, 31],
8
+ 'iOS' => [40, 41, 42, 43, 50, 51, 60, 61, 70, 71, 80, 81, 82, 83, 84, 90, 91]
9
9
  }
10
10
  end
11
11
  end
@@ -0,0 +1,5 @@
1
+ module Browserino
2
+ module Mapping
3
+ LINUX = {}
4
+ end
5
+ end
@@ -4,18 +4,18 @@
4
4
  module Browserino
5
5
  module Mapping
6
6
  MACINTOSH = {
7
- [100] => 'Cheetah',
8
- [101] => 'Puma',
9
- [102] => 'Jaguar',
10
- [103] => 'Panther',
11
- [104] => 'Tiger',
12
- [105] => 'Leopard',
13
- [106] => 'Snow Leopard',
14
- [107] => 'Lion',
15
- [108] => 'Mountain Lion',
16
- [109] => 'Mavericks',
17
- [1010] => 'Yosemite',
18
- [1011] => 'El Capitan'
7
+ 'Cheetah' => [100],
8
+ 'Puma' => [101],
9
+ 'Jaguar' => [102],
10
+ 'Panther' => [103],
11
+ 'Tiger' => [104],
12
+ 'Leopard' => [105],
13
+ 'Snow Leopard' => [106],
14
+ 'Lion' => [107],
15
+ 'Mountain Lion' => [108],
16
+ 'Mavericks' => [109],
17
+ 'Yosemite' => [1010],
18
+ 'El Capitan' => [1011]
19
19
  }
20
20
  end
21
21
  end
@@ -4,16 +4,15 @@
4
4
  module Browserino
5
5
  module Mapping
6
6
  WINDOWS = {
7
- [35] => '3.5',
8
- [40] => '4',
9
- [50] => '2000',
10
- [51] => 'XP',
11
- [52] => 'XP',
12
- [60] => 'Vista',
13
- [61] => '7',
14
- [62] => '8',
15
- [63] => '8.1',
16
- [100] => '10'
7
+ '3.5' => [35],
8
+ '4' => [40],
9
+ '2000' => [50],
10
+ 'XP' => [51, 52],
11
+ 'Vista' => [60],
12
+ '7' => [61],
13
+ '8' => [62],
14
+ '8.1' => [63],
15
+ '10' => [100]
17
16
  }
18
17
  end
19
18
  end
@@ -1,3 +1,3 @@
1
1
  module Browserino
2
- VERSION = "1.0.0"
2
+ VERSION = "1.0.1"
3
3
  end
data/lib/browserino.rb CHANGED
@@ -33,7 +33,7 @@ module Browserino
33
33
  def self.check_for_aliases(hash)
34
34
  h = {}
35
35
  hash.each do |prop, val|
36
- h[prop] = ALIAS.select { |key, matches| true if matches.include?(val) }.keys.first || val
36
+ h[prop] = ALIAS[prop].select { |k, m| true if m.include?(val) }.keys.first || val
37
37
  end
38
38
  h
39
39
  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: 1.0.0
4
+ version: 1.0.1
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-18 00:00:00.000000000 Z
11
+ date: 2015-09-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -136,6 +136,7 @@ files:
136
136
  - lib/browserino/engine.rb
137
137
  - lib/browserino/maps/android.rb
138
138
  - lib/browserino/maps/ios.rb
139
+ - lib/browserino/maps/linux.rb
139
140
  - lib/browserino/maps/osx.rb
140
141
  - lib/browserino/maps/windows.rb
141
142
  - lib/browserino/match_extractor.rb