browserino 1.0.0 → 1.0.1

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.
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