browser 2.5.2 → 2.5.3

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
- SHA1:
3
- metadata.gz: 43aabd1ab4b633828eb6be0c7aad0fa1db432e05
4
- data.tar.gz: 47b1576b89b96fad8a74df096c599179de94a714
2
+ SHA256:
3
+ metadata.gz: 293548a9eea57000babf98f31dd4fbb5652886d9af4d0fea9be163e58d041c10
4
+ data.tar.gz: 0e5c8ae27a8b45b751c1b8c2a40aa0daf37a6a7c6547621a2dee348a6f207216
5
5
  SHA512:
6
- metadata.gz: 40c7b4dc28bf96eff5ee645cf0acc1377bd2ead45741ae6e95b9a6edff0c686118bc6cd881e7ca07e49f91d5064d6e096a3bd94d2fee45e2ec22c42459b07194
7
- data.tar.gz: 149613ad3ceb89275338691a152d2db7fb2b48e0d5cc9d8e31e6db19e1dc6a1076c269bd01156e50682812432e980b251e8c5959cdd95150b9dd41e7b929ba8d
6
+ metadata.gz: 708cd426295863ce846e4b7934ac6fa7d2716c3a0e2bf136dab0f4f79dde7648a3a41ad2dca3565bde09abe0658b08e2b5dce184d371a449f9ecbceb7a152629
7
+ data.tar.gz: 2d6c9699c81fe9bd5be50089682524c12076b3962bcc2936d9592fd93d5c4cb467dcd8ece8c78cd9252bc3395884b8b3bace3daedfdfa8742a74c51b2b280a92
data/.travis.yml CHANGED
@@ -2,12 +2,12 @@ language: ruby
2
2
  sudo: false
3
3
  cache: bundler
4
4
  rvm:
5
- - '2.4.1'
6
- - '2.3.4'
7
- - '2.2.7'
5
+ - '2.4.2'
6
+ - '2.3.5'
8
7
  gemfile:
9
8
  - Gemfile
10
9
  - gemfiles/rails4.gemfile
10
+ - gemfiles/rails5.gemfile
11
11
  script: bundle exec rake
12
12
  notifications:
13
13
  email: false
data/CHANGELOG.md CHANGED
@@ -1,14 +1,31 @@
1
1
  # Changelog
2
2
 
3
+ ## v2.5.3
4
+
5
+ - Add Google Site Verification to the bot list.
6
+ - Handle invalid quality values that look like numbers.
7
+ - Add Barkrowler bot.
8
+ - Add AlwaysOnline bot: CloudFlare.
9
+ - Add News aggregator crawler: AndersPink, BuzzBot.
10
+ - Add Domain crawler: CipaCrawler.
11
+ - Add Job bot: JobSeeker's.
12
+ - Add Apparel crawler: TeeRaid.
13
+ - Add Search engine crawler: SemanticBot, Mappy.
14
+ - Add Copyright crawler: Copypants' BotPants.
15
+ - Add SEO bots: SEOdiver, SeoAudit, WebCeo.
16
+ - Add Woriobot from Zite.
17
+ - Add BUbiNG bot.
18
+ - Add Paessler bot.
19
+
3
20
  ## v2.5.2
4
21
 
5
- - Add COMODO SSL Checker bot
6
- - Add Swiftype bot
7
- - Add WhatsApp detection
22
+ - Add COMODO SSL Checker bot.
23
+ - Add Swiftype bot.
24
+ - Add WhatsApp detection.
8
25
 
9
26
  ## v2.5.1
10
27
 
11
- - Add Android Oreo detection
28
+ - Add Android Oreo detection.
12
29
 
13
30
  ## v2.5.0
14
31
 
@@ -74,4 +91,4 @@
74
91
  - `Browser#bot` now returns a `Browser::Bot` instance.
75
92
  - Safari running as web app mode is not recognized as Safari anymore.
76
93
  - ruby-2.3+ will always activate frozen strings.
