Skip to content

Commit a86ec0a

Browse files
committed
♻️ De-dup code in normalize_searching_criteria
The exact same `RawData` code was used by `search_internal`, `sort_internal`, and `thread_internal`. This pulls that logic into `normalize_searching_criteria`.
1 parent 14205d5 commit a86ec0a

File tree

1 file changed

+6
-17
lines changed

1 file changed

+6
-17
lines changed

lib/net/imap.rb

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3118,11 +3118,7 @@ def enforce_logindisabled?
31183118
end
31193119

31203120
def search_internal(cmd, keys, charset)
3121-
if keys.instance_of?(String)
3122-
keys = [RawData.new(keys)]
3123-
else
3124-
normalize_searching_criteria(keys)
3125-
end
3121+
keys = normalize_searching_criteria(keys)
31263122
synchronize do
31273123
if charset
31283124
send_command(cmd, "CHARSET", charset, *keys)
@@ -3175,31 +3171,24 @@ def copy_internal(cmd, set, mailbox)
31753171
end
31763172

31773173
def sort_internal(cmd, sort_keys, search_keys, charset)
3178-
if search_keys.instance_of?(String)
3179-
search_keys = [RawData.new(search_keys)]
3180-
else
3181-
normalize_searching_criteria(search_keys)
3182-
end
3174+
search_keys = normalize_searching_criteria(search_keys)
31833175
synchronize do
31843176
send_command(cmd, sort_keys, charset, *search_keys)
31853177
clear_responses("SORT").last || []
31863178
end
31873179
end
31883180

31893181
def thread_internal(cmd, algorithm, search_keys, charset)
3190-
if search_keys.instance_of?(String)
3191-
search_keys = [RawData.new(search_keys)]
3192-
else
3193-
normalize_searching_criteria(search_keys)
3194-
end
3182+
search_keys = normalize_searching_criteria(search_keys)
31953183
synchronize do
31963184
send_command(cmd, algorithm, charset, *search_keys)
31973185
clear_responses("THREAD").last || []
31983186
end
31993187
end
32003188

3201-
def normalize_searching_criteria(keys)
3202-
keys.collect! do |i|
3189+
def normalize_searching_criteria(criteria)
3190+
return RawData.new(criteria) if criteria.is_a?(String)
3191+
criteria.map do |i|
32033192
case i
32043193
when -1, Range, Array
32053194
SequenceSet.new(i)

0 commit comments

Comments
 (0)