browser 2.3.0 → 2.4.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.
Files changed (122) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +3 -8
  3. data/CHANGELOG.md +9 -0
  4. data/README.md +12 -1
  5. data/Rakefile +1 -1
  6. data/bot_exceptions.yml +2 -0
  7. data/bots.yml +6 -2
  8. data/lib/browser.rb +1 -0
  9. data/lib/browser/accept_language.rb +5 -1
  10. data/lib/browser/action_controller.rb +1 -0
  11. data/lib/browser/aliases.rb +32 -0
  12. data/lib/browser/alipay.rb +1 -0
  13. data/lib/browser/base.rb +37 -31
  14. data/lib/browser/blackberry.rb +1 -0
  15. data/lib/browser/bot.rb +1 -0
  16. data/lib/browser/browser.rb +1 -0
  17. data/lib/browser/chrome.rb +1 -0
  18. data/lib/browser/detect_version.rb +1 -0
  19. data/lib/browser/device.rb +2 -1
  20. data/lib/browser/device/base.rb +1 -0
  21. data/lib/browser/device/blackberry_playbook.rb +1 -0
  22. data/lib/browser/device/ipad.rb +1 -0
  23. data/lib/browser/device/iphone.rb +1 -0
  24. data/lib/browser/device/ipod_touch.rb +1 -0
  25. data/lib/browser/device/kindle.rb +1 -0
  26. data/lib/browser/device/kindle_fire.rb +1 -0
  27. data/lib/browser/device/playstation3.rb +1 -0
  28. data/lib/browser/device/playstation4.rb +1 -0
  29. data/lib/browser/device/psp.rb +1 -0
  30. data/lib/browser/device/psvita.rb +1 -0
  31. data/lib/browser/device/surface.rb +1 -0
  32. data/lib/browser/device/tv.rb +1 -0
  33. data/lib/browser/device/unknown.rb +1 -0
  34. data/lib/browser/device/wii.rb +1 -0
  35. data/lib/browser/device/wiiu.rb +1 -0
  36. data/lib/browser/device/xbox_360.rb +1 -0
  37. data/lib/browser/device/xbox_one.rb +1 -0
  38. data/lib/browser/edge.rb +1 -0
  39. data/lib/browser/firefox.rb +1 -0
  40. data/lib/browser/generic.rb +1 -0
  41. data/lib/browser/internet_explorer.rb +1 -0
  42. data/lib/browser/meta.rb +1 -0
  43. data/lib/browser/meta/base.rb +1 -0
  44. data/lib/browser/meta/device.rb +1 -0
  45. data/lib/browser/meta/generic_browser.rb +1 -0
  46. data/lib/browser/meta/id.rb +1 -0
  47. data/lib/browser/meta/ie.rb +1 -0
  48. data/lib/browser/meta/ios.rb +1 -0
  49. data/lib/browser/meta/mobile.rb +1 -0
  50. data/lib/browser/meta/modern.rb +1 -0
  51. data/lib/browser/meta/platform.rb +1 -0
  52. data/lib/browser/meta/proxy.rb +1 -0
  53. data/lib/browser/meta/safari.rb +1 -0
  54. data/lib/browser/meta/tablet.rb +1 -0
  55. data/lib/browser/meta/webkit.rb +1 -0
  56. data/lib/browser/micro_messenger.rb +1 -0
  57. data/lib/browser/middleware.rb +1 -0
  58. data/lib/browser/middleware/context.rb +1 -0
  59. data/lib/browser/middleware/context/additions.rb +1 -0
  60. data/lib/browser/middleware/context/url_methods.rb +1 -0
  61. data/lib/browser/nokia.rb +1 -0
  62. data/lib/browser/opera.rb +1 -0
  63. data/lib/browser/phantom_js.rb +1 -0
  64. data/lib/browser/platform.rb +5 -4
  65. data/lib/browser/platform/adobe_air.rb +1 -0
  66. data/lib/browser/platform/android.rb +1 -0
  67. data/lib/browser/platform/base.rb +1 -0
  68. data/lib/browser/platform/blackberry.rb +1 -0
  69. data/lib/browser/platform/chrome_os.rb +1 -0
  70. data/lib/browser/platform/firefox_os.rb +1 -0
  71. data/lib/browser/platform/ios.rb +1 -0
  72. data/lib/browser/platform/linux.rb +1 -0
  73. data/lib/browser/platform/mac.rb +1 -0
  74. data/lib/browser/platform/other.rb +1 -0
  75. data/lib/browser/platform/windows.rb +1 -0
  76. data/lib/browser/platform/windows_mobile.rb +1 -0
  77. data/lib/browser/platform/windows_phone.rb +1 -0
  78. data/lib/browser/qq.rb +1 -0
  79. data/lib/browser/rails.rb +1 -0
  80. data/lib/browser/safari.rb +1 -0
  81. data/lib/browser/testing.rb +1 -0
  82. data/lib/browser/uc_browser.rb +1 -0
  83. data/lib/browser/version.rb +2 -1
  84. data/lib/browser/weibo.rb +1 -0
  85. data/test/browser_test.rb +5 -1
  86. data/test/middleware_test.rb +1 -0
  87. data/test/rails_test.rb +1 -0
  88. data/test/sample_app.rb +2 -1
  89. data/test/test_helper.rb +3 -2
  90. data/test/ua.yml +1 -0
  91. data/test/ua_bots.yml +4 -0
  92. data/test/unit/accept_language_test.rb +38 -1
  93. data/test/unit/adobe_air_test.rb +1 -0
  94. data/test/unit/aliases_test.rb +42 -0
  95. data/test/unit/alipay_test.rb +6 -0
  96. data/test/unit/android_test.rb +1 -0
  97. data/test/unit/blackberry_test.rb +1 -0
  98. data/test/unit/bots_test.rb +11 -0
  99. data/test/unit/chrome_test.rb +11 -0
  100. data/test/unit/console_test.rb +1 -0
  101. data/test/unit/device_test.rb +8 -0
  102. data/test/unit/edge_test.rb +60 -0
  103. data/test/unit/firefox_test.rb +6 -0
  104. data/test/unit/generic_test.rb +1 -0
  105. data/test/unit/{ie_test.rb → internet_explorer_test.rb} +1 -50
  106. data/test/unit/ios_app_test.rb +1 -0
  107. data/test/unit/ios_test.rb +1 -0
  108. data/test/unit/kindle_test.rb +1 -0
  109. data/test/unit/meta_test.rb +1 -0
  110. data/test/unit/micro_messenger_test.rb +6 -0
  111. data/test/unit/nokia_test.rb +6 -0
  112. data/test/unit/opera_test.rb +11 -0
  113. data/test/unit/platform_test.rb +3 -0
  114. data/test/unit/proxy_test.rb +1 -0
  115. data/test/unit/qq_test.rb +1 -0
  116. data/test/unit/safari_test.rb +6 -0
  117. data/test/unit/uc_browser_test.rb +6 -0
  118. data/test/unit/weibo_test.rb +7 -1
  119. data/test/unit/windows_phone_test.rb +1 -0
  120. data/test/unit/windows_test.rb +1 -0
  121. metadata +10 -6
  122. data/gemfiles/rails3.gemfile +0 -4
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require "test_helper"
3
4
 
