browser 3.0.3 → 5.3.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.
Files changed (111) hide show
  1. checksums.yaml +4 -4
  2. data/.github/ISSUE_TEMPLATE.md +1 -1
  3. data/.github/workflows/tests.yml +57 -0
  4. data/.prettierignore +1 -0
  5. data/.rubocop.yml +12 -0
  6. data/CHANGELOG.md +101 -19
  7. data/FUNDING.yml +3 -0
  8. data/README.md +104 -67
  9. data/bots.yml +299 -294
  10. data/browser.gemspec +5 -2
  11. data/gemfiles/{rails6.gemfile → rails6_0.gemfile} +0 -0
  12. data/gemfiles/{rails5.gemfile → rails6_1.gemfile} +1 -1
  13. data/lib/browser/accept_language.rb +4 -4
  14. data/lib/browser/alipay.rb +1 -1
  15. data/lib/browser/base.rb +80 -21
  16. data/lib/browser/blackberry.rb +1 -1
  17. data/lib/browser/bot/keyword_matcher.rb +1 -1
  18. data/lib/browser/browser.rb +26 -26
  19. data/lib/browser/chrome.rb +13 -3
  20. data/lib/browser/device/android.rb +1 -1
  21. data/lib/browser/device/blackberry_playbook.rb +1 -1
  22. data/lib/browser/device/ipad.rb +1 -1
  23. data/lib/browser/device/iphone.rb +1 -1
  24. data/lib/browser/device/ipod_touch.rb +1 -1
  25. data/lib/browser/device/kindle.rb +1 -1
  26. data/lib/browser/device/kindle_fire.rb +1 -1
  27. data/lib/browser/device/playstation3.rb +1 -1
  28. data/lib/browser/device/playstation4.rb +1 -1
  29. data/lib/browser/device/psp.rb +1 -1
  30. data/lib/browser/device/psvita.rb +1 -1
  31. data/lib/browser/device/samsung.rb +33 -0
  32. data/lib/browser/device/surface.rb +1 -1
  33. data/lib/browser/device/switch.rb +1 -1
  34. data/lib/browser/device/tv.rb +1 -1
  35. data/lib/browser/device/unknown.rb +1 -1
  36. data/lib/browser/device/wii.rb +1 -1
  37. data/lib/browser/device/wiiu.rb +1 -1
  38. data/lib/browser/device/xbox_360.rb +1 -1
  39. data/lib/browser/device/xbox_one.rb +1 -1
  40. data/lib/browser/device.rb +12 -5
  41. data/lib/browser/duck_duck_go.rb +22 -0
  42. data/lib/browser/edge.rb +3 -3
  43. data/lib/browser/electron.rb +1 -1
  44. data/lib/browser/facebook.rb +1 -1
  45. data/lib/browser/firefox.rb +1 -1
  46. data/lib/browser/google_search_app.rb +21 -0
  47. data/lib/browser/huawei_browser.rb +21 -0
  48. data/lib/browser/instagram.rb +1 -1
  49. data/lib/browser/internet_explorer.rb +2 -2
  50. data/lib/browser/maxthon.rb +21 -0
  51. data/lib/browser/meta/base.rb +0 -1
  52. data/lib/browser/meta.rb +0 -1
  53. data/lib/browser/micro_messenger.rb +1 -1
  54. data/lib/browser/miui_browser.rb +21 -0
  55. data/lib/browser/nokia.rb +1 -1
  56. data/lib/browser/opera.rb +1 -1
  57. data/lib/browser/otter.rb +1 -1
  58. data/lib/browser/phantom_js.rb +1 -1
  59. data/lib/browser/platform/adobe_air.rb +1 -1
  60. data/lib/browser/platform/android.rb +1 -1
  61. data/lib/browser/platform/base.rb +3 -2
  62. data/lib/browser/platform/blackberry.rb +1 -1
  63. data/lib/browser/platform/chrome_os.rb +1 -1
  64. data/lib/browser/platform/firefox_os.rb +1 -1
  65. data/lib/browser/platform/ios.rb +2 -2
  66. data/lib/browser/platform/kai_os.rb +23 -0
  67. data/lib/browser/platform/linux.rb +1 -1
  68. data/lib/browser/platform/mac.rb +5 -3
  69. data/lib/browser/platform/{other.rb → unknown.rb} +3 -3
  70. data/lib/browser/platform/windows.rb +2 -2
  71. data/lib/browser/platform/windows_mobile.rb +1 -1
  72. data/lib/browser/platform/windows_phone.rb +1 -1
  73. data/lib/browser/platform.rb +22 -16
  74. data/lib/browser/qq.rb +1 -1
  75. data/lib/browser/safari.rb +16 -1
  76. data/lib/browser/samsung_browser.rb +21 -0
  77. data/lib/browser/snapchat.rb +1 -1
  78. data/lib/browser/sougou_browser.rb +24 -0
  79. data/lib/browser/sputnik.rb +1 -1
  80. data/lib/browser/uc_browser.rb +1 -1
  81. data/lib/browser/{generic.rb → unknown.rb} +3 -3
  82. data/lib/browser/version.rb +1 -1
  83. data/lib/browser/weibo.rb +1 -1
  84. data/lib/browser/yandex.rb +1 -1
  85. data/samsung.yml +138 -0
  86. data/test/browser_test.rb +37 -6
  87. data/test/ua.yml +23 -1
  88. data/test/ua_bots.yml +8 -3
  89. data/test/unit/adobe_air_test.rb +1 -1
  90. data/test/unit/alipay_test.rb +6 -0
  91. data/test/unit/bots_test.rb +1 -1
  92. data/test/unit/console_test.rb +2 -2
  93. data/test/unit/device_test.rb +30 -3
  94. data/test/unit/duck_duck_go_test.rb +37 -0
  95. data/test/unit/edge_test.rb +34 -2
  96. data/test/unit/google_search_app_test.rb +54 -0
  97. data/test/unit/huawei_browser_test.rb +25 -0
  98. data/test/unit/kai_os_test.rb +31 -0
  99. data/test/unit/maxthon_test.rb +25 -0
  100. data/test/unit/meta_test.rb +10 -1
  101. data/test/unit/micro_messenger_test.rb +21 -6
  102. data/test/unit/miui_browser_test.rb +25 -0
  103. data/test/unit/opera_test.rb +1 -0
  104. data/test/unit/platform_test.rb +13 -8
  105. data/test/unit/qq_test.rb +12 -0
  106. data/test/unit/safari_test.rb +12 -7
  107. data/test/unit/samsung_browser_test.rb +23 -0
  108. data/test/unit/sougou_browser_test.rb +41 -0
  109. metadata +47 -19
  110. data/.travis.yml +0 -23
  111. data/lib/browser/meta/modern.rb +0 -11
