]> git.openstreetmap.org Git - rails.git/commitdiff
Remove SystemTimer and use stdlib Timeout directly
authorAndy Allan <git@gravitystorm.co.uk>
Wed, 23 Dec 2020 14:25:58 +0000 (14:25 +0000)
committerAndy Allan <git@gravitystorm.co.uk>
Wed, 23 Dec 2020 14:25:58 +0000 (14:25 +0000)
SystemTimer was only needed on ruby 1.8, and we dropped support for
that a long time ago.

.rubocop_todo.yml
Gemfile
Gemfile.lock
app/controllers/api/amf_controller.rb
app/controllers/application_controller.rb
lib/nominatim.rb
lib/osm.rb

index c1060cbe2338b3c6c95a2344417a527e0c67c465..890fcc83cb5bcc9a4298a71931ad375c2df3ae43 100644 (file)
@@ -58,7 +58,7 @@ Metrics/BlockNesting:
 # Offense count: 25
 # Configuration parameters: CountComments, CountAsOne.
 Metrics/ClassLength:
-  Max: 643
+  Max: 644
 
 # Offense count: 68
 # Configuration parameters: IgnoredMethods.
diff --git a/Gemfile b/Gemfile
index 8869fb37cf1c92b1b085c2e34d0cd8f4955854bb..264674fbcb9499de7e137172b51a43ff46001a71 100644 (file)
--- a/Gemfile
+++ b/Gemfile
@@ -88,9 +88,6 @@ gem "libxml-ruby", ">= 2.0.5", :require => "libxml"
 gem "htmlentities"
 gem "sanitize"
 
-# Load SystemTimer for implementing request timeouts
-gem "SystemTimer", ">= 1.1.3", :require => "system_timer", :platforms => :ruby_18
-
 # Load faraday for mockable HTTP client
 gem "faraday"
 
index 4a9e2e042f70a38edde473bfa0afe458660c153b..b4c92abdfff4c606d403bfbb934ee6361866a3d9 100644 (file)
@@ -1,7 +1,6 @@
 GEM
   remote: https://rubygems.org/
   specs:
-    SystemTimer (1.2.3)
     aasm (5.1.1)
       concurrent-ruby (~> 1.0)
     actioncable (6.0.3.4)
@@ -468,7 +467,6 @@ PLATFORMS
   ruby
 
 DEPENDENCIES
-  SystemTimer (>= 1.1.3)
   aasm
   actionpack-page_caching (>= 1.2.0)
   active_record_union
index 5d45eb0704a754b2f52715e839a74a132207f2a9..34a8ff7f14df6e497fad98d64a33ed74e6cb59d6 100644 (file)
@@ -37,6 +37,8 @@
 
 module Api
   class AmfController < ApiController
+    require "timeout"
+
     include Potlatch
 
     before_action :check_api_writable
@@ -130,7 +132,7 @@ module Api
 
     def amf_handle_error_with_timeout(call, rootobj, rootid, &block)
       amf_handle_error(call, rootobj, rootid) do
-        OSM::Timer.timeout(Settings.api_timeout, OSM::APITimeoutError, &block)
+        Timeout.timeout(Settings.api_timeout, OSM::APITimeoutError, &block)
       end
     end
 
index 9f2d79eaa7bf5845b4c1cb78332e11b9798170b9..586b181165941e2fb887bbe6ff1b6ab2e2b5f4dc 100644 (file)
@@ -1,4 +1,6 @@
 class ApplicationController < ActionController::Base
+  require "timeout"
+
   include SessionPersistence
 
   protect_from_forgery :with => :exception
@@ -229,7 +231,7 @@ class ApplicationController < ActionController::Base
   ##
   # wrap an api call in a timeout
   def api_call_timeout(&block)
-    OSM::Timer.timeout(Settings.api_timeout, Timeout::Error, &block)
+    Timeout.timeout(Settings.api_timeout, Timeout::Error, &block)
   rescue Timeout::Error
     raise OSM::APITimeoutError
   end
@@ -237,7 +239,7 @@ class ApplicationController < ActionController::Base
   ##
   # wrap a web page in a timeout
   def web_timeout(&block)
-    OSM::Timer.timeout(Settings.web_timeout, Timeout::Error, &block)
+    Timeout.timeout(Settings.web_timeout, Timeout::Error, &block)
   rescue ActionView::Template::Error => e
     e = e.cause
 
index ffa86d93fee3592bf5a22d975c387319c0688083..fd0855fc9e02bf81e091ff443eb2713cce53e00c 100644 (file)
@@ -1,4 +1,6 @@
 module Nominatim
+  require "timeout"
+
   extend ActionView::Helpers::NumberHelper
 
   def self.describe_location(lat, lon, zoom = nil, language = nil)
@@ -9,7 +11,7 @@ module Nominatim
       url = "https://nominatim.openstreetmap.org/reverse?lat=#{lat}&lon=#{lon}&zoom=#{zoom}&accept-language=#{language}"
 
       begin
-        response = OSM::Timer.timeout(4) do
+        response = Timeout.timeout(4) do
           REXML::Document.new(Net::HTTP.get(URI.parse(url)))
         end
       rescue StandardError
index a6d74067772c0d415aa98508002d5efc28c3c87d..51e98f4aea86add9b98eb464afcc2e79646c9cf9 100644 (file)
@@ -5,13 +5,6 @@ module OSM
   require "rexml/text"
   require "xml/libxml"
 
-  if defined?(SystemTimer)
-    Timer = SystemTimer
-  else
-    require "timeout"
-    Timer = Timeout
-  end
-
   # The base class for API Errors.
   class APIError < RuntimeError
     def initialize(message = "Generic API Error")