Refactor `highlighted?` to avoid lambdas.

Akinori MUSHA преди 10 години
родител
ревизия
63f64f1597
променени са 1 файла, в които са добавени 18 реда и са изтрити 24 реда
  1. 18 24
      app/helpers/application_helper.rb

+ 18 - 24
app/helpers/application_helper.rb

@@ -73,29 +73,23 @@ module ApplicationHelper
73 73
   end
74 74
 
75 75
   def highlighted?(id)
76
-    (@hl ||=
77
-     case hl = params[:hl].presence
78
-     when nil
79
-       ->x { false }
80
-     when String
81
-       values = hl.split(/,/).flat_map { |i|
82
-         case i
83
-         when /\A(\d+)\z/
84
-           i.to_i
85
-         when /\A(\d+)?-(\d+)?\z/
86
-           ($1 ? $1.to_i : 1)..($2 ? $2.to_i : Float::INFINITY)
87
-         else
88
-           []
89
-         end
90
-       }
91
-       ->x {
92
-         case x
93
-         when *values
94
-           true
95
-         else
96
-           false
97
-         end
98
-       }
99
-     end)[id]
76
+    @highlighted_ranges ||=
77
+      case value = params[:hl].presence
78
+      when String
79
+        value.split(/,/).flat_map { |part|
80
+          case part
81
+          when /\A(\d+)\z/
82
+            (part.to_i)..(part.to_i)
83
+          when /\A(\d+)?-(\d+)?\z/
84
+            ($1 ? $1.to_i : 1)..($2 ? $2.to_i : Float::INFINITY)
85
+          else
86
+            []
87
+          end
88
+        }
89
+      else
90
+        []
91
+      end
92
+
93
+    @highlighted_ranges.any? { |range| range.cover?(id) }
100 94
   end
101 95
 end