@@ -0,0 +1,31 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "test_helper"
4
+
5
+ class KaiOSTest < Minitest::Test
6
+ test "detects KaiOS" do
7
+ browser = Browser.new(Browser["NOKIA_8110"])
8
+
9
+ assert browser.firefox?
10
+ assert_equal "48", browser.version
11
+ assert_equal "48.0", browser.full_version
12
+ assert_equal "Firefox", browser.name
13
+ assert browser.platform.kai_os?
14
+ assert_equal "KaiOS", browser.platform.name
15
+ assert_equal "2.5", browser.platform.version
16
+ refute browser.platform.android?
17
+ end
18
+
19
+ test "detects KaiOS with Android string in user-agent " do
20
+ browser = Browser.new(Browser["JIOPHONE_2"])
21
+
22
+ assert browser.firefox?
23
+ assert_equal "48", browser.version
24
+ assert_equal "48.0", browser.full_version
25
+ assert_equal "Firefox", browser.name
26
+ assert browser.platform.kai_os?
27
+ assert_equal "KaiOS", browser.platform.name
28
+ assert_equal "2.5", browser.platform.version
29
+ refute browser.platform.android?
30
+ end
31
+ end
@@ -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
@@ -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 =~ /Custom/
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 6.3.15" do
7
- browser = Browser.new(Browser["MICRO_MESSENGER"])
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 "6.3.15", browser.full_version
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["MICRO_MESSENGER"])
18
- assert browser.wechat?(%w[>=6 <7])
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
@@ -20,6 +20,7 @@ class OperaTest < Minitest::Test
20
20
  assert browser.opera?
21
21
  assert browser.webkit?
22
22
  refute browser.chrome?
23
+ refute browser.safari?
23
24
  assert_equal "15.0.1147.44", browser.full_version
24
25
  assert_equal "15", browser.version
25
26
  end
@@ -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 =~ /Custom/
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 :other, platform.id
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 other" do
39
- platform = Browser::Platform.new("Other")
38
+ test "detect unknown platforms" do
39
+ platform = Browser::Platform.new("Unknown")
40
40
 
41
- assert_equal "Other", platform.name
42
- assert_equal :other, platform.id
41
+ assert_equal "Unknown", platform.name
42
+ assert_equal :unknown_platform, platform.id
43
43
  assert_equal "0", platform.version
44
- assert platform.other?
44
+ assert platform.unknown?
45
45
  end
