browser 2.0.1 → 2.0.2

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: fb23db30128545d1362d657be31139c5c0d79ab1
4
- data.tar.gz: dd8e2126bd5de416a2d29beb3ceff26c9ed28494
3
+ metadata.gz: 1e4f0f94511f5a4e169815e5b034e4fa3a53099d
4
+ data.tar.gz: 90fb62dfa2b9ba5198ede34f771aa4f0a13e752d
5
5
  SHA512:
6
- metadata.gz: 6138595faa14527bc208ac1cdb8adb173ea3c0946988107d35846f67ad7c501e684e3f8eb28c84e71d6397156ac1259fc553bb64f78a87878fa8fd91e0586008
7
- data.tar.gz: a750b44ed0eabdcaedf98755363a772772e0c58efc83fdad00ccc74f8ad5a1bc0a8c28648f31ad422934a54f3ea6f8f5595ce94b79c7999ac46a42c548e78a26
6
+ metadata.gz: 6de159fbcda822346be969345f46b7fca93231c624b163cda8b3f23e75589f2e8b2613d329a5d26feae03d3e554b70ceb54730261c9f371303ec60283f3e98f4
7
+ data.tar.gz: fac02f1cab7ed3d2afd41c5dcd7ba0d3e67a809eb1e5fdaf6b365490ebdc089b15665ec57ff5b44ef5685eef1c9137c806de357e10e0f9e866007611133a56d3
@@ -1,5 +1,10 @@
1
1
  # Changelog
2
2
 
3
+ ## v2.0.2
4
+
5
+ - Fix issue when user agent is set to `nil`.
6
+ - Fix issue with user agent without version information.
7
+
3
8
  ## v2.0.1
4
9
 
5
10
  - Fix Rails integration.
@@ -73,6 +73,8 @@ require "browser/meta/tablet"
73
73
  require "browser/meta/device"
74
74
 
75
75
  module Browser
76
+ EMPTY_STRING = "".freeze
77
+
76
78
  def self.root
77
79
  @root ||= Pathname.new(File.expand_path("../..", __FILE__))
78
80
  end
@@ -114,7 +116,7 @@ module Browser
114
116
  Safari,
115
117
  Generic,
116
118
  ]
117
- .map {|klass| klass.new(user_agent, **kwargs) }
119
+ .map {|klass| klass.new(user_agent || EMPTY_STRING, **kwargs) }
118
120
  .find(&:match?)
119
121
  end
120
122
 
@@ -14,7 +14,8 @@ module Browser
14
14
  ua[%r[Chrome/([\d.]+)], 1] ||
15
15
  ua[%r[CriOS/([\d.]+)], 1] ||
16
16
  ua[%r[Safari/([\d.]+)], 1] ||
17
- ua[%r[AppleWebKit/([\d.]+)], 1]
17
+ ua[%r[AppleWebKit/([\d.]+)], 1] ||
18
+ "0.0"
18
19
  end
19
20
 
20
21
  def match?
@@ -10,7 +10,7 @@ module Browser
10
10
  end
11
11
 
12
12
  def full_version
13
- ua[%r[(?:Firefox|FxiOS)/([\d.]+)], 1]
13
+ ua[%r[(?:Firefox|FxiOS)/([\d.]+)], 1] || "0.0"
14
14
  end
15
15
 
16
16
  def match?
@@ -10,7 +10,7 @@ module Browser
10
10
  end
11
11
 
12
12
  def full_version
13
- ua[%r[S40OviBrowser/([\d.]+)], 1]
13
+ ua[%r[S40OviBrowser/([\d.]+)], 1] || "0.0"
14
14
  end
15
15
 
16
16
  def match?
@@ -10,7 +10,7 @@ module Browser
10
10
  end
11
11
 
12
12
  def full_version
13
- ua[%r[OPR/([\d.]+)], 1] || ua[%r[Version/([\d.]+)], 1]
13
+ ua[%r[OPR/([\d.]+)], 1] || ua[%r[Version/([\d.]+)], 1] || "0.0"
14
14
  end
15
15
 
16
16
  def match?
@@ -10,7 +10,7 @@ module Browser
10
10
  end
11
11
 
12
12
  def full_version
13
- ua[%r[PhantomJS/([\d.]+)], 1]
13
+ ua[%r[PhantomJS/([\d.]+)], 1] || "0.0"
14
14
  end
15
15
 
16
16
  def match?
@@ -10,7 +10,7 @@ module Browser
10
10
  end
11
11
 
12
12
  def full_version
13
- ua[%r[UCBrowser/([\d.]+)], 1]
13
+ ua[%r[UCBrowser/([\d.]+)], 1] || "0.0"
14
14
  end
15
15
 
16
16
  def match?
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Browser
3
- VERSION = "2.0.1"
3
+ VERSION = "2.0.2"
4
4
  end
@@ -7,6 +7,30 @@ class BrowserTest < Minitest::Test
7
7
  assert_equal "Safari", browser.ua
8
8
  end
9
9
 
10
+ test "don't fail with nil user agent" do
11
+ browser = Browser.new(nil)
12
+ refute browser.known?
13
+ end
14
+
15
+ %w[
16
+ BlackBerry
17
+ Chrome
18
+ Edge
19
+ Firefox
20
+ MSIE
21
+ Opera
22
+ PhantomJS
23
+ S40OviBrowser
24
+ Safari
25
+ UCBrowser
26
+ ].each do |ua|
27
+ test "don't fail when have no version info (#{ua})" do
28
+ browser = Browser.new(ua)
29
+ assert_equal "0", browser.version
30
+ assert_equal "0.0", browser.full_version
31
+ end
32
+ end
33
+
10
34
  test "detects android" do
11
35
  browser = Browser.new(Browser["ANDROID"])
12
36
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: browser
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.1
4
+ version: 2.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nando Vieira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-28 00:00:00.000000000 Z
11
+ date: 2016-03-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler