]> git.openstreetmap.org Git - rails.git/blobdiff - app/helpers/banner_helper.rb
Select closest value to remaining duration when editing a block
[rails.git] / app / helpers / banner_helper.rb
index 4e888173b34ca0e127ff4574239413d9a6b26792..9048d484001d2d5c12ef23591798bac65532302e 100644 (file)
@@ -1,13 +1,19 @@
 module BannerHelper
   def active_banners
     BANNERS.reject do |_k, v|
-      enddate = v[:enddate]
       begin
-        parsed = enddate && Date.parse(enddate)
-      rescue
-        parsed = nil
+        startdate = v[:startdate] && Date.parse(v[:startdate])
+      rescue StandardError
+        startdate = nil
       end
-      !parsed.is_a?(Date) || (parsed.is_a?(Date) && parsed.past?)
+
+      begin
+        enddate = v[:enddate] && Date.parse(v[:enddate])
+      rescue StandardError
+        enddate = nil
+      end
+
+      startdate&.future? || enddate&.past?
     end
   end
 
@@ -26,9 +32,9 @@ module BannerHelper
 
       # rotate all banner queue positions
       index = cval.to_i
-      cookies[ckey] = index - 1 if index > 0
+      cookies[ckey] = index - 1 if index.positive?
 
-      # pick banner with mininum queue position
+      # pick banner with minimum queue position
       next if index > min_index
 
       # or if equal queue position, pick banner with soonest end date (i.e. next expiring)