46
46
 
47
47
  test "detect ios (iPhone)" do
@@ -104,7 +104,7 @@ class PlatformTest < Minitest::Test
104
104
  test "detect mac" do
105
105
  platform = Browser::Platform.new(Browser["SAFARI"])
106
106
 
107
- assert_equal "Macintosh", platform.name
107
+ assert_equal "Mac OS X", platform.name
108
108
  assert_equal :mac, platform.id
109
109
  assert platform.mac?
110
110
  assert_equal "10.6.4", platform.version
@@ -116,6 +116,11 @@ class PlatformTest < Minitest::Test
116
116
  assert_equal "0", platform.version
117
117
  end
118
118
 
119
+ test "detect mac names" do
120
+ assert_equal "Mac OS X", Browser::Platform.new(Browser["MAC_OSX"]).name
121
+ assert_equal "macOS", Browser::Platform.new(Browser["MAC_OS"]).name
122
+ end
123
+
119
124
  test "detect firefox os" do
120
125
  platform = Browser::Platform.new(Browser["FIREFOX_OS"])
121
126
 
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
@@ -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: 3.0.3
4
+ version: 5.3.1
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-01-10 00:00:00.000000000 Z
11
+ date: 2021-02-22 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.0.3
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.0.3
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
@@ -183,8 +185,8 @@ files:
183
185
  - bots.yml
184
186
  - browser.gemspec
185
187
  - config.ru
186
- - gemfiles/rails5.gemfile
187
- - gemfiles/rails6.gemfile
188
+ - gemfiles/rails6_0.gemfile
189
+ - gemfiles/rails6_1.gemfile
188
190
  - languages.yml
189
191
  - lib/browser.rb
190
192
  - lib/browser/accept_language.rb
@@ -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
@@ -221,13 +224,16 @@ files:
221
224
  - lib/browser/device/wiiu.rb
222
225
  - lib/browser/device/xbox_360.rb
223
226
  - lib/browser/device/xbox_one.rb
227
+ - lib/browser/duck_duck_go.rb
224
228
  - lib/browser/edge.rb
225
229
  - lib/browser/electron.rb
226
230
  - lib/browser/facebook.rb
227
231
  - lib/browser/firefox.rb
228
- - lib/browser/generic.rb
232
+ - lib/browser/google_search_app.rb
233
+ - lib/browser/huawei_browser.rb
229
234
  - lib/browser/instagram.rb
230
235
  - lib/browser/internet_explorer.rb
236
+ - lib/browser/maxthon.rb
231
237
  - lib/browser/meta.rb
232
238
  - lib/browser/meta/base.rb
233
239
  - lib/browser/meta/device.rb
@@ -236,7 +242,6 @@ files:
236
242
  - lib/browser/meta/ie.rb
237
243
  - lib/browser/meta/ios.rb
238
244
  - lib/browser/meta/mobile.rb
239
- - lib/browser/meta/modern.rb
240
245
  - lib/browser/meta/platform.rb
241
246
  - lib/browser/meta/proxy.rb
242
247
  - lib/browser/meta/safari.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/other.rb
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
@@ -295,18 +306,24 @@ files:
295
306
  - test/unit/chrome_test.rb
296
307
  - test/unit/console_test.rb
297
308
  - test/unit/device_test.rb
309
+ - test/unit/duck_duck_go_test.rb
298
310
  - test/unit/edge_test.rb
299
311
  - test/unit/electron_test.rb
300
312
  - test/unit/facebook_test.rb
301
313
  - test/unit/firefox_test.rb
302
314
  - test/unit/generic_test.rb
315
+ - test/unit/google_search_app_test.rb
316
+ - test/unit/huawei_browser_test.rb
303
317
  - test/unit/instagram_test.rb
304
318
  - test/unit/internet_explorer_test.rb
305
319
  - test/unit/ios_app_test.rb
306
320
  - test/unit/ios_test.rb
321
+ - test/unit/kai_os_test.rb
307
322
  - test/unit/kindle_test.rb
323
+ - test/unit/maxthon_test.rb
308
324
  - test/unit/meta_test.rb
309
325
  - test/unit/micro_messenger_test.rb
326
+ - test/unit/miui_browser_test.rb
310
327
  - test/unit/nokia_test.rb
311
328
  - test/unit/opera_test.rb
312
329
  - test/unit/otter_test.rb
@@ -314,18 +331,21 @@ files:
314
331
  - test/unit/proxy_test.rb
315
332
  - test/unit/qq_test.rb
316
333
  - test/unit/safari_test.rb
334
+ - test/unit/samsung_browser_test.rb
317
335
  - test/unit/snapchat_test.rb
