[rb] update gems and linting
diff --git a/rb/.rubocop.yml b/rb/.rubocop.yml
index 6d143f4..01b338d 100644
--- a/rb/.rubocop.yml
+++ b/rb/.rubocop.yml
@@ -8,6 +8,9 @@
   Exclude:
     - !ruby/regexp /lib\/selenium\/devtools\/v\d+/
 
+Gemspec/DevelopmentDependencies:
+  EnforcedStyle: gemspec
+
 Layout/LineLength:
   AllowedPatterns:
     - '^\s*#'
diff --git a/rb/Gemfile.lock b/rb/Gemfile.lock
index 0fa18c0..04a146a 100644
--- a/rb/Gemfile.lock
+++ b/rb/Gemfile.lock
@@ -3,7 +3,7 @@
   specs:
     selenium-devtools (0.114.0)
       selenium-webdriver (~> 4.2)
-    selenium-webdriver (4.10.0)
+    selenium-webdriver (4.11.0)
       rexml (~> 3.2, >= 3.2.5)
       rubyzip (>= 1.2.2, < 3.0)
       websocket (~> 1.0)
@@ -11,73 +11,83 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    addressable (2.8.1)
+    addressable (2.8.4)
       public_suffix (>= 2.0.2, < 6.0)
     ast (2.4.2)
     crack (0.4.5)
       rexml
-    debug (1.7.2)
+    debug (1.8.0)
       irb (>= 1.5.0)
       reline (>= 0.3.1)
     diff-lcs (1.5.0)
     hashdiff (1.0.1)
     io-console (0.6.0)
-    irb (1.6.4)
+    irb (1.7.0)
       reline (>= 0.3.0)
     json (2.6.3)
     json (2.6.3-java)
-    parallel (1.22.1)
-    parser (3.1.3.0)
+    language_server-protocol (3.17.0.3)
+    parallel (1.23.0)
+    parser (3.2.2.3)
       ast (~> 2.4.1)
+      racc
     public_suffix (5.0.1)
-    rack (2.2.5)
+    racc (1.7.1)
+    racc (1.7.1-java)
+    rack (2.2.7)
     rainbow (3.1.1)
     rake (13.0.6)
-    regexp_parser (2.6.1)
-    reline (0.3.3)
+    regexp_parser (2.8.1)
+    reline (0.3.5)
       io-console (~> 0.5)
     rexml (3.2.5)
     rspec (3.12.0)
       rspec-core (~> 3.12.0)
       rspec-expectations (~> 3.12.0)
       rspec-mocks (~> 3.12.0)
-    rspec-core (3.12.0)
+    rspec-core (3.12.2)
       rspec-support (~> 3.12.0)
-    rspec-expectations (3.12.1)
+    rspec-expectations (3.12.3)
       diff-lcs (>= 1.2.0, < 2.0)
       rspec-support (~> 3.12.0)
-    rspec-mocks (3.12.1)
+    rspec-mocks (3.12.5)
       diff-lcs (>= 1.2.0, < 2.0)
       rspec-support (~> 3.12.0)
-    rspec-support (3.12.0)
-    rubocop (1.42.0)
+    rspec-support (3.12.1)
+    rubocop (1.54.0)
       json (~> 2.3)
+      language_server-protocol (>= 3.17.0)
       parallel (~> 1.10)
-      parser (>= 3.1.2.1)
+      parser (>= 3.2.2.3)
       rainbow (>= 2.2.2, < 4.0)
       regexp_parser (>= 1.8, < 3.0)
       rexml (>= 3.2.5, < 4.0)
-      rubocop-ast (>= 1.24.1, < 2.0)
+      rubocop-ast (>= 1.28.0, < 2.0)
       ruby-progressbar (~> 1.7)
-      unicode-display_width (>= 1.4.0, < 3.0)
-    rubocop-ast (1.24.1)
-      parser (>= 3.1.1.0)
-    rubocop-performance (1.15.2)
+      unicode-display_width (>= 2.4.0, < 3.0)
+    rubocop-ast (1.29.0)
+      parser (>= 3.2.1.0)
+    rubocop-capybara (2.18.0)
+      rubocop (~> 1.41)
+    rubocop-factory_bot (2.23.1)
+      rubocop (~> 1.33)
+    rubocop-performance (1.18.0)
       rubocop (>= 1.7.0, < 2.0)
       rubocop-ast (>= 0.4.0)
-    rubocop-rspec (2.16.0)
+    rubocop-rspec (2.22.0)
       rubocop (~> 1.33)
-    ruby-progressbar (1.11.0)
+      rubocop-capybara (~> 2.17)
+      rubocop-factory_bot (~> 2.22)
+    ruby-progressbar (1.13.0)
     rubyzip (2.3.2)
-    unicode-display_width (2.3.0)
+    unicode-display_width (2.4.2)
     webmock (3.18.1)
       addressable (>= 2.8.0)
       crack (>= 0.3.2)
       hashdiff (>= 0.4.0, < 2.0.0)
-    webrick (1.7.0)
+    webrick (1.8.1)
     websocket (1.2.9)
-    yard (0.9.28)
-      webrick (~> 1.7.0)
+    yard (0.9.34)
 
 PLATFORMS
   java
diff --git a/rb/Rakefile b/rb/Rakefile
index af65d93..d8a953f 100644
--- a/rb/Rakefile
+++ b/rb/Rakefile
@@ -14,5 +14,5 @@
 
 desc 'Run all integration tests in chrome'
 task :spec do
-  system "bazel test --test_size_filters large //rb/..."
+  system 'bazel test --test_size_filters large //rb/...'
 end
diff --git a/rb/lib/selenium/webdriver/common/child_process.rb b/rb/lib/selenium/webdriver/common/child_process.rb
index e6cc9f1..bb0d0e0 100644
--- a/rb/lib/selenium/webdriver/common/child_process.rb
+++ b/rb/lib/selenium/webdriver/common/child_process.rb
@@ -81,11 +81,11 @@
       end
 
       def exited?
-        return unless @pid
+        return false unless @pid
 
         WebDriver.logger.debug("Checking if #{@pid} is exited:", id: :process)
         _, @status = Process.waitpid2(@pid, Process::WNOHANG | Process::WUNTRACED) if @status.nil?
-        return if @status.nil?
+        return false if @status.nil?
 
         exit_code = @status.exitstatus || @status.termsig
         WebDriver.logger.debug("  -> exit code is #{exit_code.inspect}", id: :process)
diff --git a/rb/lib/selenium/webdriver/ie/options.rb b/rb/lib/selenium/webdriver/ie/options.rb
index 7c80cdb..6549c32 100644
--- a/rb/lib/selenium/webdriver/ie/options.rb
+++ b/rb/lib/selenium/webdriver/ie/options.rb
@@ -42,7 +42,7 @@
           use_legacy_file_upload_dialog_handling: 'ie.useLegacyFileUploadDialogHandling',
           attach_to_edge_chrome: 'ie.edgechromium',
           edge_executable_path: 'ie.edgepath',
-          ignore_process_match: 'ie.ignoreprocessmatch',
+          ignore_process_match: 'ie.ignoreprocessmatch'
         }.freeze
         BROWSER = 'internet explorer'