77
- - [List of all commits since last release](https://github.com/fnando/browser/compare/v1.1.0...v2.0.0)
94
+ - [List of all commits since last release](https://github.com/fnando/browser/compare/v1.1.0...v2.0.0).
data/Rakefile CHANGED
@@ -9,7 +9,6 @@ Rake::TestTask.new(:test) do |t|
9
9
  t.test_files = FileList["test/**/*_test.rb"]
10
10
  t.verbose = true
11
11
  t.warning = false
12
- t.ruby_opts = %w[-rubygems]
13
12
  end
14
13
 
15
14
  require "rubocop/rake_task"
data/bots.yml CHANGED
@@ -8,6 +8,7 @@ adsbot-google: "Google Adwords"
8
8
  advbot: "AdvBot"
9
9
  ahrefsbot: "Ahrefs backlinks research tool"
10
10
  alexa: "Alexa Crawler"
11
+ anderspink: "AndersPinkBot"
11
12
  apache-httpclient: "Java http library"
12
13
  apachebench: "ApacheBench (ab)"
13
14
  apis-google: APIs-Google
@@ -18,6 +19,7 @@ ask jeeves: "Ask Jeeves"
18
19
  asynchttpclient: "Java http and WebSocket client library"
19
20
  awe.sm: "Awe.sm URL expander"
20
21
  baidu: "Baidu"
22
+ barkrowler: "Barkrowler"
21
23
  bdcbot: "Big Data Corp"
22
24
  bingbot: "Microsoft Bing"
23
25
  bingpreview: "Microsoft Bing preview"
@@ -25,18 +27,23 @@ bitlybot: "bit.ly bot"
25
27
  blekkobot: "Blekkobot"
26
28
  blexbot: "BLEXBot (webmeup)"
27
29
  bot@linkfluence.net: "Linkfluence bot"
30
+ bubing: "BUbiNG"
28
31
  bufferbot: "BufferBot"
29
32
  buibui-checkbot: "buibui"
30
33
  butterfly: "Topsy Labs"
34
+ buzzbot: "Buzzbot"
31
35
  buzztalk: "buzztalk"
32
36
  catchbot: "CatchBot (catchbot.com)"
33
37
  check_http: "Nagios monitor"
38
+ cipacrawler: "CipaCrawler"
34
39
  cliqzbot: "Cliqzbot"
40
+ cloudflare: "CloudFlare-AlwaysOnline"
35
41
  cmradar/0.1: "CMRadar/0.1"
36
42
  coldfusion: "ColdFusion http library"
37
43
  commoncrawl: "CCBot"
38
44
  comodo ssl checker: 'COMODO SSL Checker'
39
45
  comodo-webinspector-crawler: "Comodo"
46
+ copypants: "BotPants"
40
47
  crowsnest: "Crowsnest"
41
48
  curabot: "cura.yt"
42
49
  curl: "curl unix CLI http client"
@@ -74,6 +81,7 @@ gimmeusabot: "Gimme60 (gimme60.com)"
74
81
  go http package: "Go http library"
75
82
  google page speed insights: "Google Page Speed Insights"
76
83
  google Web Preview: "Google Instant Previews crawler"
84
+ google-site-verification: Google-Site-Verification
77
85
  google-structured-data-testing-tool: "Google-StructuredDataTestingTool"
78
86
  google-structureddatatestingtool: "Google-StructuredDataTestingTool"
79
87
  googlebot: "Google Bot"
@@ -99,6 +107,7 @@ jack: "jack"
99
107
  jakarta commons: "Jakarta Commons HttpClient"
100
108
  java: "Generic Java http library"
101
109
  jetslide: "Jetslide"
110
+ jobseeker: "jobseeker.com.au/bot.html"
102
111
  js-kit: "URL resolver"
103
112
  kemvibot: "Kemvi"
104
113
  kimengi: "Kimengi Bot"
@@ -122,6 +131,7 @@ lumibot: "Lumibot"
122
131
  lwp-trivial: "Another Perl library"
123
132
  magpie-crawler: "magpie-crawler"
124
133
  mail.ru_bot: "Mail.ru Bot"
134
+ mappydata: "Mappy"
125
135
  meanpathbot: "meanpath"
126
136
  mediapartners-google: "Google Adsense bot"
127
137
  megaindex.ru: "MegaIndex"
@@ -148,6 +158,7 @@ ning: "NING - Yet Another Twitter Swarmer"
148
158
  nutch: "Apache search spider"
149
159
  openhosebot: "OpenHoseBot"
150
160
  orangebot: "OrangeBot"
161
+ paessler: "paessler.com - PRTG Network Monitor"
151
162
  pagesinventory: "pagesinventory.com"
152
163
  panopta: "Monitoring service"
153
164
  paperlibot: "PaperLi"
@@ -180,7 +191,10 @@ ruby: "Ruby"
180
191
  scrapy: "Scrapy"
181
192
  screaming frog seo spider: Screaming Frog SEO Spider
182
193
  searchmetricsbot: "SearchmetricsBot"
194
+ semanticbot: "Semanticbot"
183
195
  semrushbot: "SEO analysis bot"
196
+ seo-audit: "seo-audit-check-bot"
197
+ seodiver: "SEOdiver"
184
198
  seokicks: "SEOKicks"
185
199
  seznambot: "SeznamBot"
186
200
  shopwiki: "ShopWiki"
@@ -203,6 +217,7 @@ squider: "Squider"
203
217
  statuscake: "StatusCake"
204
218
  stripe: "Stripe"
205
219
  swiftbot: "Swiftype Bot"
220
+ teeraid: "TeeRaidBot"
206
221
  test certificate info: "C http library?"
207
222
  tineye: "TinEye Bot"
208
223
  traackr: "Traackr Bot"
@@ -228,11 +243,13 @@ vrcrawler: "Venture Radar"
228
243
  wasalive-bot: "Wasalive Bots"
229
244
  watchsumo: "WatchSumo"
230
245
  wbsearchbot: "Ware Bay Best Buys"
246
+ webceo: "online-webceo-bot"
231
247
  webscout: "Webscout"
232
248
  wesee: "WeSEE"
233
249
  wget: "wget unix CLI http client"
234
250
  whatsapp: "WhatsApp"
235
251
  wordpress: "WordPress spider"
252
+ woriobot: "woriobot"
236
253
  wormly: "WormlyBot"
237
254
  wotbox: "Wotbox"
238
255
  xenu link sleuth: "Xenu Link Sleuth"
@@ -241,6 +258,7 @@ xovibot: "XoviBot"
241
258
  yacybot: "YaCy"
242
259
  yahoo-ad-monitoring: "Yahoo Ad monitoring"
243
260
  yandex: "Yandex"
261
+ yanga: "Yanga WorldSearch Bot"
244
262
  yeti: "Naver Corp"
245
263
  yourls: "YOURLS"
246
264
  zelist.ro: "feed parser"
@@ -0,0 +1,4 @@
1
+ source "https://rubygems.org"
2
+ gemspec path: ".."
3
+
4
+ gem "rails", '~> 5.0'
@@ -47,14 +47,20 @@ module Browser
47
47
  end
48
48
 
49
49
  def quality
50
- @quality ||= Float(quality_value || 1.0)
50
+ @quality ||= begin
51
+ Float(quality_value || 1.0)
52
+ rescue ArgumentError
53
+ 0.1
54
+ end
51
55
  end
52
56
 
53
57
  private
54
58
 
55
59
  def quality_value
56
60
  qvalue = part[/;q=([\d.]+)/, 1]
57
- qvalue =~ /\A0\.0?\z/ ? "0.0" : qvalue
61
+ qvalue = qvalue =~ /\A0\.0?\z/ ? "0.0" : qvalue
62
+ qvalue = qvalue.gsub(/\.+/, ".") if qvalue
63
+ qvalue
58
64
  end
59
65
  end
60
66
  end
data/lib/browser/rails.rb CHANGED
@@ -9,9 +9,13 @@ module Browser
9
9
  config.browser = ActiveSupport::OrderedOptions.new
10
10
 
11
11
  initializer "browser" do
12
- ::ActionController::Base.send :include, Browser::ActionController
13
- Browser::Middleware::Context.send :include,
14
- Browser::Middleware::Context::Additions
12
+ ActiveSupport.on_load(:action_controller) do
13
+ ::ActionController::Base.send :include, Browser::ActionController
14
+ Browser::Middleware::Context.send(
15
+ :include,
16
+ Browser::Middleware::Context::Additions
17
+ )
18
+ end
15
19
  end
16
20
  end
17
21
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Browser
4
- VERSION = "2.5.2".freeze
4
+ VERSION = "2.5.3".freeze
5
5
  end
data/test/ua_bots.yml CHANGED
@@ -1,13 +1,20 @@
1
1
  ADLXBOT: 'Mozilla/5.0 (compatible; adidxbot/2.0; +http://www.bing.com/bingbot.htm)'
2
+ ANDERSPINK: 'Mozilla/5.0 (compatible; AndersPinkBot/1.0; +http://anderspink.com/bot.html)'
2
3
  APIS_GOOGLE: 'APIs-Google; (+https://developers.google.com/webmasters/APIs-Google.html)'
3
4
  APPLE_BOT: 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/600.2.5 (KHTML, like Gecko) Version/8.0.2 Safari/600.2.5 (Applebot/0.1)'
4
5
  ASK: 'Mozilla/2.0 (compatible; Ask Jeeves/Teoma; +http://sp.ask.com/docs/about/tech_crawling.html)'
5
6
  AWS_ELB: ELB-HealthChecker/1.0
6
7
  BAIDU: 'Baiduspider+(+http://www.baidu.com/search/spider.htm)'
8
+ BARKROWLER: 'Barkrowler/0.7 (+http://www.exensa.com/crawl)'
7
9
  BINGBOT: 'Mozilla/5.0 (compatible; bingbot/2.0; +http://www.bing.com/bingbot.htm)'
8
10
  BINGPREVIEW: 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/534+ (KHTML, like Gecko) BingPreview/1.0b'
11
+ BUBING: 'BUbiNG (+http://law.di.unimi.it/BUbiNG.html)'
12
+ BUZZBOT: 'Buzzbot/1.0 (Buzzbot; http://www.buzzstream.com; buzzbot@buzzstream.com)'
13
+ CIPACRAWLER: 'CipaCrawler/3.0 (info@domaincrawler.com; http://www.domaincrawler.com/www.example.com)'
14
+ CLOUDFLARE: "Mozilla/5.0 (compatible; CloudFlare-AlwaysOnline/1.0; +http://www.cloudflare.com/always-online) AppleWebKit/534.34"
9
15
  COMMONCRAWL: 'CCBot/2.0 (http://commoncrawl.org/faq/)'
10
16
  COMODO_SSL_CHECKER: 'COMODO SSL Checker'
17
+ COPYPANTS: 'Mozilla/5.0 (compatible; BotPants/1.0; Linux; +info@copypants.com) KHTML/3.5.5 (like Gecko)'
11
18
  DAUMOA: Mozilla/5.0 (compatible; MSIE or Firefox mutant; not on Windows server;) Daumoa 4.0
12
19
  DOMAINAREANIMATOR: 'Domain Re-Animator Bot (http://domainreanimator.com) - support@domainreanimator.com'
13
20
  DOT_BOT: 'Mozilla/5.0 (compatible; DotBot/1.1; http://www.opensiteexplorer.org/dotbot, help@moz.com)'
@@ -15,14 +22,17 @@ DUCKDUCKGO: 'DuckDuckBot/1.0; (+http://duckduckgo.com/duckduckbot.html)'
15
22
  FACEBOOK_BOT: 'facebookexternalhit/1.1 (+http://www.facebook.com/externalhit_uatext.php)'
16
23
  GOOGLE_BOT: 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)'
17
24
  GOOGLE_PAGE_SPEED_INSIGHTS: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.4 (KHTML, like Gecko; Google Page Speed Insights) Chrome/22.0.1229 Safari/537.4'
25
+ GOOGLE_SITE_VERIFICATION: Mozilla/5.0 (compatible; Google-Site-Verification/1.0)
18
26
  GOOGLE_STACKDRIVER_UPTIME_CHECKS: 'GoogleStackdriverMonitoring-UptimeChecks'
19
27
  GOOGLE_STRUCTURED_DATA_TESTING_TOOL2: 'Mozilla/5.0 (compatible; Google-Structured-Data-Testing-Tool +http://developers.google.com/structured-data/testing-tool/)'
20
28
  GOOGLE_STRUCTURED_DATA_TESTING_TOOL: 'Mozilla/5.0 (compatible; X11; Linux x86_64; Google-StructuredDataTestingTool; +http://www.google.com/webmasters/tools/richsnippets)'
21
29
  GRAPESHOT: 'Mozilla/5.0 (compatible; GrapeshotCrawler/2.0; +http://www.grapeshot.co.uk/crawler.php)'
30
+ JOBSEEKER: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/538.1 (KHTML, like Gecko) JobBot/5.0 (compatible; +http://www.jobseeker.com.au/bot.html) Safari/538.1'
22
31
  LINKDEXBOT: 'Mozilla/5.0 (compatible; linkdexbot/2.0; +http://www.linkdex.com/bots/)'
23
32
  LOAD_TIME_BOT: 'Mozilla/5.0 (compatible; LoadTimeBot/0.9; +http://www.loadtime.net/bot.html)'
24
33
  LTX71: 'ltx71 - (http://ltx71.com/)'
25
34
  MAIL_RU: 'Mozilla/5.0 (compatible; Linux x86_64; Mail.RU_Bot/2.0; +http://go.mail.ru/help/robots)'
35
+ MAPPYDATA: 'Mozilla/5.0 (compatible; Mappy/1.0; +http://mappydata.net/bot/)'
26
36
  MEGAINDEX_RU: 'Mozilla/5.0 (compatible; MegaIndex.ru/2.0; +https://www.megaindex.ru/?tab=linkAnalyze)'
27
37
  MRCHROME: 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.107 Amigo/45.0.2454.107 MRCHROME SOC Safari/537.36'
28
38
  MSNBOT: 'msnbot/2.0b (+http://search.msn.com/msnbot.htm)'
@@ -30,21 +40,29 @@ MSNBOT_MEDIA: 'msnbot-media/1.1 (+http://search.msn.com/msnbot.htm)'
30
40
  NETCRAFT2: Netcraft SSL Server Survey - contact info@netcraft.com
31
41
  NETCRAFT: Mozilla/5.0 (compatible; NetcraftSurveyAgent/1.0; +info@netcraft.com)
32
42
  NEWRELICPINGER: NewRelicPinger/1.0 (12345)
43
+ PAESSLER: Mozilla/5.0 (compatible; PRTG Network Monitor (www.paessler.com); Windows)
33
44
  PRIVACYAWAREBOT: 'Mozilla/5.0 (compatible; PrivacyAwareBot/1.1; +http://www.privacyaware.org)'
34
45
  PROXIMIC: 'Mozilla/5.0 (compatible; proximic; +http://www.proximic.com/info/spider.php)'
35
46
  QUERYSEEKER: 'QuerySeekerSpider ( http://queryseeker.com/bot.html )'
36
47
  SCRAPY: 'Scrapy/0.18.4 (+http://scrapy.org)'
48
+ SEMANTICBOT: 'Mozilla/5.0 (compatible; Semanticbot/1.0; +http://sempi.tech/bot.html)'
49
+ SEO_AUDIT: 'Mozilla/5.0 (compatible; seo-audit-check-bot/1.0)'
50
+ SEODIVER: 'Mozilla/5.0 (compatible; SEOdiver/1.0; +http://www.seodiver.com/bot)'
37
51
  SEOKICKS: 'Mozilla/5.0 (compatible; SEOkicks-Robot; +http://www.seokicks.de/robot.html)'
38
52
  SISTRIX: 'Mozilla/5.0 (compatible; SISTRIX Crawler; http://crawler.sistrix.net/)'
39
53
  SOCIALRANKIO: SocialRankIOBot; http://socialrank.io/about
40
54
  SQUIDER: 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/27.0.1453.110 Safari/537.36 Squider/0.01'
41
55
  STRIPE: 'Stripe/1.0 (+https://stripe.com/docs/webhooks)'
42
56
  SWIFTYPE: 'Swiftbot'
57
+ TEERAID: 'Mozilla/5.0 (compatible; TeeRaidBot; +https://teeraid.com/bot/)'
43
58
  TINEYE: 'TinEye-bot/0.51 (see http://www.tineye.com/crawler.html)'
44
59
  TRAACKR: 'Traackr.com'
45
60
  WATCHSUMO: 'Mozilla/5.0 (compatible) WatchSumo/1.0.0 (http://www.watchsumo.com)'
61
+ WEBCEO: 'Mozilla/5.0 (compatible; online-webceo-bot/1.0; +http://online.webceo.com)'
46
62
  WHATSAPP: 'WhatsApp/2.17.38 Mozilla/5.0 (Linux; U; Android 6.1; en-us; DV Build/Donut) AppleWebKit/537.36 (KHTML, like Gecko) Safari/537.36'
63
+ WORIOBOT: 'Mozilla/5.0 (compatible; woriobot +http://worio.com)'
47
64
  YAHOO_AD_MONITORING: 'Mozilla/5.0 (compatible; Yahoo Ad monitoring; https://help.yahoo.com/kb/yahoo-ad-monitoring-SLN24857.html)'
48
65
  YAHOO_SLURP: 'Mozilla/5.0 (compatible; Yahoo! Slurp; http://help.yahoo.com/help/us/ysearch/slurp)'
49
66
  YANDEX_DIRECT: 'Mozilla/5.0 (compatible; YandexDirect/3.0; +http://yandex.com/bots)'
50
67
  YANDEX_METRIKA: 'Mozilla/5.0 (compatible; YandexMetrika/3.0; +http://yandex.com/bots)'
68
+ YANGA: 'Yanga WorldSearch Bot v1.1/beta (http://www.yanga.co.uk/)'
@@ -139,4 +139,12 @@ class AcceptLanguageTest < Minitest::Test
139
139
  assert_language result[1], code: "ru", region: nil, quality: 0.9
140
140
  assert_language result[2], code: "de", region: nil, quality: 0.8
141
141
  end
142
+
143
+ test "handles invalid quality values that look like a number" do
144
+ accept_language = "fr-CH, fr;q=0.9, en;q=0.8, de;q=0..7, *;q=0.5"
145
+ result = Browser::AcceptLanguage.parse(accept_language)
146
+
147
+ assert_equal 5, result.size
148
+ assert_language result[3], code: "de", region: nil, quality: 0.7
149
+ end
142
150
  end
@@ -27,6 +27,15 @@ class BotsTest < Minitest::Test
27
27
  assert browser.bot?
28
28
  end
29
29
 
30
+ test "allows setting nil as user agent for bots" do
31
+ browser = Browser.new(nil)
32
+ refute browser.bot?
33
+
34
+ Browser::Bot.detect_empty_ua!
35
+ browser = Browser.new(nil)
36
+ assert browser.bot?
37
+ end
38
+
30
39
  test "doesn't detect mozilla as a bot when considering empty UA" do
31
40
  Browser::Bot.detect_empty_ua!
32
41
  browser = Browser.new("Mozilla")
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.5.2
4
+ version: 2.5.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nando Vieira
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-10-26 00:00:00.000000000 Z
11
+ date: 2018-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -172,6 +172,7 @@ files:
172
172
  - browser.gemspec
173
173
  - config.ru
174
174
  - gemfiles/rails4.gemfile
175
+ - gemfiles/rails5.gemfile
175
176
  - languages.yml
176
177
  - lib/browser.rb
177
178
  - lib/browser/accept_language.rb
@@ -315,7 +316,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
315
316
  version: '0'
316
317
  requirements: []
317
318
  rubyforge_project:
318
- rubygems_version: 2.6.13
319
+ rubygems_version: 2.7.3
319
320
  signing_key:
320
321
  specification_version: 4
321
322
  summary: Do some browser detection with Ruby.