336
+ - test/unit/sougou_browser_test.rb
318
337
  - test/unit/sputnik_test.rb
319
338
  - test/unit/uc_browser_test.rb
320
339
  - test/unit/weibo_test.rb
321
340
  - test/unit/windows_phone_test.rb
322
341
  - test/unit/windows_test.rb
323
342
  - test/unit/yandex_test.rb
324
- homepage: http://github.com/fnando/browser
343
+ homepage: https://github.com/fnando/browser
325
344
  licenses:
326
345
  - MIT
327
- metadata: {}
328
- post_install_message:
346
+ metadata:
347
+ changelog_uri: https://github.com/fnando/browser/blob/main/CHANGELOG.md
348
+ post_install_message:
329
349
  rdoc_options: []
330
350
  require_paths:
331
351
  - lib
@@ -333,15 +353,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
333
353
  requirements:
334
354
  - - ">="
335
355
  - !ruby/object:Gem::Version
336
- version: '0'
356
+ version: 2.5.0
337
357
  required_rubygems_version: !ruby/object:Gem::Requirement
338
358
  requirements:
339
359
  - - ">="
340
360
  - !ruby/object:Gem::Version
341
361
  version: '0'
342
362
  requirements: []
343
- rubygems_version: 3.1.2
344
- signing_key:
363
+ rubygems_version: 3.2.3
364
+ signing_key:
345
365
  specification_version: 4
346
366
  summary: Do some browser detection with Ruby.
347
367
  test_files:
@@ -364,18 +384,24 @@ test_files:
364
384
  - test/unit/chrome_test.rb
365
385
  - test/unit/console_test.rb
366
386
  - test/unit/device_test.rb
387
+ - test/unit/duck_duck_go_test.rb
367
388
  - test/unit/edge_test.rb
368
389
  - test/unit/electron_test.rb
369
390
  - test/unit/facebook_test.rb
370
391
  - test/unit/firefox_test.rb
371
392
  - test/unit/generic_test.rb
393
+ - test/unit/google_search_app_test.rb
394
+ - test/unit/huawei_browser_test.rb
372
395
  - test/unit/instagram_test.rb
373
396
  - test/unit/internet_explorer_test.rb
374
397
  - test/unit/ios_app_test.rb
375
398
  - test/unit/ios_test.rb
399
+ - test/unit/kai_os_test.rb
376
400
  - test/unit/kindle_test.rb
401
+ - test/unit/maxthon_test.rb
377
402
  - test/unit/meta_test.rb
378
403
  - test/unit/micro_messenger_test.rb
404
+ - test/unit/miui_browser_test.rb
379
405
  - test/unit/nokia_test.rb
380
406
  - test/unit/opera_test.rb
381
407
  - test/unit/otter_test.rb
@@ -383,7 +409,9 @@ test_files:
383
409
  - test/unit/proxy_test.rb
384
410
  - test/unit/qq_test.rb
385
411
  - test/unit/safari_test.rb
412
+ - test/unit/samsung_browser_test.rb
386
413
  - test/unit/snapchat_test.rb
414
+ - test/unit/sougou_browser_test.rb
387
415
  - test/unit/sputnik_test.rb
388
416
  - test/unit/uc_browser_test.rb
389
417
  - test/unit/weibo_test.rb
data/.travis.yml DELETED
@@ -1,23 +0,0 @@
1
- ---
2
- language: ruby
3
- cache: bundler
4
- rvm:
5
- - 2.7
6
- - 2.6
7
- - 2.5
8
- gemfile:
9
- - Gemfile
10
- - gemfiles/rails5.gemfile
11
- - gemfiles/rails6.gemfile
12
- script: bundle exec rake
13
- notifications:
14
- email: false
15
- before_script:
16
- - curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
17
- - chmod +x ./cc-test-reporter
18
- - "./cc-test-reporter before-build"
19
- after_script:
20
- - "./cc-test-reporter after-build --exit-code $TRAVIS_TEST_RESULT"
21
- env:
22
- global:
23
- secure: LrxynbbiJMX5vy/UVPfQsnT21oUpqpuHbUM9YOy0+ZYfDCjprvM/UGxFgjM+unRzyPI0mrNyU65ohpj8R1//tvdFW+xYau6QmFgSTU6OAQrckW/n+jqwQZV37a38wEGV0QvA6A0HW9pTrJfatUBmpaAeHAxcaBMk51tEgX/8poA=
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module Browser
4
- module Meta
5
- class Modern < Base
6
- def meta
7
- "modern" if browser.modern?
8
- end
9
- end
10
- end
11
- end