4
5
  class MicroMessengerTest < Minitest::Test
@@ -11,4 +12,9 @@ class MicroMessengerTest < Minitest::Test
11
12
  assert_equal "MicroMessenger", browser.name
12
13
  assert_equal :micro_messenger, browser.id
13
14
  end
15
+
16
+ test "detects version by range" do
17
+ browser = Browser.new(Browser["MICRO_MESSENGER"])
18
+ assert browser.wechat?(%w[>=6 <7])
19
+ end
14
20
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require "test_helper"
3
4
 
4
5
  class NokiaTest < Minitest::Test
@@ -7,4 +8,9 @@ class NokiaTest < Minitest::Test
7
8
  assert browser.nokia?
8
9
  assert_equal "Nokia S40 Ovi Browser", browser.name
9
10
  end
11
+
12
+ test "detects version by range" do
13
+ browser = Browser.new(Browser["NOKIA"])
14
+ assert browser.nokia?(%w[>=2 <3])
15
+ end
10
16
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require "test_helper"
3
4
 
4
5
  class OperaTest < Minitest::Test
@@ -30,6 +31,11 @@ class OperaTest < Minitest::Test
30
31
  assert browser.opera_mini?
31
32
  end
32
33
 
34
+ test "detects opera mini version by range" do
35
+ browser = Browser.new(Browser["OPERA_MINI"])
36
+ assert browser.opera_mini?(%w[>=11 <12])
37
+ end
38
+
33
39
  test "detects opera mobi" do
