browser 4.0.0 → 5.2.0
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 +4 -4
- data/.github/workflows/tests.yml +57 -0
- data/.prettierignore +1 -0
- data/.rubocop.yml +6 -0
- data/CHANGELOG.md +51 -1
- data/FUNDING.yml +3 -0
- data/README.md +97 -61
- data/bots.yml +300 -296
- data/browser.gemspec +4 -2
- data/lib/browser/accept_language.rb +4 -4
- data/lib/browser/alipay.rb +1 -1
- data/lib/browser/base.rb +76 -12
- data/lib/browser/blackberry.rb +1 -1
- data/lib/browser/bot/keyword_matcher.rb +1 -1
- data/lib/browser/browser.rb +24 -3
- data/lib/browser/chrome.rb +10 -3
- data/lib/browser/device.rb +12 -5
- data/lib/browser/device/android.rb +1 -1
- data/lib/browser/device/blackberry_playbook.rb +1 -1
- data/lib/browser/device/ipad.rb +1 -1
- data/lib/browser/device/iphone.rb +1 -1
- data/lib/browser/device/ipod_touch.rb +1 -1
- data/lib/browser/device/kindle.rb +1 -1
- data/lib/browser/device/kindle_fire.rb +1 -1
- data/lib/browser/device/playstation3.rb +1 -1
- data/lib/browser/device/playstation4.rb +1 -1
- data/lib/browser/device/psp.rb +1 -1
- data/lib/browser/device/psvita.rb +1 -1
- data/lib/browser/device/samsung.rb +33 -0
- data/lib/browser/device/surface.rb +1 -1
- data/lib/browser/device/switch.rb +1 -1
- data/lib/browser/device/tv.rb +1 -1
- data/lib/browser/device/unknown.rb +1 -1
- data/lib/browser/device/wii.rb +1 -1
- data/lib/browser/device/wiiu.rb +1 -1
- data/lib/browser/device/xbox_360.rb +1 -1
- data/lib/browser/device/xbox_one.rb +1 -1
- data/lib/browser/duck_duck_go.rb +1 -1
- data/lib/browser/edge.rb +3 -3
- data/lib/browser/electron.rb +1 -1
- data/lib/browser/facebook.rb +1 -1
- data/lib/browser/firefox.rb +1 -1
- data/lib/browser/google_search_app.rb +21 -0
- data/lib/browser/huawei_browser.rb +21 -0
- data/lib/browser/instagram.rb +1 -1
- data/lib/browser/internet_explorer.rb +2 -2
- data/lib/browser/maxthon.rb +21 -0
- data/lib/browser/micro_messenger.rb +1 -1
- data/lib/browser/miui_browser.rb +21 -0
- data/lib/browser/nokia.rb +1 -1
- data/lib/browser/opera.rb +1 -1
- data/lib/browser/otter.rb +1 -1
- data/lib/browser/phantom_js.rb +1 -1
- data/lib/browser/platform.rb +21 -15
- data/lib/browser/platform/adobe_air.rb +1 -1
- data/lib/browser/platform/android.rb +1 -1
- data/lib/browser/platform/blackberry.rb +1 -1
- data/lib/browser/platform/chrome_os.rb +1 -1
- data/lib/browser/platform/firefox_os.rb +1 -1
- data/lib/browser/platform/ios.rb +2 -2
- data/lib/browser/platform/kai_os.rb +23 -0
- data/lib/browser/platform/linux.rb +1 -1
- data/lib/browser/platform/mac.rb +2 -2
- data/lib/browser/platform/{other.rb → unknown.rb} +3 -3
- data/lib/browser/platform/windows.rb +2 -2
- data/lib/browser/platform/windows_mobile.rb +1 -1
- data/lib/browser/platform/windows_phone.rb +1 -1
- data/lib/browser/qq.rb +1 -1
- data/lib/browser/safari.rb +12 -3
- data/lib/browser/samsung_browser.rb +21 -0
- data/lib/browser/snapchat.rb +1 -1
- data/lib/browser/sougou_browser.rb +24 -0
- data/lib/browser/sputnik.rb +1 -1
- data/lib/browser/uc_browser.rb +1 -1
- data/lib/browser/{generic.rb → unknown.rb} +3 -3
- data/lib/browser/version.rb +1 -1
- data/lib/browser/weibo.rb +1 -1
- data/lib/browser/yandex.rb +1 -1
- data/samsung.yml +138 -0
- data/test/browser_test.rb +37 -6
- data/test/ua.yml +20 -2
- data/test/ua_bots.yml +7 -3
- data/test/unit/adobe_air_test.rb +1 -1
- data/test/unit/alipay_test.rb +6 -0
- data/test/unit/bots_test.rb +1 -1
- data/test/unit/console_test.rb +2 -2
- data/test/unit/device_test.rb +30 -3
- data/test/unit/duck_duck_go_test.rb +2 -0
- data/test/unit/edge_test.rb +34 -2
- data/test/unit/google_search_app_test.rb +54 -0
- data/test/unit/huawei_browser_test.rb +25 -0
- data/test/unit/kai_os_test.rb +31 -0
- data/test/unit/maxthon_test.rb +25 -0
- data/test/unit/meta_test.rb +10 -1
- data/test/unit/micro_messenger_test.rb +21 -6
- data/test/unit/miui_browser_test.rb +25 -0
- data/test/unit/opera_test.rb +1 -0
- data/test/unit/platform_test.rb +7 -7
- data/test/unit/qq_test.rb +12 -0
- data/test/unit/safari_test.rb +12 -7
- data/test/unit/samsung_browser_test.rb +23 -0
- data/test/unit/sougou_browser_test.rb +41 -0
- metadata +41 -15
- data/.travis.yml +0 -23
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "test_helper"
|
|
4
|
+
|
|
5
|
+
class MaxthonTest < Minitest::Test
|
|
6
|
+
test "detects Maxthon" do
|
|
7
|
+
browser = Browser.new(Browser["MAXTHON"])
|
|
8
|
+
assert browser.maxthon?
|
|
9
|
+
refute browser.safari?
|
|
10
|
+
refute browser.chrome?
|
|
11
|
+
assert_equal "Maxthon", browser.name
|
|
12
|
+
assert_equal :maxthon, browser.id
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
test "detects correct version" do
|
|
16
|
+
browser = Browser.new(Browser["MAXTHON"])
|
|
17
|
+
assert_equal "5.3.8.2000", browser.full_version
|
|
18
|
+
assert_equal "5", browser.version
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
test "detects version by range" do
|
|
22
|
+
browser = Browser.new(Browser["MAXTHON"])
|
|
23
|
+
assert browser.maxthon?(%w[>=5 <6])
|
|
24
|
+
end
|
|
25
|
+
end
|
data/test/unit/meta_test.rb
CHANGED
|
@@ -5,7 +5,7 @@ require "test_helper"
|
|
|
5
5
|
class MetaTest < Minitest::Test
|
|
6
6
|
class CustomRule < Browser::Meta::Base
|
|
7
7
|
def meta
|
|
8
|
-
"custom" if browser.ua
|
|
8
|
+
"custom" if /Custom/.match?(browser.ua)
|
|
9
9
|
end
|
|
10
10
|
end
|
|
11
11
|
|
|
@@ -45,4 +45,13 @@ class MetaTest < Minitest::Test
|
|
|
45
45
|
assert meta.include?("blackberry")
|
|
46
46
|
assert meta.include?("mobile")
|
|
47
47
|
end
|
|
48
|
+
|
|
49
|
+
test "returns string representation for unknown platform/device/browser" do
|
|
50
|
+
browser = Browser.new("Unknown")
|
|
51
|
+
meta = browser.to_s
|
|
52
|
+
|
|
53
|
+
assert meta.include?("unknown_platform")
|
|
54
|
+
assert meta.include?("unknown_device")
|
|
55
|
+
assert meta.include?("unknown_browser")
|
|
56
|
+
end
|
|
48
57
|
end
|
|
@@ -3,18 +3,33 @@
|
|
|
3
3
|
require "test_helper"
|
|
4
4
|
|
|
5
5
|
class MicroMessengerTest < Minitest::Test
|
|
6
|
-
test "detects micro messenger
|
|
7
|
-
browser = Browser.new(Browser["
|
|
6
|
+
test "detects micro messenger 7.0.10 on iOS" do
|
|
7
|
+
browser = Browser.new(Browser["MICRO_MESSENGER_IOS"])
|
|
8
8
|
|
|
9
9
|
assert browser.micro_messenger?
|
|
10
10
|
assert browser.wechat?
|
|
11
|
-
assert_equal "
|
|
11
|
+
assert_equal "7.0.10", browser.full_version
|
|
12
12
|
assert_equal "MicroMessenger", browser.name
|
|
13
13
|
assert_equal :micro_messenger, browser.id
|
|
14
14
|
end
|
|
15
15
|
|
|
16
|
-
test "detects version by range" do
|
|
17
|
-
browser = Browser.new(Browser["
|
|
18
|
-
assert browser.wechat?(%w[>=
|
|
16
|
+
test "detects version by range on iOS" do
|
|
17
|
+
browser = Browser.new(Browser["MICRO_MESSENGER_IOS"])
|
|
18
|
+
assert browser.wechat?(%w[>=7 <8])
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
test "detects micro messenger 7.0.13.1640 on Android" do
|
|
22
|
+
browser = Browser.new(Browser["MICRO_MESSENGER_ANDROID"])
|
|
23
|
+
|
|
24
|
+
assert browser.micro_messenger?
|
|
25
|
+
assert browser.wechat?
|
|
26
|
+
assert_equal "7.0.13.1640", browser.full_version
|
|
27
|
+
assert_equal "MicroMessenger", browser.name
|
|
28
|
+
assert_equal :micro_messenger, browser.id
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
test "detects version by range on Android" do
|
|
32
|
+
browser = Browser.new(Browser["MICRO_MESSENGER_ANDROID"])
|
|
33
|
+
assert browser.wechat?(%w[>=7 <8])
|
|
19
34
|
end
|
|
20
35
|
end
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "test_helper"
|
|
4
|
+
|
|
5
|
+
class MiuiBrowserTest < Minitest::Test
|
|
6
|
+
test "detects Miui Browser" do
|
|
7
|
+
browser = Browser.new(Browser["MIUI_BROWSER"])
|
|
8
|
+
assert browser.miui_browser?
|
|
9
|
+
refute browser.safari?
|
|
10
|
+
refute browser.chrome?
|
|
11
|
+
assert_equal "Miui Browser", browser.name
|
|
12
|
+
assert_equal :miui_browser, browser.id
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
test "detects correct version" do
|
|
16
|
+
browser = Browser.new(Browser["MIUI_BROWSER"])
|
|
17
|
+
assert_equal "12.3.3", browser.full_version
|
|
18
|
+
assert_equal "12", browser.version
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
test "detects version by range" do
|
|
22
|
+
browser = Browser.new(Browser["MIUI_BROWSER"])
|
|
23
|
+
assert browser.miui_browser?(%w[>=12 <13])
|
|
24
|
+
end
|
|
25
|
+
end
|
data/test/unit/opera_test.rb
CHANGED
data/test/unit/platform_test.rb
CHANGED
|
@@ -5,7 +5,7 @@ require "test_helper"
|
|
|
5
5
|
class PlatformTest < Minitest::Test
|
|
6
6
|
class CustomPlatform < Browser::Platform::Base
|
|
7
7
|
def match?
|
|
8
|
-
ua
|
|
8
|
+
ua.include?("Custom")
|
|
9
9
|
end
|
|
10
10
|
|
|
11
11
|
def id
|
|
@@ -20,7 +20,7 @@ class PlatformTest < Minitest::Test
|
|
|
20
20
|
|
|
21
21
|
Browser::Platform.matchers.shift
|
|
22
22
|
platform = Browser::Platform.new("Custom")
|
|
23
|
-
assert_equal :
|
|
23
|
+
assert_equal :unknown_platform, platform.id
|
|
24
24
|
end
|
|
25
25
|
|
|
26
26
|
test "implements to_s" do
|
|
@@ -35,13 +35,13 @@ class PlatformTest < Minitest::Test
|
|
|
35
35
|
refute platform == :android
|
|
36
36
|
end
|
|
37
37
|
|
|
38
|
-
test "detect
|
|
39
|
-
platform = Browser::Platform.new("
|
|
38
|
+
test "detect unknown platforms" do
|
|
39
|
+
platform = Browser::Platform.new("Unknown")
|
|
40
40
|
|
|
41
|
-
assert_equal "
|
|
42
|
-
assert_equal :
|
|
41
|
+
assert_equal "Unknown", platform.name
|
|
42
|
+
assert_equal :unknown_platform, platform.id
|
|
43
43
|
assert_equal "0", platform.version
|
|
44
|
-
assert platform.
|
|
44
|
+
assert platform.unknown?
|
|
45
45
|
end
|
|
46
46
|
|
|
47
47
|
test "detect ios (iPhone)" do
|
data/test/unit/qq_test.rb
CHANGED
|
@@ -9,6 +9,9 @@ class QQTest < Minitest::Test
|
|
|
9
9
|
assert_equal "6.3.3.432", browser.full_version
|
|
10
10
|
assert_equal "QQ Browser", browser.name
|
|
11
11
|
assert_equal :qq, browser.id
|
|
12
|
+
|
|
13
|
+
refute browser.chrome?
|
|
14
|
+
refute browser.safari?
|
|
12
15
|
end
|
|
13
16
|
|
|
14
17
|
test "detects QQ browser for Android" do
|
|
@@ -17,6 +20,9 @@ class QQTest < Minitest::Test
|
|
|
17
20
|
assert_equal "6.2", browser.full_version
|
|
18
21
|
assert_equal "QQ Browser", browser.name
|
|
19
22
|
assert_equal :qq, browser.id
|
|
23
|
+
|
|
24
|
+
refute browser.chrome?
|
|
25
|
+
refute browser.safari?
|
|
20
26
|
end
|
|
21
27
|
|
|
22
28
|
test "detects QQ browser for Mac" do
|
|
@@ -25,6 +31,9 @@ class QQTest < Minitest::Test
|
|
|
25
31
|
assert_equal "4.2.4753.400", browser.full_version
|
|
26
32
|
assert_equal "QQ Browser", browser.name
|
|
27
33
|
assert_equal :qq, browser.id
|
|
34
|
+
|
|
35
|
+
refute browser.chrome?
|
|
36
|
+
refute browser.safari?
|
|
28
37
|
end
|
|
29
38
|
|
|
30
39
|
test "detects QQ browser lite for Mac" do
|
|
@@ -33,5 +42,8 @@ class QQTest < Minitest::Test
|
|
|
33
42
|
assert_equal "1.0.4", browser.full_version
|
|
34
43
|
assert_equal "QQ Browser", browser.name
|
|
35
44
|
assert_equal :qq, browser.id
|
|
45
|
+
|
|
46
|
+
refute browser.chrome?
|
|
47
|
+
refute browser.safari?
|
|
36
48
|
end
|
|
37
49
|
end
|
data/test/unit/safari_test.rb
CHANGED
|
@@ -7,7 +7,7 @@ class SafariTest < Minitest::Test
|
|
|
7
7
|
browser = Browser.new(Browser["SAFARI3"])
|
|
8
8
|
|
|
9
9
|
assert browser.safari?
|
|
10
|
-
assert browser.safari?(3)
|
|
10
|
+
assert browser.safari?("~>3.0")
|
|
11
11
|
assert_equal "3", browser.version
|
|
12
12
|
assert_equal "3.0.3", browser.full_version
|
|
13
13
|
end
|
|
@@ -16,7 +16,7 @@ class SafariTest < Minitest::Test
|
|
|
16
16
|
browser = Browser.new(Browser["SAFARI4"])
|
|
17
17
|
|
|
18
18
|
assert browser.safari?
|
|
19
|
-
assert browser.safari?(4)
|
|
19
|
+
assert browser.safari?("~>4.0")
|
|
20
20
|
assert_equal "4", browser.version
|
|
21
21
|
assert_equal "4.0.3", browser.full_version
|
|
22
22
|
end
|
|
@@ -25,7 +25,7 @@ class SafariTest < Minitest::Test
|
|
|
25
25
|
browser = Browser.new(Browser["SAFARI5"])
|
|
26
26
|
|
|
27
27
|
assert browser.safari?
|
|
28
|
-
assert browser.safari?(5)
|
|
28
|
+
assert browser.safari?("~>5.0")
|
|
29
29
|
assert_equal "5", browser.version
|
|
30
30
|
assert_equal "5.0.3", browser.full_version
|
|
31
31
|
end
|
|
@@ -34,7 +34,7 @@ class SafariTest < Minitest::Test
|
|
|
34
34
|
browser = Browser.new(Browser["SAFARI6"])
|
|
35
35
|
|
|
36
36
|
assert browser.safari?
|
|
37
|
-
assert browser.safari?(6)
|
|
37
|
+
assert browser.safari?("~>6.0")
|
|
38
38
|
assert_equal "6", browser.version
|
|
39
39
|
assert_equal "6.0", browser.full_version
|
|
40
40
|
end
|
|
@@ -43,7 +43,7 @@ class SafariTest < Minitest::Test
|
|
|
43
43
|
browser = Browser.new(Browser["SAFARI7"])
|
|
44
44
|
|
|
45
45
|
assert browser.safari?
|
|
46
|
-
assert browser.safari?(7)
|
|
46
|
+
assert browser.safari?("~>7.0")
|
|
47
47
|
assert_equal "7", browser.version
|
|
48
48
|
assert_equal "7.0", browser.full_version
|
|
49
49
|
end
|
|
@@ -52,7 +52,7 @@ class SafariTest < Minitest::Test
|
|
|
52
52
|
browser = Browser.new(Browser["SAFARI8"])
|
|
53
53
|
|
|
54
54
|
assert browser.safari?
|
|
55
|
-
assert browser.safari?(8)
|
|
55
|
+
assert browser.safari?("~>8.0")
|
|
56
56
|
assert_equal "8", browser.version
|
|
57
57
|
assert_equal "8.0", browser.full_version
|
|
58
58
|
end
|
|
@@ -61,7 +61,7 @@ class SafariTest < Minitest::Test
|
|
|
61
61
|
browser = Browser.new(Browser["SAFARI9"])
|
|
62
62
|
|
|
63
63
|
assert browser.safari?
|
|
64
|
-
assert browser.safari?(9)
|
|
64
|
+
assert browser.safari?("~>9.0")
|
|
65
65
|
assert_equal "9", browser.version
|
|
66
66
|
assert_equal "9.0.2", browser.full_version
|
|
67
67
|
end
|
|
@@ -88,4 +88,9 @@ class SafariTest < Minitest::Test
|
|
|
88
88
|
browser = Browser.new(Browser["SAFARI9"])
|
|
89
89
|
assert browser.webkit?(%w[>=601 <602])
|
|
90
90
|
end
|
|
91
|
+
|
|
92
|
+
test "detects safari version by range" do
|
|
93
|
+
browser = Browser.new(Browser["SAFARI9"])
|
|
94
|
+
assert browser.safari?(%w[>=9.0 <10])
|
|
95
|
+
end
|
|
91
96
|
end
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "test_helper"
|
|
4
|
+
|
|
5
|
+
class SamsungBrowserTest < Minitest::Test
|
|
6
|
+
test "detects samsung browser" do
|
|
7
|
+
browser = Browser.new(Browser["SAMSUNG_BROWSER"])
|
|
8
|
+
|
|
9
|
+
assert browser.webkit?
|
|
10
|
+
assert browser.samsung_browser?
|
|
11
|
+
assert_equal "11", browser.version
|
|
12
|
+
assert_equal :samsung_browser, browser.id
|
|
13
|
+
assert_equal "11.1", browser.full_version
|
|
14
|
+
assert_equal "Samsung Browser", browser.name
|
|
15
|
+
refute browser.chrome?
|
|
16
|
+
refute browser.safari?
|
|
17
|
+
end
|
|
18
|
+
|
|
19
|
+
test "detects version by range" do
|
|
20
|
+
browser = Browser.new(Browser["SAMSUNG_BROWSER"])
|
|
21
|
+
assert browser.samsung_browser?(%w[>=11 <12])
|
|
22
|
+
end
|
|
23
|
+
end
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
# frozen_string_literal: true
|
|
2
|
+
|
|
3
|
+
require "test_helper"
|
|
4
|
+
|
|
5
|
+
class SougouBrowserTest < Minitest::Test
|
|
6
|
+
test "detects Sougou Browser on desktop device" do
|
|
7
|
+
browser = Browser.new(Browser["SOUGOU_BROWSER"])
|
|
8
|
+
assert browser.sougou_browser?
|
|
9
|
+
refute browser.safari?
|
|
10
|
+
refute browser.chrome?
|
|
11
|
+
assert_equal "Sougou Browser", browser.name
|
|
12
|
+
assert_equal :sougou_browser, browser.id
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
test "detects correct version on desktop device" do
|
|
16
|
+
browser = Browser.new(Browser["SOUGOU_BROWSER"])
|
|
17
|
+
assert_equal "0.0", browser.full_version
|
|
18
|
+
assert_equal "0", browser.version
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
test "detects Sougou Browser on mobile device" do
|
|
22
|
+
browser = Browser.new(Browser["SOUGOU_BROWSER_MOBILE"])
|
|
23
|
+
assert browser.sougou_browser?
|
|
24
|
+
assert browser.device.mobile?
|
|
25
|
+
refute browser.safari?
|
|
26
|
+
refute browser.chrome?
|
|
27
|
+
assert_equal "Sougou Browser", browser.name
|
|
28
|
+
assert_equal :sougou_browser, browser.id
|
|
29
|
+
end
|
|
30
|
+
|
|
31
|
+
test "detects correct version on mobile device" do
|
|
32
|
+
browser = Browser.new(Browser["SOUGOU_BROWSER_MOBILE"])
|
|
33
|
+
assert_equal "5.28.12", browser.full_version
|
|
34
|
+
assert_equal "5", browser.version
|
|
35
|
+
end
|
|
36
|
+
|
|
37
|
+
test "detects version by range on mobile device" do
|
|
38
|
+
browser = Browser.new(Browser["SOUGOU_BROWSER_MOBILE"])
|
|
39
|
+
assert browser.sougou_browser?(%w[>=5 <6])
|
|
40
|
+
end
|
|
41
|
+
end
|
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:
|
|
4
|
+
version: 5.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Nando Vieira
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2020-
|
|
11
|
+
date: 2020-12-18 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: bundler
|
|
@@ -140,16 +140,16 @@ dependencies:
|
|
|
140
140
|
name: rubocop-fnando
|
|
141
141
|
requirement: !ruby/object:Gem::Requirement
|
|
142
142
|
requirements:
|
|
143
|
-
- - "
|
|
143
|
+
- - ">="
|
|
144
144
|
- !ruby/object:Gem::Version
|
|
145
|
-
version: 0
|
|
145
|
+
version: '0'
|
|
146
146
|
type: :development
|
|
147
147
|
prerelease: false
|
|
148
148
|
version_requirements: !ruby/object:Gem::Requirement
|
|
149
149
|
requirements:
|
|
150
|
-
- - "
|
|
150
|
+
- - ">="
|
|
151
151
|
- !ruby/object:Gem::Version
|
|
152
|
-
version: 0
|
|
152
|
+
version: '0'
|
|
153
153
|
- !ruby/object:Gem::Dependency
|
|
154
154
|
name: simplecov
|
|
155
155
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -172,10 +172,12 @@ extensions: []
|
|
|
172
172
|
extra_rdoc_files: []
|
|
173
173
|
files:
|
|
174
174
|
- ".github/ISSUE_TEMPLATE.md"
|
|
175
|
+
- ".github/workflows/tests.yml"
|
|
175
176
|
- ".gitignore"
|
|
177
|
+
- ".prettierignore"
|
|
176
178
|
- ".rubocop.yml"
|
|
177
|
-
- ".travis.yml"
|
|
178
179
|
- CHANGELOG.md
|
|
180
|
+
- FUNDING.yml
|
|
179
181
|
- Gemfile
|
|
180
182
|
- README.md
|
|
181
183
|
- Rakefile
|
|
@@ -213,6 +215,7 @@ files:
|
|
|
213
215
|
- lib/browser/device/playstation4.rb
|
|
214
216
|
- lib/browser/device/psp.rb
|
|
215
217
|
- lib/browser/device/psvita.rb
|
|
218
|
+
- lib/browser/device/samsung.rb
|
|
216
219
|
- lib/browser/device/surface.rb
|
|
217
220
|
- lib/browser/device/switch.rb
|
|
218
221
|
- lib/browser/device/tv.rb
|
|
@@ -226,9 +229,11 @@ files:
|
|
|
226
229
|
- lib/browser/electron.rb
|
|
227
230
|
- lib/browser/facebook.rb
|
|
228
231
|
- lib/browser/firefox.rb
|
|
229
|
-
- lib/browser/
|
|
232
|
+
- lib/browser/google_search_app.rb
|
|
233
|
+
- lib/browser/huawei_browser.rb
|
|
230
234
|
- lib/browser/instagram.rb
|
|
231
235
|
- lib/browser/internet_explorer.rb
|
|
236
|
+
- lib/browser/maxthon.rb
|
|
232
237
|
- lib/browser/meta.rb
|
|
233
238
|
- lib/browser/meta/base.rb
|
|
234
239
|
- lib/browser/meta/device.rb
|
|
@@ -247,6 +252,7 @@ files:
|
|
|
247
252
|
- lib/browser/middleware/context.rb
|
|
248
253
|
- lib/browser/middleware/context/additions.rb
|
|
249
254
|
- lib/browser/middleware/context/url_methods.rb
|
|
255
|
+
- lib/browser/miui_browser.rb
|
|
250
256
|
- lib/browser/nokia.rb
|
|
251
257
|
- lib/browser/opera.rb
|
|
252
258
|
- lib/browser/otter.rb
|
|
@@ -259,22 +265,27 @@ files:
|
|
|
259
265
|
- lib/browser/platform/chrome_os.rb
|
|
260
266
|
- lib/browser/platform/firefox_os.rb
|
|
261
267
|
- lib/browser/platform/ios.rb
|
|
268
|
+
- lib/browser/platform/kai_os.rb
|
|
262
269
|
- lib/browser/platform/linux.rb
|
|
263
270
|
- lib/browser/platform/mac.rb
|
|
264
|
-
- lib/browser/platform/
|
|
271
|
+
- lib/browser/platform/unknown.rb
|
|
265
272
|
- lib/browser/platform/windows.rb
|
|
266
273
|
- lib/browser/platform/windows_mobile.rb
|
|
267
274
|
- lib/browser/platform/windows_phone.rb
|
|
268
275
|
- lib/browser/qq.rb
|
|
269
276
|
- lib/browser/rails.rb
|
|
270
277
|
- lib/browser/safari.rb
|
|
278
|
+
- lib/browser/samsung_browser.rb
|
|
271
279
|
- lib/browser/snapchat.rb
|
|
280
|
+
- lib/browser/sougou_browser.rb
|
|
272
281
|
- lib/browser/sputnik.rb
|
|
273
282
|
- lib/browser/testing.rb
|
|
274
283
|
- lib/browser/uc_browser.rb
|
|
284
|
+
- lib/browser/unknown.rb
|
|
275
285
|
- lib/browser/version.rb
|
|
276
286
|
- lib/browser/weibo.rb
|
|
277
287
|
- lib/browser/yandex.rb
|
|
288
|
+
- samsung.yml
|
|
278
289
|
- search_engines.yml
|
|
279
290
|
- test/browser_test.rb
|
|
280
291
|
- test/middleware_test.rb
|
|
@@ -301,13 +312,18 @@ files:
|
|
|
301
312
|
- test/unit/facebook_test.rb
|
|
302
313
|
- test/unit/firefox_test.rb
|
|
303
314
|
- test/unit/generic_test.rb
|
|
315
|
+
- test/unit/google_search_app_test.rb
|
|
316
|
+
- test/unit/huawei_browser_test.rb
|
|
304
317
|
- test/unit/instagram_test.rb
|
|
305
318
|
- test/unit/internet_explorer_test.rb
|
|
306
319
|
- test/unit/ios_app_test.rb
|
|
307
320
|
- test/unit/ios_test.rb
|
|
321
|
+
- test/unit/kai_os_test.rb
|
|
308
322
|
- test/unit/kindle_test.rb
|
|
323
|
+
- test/unit/maxthon_test.rb
|
|
309
324
|
- test/unit/meta_test.rb
|
|
310
325
|
- test/unit/micro_messenger_test.rb
|
|
326
|
+
- test/unit/miui_browser_test.rb
|
|
311
327
|
- test/unit/nokia_test.rb
|
|
312
328
|
- test/unit/opera_test.rb
|
|
313
329
|
- test/unit/otter_test.rb
|
|
@@ -315,18 +331,21 @@ files:
|
|
|
315
331
|
- test/unit/proxy_test.rb
|
|
316
332
|
- test/unit/qq_test.rb
|
|
317
333
|
- test/unit/safari_test.rb
|
|
334
|
+
- test/unit/samsung_browser_test.rb
|
|
318
335
|
- test/unit/snapchat_test.rb
|
|
336
|
+
- test/unit/sougou_browser_test.rb
|
|
319
337
|
- test/unit/sputnik_test.rb
|
|
320
338
|
- test/unit/uc_browser_test.rb
|
|
321
339
|
- test/unit/weibo_test.rb
|
|
322
340
|
- test/unit/windows_phone_test.rb
|
|
323
341
|
- test/unit/windows_test.rb
|
|
324
342
|
- test/unit/yandex_test.rb
|
|
325
|
-
homepage:
|
|
343
|
+
homepage: https://github.com/fnando/browser
|
|
326
344
|
licenses:
|
|
327
345
|
- MIT
|
|
328
|
-
metadata:
|
|
329
|
-
|
|
346
|
+
metadata:
|
|
347
|
+
changelog_uri: https://github.com/fnando/browser/blob/main/CHANGELOG.md
|
|
348
|
+
post_install_message:
|
|
330
349
|
rdoc_options: []
|
|
331
350
|
require_paths:
|
|
332
351
|
- lib
|
|
@@ -341,8 +360,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
341
360
|
- !ruby/object:Gem::Version
|
|
342
361
|
version: '0'
|
|
343
362
|
requirements: []
|
|
344
|
-
rubygems_version: 3.
|
|
345
|
-
signing_key:
|
|
363
|
+
rubygems_version: 3.2.0
|
|
364
|
+
signing_key:
|
|
346
365
|
specification_version: 4
|
|
347
366
|
summary: Do some browser detection with Ruby.
|
|
348
367
|
test_files:
|
|
@@ -371,13 +390,18 @@ test_files:
|
|
|
371
390
|
- test/unit/facebook_test.rb
|
|
372
391
|
- test/unit/firefox_test.rb
|
|
373
392
|
- test/unit/generic_test.rb
|
|
393
|
+
- test/unit/google_search_app_test.rb
|
|
394
|
+
- test/unit/huawei_browser_test.rb
|
|
374
395
|
- test/unit/instagram_test.rb
|
|
375
396
|
- test/unit/internet_explorer_test.rb
|
|
376
397
|
- test/unit/ios_app_test.rb
|
|
377
398
|
- test/unit/ios_test.rb
|
|
399
|
+
- test/unit/kai_os_test.rb
|
|
378
400
|
- test/unit/kindle_test.rb
|
|
401
|
+
- test/unit/maxthon_test.rb
|
|
379
402
|
- test/unit/meta_test.rb
|
|
380
403
|
- test/unit/micro_messenger_test.rb
|
|
404
|
+
- test/unit/miui_browser_test.rb
|
|
381
405
|
- test/unit/nokia_test.rb
|
|
382
406
|
- test/unit/opera_test.rb
|
|
383
407
|
- test/unit/otter_test.rb
|
|
@@ -385,7 +409,9 @@ test_files:
|
|
|
385
409
|
- test/unit/proxy_test.rb
|
|
386
410
|
- test/unit/qq_test.rb
|
|
387
411
|
- test/unit/safari_test.rb
|
|
412
|
+
- test/unit/samsung_browser_test.rb
|
|
388
413
|
- test/unit/snapchat_test.rb
|
|
414
|
+
- test/unit/sougou_browser_test.rb
|
|
389
415
|
- test/unit/sputnik_test.rb
|
|
390
416
|
- test/unit/uc_browser_test.rb
|
|
391
417
|
- test/unit/weibo_test.rb
|