34
40
  browser = Browser.new(Browser["OPERA_MOBI"])
35
41
  assert browser.opera?
@@ -39,4 +45,9 @@ class OperaTest < Minitest::Test
39
45
  browser = Browser.new(Browser["OPERA_ANDROID"])
40
46
  assert browser.platform.android?
41
47
  end
48
+
49
+ test "detects version by range" do
50
+ browser = Browser.new(Browser["OPERA"])
51
+ assert browser.opera?(%w[>=11 <12])
52
+ end
42
53
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require "test_helper"
3
4
 
4
5
  class PlatformTest < Minitest::Test
@@ -190,6 +191,7 @@ class PlatformTest < Minitest::Test
190
191
  assert_equal "Chrome OS", platform.name
191
192
  assert_equal :chrome_os, platform.id
192
193
  assert platform.chrome_os?
194
+ assert platform.chrome_os?(%w[>=3701 <3702])
193
195
  assert_equal "3701.81.0", platform.version
194
196
  end
195
197
 
@@ -197,5 +199,6 @@ class PlatformTest < Minitest::Test
197
199
  platform = Browser::Platform.new(Browser["ADOBE_AIR"])
198
200
 
199
201
  assert platform.adobe_air?
202
+ assert platform.adobe_air?(%w[>=13 <14])
200
203
  end
201
204
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require "test_helper"
3
4
 
4
5
  class ProxyTest < Minitest::Test
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require "test_helper"
3
4
 
4
5
  class QQTest < Minitest::Test
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require "test_helper"
3
4
 
4
5
  class SafariTest < Minitest::Test
@@ -82,4 +83,9 @@ class SafariTest < Minitest::Test
82
83
 
83
84
  assert_equal "601.3.9", browser.webkit_full_version
84
85
  end
86
+
87
+ test "detects webkit version by range" do
88
+ browser = Browser.new(Browser["SAFARI9"])
89
+ assert browser.webkit?(%w[>=601 <602])
90
+ end
85
91
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require "test_helper"
3
4
 
4
5
  class UcBrowserTest < Minitest::Test
@@ -7,4 +8,9 @@ class UcBrowserTest < Minitest::Test
7
8
  assert browser.uc_browser?
8
9
  assert_equal browser.name, "UCBrowser"
9
10
  end
11
+
12
+ test "detects version by range" do
13
+ browser = Browser.new(Browser["UC_BROWSER"])
14
+ assert browser.uc_browser?(%w[>=9 <10])
15
+ end
10
16
  end
@@ -1,7 +1,8 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require "test_helper"
3
4
 
4
- class MicroMessengerTest < Minitest::Test
5
+ class WeiboTest < Minitest::Test
5
6
  test "detects weibo iOS" do
6
7
  browser = Browser.new(Browser["WEIBO_IOS"])
7
8
 
@@ -19,4 +20,9 @@ class MicroMessengerTest < Minitest::Test
19
20
  assert_equal "Weibo", browser.name
20
21
  assert_equal "5.7.1", browser.full_version
21
22
  end
23
+
24
+ test "detects version by range" do
25
+ browser = Browser.new(Browser["WEIBO_IOS"])
26
+ assert browser.weibo?(%w[>=5 <6])
27
+ end
22
28
  end
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require "test_helper"
3
4
 
4
5
  class WindowPhoneTest < Minitest::Test
@@ -1,4 +1,5 @@
1
1
  # frozen_string_literal: true
2
+
2
3
  require "test_helper"
3
4
 
4
5
  class WindowsTest < Minitest::Test
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.3.0
4
+ version: 2.4.0
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-11-01 00:00:00.000000000 Z
11
+ date: 2017-05-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -171,12 +171,12 @@ files:
171
171
  - bots.yml
172
172
  - browser.gemspec
173
173
  - config.ru
174
- - gemfiles/rails3.gemfile
175
174
  - gemfiles/rails4.gemfile
176
175
  - languages.yml
177
176
  - lib/browser.rb
178
177
  - lib/browser/accept_language.rb
179
178
  - lib/browser/action_controller.rb
179
+ - lib/browser/aliases.rb
180
180
  - lib/browser/alipay.rb
181
181
  - lib/browser/base.rb
182
182
  - lib/browser/blackberry.rb
@@ -261,6 +261,7 @@ files:
261
261
  - test/ua_search_engines.yml
262
262
  - test/unit/accept_language_test.rb
263
263
  - test/unit/adobe_air_test.rb
264
+ - test/unit/aliases_test.rb
264
265
  - test/unit/alipay_test.rb
265
266
  - test/unit/android_test.rb
266
267
  - test/unit/blackberry_test.rb
@@ -268,9 +269,10 @@ files:
268
269
  - test/unit/chrome_test.rb
269
270
  - test/unit/console_test.rb
270
271
  - test/unit/device_test.rb
272
+ - test/unit/edge_test.rb
271
273
  - test/unit/firefox_test.rb
272
274
  - test/unit/generic_test.rb
273
- - test/unit/ie_test.rb
275
+ - test/unit/internet_explorer_test.rb
274
276
  - test/unit/ios_app_test.rb
275
277
  - test/unit/ios_test.rb
276
278
  - test/unit/kindle_test.rb
@@ -306,7 +308,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
306
308
  version: '0'
307
309
  requirements: []
308
310
  rubyforge_project:
309
- rubygems_version: 2.5.1
311
+ rubygems_version: 2.6.11
310
312
  signing_key:
311
313
  specification_version: 4
312
314
  summary: Do some browser detection with Ruby.
@@ -321,6 +323,7 @@ test_files:
321
323
  - test/ua_search_engines.yml
322
324
  - test/unit/accept_language_test.rb
323
325
  - test/unit/adobe_air_test.rb
326
+ - test/unit/aliases_test.rb
324
327
  - test/unit/alipay_test.rb
325
328
  - test/unit/android_test.rb
326
329
  - test/unit/blackberry_test.rb
@@ -328,9 +331,10 @@ test_files:
328
331
  - test/unit/chrome_test.rb
329
332
  - test/unit/console_test.rb
330
333
  - test/unit/device_test.rb
334
+ - test/unit/edge_test.rb
331
335
  - test/unit/firefox_test.rb
332
336
  - test/unit/generic_test.rb
333
- - test/unit/ie_test.rb
337
+ - test/unit/internet_explorer_test.rb
334
338
  - test/unit/ios_app_test.rb
335
339
  - test/unit/ios_test.rb
336
340
  - test/unit/kindle_test.rb
@@ -1,4 +0,0 @@
1
- source "https://rubygems.org"
2
- gemspec path: ".."
3
-
4
- gem "rails", "~> 3.2.13"